Commit 9daa4d8a authored by caluka's avatar caluka

stock transfer time data insert or update in INV_HOLD_REL_TRACE when stock on hold


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@97113 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 04b32b52
...@@ -215,8 +215,8 @@ public class StockTransferConf extends ActionHandlerEJB implements StockTransfer ...@@ -215,8 +215,8 @@ public class StockTransferConf extends ActionHandlerEJB implements StockTransfer
else else
{ {
// 24/06/12 manoharan if transfer to near expiry not to transfer the hold quantity // 24/06/12 manoharan if transfer to near expiry not to transfer the hold quantity
nearExpLoc = dComm.getDisparams("999999","NEAREXP_LOC",conn); //nearExpLoc = dComm.getDisparams("999999","NEAREXP_LOC",conn);
partialGrlLoc = dComm.getDisparams("999999","PGRL_INVSTAT",conn); //partialGrlLoc = dComm.getDisparams("999999","PGRL_INVSTAT",conn);
sql = "SELECT LINE_NO, ITEM_CODE, QUANTITY, LOC_CODE__FR, LOC_CODE__TO, LOT_NO__FR, LOT_SL__FR, LOT_SL__TO, ACCT_CODE__CR, CCTR_CODE__CR, NO_ART ,LOT_NO__TO " + sql = "SELECT LINE_NO, ITEM_CODE, QUANTITY, LOC_CODE__FR, LOC_CODE__TO, LOT_NO__FR, LOT_SL__FR, LOT_SL__TO, ACCT_CODE__CR, CCTR_CODE__CR, NO_ART ,LOT_NO__TO " +
",acct_code__dr,cctr_code__dr " + // added by cpatil on 20/11/13 compare with pb code and adding missing field ",acct_code__dr,cctr_code__dr " + // added by cpatil on 20/11/13 compare with pb code and adding missing field
...@@ -770,231 +770,9 @@ public class StockTransferConf extends ActionHandlerEJB implements StockTransfer ...@@ -770,231 +770,9 @@ public class StockTransferConf extends ActionHandlerEJB implements StockTransfer
// if hold_qty > 0 update the same stock hold_qty for loc_code__to // if hold_qty > 0 update the same stock hold_qty for loc_code__to
// also reduce the hold_qty for old loc_code // also reduce the hold_qty for old loc_code
// This utility methods to update old and new location should be in // This utility methods to update old and new location should be in
// a separate probably in stockupdate so that we can call the same from various places // a separate probably in stockupdate so that we can call the same from various places
if (holdQuantity > 0) StockUpdtHoldItems(reasonCodeInvHold,holdQuantity,quantity,itemCode,siteCode,locCodeFr,lotNo,lotSl,locCodeTo,lotSlTo,conn);
{
// update old location with - hold_qty
sqlRel = "UPDATE STOCK SET HOLD_QTY = HOLD_QTY - ?"
+ " WHERE ITEM_CODE = ? "
+ " AND SITE_CODE = ? "
+ " AND LOC_CODE = ? "
+ " AND LOT_NO = ? "
+ " AND LOT_SL = ? ";
pstmtUpd = conn.prepareStatement(sqlRel);
//pstmtUpd.setDouble(1,holdQuantity); //Commented by Ashish Sonawane on 01/SEP/12 as implication on stock due to PGRL location for partial qty putaway
pstmtUpd.setDouble(1,quantity); //Added by Ashish Sonawane on 01/SEP/12 as implication on stock due to PGRL location for partial qty putaway
pstmtUpd.setString(2,itemCode);
pstmtUpd.setString(3,siteCode);
pstmtUpd.setString(4,locCodeFr);
pstmtUpd.setString(5,lotNo);
pstmtUpd.setString(6,lotSl);
pstmtUpd.executeUpdate();
// 24/06/12 manoharan if not neare expiry location hold quantity to be transferred
if (!nearExpLoc.trim().equalsIgnoreCase(locCodeTo.trim()) )
{
// update new location with + hold_qty
sqlRel = "UPDATE STOCK SET HOLD_QTY = CASE WHEN HOLD_QTY IS NULL THEN 0 ELSE HOLD_QTY END + ? "
+ " WHERE ITEM_CODE = ? "
+ " AND SITE_CODE = ? "
+ " AND LOC_CODE = ? "
+ " AND LOT_NO = ? "
+ " AND LOT_SL = ? ";
pstmtUpd = conn.prepareStatement(sqlRel);
//pstmtUpd.setDouble(1,holdQuantity); //Commented by Ashish Sonawane on 01/SEP/12 as implication on stock due to PGRL location for partial qty putaway
pstmtUpd.setDouble(1,quantity); //Added by Ashish Sonawane on 01/SEP/12 as implication on stock due to PGRL location for partial qty putaway
pstmtUpd.setString(2,itemCode);
pstmtUpd.setString(3,siteCode);
pstmtUpd.setString(4,locCodeTo);
pstmtUpd.setString(5,lotNo);
//pstmtUpd.setString(6,lotSl);//Gulzar on 21/12/11
pstmtUpd.setString(6,lotSlTo);//Gulzar on 21/12/11
pstmtUpd.executeUpdate();
pstmtHold = null;
rsHold = null;
tranIdHold = "";
lineNoHold = 0;
//Changed by Rohan on 26-07-13 for disinct record
//sqlHold = "SELECT D.TRAN_ID AS TRAN_ID, D.LINE_NO AS LINE_NO, "
/*lHold = "SELECT DISTINCT D.TRAN_ID AS TRAN_ID, D.LINE_NO AS LINE_NO, "
+ " D.ITEM_CODE AS ITEM_CODE, D.SITE_CODE AS SITE_CODE, "
+ " D.LOC_CODE AS LOC_CODE, D.LOT_NO AS LOT_NO, D.LOT_SL AS LOT_SL ,D.REAS_CODE " //ADDED BY KUNAL ON 23/MAY/14 ADD REAS_CODE
//Changed By Rohan on 18-07-13 for getting lock_code
//+ " FROM INV_HOLD_DET D, INV_HOLD H "
//Changed by Rohan on 06-08-13 to get hold qty
//+ " ,T.LOCK_CODE FROM INV_HOLD_DET D, INV_HOLD H , INV_HOLD_REL_TRACE T "
+ " ,T.LOCK_CODE,T.HOLD_QTY FROM INV_HOLD_DET D, INV_HOLD H , INV_HOLD_REL_TRACE T "
+ " WHERE H.TRAN_ID = D.TRAN_ID "
//Changed By Rohan on 18-07-13 for getting lock_code
+ " AND T.REF_NO = D.TRAN_ID "
//Chnaged by Rohan on 09-08-13 for add join of inv hold det and inv hold rel trace.start
//change by kunal on 29/may/14 check null value for join
+" AND (D.ITEM_CODE = T.ITEM_CODE or (d.item_code is null or length(trim(d.item_code)) = 0 ) )"
+" AND (D.SITE_CODE = T.SITE_CODE or (d.site_code is null or length(trim(d.site_code)) = 0 ) )"
+" AND (D.LOC_CODE = T.LOC_CODE or (d.loc_code is null or length(trim(d.loc_code)) = 0 ) )"
+" AND (D.LOT_NO = T.LOT_NO or (d.lot_no is null or length(trim(d.lot_no)) = 0 ) )"
+" AND (D.LOT_SL = T.LOT_SL or (d.lot_sl is null or length(trim(d.lot_sl)) = 0 ) )"
//Chnaged by Rohan on 09-08-13 for add join of inv hold det and inv hold rel trace.end
//change done by kunal on 30/may/14 add conditiob for INV_HOLD_REL_TRACE table
+ " AND ((T.ITEM_CODE = ? ) OR (T.ITEM_CODE IS NULL OR LENGTH(TRIM(T.ITEM_CODE)) = 0 ) ) "
+ " AND ((T.SITE_CODE = ? ) OR (T.SITE_CODE IS NULL OR LENGTH(TRIM(T.SITE_CODE)) = 0 ) ) "
+ " AND ((T.LOC_CODE = ? ) OR (T.LOC_CODE IS NULL OR LENGTH(TRIM(T.LOC_CODE)) = 0 ) ) "
+ " AND ((T.LOT_NO = ? ) OR (T.LOT_NO IS NULL OR LENGTH(TRIM(T.LOT_NO)) = 0 ) ) "
+ " AND ((T.LOT_SL = ? ) OR (T.LOT_SL IS NULL OR LENGTH(TRIM(T.LOT_SL)) = 0 ) ) "
+ " AND D.HOLD_STATUS = 'H'"
+ " AND H.CONFIRMED = 'Y' ";*/
sqlHold="select sum(case when hold_qty is null then 0 else hold_qty end + case when rel_qty is null then 0 else rel_qty end) as HOLD_QTY,site_code,item_code,lot_no,lock_code,lot_sl,loc_code from inv_hold_rel_trace where item_code=? and site_code=? and loc_code=? and "
+ " lot_no=? and lot_sl=? group by site_code,item_code,lot_no,lock_code,lot_sl,loc_code having sum(case when hold_qty is null then 0 else hold_qty end + case when rel_qty is null then 0 else rel_qty end)>0";
pstmtHold = conn.prepareStatement(sqlHold);
pstmtHold.setString(1,itemCode);
pstmtHold.setString(2,siteCode);
pstmtHold.setString(3,locCodeFr);
pstmtHold.setString(4,lotNo);
pstmtHold.setString(5,lotSl);
rsHold = pstmtHold.executeQuery();
balQty = holdQuantity;
while ( rsHold.next() )
{
/*//check whether there is a confirmed release hold for the same
sqlRel = "select count(1) from inv_hold_rel h, inv_hold_rel_det "
+ " where h.tran_id = d.tran_id "
+ " and d.tran_id__hold = ? "
+ " and d.line_no__hold = ? "
+ " and h.confirmed = 'Y'";
pstmtRel = conn.prepareStatement(sqlRel);
pstmtRel.SetString(1,rsHold.getString("TRAN_ID"));
pstmtRel.setInt(2,rsHold.getInt("LINE_NO"));
rsRel = pstmtRel.executeQuery();
if (rsRelel.next())
{
}
rsRel.close();
rsRel = null;
pstmtRel.close();
pstmtRel = null;
*/
//tranIdHold = rsHold.getString("TRAN_ID");// added by Ashish Sonawane on 05-sep-12
//tranIdHold = rsHold.getString("ref_no");
//Changed By Rohan on 18-07-13 for getting lock_code
lockCode = checkNull(rsHold.getString("lock_code"));
//Changed by Rohan on 06-08-13 to get hold qty
holdQty = rsHold.getDouble("HOLD_QTY");
locCodeInvHold = checkNull(rsHold.getString("LOC_CODE"));
lotSlInvHold = checkNull(rsHold.getString("LOT_SL"));
pstmt2=conn.prepareStatement("SELECT REF_NO FROM INV_HOLD_REL_TRACE WHERE SITE_CODE=? AND ITEM_CODE=? AND LOT_NO=? AND LOT_SL=? AND LOC_CODE=? AND LOCK_CODE=?");
pstmt2.setString(1,rsHold.getString("site_code"));
pstmt2.setString(2,rsHold.getString("item_code"));
pstmt2.setString(3,lotNo);
pstmt2.setString(4,lotSl);
pstmt2.setString(5,locCodeInvHold);
pstmt2.setString(6,lockCode);
rs2=pstmt2.executeQuery();
while(rs2.next())
{
tranIdHold = rs2.getString("REF_NO");
//reasonCodeInvHold = checkNull(rsHold.getString("REAS_CODE"));
System.out.println("inv hold loc code="+locCodeInvHold+"@"+lotSlInvHold+"@"+reasonCodeInvHold);
System.out.println("invStatLocCodeTo"+invStatLocCodeTo+"locCodeTo"+locCodeTo);
System.out.println("Current Lock Code"+lockCode+"quantity::"+quantity+"holdQty::"+holdQty);
//Changed by Rohan on 06-08-13 if partial qty move from pso to pso lacation.start
//if(invStatLocCodeTo.trim().equalsIgnoreCase(locCodeTo.trim()))
//if(invStatLocCodeTo.trim().equalsIgnoreCase(locCodeTo.trim()) || quantity < holdQty )
//if(quantity < holdQty )
//{
System.out.println("-----Insert Block-----");
//Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE
//insertIntoInvHold(itemCode,siteCode,locCodeTo,lotNo,lotSlTo,tranIdHold,conn);
insertIntoInvHold(itemCode,siteCode,locCodeTo,lotNo,lotSlTo,tranIdHold,locCodeFr,lotSl,quantity,lockCode,reasonCodeInvHold,conn);
System.out.println("@@@@ End of insertion...");
//}
// else
// {
// System.out.println("-----Update Block-----");
// changed by sankara on 06-07-13 fixing bug updated corret lot_sl in inv_hold det.start
/*sqlRel = "UPDATE INV_HOLD_DET SET LOC_CODE = ?, STATUS_DATE = ? "
+ " WHERE TRAN_ID = ? AND LINE_NO = ?";
pstmtUpd = conn.prepareStatement(sqlRel);
pstmtUpd.setString(1,locCodeTo);
pstmtUpd.setTimestamp(2,new java.sql.Timestamp( System.currentTimeMillis() ));
pstmtUpd.setString(3,rsHold.getString("TRAN_ID"));
pstmtUpd.setInt(4,rsHold.getInt("LINE_NO"));
pstmtUpd.executeUpdate(); */
// sqlRel = "UPDATE INV_HOLD_DET SET LOC_CODE = ?, STATUS_DATE = ?, LOT_SL = ? "
// + " WHERE TRAN_ID = ? AND LINE_NO = ?";
// pstmtUpd = conn.prepareStatement(sqlRel);
// pstmtUpd.setString(1,locCodeTo);
// pstmtUpd.setTimestamp(2,new java.sql.Timestamp( System.currentTimeMillis() ));
// pstmtUpd.setString(3,lotSlTo);
// pstmtUpd.setString(4,rsHold.getString("TRAN_ID"));
// pstmtUpd.setInt(5,rsHold.getInt("LINE_NO"));
// pstmtUpd.executeUpdate();
// 23/06/12 manoharan
// changed by sankara on 06-07-13 fixing bug updated corret lot_sl in inv_hold det.end
// 23/06/12 manoharan
//tranIdHold = rsHold.getString("TRAN_ID"); //commented by Ashish Sonawane on 05-Sep-12 and moved to line no 421
// changed by sankara on 06-07-13 fixing bug updated corret lot_sl in inv_hold_trace.start
/*sqlRel = "UPDATE INV_HOLD_REL_TRACE SET LOC_CODE = ? "
+ " WHERE REF_NO = ? "
+ " AND ITEM_CODE = ? "
+ " AND SITE_CODE = ? "
+ " AND LOC_CODE = ? "
+ " AND LOT_NO = ? "
+ " AND LOT_SL = ? " ;
pstmtUpd = conn.prepareStatement(sqlRel);
pstmtUpd.setString(1,locCodeTo);
pstmtUpd.setString(2,tranIdHold);
pstmtUpd.setString(3,itemCode);
pstmtUpd.setString(4,siteCode);
pstmtUpd.setString(5,locCodeFr);
pstmtUpd.setString(6,lotNo);
pstmtUpd.setString(7,lotSl);
updCnt = pstmtUpd.executeUpdate();
System.out.println( "[" + updCnt + "] rows updated successfully in INV_HOLD_REL_TRACE" );
// end 23/06/12 manoharan */
// sqlRel = "UPDATE INV_HOLD_REL_TRACE SET LOC_CODE = ?, LOT_SL = ?"
// + " WHERE REF_NO = ? "
// + " AND ITEM_CODE = ? "
// + " AND SITE_CODE = ? "
// + " AND LOC_CODE = ? "
// + " AND LOT_NO = ? "
// + " AND LOT_SL = ? " ;
// pstmtUpd = conn.prepareStatement(sqlRel);
// pstmtUpd.setString(1,locCodeTo);
// pstmtUpd.setString(2,lotSlTo);
// pstmtUpd.setString(3,tranIdHold);
// pstmtUpd.setString(4,itemCode);
// pstmtUpd.setString(5,siteCode);
// pstmtUpd.setString(6,locCodeFr);
// pstmtUpd.setString(7,lotNo);
// pstmtUpd.setString(8,lotSl);
// updCnt = pstmtUpd.executeUpdate();
// System.out.println( "[" + updCnt + "] rows updated successfully in INV_HOLD_REL_TRACE" );
// end 23/06/12 manoharan */
// changed by sankara on 06-07-13 fixing bug updated corret lot_sl in inv_hold_trace det.end
// end 23/06/12 manoharan
// }
}
rs2.close();
rs2=null;
pstmt2.close();
pstmt2=null;
}
rsHold.close();
rsHold = null;
pstmtHold.close();
pstmtHold = null;
} // end 24/06/12 manoharan not near expiry
}
// end 16/10/11 manoharan // end 16/10/11 manoharan
} }
rs.close();rs = null; rs.close();rs = null;
...@@ -1127,6 +905,252 @@ public class StockTransferConf extends ActionHandlerEJB implements StockTransfer ...@@ -1127,6 +905,252 @@ public class StockTransferConf extends ActionHandlerEJB implements StockTransfer
//Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE //Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE
//private void insertIntoInvHold(String itemCode ,String siteCode, String locCode ,String lotNo, String lotSl, String tranIdHold ,Connection conn) throws ITMException //private void insertIntoInvHold(String itemCode ,String siteCode, String locCode ,String lotNo, String lotSl, String tranIdHold ,Connection conn) throws ITMException
//change done by kunal on 31/may/14 reason code add in argumnet //change done by kunal on 31/may/14 reason code add in argumnet
public void StockUpdtHoldItems(String reasonCodeInvHold,double holdQuantity,double quantity,String itemCode,String siteCode,String locCodeFr,String lotNo,String lotSl,String locCodeTo,String lotSlTo,Connection conn)
{
String sqlRel="",tranIdHold="",sqlHold="";
PreparedStatement pstmtUpd=null,pstmtHold=null;
int lineNoHold=0;
ResultSet rsHold=null;
double balQty=0;
String lockCode="",locCodeInvHold="",lotSlInvHold="";
double holdQty=0;
PreparedStatement pstmt2=null;
ResultSet rs2=null;
DistCommon dComm=new DistCommon();
try
{
String nearExpLoc = dComm.getDisparams("999999","NEAREXP_LOC",conn);
String partialGrlLoc = dComm.getDisparams("999999","PGRL_INVSTAT",conn);
if (holdQuantity > 0)
{
// update old location with - hold_qty
sqlRel = "UPDATE STOCK SET HOLD_QTY = HOLD_QTY - ?"
+ " WHERE ITEM_CODE = ? "
+ " AND SITE_CODE = ? "
+ " AND LOC_CODE = ? "
+ " AND LOT_NO = ? "
+ " AND LOT_SL = ? ";
pstmtUpd = conn.prepareStatement(sqlRel);
//pstmtUpd.setDouble(1,holdQuantity); //Commented by Ashish Sonawane on 01/SEP/12 as implication on stock due to PGRL location for partial qty putaway
pstmtUpd.setDouble(1,quantity); //Added by Ashish Sonawane on 01/SEP/12 as implication on stock due to PGRL location for partial qty putaway
pstmtUpd.setString(2,itemCode);
pstmtUpd.setString(3,siteCode);
pstmtUpd.setString(4,locCodeFr);
pstmtUpd.setString(5,lotNo);
pstmtUpd.setString(6,lotSl);
pstmtUpd.executeUpdate();
// 24/06/12 manoharan if not neare expiry location hold quantity to be transferred
if (!nearExpLoc.trim().equalsIgnoreCase(locCodeTo.trim()) )
{
// update new location with + hold_qty
sqlRel = "UPDATE STOCK SET HOLD_QTY = CASE WHEN HOLD_QTY IS NULL THEN 0 ELSE HOLD_QTY END + ? "
+ " WHERE ITEM_CODE = ? "
+ " AND SITE_CODE = ? "
+ " AND LOC_CODE = ? "
+ " AND LOT_NO = ? "
+ " AND LOT_SL = ? ";
pstmtUpd = conn.prepareStatement(sqlRel);
//pstmtUpd.setDouble(1,holdQuantity); //Commented by Ashish Sonawane on 01/SEP/12 as implication on stock due to PGRL location for partial qty putaway
pstmtUpd.setDouble(1,quantity); //Added by Ashish Sonawane on 01/SEP/12 as implication on stock due to PGRL location for partial qty putaway
pstmtUpd.setString(2,itemCode);
pstmtUpd.setString(3,siteCode);
pstmtUpd.setString(4,locCodeTo);
pstmtUpd.setString(5,lotNo);
//pstmtUpd.setString(6,lotSl);//Gulzar on 21/12/11
pstmtUpd.setString(6,lotSlTo);//Gulzar on 21/12/11
pstmtUpd.executeUpdate();
pstmtHold = null;
rsHold = null;
tranIdHold = "";
lineNoHold = 0;
//Changed by Rohan on 26-07-13 for disinct record
//sqlHold = "SELECT D.TRAN_ID AS TRAN_ID, D.LINE_NO AS LINE_NO, "
/*lHold = "SELECT DISTINCT D.TRAN_ID AS TRAN_ID, D.LINE_NO AS LINE_NO, "
+ " D.ITEM_CODE AS ITEM_CODE, D.SITE_CODE AS SITE_CODE, "
+ " D.LOC_CODE AS LOC_CODE, D.LOT_NO AS LOT_NO, D.LOT_SL AS LOT_SL ,D.REAS_CODE " //ADDED BY KUNAL ON 23/MAY/14 ADD REAS_CODE
//Changed By Rohan on 18-07-13 for getting lock_code
//+ " FROM INV_HOLD_DET D, INV_HOLD H "
//Changed by Rohan on 06-08-13 to get hold qty
//+ " ,T.LOCK_CODE FROM INV_HOLD_DET D, INV_HOLD H , INV_HOLD_REL_TRACE T "
+ " ,T.LOCK_CODE,T.HOLD_QTY FROM INV_HOLD_DET D, INV_HOLD H , INV_HOLD_REL_TRACE T "
+ " WHERE H.TRAN_ID = D.TRAN_ID "
//Changed By Rohan on 18-07-13 for getting lock_code
+ " AND T.REF_NO = D.TRAN_ID "
//Chnaged by Rohan on 09-08-13 for add join of inv hold det and inv hold rel trace.start
//change by kunal on 29/may/14 check null value for join
+" AND (D.ITEM_CODE = T.ITEM_CODE or (d.item_code is null or length(trim(d.item_code)) = 0 ) )"
+" AND (D.SITE_CODE = T.SITE_CODE or (d.site_code is null or length(trim(d.site_code)) = 0 ) )"
+" AND (D.LOC_CODE = T.LOC_CODE or (d.loc_code is null or length(trim(d.loc_code)) = 0 ) )"
+" AND (D.LOT_NO = T.LOT_NO or (d.lot_no is null or length(trim(d.lot_no)) = 0 ) )"
+" AND (D.LOT_SL = T.LOT_SL or (d.lot_sl is null or length(trim(d.lot_sl)) = 0 ) )"
//Chnaged by Rohan on 09-08-13 for add join of inv hold det and inv hold rel trace.end
//change done by kunal on 30/may/14 add conditiob for INV_HOLD_REL_TRACE table
+ " AND ((T.ITEM_CODE = ? ) OR (T.ITEM_CODE IS NULL OR LENGTH(TRIM(T.ITEM_CODE)) = 0 ) ) "
+ " AND ((T.SITE_CODE = ? ) OR (T.SITE_CODE IS NULL OR LENGTH(TRIM(T.SITE_CODE)) = 0 ) ) "
+ " AND ((T.LOC_CODE = ? ) OR (T.LOC_CODE IS NULL OR LENGTH(TRIM(T.LOC_CODE)) = 0 ) ) "
+ " AND ((T.LOT_NO = ? ) OR (T.LOT_NO IS NULL OR LENGTH(TRIM(T.LOT_NO)) = 0 ) ) "
+ " AND ((T.LOT_SL = ? ) OR (T.LOT_SL IS NULL OR LENGTH(TRIM(T.LOT_SL)) = 0 ) ) "
+ " AND D.HOLD_STATUS = 'H'"
+ " AND H.CONFIRMED = 'Y' ";*/
sqlHold="select sum(case when hold_qty is null then 0 else hold_qty end + case when rel_qty is null then 0 else rel_qty end) as HOLD_QTY,site_code,item_code,lot_no,lock_code,lot_sl,loc_code from inv_hold_rel_trace where item_code=? and site_code=? and loc_code=? and "
+ " lot_no=? and lot_sl=? group by site_code,item_code,lot_no,lock_code,lot_sl,loc_code having sum(case when hold_qty is null then 0 else hold_qty end + case when rel_qty is null then 0 else rel_qty end)>0";
pstmtHold = conn.prepareStatement(sqlHold);
pstmtHold.setString(1,itemCode);
pstmtHold.setString(2,siteCode);
pstmtHold.setString(3,locCodeFr);
pstmtHold.setString(4,lotNo);
pstmtHold.setString(5,lotSl);
rsHold = pstmtHold.executeQuery();
balQty = holdQuantity;
while ( rsHold.next() )
{
/*//check whether there is a confirmed release hold for the same
sqlRel = "select count(1) from inv_hold_rel h, inv_hold_rel_det "
+ " where h.tran_id = d.tran_id "
+ " and d.tran_id__hold = ? "
+ " and d.line_no__hold = ? "
+ " and h.confirmed = 'Y'";
pstmtRel = conn.prepareStatement(sqlRel);
pstmtRel.SetString(1,rsHold.getString("TRAN_ID"));
pstmtRel.setInt(2,rsHold.getInt("LINE_NO"));
rsRel = pstmtRel.executeQuery();
if (rsRelel.next())
{
}
rsRel.close();
rsRel = null;
pstmtRel.close();
pstmtRel = null;
*/
//tranIdHold = rsHold.getString("TRAN_ID");// added by Ashish Sonawane on 05-sep-12
//tranIdHold = rsHold.getString("ref_no");
//Changed By Rohan on 18-07-13 for getting lock_code
lockCode = checkNull(rsHold.getString("lock_code"));
//Changed by Rohan on 06-08-13 to get hold qty
holdQty = rsHold.getDouble("HOLD_QTY");
locCodeInvHold = checkNull(rsHold.getString("LOC_CODE"));
lotSlInvHold = checkNull(rsHold.getString("LOT_SL"));
pstmt2=conn.prepareStatement("SELECT REF_NO FROM INV_HOLD_REL_TRACE WHERE SITE_CODE=? AND ITEM_CODE=? AND LOT_NO=? AND LOT_SL=? AND LOC_CODE=? AND LOCK_CODE=?");
pstmt2.setString(1,rsHold.getString("site_code"));
pstmt2.setString(2,rsHold.getString("item_code"));
pstmt2.setString(3,lotNo);
pstmt2.setString(4,lotSl);
pstmt2.setString(5,locCodeInvHold);
pstmt2.setString(6,lockCode);
rs2=pstmt2.executeQuery();
while(rs2.next())
{
tranIdHold = rs2.getString("REF_NO");
//reasonCodeInvHold = checkNull(rsHold.getString("REAS_CODE"));
//System.out.println("inv hold loc code="+locCodeInvHold+"@"+lotSlInvHold+"@"+reasonCodeInvHold);
//System.out.println("invStatLocCodeTo"+invStatLocCodeTo+"locCodeTo"+locCodeTo);
System.out.println("Current Lock Code"+lockCode+"quantity::"+quantity+"holdQty::"+holdQty);
//Changed by Rohan on 06-08-13 if partial qty move from pso to pso lacation.start
//if(invStatLocCodeTo.trim().equalsIgnoreCase(locCodeTo.trim()))
//if(invStatLocCodeTo.trim().equalsIgnoreCase(locCodeTo.trim()) || quantity < holdQty )
//if(quantity < holdQty )
//{
System.out.println("-----Insert Block-----");
//Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE
//insertIntoInvHold(itemCode,siteCode,locCodeTo,lotNo,lotSlTo,tranIdHold,conn);
insertIntoInvHold(itemCode,siteCode,locCodeTo,lotNo,lotSlTo,tranIdHold,locCodeFr,lotSl,quantity,lockCode,reasonCodeInvHold,conn);
System.out.println("@@@@ End of insertion...");
//}
// else
// {
// System.out.println("-----Update Block-----");
// changed by sankara on 06-07-13 fixing bug updated corret lot_sl in inv_hold det.start
/*sqlRel = "UPDATE INV_HOLD_DET SET LOC_CODE = ?, STATUS_DATE = ? "
+ " WHERE TRAN_ID = ? AND LINE_NO = ?";
pstmtUpd = conn.prepareStatement(sqlRel);
pstmtUpd.setString(1,locCodeTo);
pstmtUpd.setTimestamp(2,new java.sql.Timestamp( System.currentTimeMillis() ));
pstmtUpd.setString(3,rsHold.getString("TRAN_ID"));
pstmtUpd.setInt(4,rsHold.getInt("LINE_NO"));
pstmtUpd.executeUpdate(); */
// sqlRel = "UPDATE INV_HOLD_DET SET LOC_CODE = ?, STATUS_DATE = ?, LOT_SL = ? "
// + " WHERE TRAN_ID = ? AND LINE_NO = ?";
// pstmtUpd = conn.prepareStatement(sqlRel);
// pstmtUpd.setString(1,locCodeTo);
// pstmtUpd.setTimestamp(2,new java.sql.Timestamp( System.currentTimeMillis() ));
// pstmtUpd.setString(3,lotSlTo);
// pstmtUpd.setString(4,rsHold.getString("TRAN_ID"));
// pstmtUpd.setInt(5,rsHold.getInt("LINE_NO"));
// pstmtUpd.executeUpdate();
// 23/06/12 manoharan
// changed by sankara on 06-07-13 fixing bug updated corret lot_sl in inv_hold det.end
// 23/06/12 manoharan
//tranIdHold = rsHold.getString("TRAN_ID"); //commented by Ashish Sonawane on 05-Sep-12 and moved to line no 421
// changed by sankara on 06-07-13 fixing bug updated corret lot_sl in inv_hold_trace.start
/*sqlRel = "UPDATE INV_HOLD_REL_TRACE SET LOC_CODE = ? "
+ " WHERE REF_NO = ? "
+ " AND ITEM_CODE = ? "
+ " AND SITE_CODE = ? "
+ " AND LOC_CODE = ? "
+ " AND LOT_NO = ? "
+ " AND LOT_SL = ? " ;
pstmtUpd = conn.prepareStatement(sqlRel);
pstmtUpd.setString(1,locCodeTo);
pstmtUpd.setString(2,tranIdHold);
pstmtUpd.setString(3,itemCode);
pstmtUpd.setString(4,siteCode);
pstmtUpd.setString(5,locCodeFr);
pstmtUpd.setString(6,lotNo);
pstmtUpd.setString(7,lotSl);
updCnt = pstmtUpd.executeUpdate();
System.out.println( "[" + updCnt + "] rows updated successfully in INV_HOLD_REL_TRACE" );
// end 23/06/12 manoharan */
// sqlRel = "UPDATE INV_HOLD_REL_TRACE SET LOC_CODE = ?, LOT_SL = ?"
// + " WHERE REF_NO = ? "
// + " AND ITEM_CODE = ? "
// + " AND SITE_CODE = ? "
// + " AND LOC_CODE = ? "
// + " AND LOT_NO = ? "
// + " AND LOT_SL = ? " ;
// pstmtUpd = conn.prepareStatement(sqlRel);
// pstmtUpd.setString(1,locCodeTo);
// pstmtUpd.setString(2,lotSlTo);
// pstmtUpd.setString(3,tranIdHold);
// pstmtUpd.setString(4,itemCode);
// pstmtUpd.setString(5,siteCode);
// pstmtUpd.setString(6,locCodeFr);
// pstmtUpd.setString(7,lotNo);
// pstmtUpd.setString(8,lotSl);
// updCnt = pstmtUpd.executeUpdate();
// System.out.println( "[" + updCnt + "] rows updated successfully in INV_HOLD_REL_TRACE" );
// end 23/06/12 manoharan */
// changed by sankara on 06-07-13 fixing bug updated corret lot_sl in inv_hold_trace det.end
// end 23/06/12 manoharan
// }
}
rs2.close();
rs2=null;
pstmt2.close();
pstmt2=null;
}
rsHold.close();
rsHold = null;
pstmtHold.close();
pstmtHold = null;
} // end 24/06/12 manoharan not near expiry
}
}catch(Exception e)
{
e.printStackTrace();
}
}
private void insertIntoInvHold(String itemCode ,String siteCode, String locCode ,String lotNo, String lotSl, String tranIdHold ,String locCodeFr,String lotSlFr,double holdQuantity,String lockCode,String reasonCode ,Connection conn) throws ITMException private void insertIntoInvHold(String itemCode ,String siteCode, String locCode ,String lotNo, String lotSl, String tranIdHold ,String locCodeFr,String lotSlFr,double holdQuantity,String lockCode,String reasonCode ,Connection conn) throws ITMException
{ {
PreparedStatement pstmtInsertInvHold =null; PreparedStatement pstmtInsertInvHold =null;
......
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