diff --git a/AstuteSystem/src/main/java/com/astute/dao/SqlDAO.java b/AstuteSystem/src/main/java/com/astute/dao/SqlDAO.java index 6198bd0..fc3048b 100644 --- a/AstuteSystem/src/main/java/com/astute/dao/SqlDAO.java +++ b/AstuteSystem/src/main/java/com/astute/dao/SqlDAO.java @@ -107,8 +107,8 @@ public class SqlDAO extends DAO { Double qty = rs.getDouble(5); Double fee = rs.getDouble(6); int serviceTypeId = rs.getInt(7); - double remainingQty = rs.getInt(8); - PODetail poDetail = new PODetail(poNum, lineItemNum, serviceDesc, feeTypeId, qty, fee, serviceTypeId, qty); + double remainingQty = rs.getDouble(8); + PODetail poDetail = new PODetail(poNum, lineItemNum, serviceDesc, feeTypeId, qty, fee, serviceTypeId, remainingQty); poDetails.add(poDetail); } return poDetails; @@ -424,15 +424,22 @@ public class SqlDAO extends DAO { } public void deleteInvoice(String invoiceNum) throws AstuteException { - try { - System.out.println("deleting invoice " + invoiceNum); - CallableStatement stmt = conn.prepareCall("DELETE FROM INVOICE WHERE INV_NO = '"+ invoiceNum + "' AND inv_status = 1"); - stmt.executeUpdate(); - updateAllRemainingQuantities(invoiceNum); - } catch (SQLException e) { - e.printStackTrace(); - throw new AstuteException(DB_ERROR,e.getMessage()); - } + String result = ""; + try { + System.out.println("Calling delete_invoice DB function"); + CallableStatement stmt = conn.prepareCall("{? = call delete_invoice(?)}"); + stmt.registerOutParameter(1, Types.VARCHAR); + stmt.setString(2, invoiceNum); + stmt.executeUpdate(); + result = stmt.getString(1); + System.out.println(result); + if (!result.equals("SUCCESS")) { + throw new AstuteException(DB_ERROR,result); + } + } catch (SQLException e) { + e.printStackTrace(); + throw new AstuteException(DB_ERROR,e.getMessage()); + } }