Commit a671fbf6 authored by manohar's avatar manohar

bug fixing multiple lines inserted in despatch for 3 cases transferred


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@91992 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 0aab7541
...@@ -47,14 +47,22 @@ public class CaseTransferPos extends ValidatorEJB implements CaseTransferPosLoca ...@@ -47,14 +47,22 @@ public class CaseTransferPos extends ValidatorEJB implements CaseTransferPosLoca
int ctr = 0; int ctr = 0;
int count = 0; int count = 0;
String lineNo = ""; int lineNo = 0;
String despLineNo = ""; String despLineNo = "";
NodeList parentNodeList = null; NodeList parentNodeList = null;
Node parentNode = null; Node parentNode = null;
Document dom = null; Document dom = null;
PreparedStatement pstmt = null; PreparedStatement pstmt = null,pstmt1 = null;
ResultSet rs = null ; ResultSet rs = null ;
HashMap<String, Number> map = null; HashMap<String, Number> map = null;
// 15/10/12 manoharan get the old despatch line detail
String despLineOld = "0", sordNo = "", lineNoSord = "", expLev = "", itemCodeOrd = "", locCode = "", detStatus = "", unitStd = "";
String unit = "", packInstr = "", siteCode = "", siteCodeMfg = "", lineType = "", packCode = "", custItemRef = "";
int noArtOld = 0;
java.sql.Timestamp mfgDate = null, expDate = null, restetDate = null;
double qtyOrd = 0, quantityOld = 0, convQtyStduom = 0, quantityStduom = 0, quantityReal = 0, rateStduom = 0, packQty = 0, grossWeightOld = 0;
double tareWeightOld = 0, netWeightOld = 0, rateClg = 0, costRate = 0, convRateStduom = 0,quantityOrd = 0;
double caseQty = 0, caseGrossWeight = 0, caseNetWeight = 0, caseTareWeight = 0, caseQtyStduom = 0;
try try
{ {
...@@ -71,6 +79,16 @@ public class CaseTransferPos extends ValidatorEJB implements CaseTransferPosLoca ...@@ -71,6 +79,16 @@ public class CaseTransferPos extends ValidatorEJB implements CaseTransferPosLoca
palletNo = genericUtility.getColumnValueFromNode("pallet_no__fr", dom.getElementsByTagName("Detail3").item(0)); palletNo = genericUtility.getColumnValueFromNode("pallet_no__fr", dom.getElementsByTagName("Detail3").item(0));
palletNoNew = genericUtility.getColumnValueFromNode("pallet_no__to", dom.getElementsByTagName("Detail3").item(0)); palletNoNew = genericUtility.getColumnValueFromNode("pallet_no__to", dom.getElementsByTagName("Detail3").item(0));
//PICK_ORDER
//LINE_NO__PICK
//DESP_ID
//LINE_NO__DESP
//LINE_NO__DESP_NEW
//ITEM_CODE
//LOT_NO
//LOT_SL
System.out.println("PALLET NO["+palletNo+"] NEW PALLET NO["+palletNoNew+"]"); System.out.println("PALLET NO["+palletNo+"] NEW PALLET NO["+palletNoNew+"]");
parentNodeList = dom.getElementsByTagName("Detail2"); parentNodeList = dom.getElementsByTagName("Detail2");
for(ctr = 0; ctr < parentNodeList.getLength(); ctr++) for(ctr = 0; ctr < parentNodeList.getLength(); ctr++)
...@@ -117,13 +135,74 @@ public class CaseTransferPos extends ValidatorEJB implements CaseTransferPosLoca ...@@ -117,13 +135,74 @@ public class CaseTransferPos extends ValidatorEJB implements CaseTransferPosLoca
rs.close(); rs.close();
rs = null; rs = null;
////////// 15/10/12 manoharan get the old despatch line info ///////////////////////////////////////////////////
sSQL = "SELECT LINE_NO, SORD_NO, LINE_NO__SORD, EXP_LEV, " +
"ITEM_CODE__ORD, QUANTITY__ORD, QUANTITY, LOC_CODE, " +
"STATUS, CONV__QTY_STDUOM, UNIT__STD, UNIT, QUANTITY__STDUOM, QUANTITY_REAL, " +
"RATE__STDUOM, PACK_INSTR, NO_ART, SITE_CODE, PACK_QTY, GROSS_WEIGHT, TARE_WEIGHT, " +
"NETT_WEIGHT, MFG_DATE, EXP_DATE, SITE_CODE__MFG, RATE__CLG, COST_RATE, LINE_TYPE, " +
"CONV__RTUOM_STDUOM, PACK_CODE, CUST_ITEM__REF, RETEST_DATE " +
" FROM DESPATCHDET WHERE DESP_ID = ? AND ITEM_CODE = ? AND LOT_SL = ? AND LOT_NO = ? AND PALLET_NO = ?";
pstmt.setString(1,despId);
pstmt.setString(2,itemCode);
pstmt.setString(3,lotSl);
pstmt.setString(4,lotNo);
pstmt.setString(5,palletNo);
rs = pstmt.executeQuery();
if( rs.next() )
{
despLineOld = rs.getString("LINE_NO");
sordNo = rs.getString("SORD_NO");
lineNoSord = rs.getString("LINE_NO__SORD");
expLev = rs.getString("EXP_LEV");
itemCodeOrd = rs.getString("ITEM_CODE__ORD");
qtyOrd = rs.getDouble("QUANTITY__ORD");
quantityOld = rs.getDouble("QUANTITY");
locCode = rs.getString("LOC_CODE");
detStatus = rs.getString("STATUS");
convQtyStduom = rs.getDouble("CONV__QTY_STDUOM");
unitStd = rs.getString("UNIT__STD");
unit = rs.getString("UNIT");
quantityStduom = rs.getDouble("QUANTITY__STDUOM");
quantityReal = rs.getDouble("QUANTITY_REAL");
rateStduom = rs.getDouble("RATE__STDUOM");
packInstr = rs.getString("PACK_INSTR");
noArtOld = rs.getInt("NO_ART");
siteCode = rs.getString("SITE_CODE");
packQty = rs.getDouble("PACK_QTY");
grossWeightOld = rs.getDouble("GROSS_WEIGHT");
tareWeightOld = rs.getDouble("TARE_WEIGHT");
netWeightOld = rs.getDouble("NETT_WEIGHT");
mfgDate = rs.getTimestamp("MFG_DATE");
expDate = rs.getTimestamp("EXP_DATE");
siteCodeMfg = rs.getString("SITE_CODE__MFG");
rateClg = rs.getDouble("RATE__CLG");
costRate = rs.getDouble("COST_RATE");
lineType = rs.getString("LINE_TYPE");
convRateStduom = rs.getDouble("CONV__RTUOM_STDUOM");
packCode = rs.getString("PACK_CODE");
custItemRef = rs.getString("CUST_ITEM__REF");
restetDate = rs.getTimestamp("RETEST_DATE");
caseQty = packQty;
caseGrossWeight = grossWeightOld / noArtOld;
caseNetWeight = netWeightOld / noArtOld;
caseTareWeight = tareWeightOld / noArtOld;
caseQtyStduom = quantityStduom / noArtOld;
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
/////////////////////////////////////////////////////////////
sSQL = "SELECT COUNT(*) AS COUNT FROM DESPATCHDET WHERE DESP_ID = ? AND ITEM_CODE = ? AND LOT_SL = ? AND LOT_NO = ? AND PALLET_NO = ?"; sSQL = "SELECT COUNT(*) AS COUNT FROM DESPATCHDET WHERE DESP_ID = ? AND ITEM_CODE = ? AND LOT_SL = ? AND LOT_NO = ? AND PALLET_NO = ?";
pstmt = conn.prepareStatement(sSQL); pstmt = conn.prepareStatement(sSQL);
pstmt.setString(1,despId); pstmt.setString(1,despId);
pstmt.setString(2,itemCode); pstmt.setString(2,itemCode);
pstmt.setString(3,lotSl); pstmt.setString(3,lotSl);
pstmt.setString(4,lotNo); pstmt.setString(4,lotNo);
pstmt.setString(5,palletNo); //pstmt.setString(5,palletNo);
pstmt.setString(5,palletNoNew);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if( rs.next() ) if( rs.next() )
{ {
...@@ -133,30 +212,157 @@ public class CaseTransferPos extends ValidatorEJB implements CaseTransferPosLoca ...@@ -133,30 +212,157 @@ public class CaseTransferPos extends ValidatorEJB implements CaseTransferPosLoca
pstmt = null; pstmt = null;
rs.close(); rs.close();
rs = null; rs = null;
if(count == 0) if(count == 0)
{ {
map = addDespatchDetail(itemCode, lotNo, lotSl,pickOrder, despId, palletNoNew, xtraParams, conn); //map = addDespatchDetail(itemCode, lotNo, lotSl,pickOrder, despId, palletNoNew, xtraParams, conn);
if(map.size() > 0) //if(map.size() > 0)
//{
// 15/10/12 manoharan 1. reduce value in despatchdet for old record
// 2. insert a new record in despatch det
sSQL = "UPDATE DESPATCHDET SET QUANTITY = QUANTITY - ?, NO_ART = 1, GROSS_WEIGHT = GROSS_WEIGHT - ?, TARE_WEIGHT = TARE_WEIGHT - ?, "
+ " NET_WEIGHT = NET_WEIGHT - ? , QUANTITY__STDUOM = QUANTITY__STDUOM - ? WHERE DESP_ID = ? , LINE_NO = ?";
pstmt = conn.prepareStatement(sSQL);
pstmt.setDouble(1,caseQty);
pstmt.setDouble(2,caseGrossWeight);
pstmt.setDouble(3,caseTareWeight);
pstmt.setDouble(4,caseNetWeight);
pstmt.setDouble(5,caseQtyStduom);
pstmt.setString(6, despId);
pstmt.setString(7, despLineOld);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
sSQL = "SELECT MAX(TO_NUMBER(LINE_NO)) AS LINE_NO FROM DESPATCHDET WHERE DESP_ID = ?";
pstmt = conn.prepareStatement(sSQL);
pstmt.setString(1,despId);
rs = pstmt.executeQuery();
if( rs.next() )
{ {
lineNo = rs.getInt("LINE_NO");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
lineNo++;
despLineNo = " " + (Integer)map.get("lineNo"); despLineNo = " " + (Integer)map.get("lineNo");
despLineNo = despLineNo.substring( despLineNo.length()-3 ); despLineNo = despLineNo.substring( despLineNo.length()-3 );
lineNo = despLineNo;
///////////sample
sSQL = "INSERT INTO DESPATCHDET (DESP_ID, LINE_NO, SORD_NO, LINE_NO__SORD, EXP_LEV, " +
"ITEM_CODE__ORD, ITEM_CODE, LOT_NO, LOT_SL, QUANTITY__ORD, QUANTITY, LOC_CODE, " +
"STATUS, CONV__QTY_STDUOM, UNIT__STD, UNIT, QUANTITY__STDUOM, QUANTITY_REAL, " +
"RATE__STDUOM, PACK_INSTR, NO_ART, SITE_CODE, PACK_QTY, GROSS_WEIGHT, TARE_WEIGHT, " +
"NETT_WEIGHT, MFG_DATE, EXP_DATE, SITE_CODE__MFG, RATE__CLG, COST_RATE, LINE_TYPE, " +
"CONV__RTUOM_STDUOM, PACK_CODE, CUST_ITEM__REF, RETEST_DATE, PALLET_NO ) " +
"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?) ";
pstmt1 = conn.prepareStatement(sSQL);
pstmt1.setString(1, despId);
pstmt1.setString(2, despLineNo);
pstmt1.setString(3, sordNo);
pstmt1.setString(4, lineNoSord);
pstmt1.setString(5, expLev);
pstmt1.setString(6, itemCodeOrd);
pstmt1.setString(7, itemCode);
pstmt1.setString(8, lotNo);
pstmt1.setString(9, lotSl);
pstmt1.setDouble(10, quantityOrd);
pstmt1.setDouble(11, caseQty);
pstmt1.setString(12, checkNull(locCode));
pstmt1.setString(13,detStatus);
pstmt1.setDouble(14 , convQtyStduom );
pstmt1.setString(15 , unitStd);
pstmt1.setString(16 , unit);
pstmt1.setDouble(17 , caseQty * convQtyStduom );
pstmt1.setDouble(18 , caseQty);
pstmt1.setDouble(19 , rateStduom );
pstmt1.setString(20 , checkNull(packInstr) );
pstmt1.setDouble( 21 , 1);
pstmt1.setString( 22 , checkNull(siteCode));
pstmt1.setDouble( 23 , packQty);
pstmt1.setDouble( 24 , caseGrossWeight );
pstmt1.setDouble( 25 , caseTareWeight );
pstmt1.setDouble( 26 , caseNetWeight);
pstmt1.setTimestamp( 27 , mfgDate );
pstmt1.setTimestamp( 28 , expDate );
pstmt1.setString( 29 , checkNull(siteCodeMfg));
pstmt1.setDouble( 30 , rateClg);
pstmt1.setDouble( 31 , costRate);
pstmt1.setString( 32 , lineType);
pstmt1.setDouble( 33 , convRateStduom);
pstmt1.setString( 34 , checkNull(packCode));
pstmt1.setString( 35, checkNull(custItemRef));
pstmt1.setTimestamp( 36 ,restetDate);
pstmt1.setString( 37 , checkNull(palletNoNew));
pstmt1.executeUpdate();
pstmt1.close();
pstmt1 = null;
System.out.println("Complete the despatch insertion");
sSQL = "UPDATE PALLETMERGE_DET SET DESP_ID = ? , LINE_NO__DESP = ?, LINE_NO__DESP_NEW = ? WHERE TRAN_ID = ? AND LINE_NO = ? "; sSQL = "UPDATE PALLETMERGE_DET SET DESP_ID = ? , LINE_NO__DESP = ?, LINE_NO__DESP_NEW = ? WHERE TRAN_ID = ? AND LINE_NO = ? ";
pstmt = conn.prepareStatement(sSQL); pstmt = conn.prepareStatement(sSQL);
pstmt.setString(1, despId); pstmt.setString(1, despId);
pstmt.setString(2, lineNo); pstmt.setString(2, despLineNo);
pstmt.setString(3, despLineNo); pstmt.setString(3, despLineNo);
pstmt.setString(4, tranId); pstmt.setString(4, tranId);
pstmt.setString(5, palletlineNo); pstmt.setString(5, palletlineNo);
pstmt.executeUpdate(); pstmt.executeUpdate();
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} //}
} }
else else
{ {
int noArt = 0; sSQL = "SELECT LINE_NO FROM DESPATCHDET WHERE DESP_ID = ? AND ITEM_CODE = ? AND LOT_SL = ? AND LOT_NO = ? AND PALLET_NO = ?";
pstmt = conn.prepareStatement(sSQL);
pstmt.setString(1,despId);
pstmt.setString(2,itemCode);
pstmt.setString(3,lotSl);
pstmt.setString(4,lotNo);
pstmt.setString(5,palletNoNew);
rs = pstmt.executeQuery();
if( rs.next() )
{
despLineNo = rs.getString("LINE_NO");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
// despatchdet already has the same stock in another pallet just update the quntity and weights
sSQL = "UPDATE DESPATCHDET SET QUANTITY = QUANTITY + ?, NO_ART = NO_ART + 1, GROSS_WEIGHT = GROSS_WEIGHT + ?, TARE_WEIGHT = TARE_WEIGHT + ?, "
+ " NET_WEIGHT = NET_WEIGHT + ? , QUANTITY__STDUOM = QUANTITY__STDUOM + ? WHERE DESP_ID = ? , LINE_NO = ?";
pstmt = conn.prepareStatement(sSQL);
pstmt.setDouble(1,caseQty);
pstmt.setDouble(2,caseGrossWeight);
pstmt.setDouble(3,caseTareWeight);
pstmt.setDouble(4,caseNetWeight);
pstmt.setDouble(5,caseQtyStduom);
pstmt.setString(6, despId);
pstmt.setString(7, despLineNo);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
sSQL = "UPDATE PALLETMERGE_DET SET DESP_ID = ? , LINE_NO__DESP = ?, LINE_NO__DESP_NEW = ? WHERE TRAN_ID = ? AND LINE_NO = ? ";
pstmt = conn.prepareStatement(sSQL);
pstmt.setString(1, despId);
pstmt.setString(2, despLineNo);
pstmt.setString(3, despLineNo);
pstmt.setString(4, tranId);
pstmt.setString(5, palletlineNo);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
/*int noArt = 0;
double quantity = 0; double quantity = 0;
double grossWeight = 0; double grossWeight = 0;
double netWeight = 0; double netWeight = 0;
...@@ -256,14 +462,21 @@ public class CaseTransferPos extends ValidatorEJB implements CaseTransferPosLoca ...@@ -256,14 +462,21 @@ public class CaseTransferPos extends ValidatorEJB implements CaseTransferPosLoca
pstmt.setString(5, palletlineNo); pstmt.setString(5, palletlineNo);
pstmt.executeUpdate(); pstmt.executeUpdate();
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;*/
} //}
} //}
//}
} }
//map.clear();
//map = null;
} }
map.clear(); sSQL = "DELETE FROM DESPATCHDET WHERE DESP_ID = ? AND QUANTITY <= 0";
map = null; pstmt = conn.prepareStatement(sSQL);
} pstmt.setString(1, despId);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
sSQL = "UPDATE PALLETMERGE SET PALLET_NO__TO = ? , CONFIRMED = ? , CONF_DATE = ? WHERE TRAN_ID = ? "; sSQL = "UPDATE PALLETMERGE SET PALLET_NO__TO = ? , CONFIRMED = ? , CONF_DATE = ? WHERE TRAN_ID = ? ";
pstmt = conn.prepareStatement(sSQL); pstmt = conn.prepareStatement(sSQL);
pstmt.setString(1, palletNoNew); pstmt.setString(1, palletNoNew);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment