Commit e97cd048 authored by wansari's avatar wansari

W16ASUN024 Changed by wasim to add palletRequestLock method for pallet request for hold inventory


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@101369 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 286a9f73
......@@ -706,4 +706,307 @@ public class PalletRequisitionActEJB extends ActionHandlerEJB implements PalletR
}
return input.trim();
}
//Changed by wasim on 21-04-2016 to stock transfer for damage and hold items [START]
public String palletRequestLock(String tranId, String xtraParams, String forcedFlag) throws RemoteException,ITMException
{
System.out.println("--------------Damage/Hold Stock Transfer out------------- : ["+tranId+"]");
String retString = "";
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
boolean isError = false;
try
{
conn = connDriver.getConnectDB("DriverITM");
connDriver = null;
retString = palletRequestLock(tranId,xtraParams,forcedFlag,conn);
}
catch(Exception e)
{
isError = true;
retString = genericUtility.createErrorString(e);
e.printStackTrace();
}
finally
{
try
{
if(isError)
{
conn.rollback();
retString = itmDBAccessEJB.getErrorString("","VTTNSVD","","",conn);
}
if(conn != null){conn.close();conn = null;}
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
}
System.out.println("Final return="+retString);
return retString;
}
public String palletRequestLock(String refId,String xtraParams,String forcedFlag,Connection conn) throws RemoteException,ITMException
{
System.out.println("==================In palletRequestDamageHold=======================");
ResultSet rs = null,rsGen = null;
PreparedStatement pstmt = null, interfacePstmt = null,pstmtHdr = null,pstmtDet = null,pstmtStock = null,pstmtUpdate = null,pstmtGen = null;
boolean isError = false,isRecordExist = false;
String sql = "",errString = "",loginSiteCode = "",userId = "",chgTerm = "",tranID = "",sqlStock = "";
String itemCode="",lotNo="",lotSl = "",locCode = "",siteCode = "",noArt = "",locCodeFrom = "",locCodeTo = "",
lineNoInvHold = "",tranType = "",confirmed = "",sqlUpdate = "",refNo = "",palletNo = "",holdStatus = "";
int updCnt = 0,lineNo = 0;
double quantity = 0,allocQty = 0,palletCnt = 0;
ResultSet rsStock = null;
PalletReqConf palletConf = new PalletReqConf();
try
{
loginSiteCode = genericUtility.getValueFromXTRA_PARAMS( xtraParams, "loginSiteCode" );
userId = genericUtility.getValueFromXTRA_PARAMS( xtraParams, "loginCode" );
chgTerm = genericUtility.getValueFromXTRA_PARAMS( xtraParams, "chgTerm" );
java.sql.Timestamp currDate = getCurrtDate();
SimpleDateFormat sdfAppl = new SimpleDateFormat(genericUtility.getApplDateFormat());
String currDateStr = sdfAppl.format(currDate);
sql = "SELECT CONFIRMED FROM INV_HOLD WHERE TRAN_ID = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refId);
rs = pstmt.executeQuery();
if(rs.next())
{
confirmed = checkNullAndTrim(rs.getString("CONFIRMED"));
}
rs.close();rs = null;
pstmt.close();pstmt = null;
System.out.println("INV_HOLD_REL["+refId+"] CONFIRMED["+confirmed+"] HOLD_STATUS["+holdStatus+"]");
if("Y".equalsIgnoreCase(confirmed))
{
/*if(!"R".equalsIgnoreCase(holdStatus))
{*/
sql = "SELECT REF_NO FROM INV_HOLD WHERE TRAN_ID = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refId);
rs = pstmt.executeQuery();
if(rs.next())
{
refNo = checkNullAndTrim(rs.getString("REF_NO"));
}
if(pstmt != null){pstmt.close();pstmt=null;}
if(rs != null){rs.close();rs=null;}
if(refNo != null && refNo.length() > 0)
{
sql = "SELECT COUNT(*) FROM SWMS_TO_AWMS WHERE REF_ID = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refNo);
rs = pstmt.executeQuery();
if(rs.next())
{
System.out.println("Transaction is already present in interface2 table");
errString = itmDBAccessEJB.getErrorString("","ALRDYSUBMT","","",conn);
return errString;
}
if(pstmt != null){pstmt.close();pstmt=null;}
if(rs != null){rs.close();rs=null;}
}
tranID = commonWmsUtility.generateTranTd("w_pallet_req_stk", currDateStr, loginSiteCode, conn);
sql = "INSERT INTO PALLET_REQ_DET (TRAN_ID,LINE_NO,PALLET_NO,LOC_CODE,STATUS,ITEM_CODE,LOT_NO,LOT_SL,QUANTITY,NO_ART) "
+ "values (?,?,?,?,?,?,?,?,?,?)";
pstmtDet = conn.prepareStatement(sql);
sql = "INSERT INTO PALLET_REQ_HDR (TRAN_ID,TRAN_DATE,SITE_CODE,LOC_CODE,REMARKS,CONFIRMED,CONF_DATE,EMP_CODE__APRV,"//8
+ "ADD_USER,ADD_DATE,ADD_TERM,CHG_USER,CHG_DATE,CHG_TERM,TRAN_TYPE) "//15
+ "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmtHdr = conn.prepareStatement(sql);
pstmtHdr.setString( 1, tranID );
pstmtHdr.setTimestamp( 2, currDate );
pstmtHdr.setString( 3, loginSiteCode );
pstmtHdr.setString( 4, locCode);
pstmtHdr.setString( 5, "Pallet Out for Hold/Damage");
pstmtHdr.setString( 6, "N" );
pstmtHdr.setTimestamp( 7, currDate );
pstmtHdr.setString( 8, "" );
pstmtHdr.setString( 9, userId );
pstmtHdr.setTimestamp( 10, currDate );
pstmtHdr.setString( 11, chgTerm );
pstmtHdr.setString( 12, userId );
pstmtHdr.setTimestamp( 13, currDate );
pstmtHdr.setString( 14, chgTerm );
pstmtHdr.setString( 15, tranType );
updCnt = pstmtHdr.executeUpdate();
if(pstmtHdr != null){pstmtHdr.close();pstmtHdr=null;}
sqlStock= " SELECT S.ITEM_CODE,S.LOC_CODE,S.SITE_CODE,S.LOT_NO,S.LOT_SL,S.QUANTITY,S.ALLOC_QTY,S.NO_ART,D.LINE_NO "
+" FROM STOCK S, INV_HOLD H,INV_HOLD_DET D"
+" WHERE S.QUANTITY > 0 AND S.ITEM_CODE = D.ITEM_CODE AND S.LOC_CODE = D. LOC_CODE AND "
+" S.SITE_CODE = D. SITE_CODE AND S.LOT_NO = D.LOT_NO AND S.LOT_SL = D.LOT_SL AND"
+" S.LOC_CODE = D.LOC_CODE AND H.TRAN_ID = D.TRAN_ID AND H.TRAN_ID = ? AND D.HOLD_STATUS != 'R'";
pstmtStock = conn.prepareStatement(sqlStock);
pstmtStock.setString(1, refId);
rsStock = pstmtStock.executeQuery();
while(rsStock.next())
{
itemCode = checkNullAndTrim(rsStock.getString("ITEM_CODE"));
palletNo = checkNullAndTrim(rsStock.getString("LOC_CODE"));
siteCode = rsStock.getString("SITE_CODE");
lotNo = rsStock.getString("LOT_NO");
lotSl = rsStock.getString("LOT_SL");
quantity = rsStock.getDouble("QUANTITY");
allocQty = rsStock.getDouble("ALLOC_QTY");
noArt = checkNullAndTrim(rsStock.getString("NO_ART"));
//lineNoInvHold = checkNullAndTrim(rsStock.getString("LINE_NO"));
System.out.println("Pallet No After before suffix: "+palletNo);
palletNo = (palletNo.charAt(palletNo.trim().length()-1)=='Q') || (palletNo.charAt(palletNo.trim().length()-1)=='M') ||
(palletNo.charAt(palletNo.trim().length()-1)=='S') || (palletNo.charAt(palletNo.trim().length()-1)=='B') ||
(palletNo.charAt(palletNo.trim().length()-1)=='X') || (palletNo.charAt(palletNo.trim().length()-1)=='U') ||
(palletNo.charAt(palletNo.trim().length()-1)=='P') || (palletNo.charAt(palletNo.trim().length()-1)=='R')
? palletNo.substring(0,palletNo.trim().length()-1):palletNo;
System.out.println("Pallet No After removing suffix: "+palletNo);
palletCnt = 0;
sql = "SELECT FN_CHK_PR(TRIM(?),'') FROM DUAL";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, palletNo);
rs = pstmt.executeQuery();
if(rs.next())
{
palletCnt = rs.getInt(1);
}
if(pstmt != null){pstmt.close();pstmt=null;}
if(rs != null){rs.close();rs=null;}
if(palletCnt > 0)
{
System.out.println("Pallet is already requested so not considering this pallet");
continue;
}
lineNo++;
pstmtDet.setString( 1, tranID );
pstmtDet.setInt( 2, lineNo );
pstmtDet.setString( 3, palletNo );
pstmtDet.setString( 4, locCode );
pstmtDet.setString( 5, "P" );
pstmtDet.setString( 6, itemCode );
pstmtDet.setString( 7, lotNo );
pstmtDet.setString( 8, lotSl );
pstmtDet.setDouble( 9, quantity );
pstmtDet.setString( 10, noArt );
pstmtDet.addBatch();
isRecordExist = true;
}
if(isRecordExist)
{
pstmtDet.executeBatch();
}
if(pstmtStock != null){pstmtStock.close();pstmtStock=null;}
if(rsStock != null){rsStock.close();rsStock=null;}
if(pstmtDet != null){pstmtDet.close();pstmtDet=null;}
System.out.println("isRecordExist="+isRecordExist);
if(isRecordExist)
{
errString = palletConf.confirm(tranID,xtraParams,forcedFlag,conn,false);
System.out.println("String after confirm pallet request="+errString);
if(errString != null && (errString.indexOf("VMTRANSACN") != -1))
{
sqlUpdate = "UPDATE INV_HOLD SET REF_NO = ?, REF_SER = ? WHERE TRAN_ID = ? ";
pstmtUpdate = conn.prepareStatement(sqlUpdate);
pstmtUpdate.setString(1, tranID);
pstmtUpdate.setString(2, "PRS");
pstmtUpdate.setString(3, refId);
updCnt = pstmtUpdate.executeUpdate();
System.out.println("Updated ="+updCnt);
pstmtUpdate.close();pstmtUpdate = null;
}
}
/*}
else
{
System.out.println("Inventory is already released you can not make pallet request for this transaction");
errString = itmDBAccessEJB.getErrorString("","VTHOLDST","","",conn);
return errString;
}*/
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTTSORNTCF","","",conn);
return errString;
}
}
catch(Exception e)
{
isError = true;
throw new ITMException(e);
}
finally
{
try
{
System.out.println("isError="+isError);
if(isError || !isRecordExist)
{
conn.rollback();
errString = itmDBAccessEJB.getErrorString("","VTTNSVD","","",conn);
}
else
{
conn.commit();
errString = itmDBAccessEJB.getErrorString("","VTCONPARM","","",conn);
}
if(pstmtStock != null){pstmtStock.close();pstmtStock=null;}
if(rsStock != null){rsStock.close();rsStock=null;}
if(pstmt != null){pstmt.close();pstmt=null;}
if(rs != null){rs.close();rs=null;}
if(pstmtDet != null){pstmtDet.close();pstmtDet=null;}
if(pstmtHdr != null){pstmtHdr.close();pstmtHdr=null;}
if(pstmtUpdate != null){pstmtUpdate.close();pstmtUpdate=null;}
}
catch(Exception e1)
{
throw new ITMException(e1);
}
}
System.out.println("errString Return Stock Out="+errString);
return errString;
}
private java.sql.Timestamp getCurrtDate() throws RemoteException,ITMException
{
String currAppdate = "";
java.sql.Timestamp currDate = null;
try
{
Object date = null;
currDate = new java.sql.Timestamp(System.currentTimeMillis());
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(genericUtility.getDBDateFormat());
date = sdf.parse(currDate.toString());
currDate = java.sql.Timestamp.valueOf(sdf.format(date).toString()+ " 00:00:00.0");
}
catch (Exception e)
{
throw new ITMException(e);
}
return (currDate);
}
//Changed by wasim on 21-04-2016 to stock transfer for damage and hold items [START]
}
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