Commit 324cdd72 authored by kmandhre's avatar kmandhre

solve the issue of duplicate entry in INV_HOLD_REL_TRACE table


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@95088 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 8f4d02b2
...@@ -1039,13 +1039,13 @@ public class StockTransferConf extends ActionHandlerEJB implements StockTransfer ...@@ -1039,13 +1039,13 @@ public class StockTransferConf extends ActionHandlerEJB implements StockTransfer
{ {
PreparedStatement pstmtInsertInvHold =null; PreparedStatement pstmtInsertInvHold =null;
PreparedStatement pstmtMaxLine =null; PreparedStatement pstmtMaxLine =null;
ResultSet rsMaxLine =null; ResultSet rsMaxLine =null ,rs = null;
//Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE prepared statement and result set.start //Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE prepared statement and result set.start
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
String sql = ""; String sql = "";
String tranId = ""; String tranId = "";
//Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE prepared statement and result set.end //Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE prepared statement and result set.end
int maxLineNo=0; int maxLineNo=0,count = 0,count1 = 0;
try { try {
...@@ -1068,60 +1068,125 @@ public class StockTransferConf extends ActionHandlerEJB implements StockTransfer ...@@ -1068,60 +1068,125 @@ public class StockTransferConf extends ActionHandlerEJB implements StockTransfer
Date sysDate = new Date(); Date sysDate = new Date();
String sysDateStr = sdf.format(sysDate); String sysDateStr = sdf.format(sysDate);
String sqlInsertInvHold = "INSERT INTO INV_HOLD_DET (TRAN_ID, LINE_NO, ITEM_CODE, SITE_CODE, LOC_CODE, LOT_NO, LOT_SL, HOLD_STATUS, STATUS_DATE , SCH_REL_DATE ) " + sql ="select count(*) from inv_hold_det where tran_id = ? and item_code = ? and site_code = ? "
" VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; +" and loc_code = ? and lot_no = ? and lot_sl = ? ";
pstmtInsertInvHold = conn.prepareStatement(sqlInsertInvHold);
pstmtInsertInvHold.setString(1, tranIdHold);
pstmtInsertInvHold.setInt(2, maxLineNo);
pstmtInsertInvHold.setString(3, itemCode);
pstmtInsertInvHold.setString(4, siteCode);
pstmtInsertInvHold.setString(5, locCode);
pstmtInsertInvHold.setString(6, lotNo);
pstmtInsertInvHold.setString(7, lotSl);
pstmtInsertInvHold.setString(8, "H");
pstmtInsertInvHold.setTimestamp(9, Timestamp.valueOf( sysDateStr));
pstmtInsertInvHold.setTimestamp(10, Timestamp.valueOf( sysDateStr));
int isInserted = pstmtInsertInvHold.executeUpdate();
System.out.println("@@@@ Hey Row inserted !!!!!!!! .....Total :["+isInserted+"]");
//Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE.start
tranId = generateTraceId("w_inv_hold_rel_trace", conn);
sql = " INSERT INTO INV_HOLD_REL_TRACE ( TRAN_ID, ITEM_CODE, SITE_CODE, LOC_CODE, LOT_NO, LOT_SL, REF_NO, HOLD_QTY, LOCK_CODE ) " +
" VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ? ) " ;
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString( 1, tranId); pstmt.setString(1,tranIdHold);
pstmt.setString( 2, itemCode ); pstmt.setString(2, itemCode);
pstmt.setString( 3, siteCode ); pstmt.setString(3, siteCode);
pstmt.setString( 4, locCode ); pstmt.setString(4, locCode);
pstmt.setString( 5, lotNo); pstmt.setString(5, lotNo);
pstmt.setString( 6, lotSl ); pstmt.setString(6, lotSl);
pstmt.setString( 7, tranIdHold); rs =pstmt.executeQuery();
pstmt.setDouble( 8,holdQuantity ); if(rs.next())
pstmt.setString( 9, lockCode ); {
pstmt.executeUpdate(); count = rs.getInt(1);
}
if(pstmt != null) rs.close();
rs = null;
pstmt.close();
pstmt = null ;
if(count > 0)//aaded by kunal on 22/may/14
{ {
sql ="select count(*) from INV_HOLD_REL_TRACE where REF_NO = ? and ITEM_CODE = ? and SITE_CODE = ? "
+" and LOC_CODE = ? and LOT_NO = ? and LOT_SL = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranIdHold);
pstmt.setString(2, itemCode);
pstmt.setString(3, siteCode);
pstmt.setString(4, locCode);
pstmt.setString(5, lotNo);
pstmt.setString(6, lotSl);
rs =pstmt.executeQuery();
if(rs.next())
{
count1 = rs.getInt(1);
}
rs.close();
rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null ;
System.out.println("count1="+count1);
if(count1 > 0)
{
sql = " update inv_hold_rel_trace set hold_qty = hold_qty + ? where ref_no = ? and item_code = ? "
+" and site_code = ? and loc_code = ? and lot_no = ? and lot_sl = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setDouble( 1,holdQuantity );
pstmt.setString( 2, tranIdHold);
pstmt.setString( 3, itemCode );
pstmt.setString( 4, siteCode );
pstmt.setString( 5, locCode );
pstmt.setString( 6, lotNo);
pstmt.setString( 7, lotSl );
System.out.println("record updated::"+pstmt.executeUpdate());
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
} }
else
{
//sql = " UPDATE INV_HOLD_REL_TRACE SET HOLD_QTY = HOLD_QTY - ? WHERE ITEM_CODE = ? AND SITE_CODE = ? AND LOC_CODE = ? AND LOT_NO = ? AND LOT_SL = ? "; String sqlInsertInvHold = "INSERT INTO INV_HOLD_DET (TRAN_ID, LINE_NO, ITEM_CODE, SITE_CODE, LOC_CODE, LOT_NO, LOT_SL, HOLD_STATUS, STATUS_DATE , SCH_REL_DATE ) " +
sql = " UPDATE INV_HOLD_REL_TRACE SET HOLD_QTY = HOLD_QTY - ? WHERE ITEM_CODE = ? AND SITE_CODE = ? AND LOC_CODE = ? AND LOT_NO = ? AND LOT_SL = ? AND LOCK_CODE = ?"; " VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble( 1, holdQuantity); pstmtInsertInvHold = conn.prepareStatement(sqlInsertInvHold);
pstmt.setString( 2, itemCode );
pstmt.setString( 3, siteCode ); pstmtInsertInvHold.setString(1, tranIdHold);
pstmt.setString( 4, locCodeFr ); pstmtInsertInvHold.setInt(2, maxLineNo);
pstmt.setString( 5, lotNo); pstmtInsertInvHold.setString(3, itemCode);
pstmt.setString( 6, lotSlFr ); pstmtInsertInvHold.setString(4, siteCode);
pstmt.setString( 7, lockCode ); pstmtInsertInvHold.setString(5, locCode);
pstmt.executeUpdate(); pstmtInsertInvHold.setString(6, lotNo);
//Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE.end pstmtInsertInvHold.setString(7, lotSl);
pstmtInsertInvHold.setString(8, "H");
pstmtInsertInvHold.setTimestamp(9, Timestamp.valueOf( sysDateStr));
pstmtInsertInvHold.setTimestamp(10, Timestamp.valueOf( sysDateStr));
int isInserted = pstmtInsertInvHold.executeUpdate();
System.out.println("@@@@ Hey Row inserted !!!!!!!! .....Total :["+isInserted+"]");
//Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE.start
tranId = generateTraceId("w_inv_hold_rel_trace", conn);
sql = " INSERT INTO INV_HOLD_REL_TRACE ( TRAN_ID, ITEM_CODE, SITE_CODE, LOC_CODE, LOT_NO, LOT_SL, REF_NO, HOLD_QTY, LOCK_CODE ) " +
" VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ? ) " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString( 1, tranId);
pstmt.setString( 2, itemCode );
pstmt.setString( 3, siteCode );
pstmt.setString( 4, locCode );
pstmt.setString( 5, lotNo);
pstmt.setString( 6, lotSl );
pstmt.setString( 7, tranIdHold);
pstmt.setDouble( 8,holdQuantity );
pstmt.setString( 9, lockCode );
pstmt.executeUpdate();
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
//sql = " UPDATE INV_HOLD_REL_TRACE SET HOLD_QTY = HOLD_QTY - ? WHERE ITEM_CODE = ? AND SITE_CODE = ? AND LOC_CODE = ? AND LOT_NO = ? AND LOT_SL = ? ";
sql = " UPDATE INV_HOLD_REL_TRACE SET HOLD_QTY = HOLD_QTY - ? WHERE ITEM_CODE = ? AND SITE_CODE = ? AND LOC_CODE = ? AND LOT_NO = ? AND LOT_SL = ? AND LOCK_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble( 1, holdQuantity);
pstmt.setString( 2, itemCode );
pstmt.setString( 3, siteCode );
pstmt.setString( 4, locCodeFr );
pstmt.setString( 5, lotNo);
pstmt.setString( 6, lotSlFr );
pstmt.setString( 7, lockCode );
pstmt.executeUpdate();
//Changed by Rohan on 17-07-13 for updating INV_HOLD_REL_TRACE.end
}
} }
catch (Exception e) catch (Exception e)
......
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