Commit 26768a66 authored by wansari's avatar wansari

W15GSUN003 changed by wasim to update validation that quantity should be greater than 0


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@98927 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 6d533dbb
......@@ -267,25 +267,25 @@ public class ScheduleAWMSInOutTasks implements Schedule
if("D-SO".equalsIgnoreCase(refSer))
{
sql = "SELECT ITEM_CODE,LINE_NO,QUANTITY,QTY_ALLOC,UNIT,LOT_NO,LOT_SL,MFG_DATE,EXP_DATE,LOC_CODE,SITE_CODE__MFG AS SITE_CODE"
+ " FROM DISTORDER_ALLOC WHERE DIST_ORDER = ? AND LINE_NO = ?";
+ " FROM DISTORDER_ALLOC WHERE DIST_ORDER = ? AND LINE_NO = ? AND QUANTITY > 0";
}
else if("S-ORD".equalsIgnoreCase(refSer))
{
sql = "SELECT ITEM_CODE,LINE_NO,QUANTITY,QTY_ALLOC,UNIT__STD AS UNIT,LOT_NO,LOT_SL,MFG_DATE,EXP_DATE,LOC_CODE,SITE_CODE "
+ "FROM SORDALLOC WHERE SALE_ORDER = ? AND LINE_NO = ?";
+ "FROM SORDALLOC WHERE SALE_ORDER = ? AND LINE_NO = ? AND QUANTITY > 0";
}
else if("PZ".equalsIgnoreCase(refSer))
{
sql = "SELECT P.ITEM_CODE,P.LINE_NO,P.QUANTITY,S.ALLOC_QTY,S.UNIT,P.LOT_NO,P.LOT_SL,S.MFG_DATE,S.EXP_DATE,"
+ " P.LOC_CODE,P.SITE_CODE,P.PALLET_NO FROM PALLET_DET P,STOCK S WHERE TRAN_ID = ? AND P.LINE_NO = ?"
+ " AND P.ITEM_CODE = S.ITEM_CODE AND P.SITE_CODE = S.SITE_CODE"
+ " AND P.LOC_CODE = S.LOC_CODE AND P.LOT_NO = S.LOT_NO AND P.LOT_SL = S.LOT_SL";
+ " AND P.LOC_CODE = S.LOC_CODE AND P.LOT_NO = S.LOT_NO AND P.LOT_SL = S.LOT_SL AND S.QUANTITY > 0";
}
else if("PR".equalsIgnoreCase(refSer))
{
sql = "SELECT S.ITEM_CODE,S.QUANTITY,S.LOT_NO,S.LOT_SL,P.LOC_CODE,P.PALLET_NO,"+
" S.SITE_CODE FROM STOCK S,PALLET_REQ_DET P WHERE S.LOC_CODE = P.PALLET_NO AND S.INV_STAT = 'AWMS'" +
" AND P.TRAN_ID = ? AND P.LINE_NO = ?";
" AND P.TRAN_ID = ? AND P.LINE_NO = ? AND S.QUANTITY > 0";
}
insertSql = "INSERT INTO STOCK_TRANSFER_DET(TRAN_ID, LINE_NO, ITEM_CODE, QUANTITY, LOC_CODE__FR,"
......@@ -470,7 +470,7 @@ public class ScheduleAWMSInOutTasks implements Schedule
else if("S-ORD".equalsIgnoreCase(refSer))
{
System.out.println("Going for Despatch");
errString = createDespatch(refId,lineNoInterface,conn);//VTCONPARM
errString = createDespatch(refId,lineNoList,conn);//VTCONPARM
System.out.println("Return from despatch"+errString);
if( errString != null && errString.indexOf( "VTCONPARM" ) > -1)
......@@ -2918,14 +2918,14 @@ public class ScheduleAWMSInOutTasks implements Schedule
return (int)noArt;
}
private String createDespatch(String refId,String lineNoInterface, Connection conn) throws ITMException, Exception
private String createDespatch(String refId,ArrayList lineNoList, Connection conn) throws ITMException, Exception
{
String resultStr = "",sql = "",despId = "",despDetSql = "",sordItemSql = "",sordSql = "",sordDetSql = "",stockSql = "",itemSql = "",
sqlHdr = "";
String despLineNo = "",lineNoSord = "",expLev = "",itemCodeOrd = "",itemCode = "",lotNo= "",lotSl = "",
mbaseUnit = "", unit = "",unitStd = "",locCode = "",siteCode = "",partNo = "",siteCodeMfg = "",
custItemRef = "",rateClg = "",packInstr = "",siteCodeSord = "",rateStduom = "",packCode = "",lineType = "I",palletNo = "";
custItemRef = "",rateClg = "",packInstr = "",siteCodeSord = "",rateStduom = "",packCode = "",lineType = "I",palletNo = "",lineNoInterface = "";
PreparedStatement pstmt=null,despDetPstmt = null,pstmtSordItem = null,pstmtSord = null,pstmtSordDet = null,pstmtStock = null,
pstmtItem = null,pstmtHdr = null;
......@@ -2987,207 +2987,217 @@ public class ScheduleAWMSInOutTasks implements Schedule
"VALUES (?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?) ";
despDetPstmt = conn.prepareStatement(despDetSql);
sql = "SELECT LINE_NO,EXP_LEV,ITEM_CODE__ORD,ITEM_CODE,LOT_NO,LOT_SL,UNIT,QUANTITY,LOC_CODE,"
+ " MFG_DATE,EXP_DATE,SITE_CODE,SITE_CODE__MFG FROM SORDALLOC WHERE SALE_ORDER = ? AND LINE_NO = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refId);
pstmt.setString(2, lineNoInterface);
rs = pstmt.executeQuery();
while(rs.next())
{
lineNoSord = rs.getString("LINE_NO");
expLev = checkNullAndTrim(rs.getString("EXP_LEV"));
itemCodeOrd = checkNullAndTrim(rs.getString("ITEM_CODE__ORD"));
itemCode = checkNullAndTrim(rs.getString("ITEM_CODE"));
lotNo = checkNullAndTrim(rs.getString("LOT_NO"));
lotSl = checkNullAndTrim(rs.getString("LOT_SL"));
unit = checkNullAndTrim(rs.getString("UNIT"));
quantity = rs.getDouble("QUANTITY");
locCode = checkNullAndTrim(rs.getString("LOC_CODE"));
mfgDate = rs.getTimestamp("MFG_DATE");
expDate = rs.getTimestamp("EXP_DATE");
siteCode = checkNullAndTrim(rs.getString("SITE_CODE"));
siteCodeMfg = checkNullAndTrim(rs.getString("SITE_CODE__MFG"));
despDetPstmt.setString(1, despId);
lineNo++;
despLineNo = " " + lineNo;
despLineNo = despLineNo.substring( despLineNo.length()-3 );
despDetPstmt.setString(2, despLineNo);
despDetPstmt.setString(3, refId);
despDetPstmt.setString(4, lineNoSord);
despDetPstmt.setString(5, expLev);
lineNoSord = " " + lineNoSord;
lineNoSord = lineNoSord.substring( lineNoSord.length()-3 );
if(itemCodeOrd != null && itemCodeOrd.length() > 0)
{
despDetPstmt.setString(6, itemCodeOrd);
}
else
{
despDetPstmt.setString(6, itemCode);
}
despDetPstmt.setString(7, itemCode);
despDetPstmt.setString(8, lotNo);
despDetPstmt.setString(9, lotSl);
pstmtSordItem.setString(1, refId);
pstmtSordItem.setString(2, lineNoSord);
rsSordItem = pstmtSordItem.executeQuery();
if ( rsSordItem.next() )
{
quantityOrd = rsSordItem.getDouble("QUANTITY__ORD");
}
rsSordItem.close();rsSordItem = null;
pstmtSordItem.clearParameters();
pstmtSordDet.setString(1, refId);
pstmtSordDet.setString(2, lineNoSord);
rsSordDet = pstmtSordDet.executeQuery();
if ( rsSordDet.next() )
{
packInstr = checkNull(rsSordDet.getString("PACK_INSTR"));
siteCodeSord = checkNull(rsSordDet.getString("SITE_CODE"));
custItemRef = checkNull(rsSordDet.getString("CUST_ITEM__REF"));
rateStduom = checkNull(rsSordDet.getString("RATE__STDUOM"));
rateClg = checkNull(rsSordDet.getString("RATE__CLG"));
unit = checkNull(rsSordDet.getString("UNIT"));
convQtyStduom = rsSordDet.getDouble("CONV__QTY_STDUOM");
unitStd = checkNull(rsSordDet.getString("UNIT__STD"));
rate = rsSordDet.getDouble("RATE");
rateStd = rsSordDet.getDouble("RATE__STD");
conRtuStduom = rsSordDet.getDouble("CONV__RTUOM_STDUOM");
}
rsSordDet.close();rsSordDet = null;
pstmtSordDet.clearParameters();
despDetPstmt.setDouble(10, quantityOrd);
pstmtStock.setString(1, itemCode);
pstmtStock.setString(2, siteCode);
pstmtStock.setString(3, locCode);
pstmtStock.setString(4, lotNo);
pstmtStock.setString(5, lotSl);
rsStock = pstmtStock.executeQuery();
if ( rsStock.next() )
{
grossWtPerArt = rsStock.getDouble("GROSS_WT_PER_ART");
tareWtPerArt = rsStock.getDouble("TARE_WT_PER_ART");
palletWt = rsStock.getDouble("PALLET_WT");
packCode = checkNull(rsStock.getString("PACK_CODE"));
retestDate = rsStock.getTimestamp("RETEST_DATE");
stkRate = rsStock.getDouble("RATE");
}
rsStock.close();rsStock = null;
pstmtStock.clearParameters();
pstmtItem.setString(1, itemCode);
rsItem = pstmtItem.executeQuery();
if ( rsItem.next() )
{
mbaseUnit = checkNull(rsItem.getString("UNIT_STD"));
partNo = checkNull(rsItem.getString("MFR_PART_NO"));
shipperSize = rsItem.getDouble("SHIPPER_SIZE");
grossWeight = rsItem.getDouble("GROSS_WEIGHT");
netWeight = rsItem.getDouble("NET_WEIGHT");
tareWeight = grossWeight - netWeight;
}
rsItem.close();rsItem = null;
pstmtItem.clearParameters();
noArt = (int) (quantity / shipperSize);
if(noArt == 0)
{
noArt = 1;
}
if(quantity < shipperSize)
{
grossWeight = (grossWeight * quantity);
netWeight = (netWeight * quantity);
}
else
{
grossWeight = (grossWtPerArt * noArt);
tareWeight = (tareWtPerArt * noArt);
netWeight = grossWeight - tareWeight ;
}
totalNoArt = totalNoArt + noArt;
totalGrossWeight = totalGrossWeight + grossWeight;
totalTareWeight = totalTareWeight + tareWeight ;
totalNetWeight = totalNetWeight + netWeight;
if(convQtyStduom != 0)
{
convFact = convQtyStduom;
}
ArrayList convQtyList = distComm.getConvQuantityFact(mbaseUnit, unit, itemCode, quantity, convFact,conn);
System.out.println("convQtyList = "+convQtyList);
convertQty = Double.parseDouble(convQtyList.get(1).toString());
if(convertQty == -999999999)
{
convertQty = 0;
}
despDetPstmt.setDouble(11, convertQty);
despDetPstmt.setString(12, checkNull(locCode));
despDetPstmt.setString(13," ");
despDetPstmt.setDouble(14 , convQtyStduom );
despDetPstmt.setString(15 , mbaseUnit);
despDetPstmt.setString(16 , unit);
despDetPstmt.setDouble(17 , quantity );
despDetPstmt.setDouble(18 , convertQty);
despDetPstmt.setDouble(19 , rate );
despDetPstmt.setString(20 , checkNull(packInstr) );
despDetPstmt.setDouble( 21 , noArt);
despDetPstmt.setString( 22 , checkNull(siteCode));
Iterator itr = lineNoList.iterator();
while(itr.hasNext())
{
lineNoInterface = (String) itr.next();
lineNoInterface = " " + lineNoInterface;
lineNoInterface = lineNoInterface.substring( lineNoInterface.length()-3 );
pstmt.setString(1, refId);
pstmt.setString(2, lineNoInterface);
rs = pstmt.executeQuery();
while(rs.next())
{
lineNoSord = rs.getString("LINE_NO");
expLev = checkNullAndTrim(rs.getString("EXP_LEV"));
itemCodeOrd = checkNullAndTrim(rs.getString("ITEM_CODE__ORD"));
itemCode = checkNullAndTrim(rs.getString("ITEM_CODE"));
lotNo = checkNullAndTrim(rs.getString("LOT_NO"));
lotSl = checkNullAndTrim(rs.getString("LOT_SL"));
unit = checkNullAndTrim(rs.getString("UNIT"));
quantity = rs.getDouble("QUANTITY");
locCode = checkNullAndTrim(rs.getString("LOC_CODE"));
mfgDate = rs.getTimestamp("MFG_DATE");
expDate = rs.getTimestamp("EXP_DATE");
siteCode = checkNullAndTrim(rs.getString("SITE_CODE"));
siteCodeMfg = checkNullAndTrim(rs.getString("SITE_CODE__MFG"));
/*pstmtSordDet.setString(1, refId);
if(lineNoSord.length() == 2)
{
pstmtSordDet.setString(2, " "+lineNoSord);
}
else if(lineNoSord.length() == 1)
{
pstmtSordDet.setString(2, " "+lineNoSord);
}
else
{
despDetPstmt.setString(1, despId);
lineNo++;
despLineNo = " " + lineNo;
despLineNo = despLineNo.substring( despLineNo.length()-3 );
despDetPstmt.setString(2, despLineNo);
despDetPstmt.setString(3, refId);
despDetPstmt.setString(4, lineNoSord);
despDetPstmt.setString(5, expLev);
lineNoSord = " " + lineNoSord;
lineNoSord = lineNoSord.substring( lineNoSord.length()-3 );
if(itemCodeOrd != null && itemCodeOrd.length() > 0)
{
despDetPstmt.setString(6, itemCodeOrd);
}
else
{
despDetPstmt.setString(6, itemCode);
}
despDetPstmt.setString(7, itemCode);
despDetPstmt.setString(8, lotNo);
despDetPstmt.setString(9, lotSl);
pstmtSordItem.setString(1, refId);
pstmtSordItem.setString(2, lineNoSord);
rsSordItem = pstmtSordItem.executeQuery();
if ( rsSordItem.next() )
{
quantityOrd = rsSordItem.getDouble("QUANTITY__ORD");
}
rsSordItem.close();rsSordItem = null;
pstmtSordItem.clearParameters();
pstmtSordDet.setString(1, refId);
pstmtSordDet.setString(2, lineNoSord);
}*/
despDetPstmt.setDouble( 23 , shipperSize);
despDetPstmt.setDouble( 24 , grossWeight );
despDetPstmt.setDouble( 25 , tareWeight );
despDetPstmt.setDouble( 26 , netWeight);
despDetPstmt.setTimestamp( 27 , mfgDate );
despDetPstmt.setTimestamp( 28 , expDate );
despDetPstmt.setString( 29 , checkNull(siteCodeMfg));
despDetPstmt.setString( 30 , checkNull(rateClg));
despDetPstmt.setDouble( 31 , stkRate);
despDetPstmt.setString( 32 , checkNull(lineType));
despDetPstmt.setDouble( 33 , conRtuStduom);
despDetPstmt.setString( 34 , checkNull(packCode));
despDetPstmt.setString( 35, checkNull(custItemRef));
despDetPstmt.setTimestamp( 36 ,retestDate);
despDetPstmt.setString( 37 , checkNull(partNo));
despDetPstmt.setString( 38 , checkNull(palletNo));
despDetPstmt.setDouble( 39 , rateStd);
despDetPstmt.addBatch();
despDetPstmt.clearParameters();
}
despDetPstmt.executeBatch();
despDetPstmt.clearBatch();
rs.close();rs = null;
despDetPstmt.close();despDetPstmt = null;
rsSordDet = pstmtSordDet.executeQuery();
if ( rsSordDet.next() )
{
packInstr = checkNull(rsSordDet.getString("PACK_INSTR"));
siteCodeSord = checkNull(rsSordDet.getString("SITE_CODE"));
custItemRef = checkNull(rsSordDet.getString("CUST_ITEM__REF"));
rateStduom = checkNull(rsSordDet.getString("RATE__STDUOM"));
rateClg = checkNull(rsSordDet.getString("RATE__CLG"));
unit = checkNull(rsSordDet.getString("UNIT"));
convQtyStduom = rsSordDet.getDouble("CONV__QTY_STDUOM");
unitStd = checkNull(rsSordDet.getString("UNIT__STD"));
rate = rsSordDet.getDouble("RATE");
rateStd = rsSordDet.getDouble("RATE__STD");
conRtuStduom = rsSordDet.getDouble("CONV__RTUOM_STDUOM");
}
rsSordDet.close();rsSordDet = null;
pstmtSordDet.clearParameters();
despDetPstmt.setDouble(10, quantityOrd);
pstmtStock.setString(1, itemCode);
pstmtStock.setString(2, siteCode);
pstmtStock.setString(3, locCode);
pstmtStock.setString(4, lotNo);
pstmtStock.setString(5, lotSl);
rsStock = pstmtStock.executeQuery();
if ( rsStock.next() )
{
grossWtPerArt = rsStock.getDouble("GROSS_WT_PER_ART");
tareWtPerArt = rsStock.getDouble("TARE_WT_PER_ART");
palletWt = rsStock.getDouble("PALLET_WT");
packCode = checkNull(rsStock.getString("PACK_CODE"));
retestDate = rsStock.getTimestamp("RETEST_DATE");
stkRate = rsStock.getDouble("RATE");
}
rsStock.close();rsStock = null;
pstmtStock.clearParameters();
pstmtItem.setString(1, itemCode);
rsItem = pstmtItem.executeQuery();
if ( rsItem.next() )
{
mbaseUnit = checkNull(rsItem.getString("UNIT_STD"));
partNo = checkNull(rsItem.getString("MFR_PART_NO"));
shipperSize = rsItem.getDouble("SHIPPER_SIZE");
grossWeight = rsItem.getDouble("GROSS_WEIGHT");
netWeight = rsItem.getDouble("NET_WEIGHT");
tareWeight = grossWeight - netWeight;
}
rsItem.close();rsItem = null;
pstmtItem.clearParameters();
noArt = (int) (quantity / shipperSize);
if(noArt == 0)
{
noArt = 1;
}
if(quantity < shipperSize)
{
grossWeight = (grossWeight * quantity);
netWeight = (netWeight * quantity);
}
else
{
grossWeight = (grossWtPerArt * noArt);
tareWeight = (tareWtPerArt * noArt);
netWeight = grossWeight - tareWeight ;
}
totalNoArt = totalNoArt + noArt;
totalGrossWeight = totalGrossWeight + grossWeight;
totalTareWeight = totalTareWeight + tareWeight ;
totalNetWeight = totalNetWeight + netWeight;
if(convQtyStduom != 0)
{
convFact = convQtyStduom;
}
ArrayList convQtyList = distComm.getConvQuantityFact(mbaseUnit, unit, itemCode, quantity, convFact,conn);
System.out.println("convQtyList = "+convQtyList);
convertQty = Double.parseDouble(convQtyList.get(1).toString());
if(convertQty == -999999999)
{
convertQty = 0;
}
despDetPstmt.setDouble(11, convertQty);
despDetPstmt.setString(12, checkNull(locCode));
despDetPstmt.setString(13," ");
despDetPstmt.setDouble(14 , convQtyStduom );
despDetPstmt.setString(15 , mbaseUnit);
despDetPstmt.setString(16 , unit);
despDetPstmt.setDouble(17 , quantity );
despDetPstmt.setDouble(18 , convertQty);
despDetPstmt.setDouble(19 , rate );
despDetPstmt.setString(20 , checkNull(packInstr) );
despDetPstmt.setDouble( 21 , noArt);
despDetPstmt.setString( 22 , checkNull(siteCode));
/*pstmtSordDet.setString(1, refId);
if(lineNoSord.length() == 2)
{
pstmtSordDet.setString(2, " "+lineNoSord);
}
else if(lineNoSord.length() == 1)
{
pstmtSordDet.setString(2, " "+lineNoSord);
}
else
{
pstmtSordDet.setString(2, lineNoSord);
}*/
despDetPstmt.setDouble( 23 , shipperSize);
despDetPstmt.setDouble( 24 , grossWeight );
despDetPstmt.setDouble( 25 , tareWeight );
despDetPstmt.setDouble( 26 , netWeight);
despDetPstmt.setTimestamp( 27 , mfgDate );
despDetPstmt.setTimestamp( 28 , expDate );
despDetPstmt.setString( 29 , checkNull(siteCodeMfg));
despDetPstmt.setString( 30 , checkNull(rateClg));
despDetPstmt.setDouble( 31 , stkRate);
despDetPstmt.setString( 32 , checkNull(lineType));
despDetPstmt.setDouble( 33 , conRtuStduom);
despDetPstmt.setString( 34 , checkNull(packCode));
despDetPstmt.setString( 35, checkNull(custItemRef));
despDetPstmt.setTimestamp( 36 ,retestDate);
despDetPstmt.setString( 37 , checkNull(partNo));
despDetPstmt.setString( 38 , checkNull(palletNo));
despDetPstmt.setDouble( 39 , rateStd);
despDetPstmt.addBatch();
despDetPstmt.clearParameters();
}
despDetPstmt.executeBatch();
despDetPstmt.clearBatch();
rs.close();rs = null;
pstmt.close();pstmt = null;
despDetPstmt.close();despDetPstmt = null;
}
sqlHdr = "UPDATE DESPATCH SET GROSS_WEIGHT = ?, TARE_WEIGHT = TARE_WEIGHT + ? ,NETT_WEIGHT = ?, NO_ART = ? "
+ "WHERE DESP_ID = ? ";
pstmtHdr = conn.prepareStatement(sqlHdr);
......
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