From ea9a5596be4231e5e4977804b895cb00d77bacb0 Mon Sep 17 00:00:00 2001 From: Nitish Dhiman <44253500+nitishdmn@users.noreply.github.com> Date: Fri, 20 Mar 2020 22:01:01 +0530 Subject: [PATCH] Add files via upload --- .../bin/com/project/sales/bean/Sales.class | Bin 0 -> 1597 bytes .../com/project/sales/bean/SalesReport.class | Bin 0 -> 2197 bytes .../bin/com/project/sales/bean/Stock.class | Bin 0 -> 1559 bytes .../bin/com/project/sales/dao/SalesDao.class | Bin 0 -> 1824 bytes .../bin/com/project/sales/dao/StockDao.class | Bin 0 -> 1764 bytes .../project/sales/main/SalesApplication.class | Bin 0 -> 1242 bytes .../project/sales/service/Administrator.class | Bin 0 -> 2520 bytes .../bin/com/project/sales/util/DBUtil.class | Bin 0 -> 729 bytes .../src/com/project/sales/bean/Sales.java | 40 ++++++ .../com/project/sales/bean/SalesReport.java | 61 ++++++++ .../src/com/project/sales/bean/Stock.java | 40 ++++++ .../src/com/project/sales/dao/SalesDao.java | 96 +++++++++++++ .../src/com/project/sales/dao/StockDao.java | 132 ++++++++++++++++++ .../project/sales/main/SalesApplication.java | 79 +++++++++++ .../project/sales/service/Administrator.java | 65 +++++++++ .../src/com/project/sales/util/DBUtil.java | 20 +++ project/database.txt | 41 ++++++ 17 files changed, 574 insertions(+) create mode 100644 project/Nitish1543/bin/com/project/sales/bean/Sales.class create mode 100644 project/Nitish1543/bin/com/project/sales/bean/SalesReport.class create mode 100644 project/Nitish1543/bin/com/project/sales/bean/Stock.class create mode 100644 project/Nitish1543/bin/com/project/sales/dao/SalesDao.class create mode 100644 project/Nitish1543/bin/com/project/sales/dao/StockDao.class create mode 100644 project/Nitish1543/bin/com/project/sales/main/SalesApplication.class create mode 100644 project/Nitish1543/bin/com/project/sales/service/Administrator.class create mode 100644 project/Nitish1543/bin/com/project/sales/util/DBUtil.class create mode 100644 project/Nitish1543/src/com/project/sales/bean/Sales.java create mode 100644 project/Nitish1543/src/com/project/sales/bean/SalesReport.java create mode 100644 project/Nitish1543/src/com/project/sales/bean/Stock.java create mode 100644 project/Nitish1543/src/com/project/sales/dao/SalesDao.java create mode 100644 project/Nitish1543/src/com/project/sales/dao/StockDao.java create mode 100644 project/Nitish1543/src/com/project/sales/main/SalesApplication.java create mode 100644 project/Nitish1543/src/com/project/sales/service/Administrator.java create mode 100644 project/Nitish1543/src/com/project/sales/util/DBUtil.java create mode 100644 project/database.txt diff --git a/project/Nitish1543/bin/com/project/sales/bean/Sales.class b/project/Nitish1543/bin/com/project/sales/bean/Sales.class new file mode 100644 index 0000000000000000000000000000000000000000..8bf4c6a41db76c390aba4e9d0ac6154e3f071197 GIT binary patch literal 1597 zcmb7@-EPxB5QWc%kRR7HZQ9a8p*W#H!cPoRuK;mFL8=r%s_C$2RsX}dS=yCsuM^eXUAM@&1#td8SdDliBTLYoG`Ulwb@7JCP(wvpEj;ATQUk&PH=72PrutK~0Gm}A=PP0*=wAt_Z z#-7HlPU@PS8&c{1Ck4%J<{P_OYIVbLH%Ik%uNd literal 0 HcmV?d00001 diff --git a/project/Nitish1543/bin/com/project/sales/bean/SalesReport.class b/project/Nitish1543/bin/com/project/sales/bean/SalesReport.class new file mode 100644 index 0000000000000000000000000000000000000000..62d2e3cccdf0f804ac66056a1141915d26c16b72 GIT binary patch literal 2197 zcmb7@ZBx@g5Xbjwr4S;e4=93SiYNu8K|vIBoN=hmFvB2PV8)l%^el&IQqwEyXYd0# zqci&659PR*gvnLTGI^1^-0uE=+1uUx{`37O0Ib7S4l)Gh9lv9D1OJ3M!tPO*_3S32 zp52hIZ&}w5L=Lh9CQs-owO#79?bl5iOduDA@6-ttcN1?z1l(&sB`_Ac>r^mQM*)4o zU0YhD8$a6WJ3{Km=apL&9eFAd*q5g4-pf+i$TPOcBT@DZdN?KNy8;1il`60qgnhDQj6+ zm@apz;J#-ev+1(VmSv0`95buM9G3P1bPUYWb{ZdA_hZ zR5-_$Kq>p&#p3-dMWL*zDmDx#!*vr1FhgLfdcMN)I{97hvAuq$$$|rl8Om1p4t0-c zz~wnMX2mh@5m?y0xY^hlqs>G^wqLfUTwOZ<=~0*`P`R*Hi0UaQ^NbtKMDdKQPK9|U zh+<0dy^|1mYYEy!BT=$CJ;qf zpi)9teA#MU3d<-AOF1~BWz=ZQGB3P{GQBdRL5tDw`+>t=aoOz25EA{RH95~v0i1OF zy+`r63?sM#reDe5q-B`l?=!>pFDoFa!gE#Y2@94cDEeOOT{IlLDOT0#wMg)qDq zi(0}eJWvS3b6D0A9>SVJkpJ8NXL3bLSWl6|s+RC5MGk9P!bXZ5HnfDtDRS7<5}sh~ HGO+m}=z@p;g5_PTKxLy;1^p{sYc8ET!>f1s5Nde0c<#sRy$FBr-nhCI+x zf8Gn;@W5kWJA@sF90gLpRnnz6M!1p^q4I?4h;!jH%siLmf5C9AwRy~te;InBfCYw1 zdh08tLN$v;hA&5f5>e=%3(ux^4W!St3iVMp)V7L;C&KoG>vKgh1MZ&jp0Jw~ z-2Nyjter^EjwNW?UMM0v2({hk+C8x~rHW4jQeZNb5@TVq$(DsGmP?q&3d3^ivPkiB zDjgY!-C@5g)FGz|V>LsU`^Q|#*d8C|^@)ra>Yb~4MXHy2f~5T0nWfg|_g6qj|hE||}(LRe}Vq2I?_EKWcQN}#V zv{vYJi?SK*)^}9j*J@v}^pmU{ZqPcDco$MiW+K0LKAm0uSk_Ny<*u&*ucFE;c6XLjfDGnkRe=M!Yx15PeS5d^K%Kpp?(nlv0vQmIEhJRVoCeN()G&t;EsUSgFfq9eJHXe;E=; zaOX!MX1ytm=n`?si9?)O@AI2^v(NM6=a+8)o}y7ij$tFvLvLjCsSK-}v$TO^-iZkJbA{uyadkK)Cu&W|v_ZSu$&0~iA3*DDRlo@K5*q6p=Q^FF<`A3nF zu@28Nx!PJ(+ZOL@ z8S_Y6J`^@M;g(LyPa~@9&yy2fQ)kmWYBQlL^29dC1LoMIQM(w7(OS#&6?GiX+wb>QA3E_nQCnhJ4 zb@kW;@|8;5yX>^nJZ>d+FJhZv(QOs6L*|_73`6y`ietJ6hcr)OJOIsTn)g7SqD2&F zExP%?KoL;+iqiXf3zzb!^ZDgF4b&iFzshB<)}Le#}*#be}SThc=QW(o(u~B literal 0 HcmV?d00001 diff --git a/project/Nitish1543/bin/com/project/sales/dao/StockDao.class b/project/Nitish1543/bin/com/project/sales/dao/StockDao.class new file mode 100644 index 0000000000000000000000000000000000000000..212ed95af64be178936b58f096dffb99e69a6911 GIT binary patch literal 1764 zcmbu9&2AGh6orq|w3$p((iU2N3dJo@k_E|z6|Go6sT3*vNKGrTbY`s7?PNUiH~}7s zCqM!T_Ph>z#GOe>BXFxgHy+z_{M~b}uKoSz=dS=BqgFzJVLj0OW@7ZQ3~VzMkxZMR z(9M0TgOgpMODHld9*d!9Mk4MtUw1Ph!`zOFm3_)EQ>z~`6rbx*mQZG>o@rkgqm74o z#(o^cMy5I%%8*mML`A|X9dnA?jbuN4!u@jRNb*nykuW4mL~tT{l5di_@lKJhk$Y>9 zw@n^unetd$-WN7F;+9Uz_X+v>^W-?MiL;|Ps-I|MGb}m~66u$BpB-2gIYj^a>ykmIIX;c%{Jea4Sg2qYR~S}m?X$Mnw?@Ui?W}F8Z57K` zgML?UfZ+Tc{5L2|_ z<&tJt>d9CdVdWd6!$DwMy9`^d^#87ihg%Fg7kkWZ%K0^?0t}Lnf{zQZ>ImGbw-~&h zJT20iLsK8u%>!rnc(J4W@?NfL8WdE zEn31B!)(6APfgc5Ph4bb!tILD$nzC^wJ_e*RXnRP5n8y}#wNBIdi~+T>5;QKpB(y0=nQqP zUSDKmWlsc|%g`MfDbiD6wO?PoY`Uo~84iXu=kSnb%zMwU+yAh2N76g`tJPC~j+C}k<&w$LUl2}|LDRFx_g@en|eQi;cjGfJm*>}WhG^gs9) zB#_{pk3!tB9d#SEu2l8Ko*Cac_ue!2%=O=YKYs&Q#&ZWbh9xiT)_N-35}vL_+!s+T z5^6_!qPEuV%0Nb1aUCiL!wi#Ke23S39&~CST4o1BKGLDL{fdVS#YQt7*Uh@Y8my;d zS|42@Oufo5RIY3=48IK9!oe8B#2)r*r9zd*1RMJJIZz@B{TBCou{4A_ST>d^w+y9sGK%P`Sf{2GVGh*F>3<@JB1SMuqaqyS={-VU3N$0& z_?n{5pKh^BFtG37OV&hxI?+#rRZ~5wD7THL0YvS&xT)1ry06~S@6I+Wk&BA=2B}ImhVEvcb)86V<=BqL(y7U zNJlOgML|s4$|%1>NxjWudfl^`Y@ox?nGt_*&blU^Fq|D3Ckv}jWyY!STxk(lIW;iU za`KMHt;4b8nM}2CgvmwvO^hVpAaMVOB3Qrbu^)Qe;F*;LH`eos@adR)N|irzs`Ss) zsX)Ic$1xVLG>w literal 0 HcmV?d00001 diff --git a/project/Nitish1543/src/com/project/sales/bean/Sales.java b/project/Nitish1543/src/com/project/sales/bean/Sales.java new file mode 100644 index 0000000..252d044 --- /dev/null +++ b/project/Nitish1543/src/com/project/sales/bean/Sales.java @@ -0,0 +1,40 @@ +package com.project.sales.bean; + +public class Sales { + String salesID; + java.util.Date salesDate; + String productID; + int quantitySold; + double salesPricePerUnit; + public String getSalesID() { + return salesID; + } + public void setSalesID(String salesID) { + this.salesID = salesID; + } + public java.util.Date getSalesDate() { + return salesDate; + } + public void setSalesDate(java.util.Date salesDate) { + this.salesDate = salesDate; + } + public String getProductID() { + return productID; + } + public void setProductID(String productID) { + this.productID = productID; + } + public int getQuantitySold() { + return quantitySold; + } + public void setQuantitySold(int quantitySold) { + this.quantitySold = quantitySold; + } + public double getSalesPricePerUnit() { + return salesPricePerUnit; + } + public void setSalesPricePerUnit(double salesPricePerUnit) { + this.salesPricePerUnit = salesPricePerUnit; + } + +} diff --git a/project/Nitish1543/src/com/project/sales/bean/SalesReport.java b/project/Nitish1543/src/com/project/sales/bean/SalesReport.java new file mode 100644 index 0000000..f02a01c --- /dev/null +++ b/project/Nitish1543/src/com/project/sales/bean/SalesReport.java @@ -0,0 +1,61 @@ +package com.project.sales.bean; + +public class SalesReport { + String salesID; + java.util.Date salesDate; + String productID; + String productName; + int quantitySold; + double productUnitPrice; + double salesPricePerUnit; + double profitAmount; + public String getSalesID() { + return salesID; + } + public void setSalesID(String salesID) { + this.salesID = salesID; + } + public java.util.Date getSalesDate() { + return salesDate; + } + public void setSalesDate(java.util.Date salesDate) { + this.salesDate = salesDate; + } + public String getProductID() { + return productID; + } + public void setProductID(String productID) { + this.productID = productID; + } + public String getProductName() { + return productName; + } + public void setProductName(String productName) { + this.productName = productName; + } + public int getQuantitySold() { + return quantitySold; + } + public void setQuantitySold(int quantitySold) { + this.quantitySold = quantitySold; + } + public double getProductUnitPrice() { + return productUnitPrice; + } + public void setProductUnitPrice(double productUnitPrice) { + this.productUnitPrice = productUnitPrice; + } + public double getSalesPricePerUnit() { + return salesPricePerUnit; + } + public void setSalesPricePerUnit(double salesPricePerUnit) { + this.salesPricePerUnit = salesPricePerUnit; + } + public double getProfitAmount() { + return profitAmount; + } + public void setProfitAmount(double profitAmount) { + this.profitAmount = profitAmount; + } + +} diff --git a/project/Nitish1543/src/com/project/sales/bean/Stock.java b/project/Nitish1543/src/com/project/sales/bean/Stock.java new file mode 100644 index 0000000..926c0f5 --- /dev/null +++ b/project/Nitish1543/src/com/project/sales/bean/Stock.java @@ -0,0 +1,40 @@ +package com.project.sales.bean; + +public class Stock { + String productID; + String productName; + int quantityOnHand; + double productUnitPrice; + int reorderLevel; + public String getProductID() { + return productID; + } + public void setProductID(String productID) { + this.productID = productID; + } + public String getProductName() { + return productName; + } + public void setProductName(String productName) { + this.productName = productName; + } + public int getQuantityOnHand() { + return quantityOnHand; + } + public void setQuantityOnHand(int quantityOnHand) { + this.quantityOnHand = quantityOnHand; + } + public double getProductUnitPrice() { + return productUnitPrice; + } + public void setProductUnitPrice(double productUnitPrice) { + this.productUnitPrice = productUnitPrice; + } + public int getReorderLevel() { + return reorderLevel; + } + public void setReorderLevel(int reorderLevel) { + this.reorderLevel = reorderLevel; + } + +} diff --git a/project/Nitish1543/src/com/project/sales/dao/SalesDao.java b/project/Nitish1543/src/com/project/sales/dao/SalesDao.java new file mode 100644 index 0000000..512319a --- /dev/null +++ b/project/Nitish1543/src/com/project/sales/dao/SalesDao.java @@ -0,0 +1,96 @@ +package com.project.sales.dao; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +import com.wipro.sales.bean.*; +import com.wipro.sales.bean.SalesReport; +import com.wipro.sales.util.DBUtil; + +public class SalesDao { + + + public int insertSales(Sales salesobj) { + Connection conn = null; + PreparedStatement pstmt = null; + String sql = "INSERT INTO TBL_SALES VALUES(?, ?, ?, ?, ?)"; + java.sql.Date sqlDate = new java.sql.Date(salesobj.getSalesDate().getTime()); + + try { + conn = DBUtil.getDBConnection(); + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, salesobj.getSalesID()); + pstmt.setDate(2, sqlDate); + pstmt.setString(3, salesobj.getProductID()); + pstmt.setInt(4, salesobj.getQuantitySold()); + pstmt.setDouble(5, salesobj.getSalesPricePerUnit()); + + if (pstmt.executeUpdate() == 1) return 1; + else return 0; + } catch (SQLException e) { + e.printStackTrace(); + return 0; + } + } + + + public String generateSalesID(Date salesDate) { + Connection conn = null; + PreparedStatement pstmt = null; + String sql = "SELECT SEQ_SALES_ID.NEXTVAL FROM DUAL"; + + int SEQ_SALES_ID = 0; + String out = salesDate.toString().substring(salesDate.toString().length()-2, salesDate.toString().length()); + + try { + conn = DBUtil.getDBConnection(); + pstmt = conn.prepareStatement(sql); + ResultSet rs = pstmt.executeQuery(); + + rs.next(); + SEQ_SALES_ID = rs.getInt(1); + + out += SEQ_SALES_ID; + return out; + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + } + + + + public ArrayList getSalesReport(){ + Connection conn = null; + PreparedStatement pstmt = null; + String sql = "SELECT * FROM V_SALES_REPORT"; + + ArrayList list = new ArrayList(); + + try { + conn = DBUtil.getDBConnection(); + pstmt = conn.prepareStatement(sql); + ResultSet rs = pstmt.executeQuery(); + + while (rs.next()) { + SalesReport salesReport = new SalesReport(); + salesReport.setSalesID(rs.getString(1)); + salesReport.setSalesDate(rs.getDate(2)); + salesReport.setProductID(rs.getString(3)); + salesReport.setProductName(rs.getString(4)); + salesReport.setQuantitySold(rs.getInt(5)); + salesReport.setProductUnitPrice(rs.getDouble(6)); + salesReport.setSalesPricePerUnit(rs.getDouble(7)); + salesReport.setProfitAmount(rs.getDouble(8)); + list.add(salesReport); + } + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return list; + } +} diff --git a/project/Nitish1543/src/com/project/sales/dao/StockDao.java b/project/Nitish1543/src/com/project/sales/dao/StockDao.java new file mode 100644 index 0000000..56414ff --- /dev/null +++ b/project/Nitish1543/src/com/project/sales/dao/StockDao.java @@ -0,0 +1,132 @@ +package com.project.sales.dao; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import com.wipro.sales.bean.Stock; +import com.wipro.sales.util.DBUtil; + +public class StockDao { + + public int insertStock(Stock stock) { + Connection conn = null; + PreparedStatement pstmt = null; + String sql = "INSERT INTO TBL_STOCK VALUES(?, ?, ?, ?, ?)"; + + try { + conn = DBUtil.getDBConnection(); + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, stock.getProductID()); + pstmt.setString(2, stock.getProductName()); + pstmt.setInt(3, stock.getQuantityOnHand()); + pstmt.setDouble(4, stock.getProductUnitPrice()); + pstmt.setInt(5, stock.getReorderLevel()); + + if (pstmt.executeUpdate() == 1) return 1; + else return 0; + } catch (SQLException e) { + e.printStackTrace(); + return 0; + } + } + + + public String generateProductID(String productName) { + Connection conn = null; + PreparedStatement pstmt = null; + String sql = "SELECT SEQ_PRODUCT_ID.NEXTVAL FROM DUAL"; + + int SEQ_PRODUCT_ID = 0; + String out = ""; + + try { + conn = DBUtil.getDBConnection(); + pstmt = conn.prepareStatement(sql); + ResultSet rs = pstmt.executeQuery(); + + rs.next(); + SEQ_PRODUCT_ID = rs.getInt(1); + + out += productName.substring(0, 2); + out += SEQ_PRODUCT_ID; + + return out; + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + } + + + public int updateStock(String productID,int soldQty) { + Connection conn = null; + PreparedStatement pstmt = null; + String sql = "UPDATE TBL_STOCK SET Quantity_On_Hand = Quantity_On_Hand - ?" + + "WHERE Product_ID = ?"; + + try { + conn = DBUtil.getDBConnection(); + pstmt = conn.prepareStatement(sql); + pstmt.setInt(1, soldQty); + pstmt.setString(2, productID); + + if (pstmt.executeUpdate() == 1) return 1; + else return 0; + } catch (SQLException e) { + e.printStackTrace(); + return 0; + } + } + + + public Stock getStock(String productID) { + Connection conn = null; + PreparedStatement pstmt = null; + String sql = "SELECT * FROM TBL_STOCK WHERE Product_ID = ?"; + + try { + conn = DBUtil.getDBConnection(); + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, productID); + + ResultSet rs = pstmt.executeQuery(); + + rs.next(); + Stock stock = new Stock(); + stock.setProductID(rs.getString(1)); + stock.setProductName(rs.getString(2)); + stock.setQuantityOnHand(rs.getInt(3)); + stock.setProductUnitPrice(rs.getDouble(4)); + stock.setReorderLevel(rs.getInt(5)); + + return stock; + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + } + + + public int deleteStock(String productID) { + Connection conn = null; + PreparedStatement pstmt = null; + String sql = "DELETE TBL_STOCK WHERE Product_ID = ?"; + + try { + conn = DBUtil.getDBConnection(); + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, productID); + + if (pstmt.executeUpdate() == 1) + return 1; + else + return 0; + } catch (SQLException e) { + e.printStackTrace(); + return 0; + } + } + +} diff --git a/project/Nitish1543/src/com/project/sales/main/SalesApplication.java b/project/Nitish1543/src/com/project/sales/main/SalesApplication.java new file mode 100644 index 0000000..5d4178c --- /dev/null +++ b/project/Nitish1543/src/com/project/sales/main/SalesApplication.java @@ -0,0 +1,79 @@ +package com.project.sales.main; + +import java.util.Scanner; +import com.wipro.sales.bean.*; +import com.wipro.sales.service.*; +import java.sql.*; +import java.text.ParseException; +import java.text.SimpleDateFormat; +public class SalesApplication { + + public static void main(String[] args) throws ParseException { + Scanner sc = new Scanner(System.in); + + Administrator admin = new Administrator(); + + int choice = 0; + + do { + System.out.println("1. Insert Stock"); + System.out.println("2. Delete Stock"); + System.out.println("3. Insert Sales"); + System.out.println("4. View Sales Report"); + System.out.print("Enter your Choice: "); + choice = sc.nextInt(); + + switch (choice) { + case 1: + Stock stock = new Stock(); + System.out.print("Enter product ID: "); + stock.setProductID(sc.nextLine()); + System.out.print("Enter product name: "); + stock.setProductName(sc.nextLine()); + System.out.print("Enter quantity on hand: "); + stock.setQuantityOnHand(sc.nextInt()); + sc.nextLine(); + System.out.print("Enter product unit price: "); + stock.setProductUnitPrice(sc.nextDouble()); + System.out.print("Enter product reorder level: "); + stock.setReorderLevel(sc.nextInt()); + sc.nextLine(); + admin.insertStock(stock); + break; + case 2: + System.out.print("Enter product id to be deleted: "); + String removeId = sc.nextLine(); + removeId = admin.deleteStock(removeId); + if (removeId != null) System.out.println(removeId + " removed successfully"); + break; + case 3: + Sales sales = new Sales(); + System.out.print("Enter sales id: "); + sales.setSalesID(sc.nextLine()); + System.out.print("Enter date (dd-mm-yyyy): "); + String sDate = sc.nextLine(); + Date date = (Date) new SimpleDateFormat("dd-mm-yyyy").parse(sDate); + sales.setSalesDate(date); + System.out.print("Enter product id: "); + sales.setProductID(sc.nextLine()); + System.out.print("Enter quantity sold: "); + sales.setQuantitySold(sc.nextInt()); + sc.nextLine(); + System.out.print("Enter sales price per unit: "); + sales.setSalesPricePerUnit(sc.nextDouble()); + admin.insertSales(sales); + break; + case 4: + admin.getSalesReport(); + break; + default: + System.out.println("Exiting..."); + choice = 0; + break; + } + } while (choice >= 1 && choice <= 4); + + sc.close(); + } + +} diff --git a/project/Nitish1543/src/com/project/sales/service/Administrator.java b/project/Nitish1543/src/com/project/sales/service/Administrator.java new file mode 100644 index 0000000..6dbf632 --- /dev/null +++ b/project/Nitish1543/src/com/project/sales/service/Administrator.java @@ -0,0 +1,65 @@ +package com.project.sales.service; + +import java.sql.*; +import java.util.ArrayList; +import com.wipro.sales.dao.*; +import com.wipro.sales.bean.*; + +public class Administrator { + + private static StockDao stockDao = new StockDao(); + private static SalesDao salesDao = new SalesDao(); + + public synchronized String insertStock(Stock stockobj) { + if (stockobj != null && stockobj.getProductName().length() >= 2) { + String productID = stockDao.generateProductID(stockobj.getProductName()); + stockobj.setProductID(productID); + if (stockDao.insertStock(stockobj) == 1) + return productID; + else + return "Data not Valid for insertion"; + } else { + return "Data not Valid for insertion"; + } + } + + + public String deleteStock(String productID) { + if (stockDao.deleteStock(productID) == 1) + return "deleted"; + else + return "record cannot be deleted"; + } + + + public String insertSales(Sales salesobj) { + if (salesobj == null) + return "Object not valid for insertion"; + + if (stockDao.getStock(salesobj.getProductID()) == null) + return "Unknown Product for sales"; + + if (stockDao.getStock(salesobj.getProductID()).getQuantityOnHand() < salesobj.getQuantitySold()) + return "Not enough stock on hand for sales"; + + if (salesobj.getSalesDate().before(new Date(0))) + return "Invalid date"; + + String salesID = salesDao.generateSalesID(salesobj.getSalesDate()); + salesobj.setSalesID(salesID); + + if (salesDao.insertSales(salesobj) == 1) { + if (stockDao.updateStock(salesobj.getProductID(), salesobj.getQuantitySold()) == 1) + return "sales record inserted successfully"; + else + return "Error"; + } else { + return "Error"; + } + } + + + public ArrayList getSalesReport(){ + return salesDao.getSalesReport(); + } +} diff --git a/project/Nitish1543/src/com/project/sales/util/DBUtil.java b/project/Nitish1543/src/com/project/sales/util/DBUtil.java new file mode 100644 index 0000000..53a16ab --- /dev/null +++ b/project/Nitish1543/src/com/project/sales/util/DBUtil.java @@ -0,0 +1,20 @@ +package com.project.sales.util; + +import java.sql.*; + +public class DBUtil { + static String db_url = "jdbc:oracle:thin:@localhost:1521:xe"; + static Connection con = null; + static String user = "username"; + static String pass = "password"; + public static Connection getDBConnection() { + try { + con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521", "scott", "tiger"); + return con; + } catch (SQLException e) { + System.out.println("Connection could not be estanlished"); + e.printStackTrace(); + return null; + } + } +} diff --git a/project/database.txt b/project/database.txt new file mode 100644 index 0000000..a3a5ec3 --- /dev/null +++ b/project/database.txt @@ -0,0 +1,41 @@ +CREATE TABLE TBL_STOCK ( + Product_ID Varchar2(6), + Product_Name Varchar2(20), + Quantity_On_Hand Number(11), + Product_Unit_Price Number(11,2), + Reorder_Level Number(11), + CONSTRAINT PK00 PRIMARY KEY(Product_ID), + CONSTRAINT UQ01 UNIQUE(Product_Name), + CONSTRAINT CH02 CHECK(Quantity_On_Hand >= 0), + CONSTRAINT CH03 CHECK(Product_Unit_Price >= 0), + CONSTRAINT CH04 CHECK(Reorder_Level >= 0) +); + +CREATE TABLE TBL_SALES ( + Sales_ID Varchar2(6), + Sales_Date Date, + Product_ID Varchar2(6), + Quantity_Sold Number(11), + Sales_Price_Per_Unit Number(11,2), + CONSTRAINT PK10 PRIMARY KEY(Sales_ID), + CONSTRAINT FK11 FOREIGN KEY(Product_ID) REFERENCES TBL_STOCK(Product_ID), + CONSTRAINT CH12 CHECK(Quantity_Sold >= 0), + CONSTRAINT CH13 CHECK(Sales_Price_Per_Unit >= 0) +); + +INSERT INTO TBL_STOCK VALUES('RE1001', 'REDMI Note 3', 20, 12000, 5); +INSERT INTO TBL_STOCK VALUES('ip1002', 'Iphone 5S', 10, 21000, 2); +INSERT INTO TBL_STOCK VALUES('PA1003', 'Panasonic P55', 50, 5500, 5); + +DROP SEQUENCE SEQ_SALES_ID; +DROP SEQUENCE SEQ_PRODUCT_ID; +CREATE SEQUENCE SEQ_SALES_ID START WITH 1000 INCREMENT BY 1; +CREATE SEQUENCE SEQ_PRODUCT_ID START WITH 1004 INCREMENT BY 1; + +DROP VIEW V_SALES_REPORT; +CREATE VIEW V_SALES_REPORT AS + SELECT Sales_ID, Sales_Date, Product_ID, Product_Name, + Quantity_Sold, Product_Unit_Price, Sales_Price_Per_Unit, + (Sales_Price_Per_Unit - Product_Unit_Price) Profit_Amount + FROM TBL_STOCK NATURAL JOIN TBL_SALES + ORDER BY Profit_Amount DESC, Sales_ID ASC; \ No newline at end of file