Commit 6be4431f authored by arawankar's avatar arawankar

ADDED BY ANJALI R. ON [14/11/2018]

 MIGRATED PB TO JAVA AS PER CURRENT NVO LOGIC 

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@192912 ce508802-f39f-4f6c-b175-0d175dae99d5
parent d8a2cb04
...@@ -450,10 +450,15 @@ public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirm ...@@ -450,10 +450,15 @@ public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirm
} }
else else
{ {
String[] arrayForTranId = errString.split("<TranID>"); //Modified by Anjali R. on[14/11/2018][Start]
int endIndex = arrayForTranId[1].indexOf("</TranID>"); if(errString != null && errString.trim().length() > 0)
poRcpTranId = arrayForTranId[1].substring(0,endIndex); {
System.out.println("poRcpTranId--["+poRcpTranId+"]"); //Modified by Anjali R. on[14/11/2018][End]
String[] arrayForTranId = errString.split("<TranID>");
int endIndex = arrayForTranId[1].indexOf("</TranID>");
poRcpTranId = arrayForTranId[1].substring(0,endIndex);
System.out.println("poRcpTranId--["+poRcpTranId+"]");
}
} }
//Modified by Anjali R. on [12/11/2018][To get receipt no][End] //Modified by Anjali R. on [12/11/2018][To get receipt no][End]
......
/********************************************************
Title : SorderCancel
Date : 27/SEP/16
Developer: Nasruddin Khan.
********************************************************/
package ibase.webitm.ejb.dis.adv; package ibase.webitm.ejb.dis.adv;
/*****
* ADDED BY ANJALI R. ON [14/11/2018]
* MIGRATED PB TO JAVA AS PER CURRENT NVO LOGIC
***/
import java.rmi.RemoteException; import java.rmi.RemoteException;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import javax.ejb.Stateless;
import ibase.utility.CommonConstants; import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility; import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.*; import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.dis.InvAllocTraceBean; import ibase.webitm.ejb.dis.InvAllocTraceBean;
import ibase.webitm.ejb.dis.StockUpdate;
import ibase.webitm.utility.ITMException; import ibase.webitm.utility.ITMException;
import javax.ejb.Stateless; import ibase.webitm.utility.TransIDGenerator;
@Stateless @Stateless
public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, SorderCancelRemote public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,SorderCancelRemote
{ {
E12GenericUtility genericUtility= new E12GenericUtility();
ITMDBAccessEJB itmDBAccessLocal = new ITMDBAccessEJB();
String userId = "";
String termId = ""; String termId = "";
public String confirm(String tranId,String xtraParams,String forcedFlag) throws RemoteException,ITMException String userId = "";
String mStat = "";
public String confirm() throws RemoteException,ITMException
{
return "";
}
public String confirm(String tranID, String xtraParams,String forcedFlag) throws RemoteException,ITMException
{ {
String retString = "";
Connection conn = null; Connection conn = null;
PreparedStatement pstmt = null, pstmt1 = null; String tranIdFr = "";
ResultSet rs = null, rs1 = null; String tranIdTo = "";
E12GenericUtility genericUtility = null;
ITMDBAccessEJB itmdbAccessEJB = null;
try
{
conn = getConnection();
tranIdFr = tranID ;
tranIdTo = tranID;
genericUtility = new E12GenericUtility();
UserInfoBean userInfo = new UserInfoBean();
itmdbAccessEJB = new ITMDBAccessEJB();
userInfo = getUserInfo();
termId = userInfo.getLoginCode();
userId = termId;
System.out.println("termId--["+termId+"]");
//termId = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId"));
//userId = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode"));
retString = confirm(tranIdFr,tranIdTo, xtraParams, forcedFlag, conn);
if(retString != null && retString.trim().length()>0)
{
conn.rollback();
}
else
{
conn.commit();
retString = itmdbAccessEJB.getErrorString("", "VTSOCANC02", userId,"",conn);
}
}
catch(Exception e)
{
try
{
conn.rollback();
}
catch (SQLException e1)
{
e1.printStackTrace();
}
System.out.println("Exception --["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if(conn != null)
{
conn.close();
conn = null;
}
}
catch(Exception e)
{
System.out.println("Exception --["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
public String confirm(String tranIdFr,String tranIdTo, String xtraParams,String forcedFlag,Connection conn) throws RemoteException,ITMException
{
String retString = "";
String remarks = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = ""; String sql = "";
Date currDate = new Date(); PreparedStatement pstmt1 = null;
SimpleDateFormat sdf = null; ResultSet rs1 = null;
String currDateStr = null; String sql1 = "";
String DB = CommonConstants.DB_NAME; PreparedStatement pstmt2 = null;
DateFormat dateFormat = null; //ResultSet rs2 = null;
String sql2 = "";
PreparedStatement pstmt3 = null;
ResultSet rs3 = null;
String sql3 = "";
PreparedStatement pstmt4 = null;
//ResultSet rs4 = null;
String sql4 ="";
int cnt = 0;
String database = "";
String userId = "";
int lineNo = 0;
int lineNoContr = 0;
int stat = 0;
double quantity = 0.0;
double qtyOrd = 0.0;
String saleOrder = "";
String confirmed = ""; String confirmed = "";
String status = ""; String status = "";
String contractNo = ""; String contractNo = "";
String errString = ""; String itemFlag ="";
boolean isError = false; String itemCode = "";
String mItemFlag = ""; String quotNo = "";
String mLineNoContr = ""; String autoCloseExecuted = "";
String mLineNo = ""; boolean isDespatchExist = true;
String mItemCodeOrd = ""; String despExist = "";
double lcSordQty = 0.0, mQtyOrd = 0.0;
int effectRow = 0, lcStat = 0; E12GenericUtility genericUtility = null;
String mQuatNo = ""; ITMDBAccessEJB itmDbAccess = null;
String ls_gf_auto_close_excecuted = "N"; //SaleOrderRelease orderRelease = null;
String mStat = "";
String mstatrem = "";
Timestamp toDay = null;
SaleOrderRelease orderRelease = new SaleOrderRelease();
boolean isTranExist = false;
try try
{ {
dateFormat = new SimpleDateFormat(genericUtility.getApplDateFormat()); genericUtility = new E12GenericUtility();
System.out.println("dateFormat ["+dateFormat+"]"); itmDbAccess = new ITMDBAccessEJB();
String applDateFormat = genericUtility.getApplDateFormat(); //orderRelease = new SaleOrderRelease();
sdf = new SimpleDateFormat(applDateFormat);
currDateStr = sdf.format(currDate);
System.out.println("currDateStr ["+ currDateStr + "]");
termId = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId"));
userId = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode"));
conn = getConnection(); toDay = java.sql.Timestamp.valueOf( genericUtility.getValidDateString( currDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()+ " 00:00:00.00"));
toDay = java.sql.Timestamp.valueOf( genericUtility.getValidDateString( currDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()+ " 00:00:00.00"));
if( DB.equalsIgnoreCase("db2") || DB.equalsIgnoreCase("mysql"))
{
sql = "SELECT CONFIRMED, STATUS, CONTRACT_NO FROM SORDER WHERE SALE_ORDER = ? FOR UPDATE";
database = CommonConstants.DB_NAME;
if(tranIdFr.equalsIgnoreCase(tranIdTo))
{
saleOrder = tranIdFr;
} }
else if( DB.equalsIgnoreCase("mssql") ) if(("db2".equalsIgnoreCase(database)) || ("mysql".equalsIgnoreCase(database)))
{ {
sql = "SELECT CONFIRMED, STATUS, CONTRACT_NO FROM SORDER (UPDLOCK) WHERE SALE_ORDER = ? "; sql = "SELECT confirmed, status, contract_no FROM sorder WHERE sale_order = ? for update";
}
else if("mssql".equalsIgnoreCase(database))
{
sql = "SELECT confirmed, status, contract_no FROM sorder (updlock) WHERE sale_order = ? ";
} }
else else
{ {
sql = "SELECT confirmed, status, contract_no FROM sorder WHERE sale_order = ? for update nowait";
sql = "SELECT CONFIRMED, STATUS, CONTRACT_NO FROM SORDER WHERE SALE_ORDER = ? FOR UPDATE NOWAIT";
} }
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId.trim()); pstmt.setString(1, saleOrder);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if( rs.next() ) if(rs.next())
{ {
confirmed = checkNull(rs.getString("CONFIRMED")); confirmed = checkNull(rs.getString("confirmed"));
status = checkNull(rs.getString("STATUS")); status = checkNull(rs.getString("status"));
contractNo = checkNull(rs.getString("CONTRACT_NO")); contractNo = checkNull(rs.getString("contract_no"));
isTranExist = true;
} }
pstmt.close(); if(rs != null)
pstmt = null;
rs.close();
rs = null;
if(!isTranExist)
{ {
errString = itmDBAccessLocal.getErrorString("", "VTLCKERR", "","",conn); rs.close();
return errString; rs = null;
} }
if(pstmt != null)
System.out.println("confirmed ==>["+confirmed+"] status ==>["+status+" ]contractNo==> [ " +contractNo+"]"); {
if( status.equalsIgnoreCase("X")) pstmt.close();
pstmt = null;
}
System.out.println("confirmed--["+confirmed+"]status--["+status+"]contractNo--["+contractNo+"]");
if("X".equalsIgnoreCase(status))
{ {
errString = itmDBAccessLocal.getErrorString("", "VTCANC2", "","",conn); retString = itmDbAccess.getErrorString("", "VTCANC2", userId,"",conn);
return errString; return retString;
} }
else if( status.equalsIgnoreCase("C") ) else if("C".equalsIgnoreCase(status))
{ {
errString = itmDBAccessLocal.getErrorString("", "VTCANC5", "","",conn); retString = itmDbAccess.getErrorString("", "VTCANC5", userId,"",conn);
return errString; return retString;
} }
sql = " SELECT ITEM_FLG, LINE_NO__CONTR, LINE_NO , ITEM_CODE , QUANTITY FROM SORDDET WHERE SALE_ORDER = ? ORDER BY LINE_NO"; /*sql = "SELECT CONFIRMED FROM DESPATCH WHERE SORD_NO = ?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId.trim()); pstmt.setString(1, saleOrder);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
while( rs.next() ) while(rs.next())
{
despExist = checkNull(rs.getString("CONFIRMED"));
if( despExist.trim().length() == 0 || "N".equalsIgnoreCase(despExist))
{
retString = itmDbAccess.getErrorString("", "SORDCANC01", userId,"",conn);
return retString;
}
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}*/
cnt = 0;
sql = "SELECT COUNT(1) FROM despatch despatch,DESPATCHDET DESPATCHDET WHERE DESPATCHDET.DESP_ID = DESPATCH.DESP_ID " +
"AND DESPATCHDET.SORD_NO = ? AND (CASE WHEN DESPATCH.CONFIRMED IS NULL or length(DESPATCH.CONFIRMED) = 0 THEN 'N' ELSE DESPATCH.CONFIRMED END) = 'N'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, saleOrder);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt = rs.getInt(1);
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(cnt > 0)
{ {
mItemFlag = checkNull(rs.getString("ITEM_FLG")); retString = itmDbAccess.getErrorString("", "VTSOCANC01", userId,"",conn);
mLineNoContr = checkNull(rs.getString("LINE_NO__CONTR")); return retString;
mLineNo = checkNull(rs.getString("LINE_NO")); }
mItemCodeOrd = checkNull(rs.getString("ITEM_CODE")); sql = "select item_flg, line_no__contr, line_no , item_code , quantity from sorddet where sale_order = ? order by line_no";
lcSordQty = (Double)rs.getDouble("QUANTITY") == null ? 0.0 : rs.getDouble("QUANTITY") ; pstmt = conn.prepareStatement(sql);
sql1 = "select quantity - qty_desp as qty_ord from sorditem where sale_order = ? and line_no = ?";
pstmt1 = conn.prepareStatement(sql1);
sql2 = "update scontractdet set rel_qty = rel_qty - ? where contract_no = ? and line_no = ?";
pstmt2 = conn.prepareStatement(sql2);
sql3 = "select quot_no from sorder where sale_order = ?";
pstmt3 = conn.prepareStatement(sql3);
System.out.println("mItemFlag ==>"+mItemFlag); sql4 = "update sales_quotdet set rel_qty = (case when rel_qty is null then 0 else rel_qty end) - ?, " +
System.out.println("mLineNoContr ==>"+mLineNoContr); "rel_date = ?,bal_qty = (case when bal_qty is null then 0 else bal_qty end) + ? " +
System.out.println("mLineNo ==>"+mLineNo); "where quot_no = ? and item_code = ?";
System.out.println("mItemCodeOrd ==>"+mItemCodeOrd); pstmt4 = conn.prepareStatement(sql4);
System.out.println("lcSordQty ==>"+lcSordQty);
if( !("I").equalsIgnoreCase(mItemFlag)) pstmt.setString(1, saleOrder);
rs = pstmt.executeQuery();
while(rs.next())
{
itemFlag = checkNull(rs.getString("item_flg"));
lineNoContr = rs.getInt("line_no__contr");
lineNo = rs.getInt("line_no");
itemCode = checkNull(rs.getString("item_code"));
quantity = rs.getDouble("quantity");
if(contractNo != null && contractNo.trim().length()>0)
{ {
errString = itmDBAccessLocal.getErrorString("", "VTCANC4", "","",conn); if(!"I".equalsIgnoreCase(itemFlag))
return errString; {
retString = getErrorString("status", "VTCANC5", userId);
return retString;
}
} }
else else
{ {
sql = "SELECT QUANTITY - QTY_DESP AS QTYORD FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_NO = ?"; pstmt1.setString(1, saleOrder);
pstmt1 = conn.prepareStatement(sql); pstmt1.setInt(2, lineNo);
pstmt1.setString(1, tranId.trim());
pstmt1.setString(2, mLineNo);
rs1 = pstmt1.executeQuery();
if( rs1.next() )
{
mQtyOrd = (Double)rs1.getDouble("QTYORD") == null ? 0 : rs1.getDouble("QTYORD") ;
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
if(rs1 != null)
{
rs1.close();
rs1 = null;
}
if( mQtyOrd != 0)
{
sql = "UPDATE SCONTRACTDET SET REL_QTY = REL_QTY - ? WHERE CONTRACT_NO = ? AND LINE_NO = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setDouble(1, mQtyOrd);
pstmt1.setString(2, contractNo);
pstmt1.setString(3, mLineNoContr);
effectRow = pstmt.executeUpdate();
System.out.println("Number Of Effected Row SCONTRACTDET table ["+ effectRow + "]" );
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
}
sql = "SELECT QUOT_NO FROM SORDER WHERE SALE_ORDER = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, tranId.trim());
rs1 = pstmt1.executeQuery(); rs1 = pstmt1.executeQuery();
if( rs1.next() ) if(rs1.next())
{
mQuatNo = checkNull(rs.getString("QUOT_NO"));
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
if(rs1 != null)
{
rs1.close();
rs1 = null;
}
if( mQuatNo != null && mQuatNo.length() > 0)
{
sql = " UPDATE SALES_QUOTDET " +
" SET REL_QTY = (CASE WHEN REL_QTY IS NULL THEN 0 ELSE REL_QTY END) - ?, " +
" REL_DATE = ?, " +
" BAL_QTY = (CASE WHEN BAL_QTY IS NULL THEN 0 ELSE BAL_QTY END) + ? " +
" WHERE QUOT_NO = ? " +
" and item_code = ? ";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setDouble(1, lcSordQty);
pstmt1.setTimestamp(2, toDay);
pstmt1.setDouble(3, lcSordQty);
pstmt1.setString(4, mQuatNo);
pstmt1.setString(5, mItemCodeOrd);
effectRow = pstmt.executeUpdate();
System.out.println("Number Of Effected Row SALES_QUOTDET table ["+ effectRow + "]" );
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
}
if(pstmt != null)
{ {
pstmt.close(); qtyOrd = rs1.getDouble("qty_ord");
pstmt = null;
} }
if(rs != null) else
{ {
rs.close(); pstmt2.setDouble(1, qtyOrd);
rs = null; pstmt2.setString(2, contractNo);
pstmt2.setInt(3, lineNoContr);
cnt = pstmt2.executeUpdate();
System.out.println("updated ["+cnt+"] rows in scontractdet table ");
pstmt2.clearParameters();
} }
pstmt1.clearParameters();
}
pstmt3.setString(1, saleOrder);
rs3 = pstmt3.executeQuery();
if(rs3.next())
{
quotNo = checkNull(rs3.getString("quot_no"));
}
pstmt3.clearParameters();
if(quotNo != null && quotNo.trim().length() > 0)
{
cnt = 0;
pstmt4.setDouble(1, quantity);
pstmt4.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));
pstmt4.setDouble(3, quantity);
pstmt4.setString(4, quotNo);
pstmt4.setString(5, itemCode);
cnt = pstmt4.executeUpdate();
System.out.println("updated ["+cnt+"] rows in sales_quotdet table. ");
pstmt4.clearParameters();
} }
} }
if(errString.trim().length() > 0) if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs1 != null)
{
rs1.close();
rs1 = null;
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
if(pstmt2 != null )
{
pstmt2.close();
pstmt2 = null;
}
if(rs3 != null)
{
rs3.close();
rs3 = null;
}
if(pstmt3 != null)
{
pstmt3.close();
pstmt3 = null;
}
if(pstmt4 != null)
{
pstmt4.close();
pstmt4 = null;
}
if(retString != null && retString.trim().length() > 0)
{
return retString;
}
if("N".equalsIgnoreCase(confirmed))
{
autoCloseExecuted = "N";
mStat = "X";
}
else
{
autoCloseExecuted = "Y";
retString = gfAutoClose(saleOrder, status, conn);
}
if(retString != null && retString.trim().length() > 0)
{
return retString;
}
if( autoCloseExecuted.equalsIgnoreCase("Y"))
{ {
if("N".equalsIgnoreCase(confirmed)) cnt = 0;
sql = " UPDATE SORDER SET STATUS = ?, STATUS_REMARKS = ?,ALLOC_FLAG = 'N' WHERE SALE_ORDER = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mStat);
pstmt.setString(2, remarks);
pstmt.setString(3, tranIdFr);
cnt = pstmt.executeUpdate();
System.out.println("Number Of Effected Row SORDER table ["+ cnt + "]" );
if(pstmt != null)
{ {
ls_gf_auto_close_excecuted = "N"; pstmt.close();
System.out.println("ls_gf_auto_close_excecuted ["+ls_gf_auto_close_excecuted); pstmt = null;
mStat = "X"; }
cnt = 0;
sql = "UPDATE SORDITEM SET STATUS = ? WHERE SALE_ORDER = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mStat);
pstmt.setString(2, tranIdFr);
cnt = pstmt.executeUpdate();
System.out.println("Effected Rows effectRow:::"+cnt);
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if( "C".equalsIgnoreCase(status))
{
stat = 1;
} }
else else
{ {
ls_gf_auto_close_excecuted = "Y"; stat = 2;
errString = gfAutoClose(tranId, mStat);
} }
if(errString != null && errString.trim().length() > 0) java.sql.Timestamp toDay = new java.sql.Timestamp(System.currentTimeMillis());
retString = sorderStatusLog(tranIdFr, toDay, stat, xtraParams, "", "", "", "");
if( retString != null && retString.trim().length() > 0)
{ {
if( ls_gf_auto_close_excecuted.equalsIgnoreCase("Y")) return retString;
{ }
sql = " UPDATE SORDER " + }
" SET STATUS = ?, " + cnt = 0;
" STATUS_REMARKS = ?," + sql = " UPDATE SORDER SET STATUS = ?, STATUS_REMARKS = ?, ALLOC_FLAG = 'N' WHERE SALE_ORDER = ?";
" ALLOC_FLAG = 'N' " + pstmt = conn.prepareStatement(sql);
" WHERE SALE_ORDER = ?"; pstmt.setString(1, mStat);
pstmt = conn.prepareStatement(sql); pstmt.setString(2, remarks);
pstmt.setString(1, mStat); pstmt.setString(3, tranIdFr);
pstmt.setString(2, mstatrem); cnt = pstmt.executeUpdate();
pstmt.setString(3, tranId); System.out.println("Number Of Effected Row SORDER table ["+ cnt + "]" );
effectRow = pstmt.executeUpdate(); if(pstmt != null)
System.out.println("Number Of Effected Row SORDER table ["+ effectRow + "]" ); {
if(pstmt != null) pstmt.close();
{ pstmt = null;
pstmt.close(); }
pstmt = null; if(retString != null && retString.trim().length() > 0)
} {
} return retString;
/*DateFormat df = new SimpleDateFormat("dd-mm-yy"); }
lsDate = df.format((currDateStr));*/ else
if( mStat.equalsIgnoreCase("C")) {
{ if("C".equalsIgnoreCase(status))
lcStat = 1; {
} retString = itmDbAccess.getErrorString("status", "VTCANC4", userId,"",conn);
else return retString;
{ }
lcStat = 2; else if("X".equalsIgnoreCase(status))
} {
toDay = java.sql.Timestamp.valueOf( genericUtility.getValidDateString( currDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()+ " 00:00:00.00")); retString = itmDbAccess.getErrorString("status", "VTCANC1", userId,"",conn);
errString = orderRelease.sorderStatusLog(tranId, toDay, lcStat, xtraParams, mLineNo, "", "", "", conn); return retString;
if( errString != null && errString.trim().length() > 0)
{
sql = "UPDATE SORDITEM SET STATUS = ? WHERE SALE_ORDER = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mStat);
pstmt.setString(2, tranId.trim());
effectRow = pstmt.executeUpdate();
System.out.println("Effected Rows effectRow:::"+effectRow);
}
sql = " UPDATE SORDER " +
" SET STATUS = ?, " +
" STATUS_REMARKS = ?," +
" ALLOC_FLAG = 'N' " +
" WHERE SALE_ORDER = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mStat);
pstmt.setString(2, mstatrem);
pstmt.setString(3, tranId);
effectRow = pstmt.executeUpdate();
System.out.println("Number Of Effected Row SORDER table ["+ effectRow + "]" );
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
} }
} }
} }
catch(Exception e) catch(Exception e)
{ {
isError = true; try
System.out.println("SorderCancel.confirm()==>>"+e.getMessage()); {
conn.rollback();
}
catch (SQLException e1)
{
e1.printStackTrace();
}
System.out.println("Exception --["+e.getMessage()+"]");
e.printStackTrace(); e.printStackTrace();
throw new ITMException(e);
} }
finally finally
{ {
try try
{ {
if(isError) if(rs != null)
{
conn.rollback();
}
else
{
conn.commit();
}
if ( rs != null )
{ {
rs.close(); rs.close();
rs = null; rs = null;
} }
if( pstmt != null ) if(pstmt != null)
{ {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
} }
catch( Exception e) catch(Exception e)
{ {
try
{
conn.rollback();
}
catch (SQLException e1)
{
e1.printStackTrace();
}
System.out.println("Exception --["+e.getMessage()+"]");
e.printStackTrace(); e.printStackTrace();
throw new ITMException(e); throw new ITMException(e);
} }
} }
return retString;
return errString;
} }
public String gfAutoClose(String mSaleOrder, String mStatus,Connection conn) throws ITMException
@SuppressWarnings("resource")
public String gfAutoClose(String mSaleOrder, String mStat)
{ {
Connection conn = null;
PreparedStatement pstmt = null, pstmt1 = null; PreparedStatement pstmt = null, pstmt1 = null;
ResultSet rs = null, rs1 = null; ResultSet rs = null, rs1 = null;
double ldQtyAlloc = 0, ldQtyDesp = 0, mQtyAlloc = 0 , mQtyDesp = 0; double ldQtyAlloc = 0, ldQtyDesp = 0, mQtyAlloc = 0 , mQtyDesp = 0;
...@@ -363,45 +517,40 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -363,45 +517,40 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
String errString = ""; String errString = "";
boolean isError = false; boolean isError = false;
Timestamp currDate = null; Timestamp currDate = null;
ITMDBAccessEJB itmDBAccess = new ITMDBAccessEJB();
try try
{ {
mStat = "";
mtday = new Date();
System.out.println("dateFormat ["+mtday+"]");
String applDateFormat = genericUtility.getApplDateFormat();
sdf = new SimpleDateFormat(applDateFormat);
currDateStr = sdf.format(mtday);
currDate = java.sql.Timestamp.valueOf( genericUtility.getValidDateString( currDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()+ " 00:00:00.00"));
System.out.println("currDateStr ["+ currDateStr + "]");
sql = "SELECT CONFIRMED FROM SORDER where sale_order = ?"; sql = "SELECT CONFIRMED FROM SORDER where sale_order = ?";
conn = getConnection();
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mSaleOrder.trim()); pstmt.setString(1, mSaleOrder.trim());
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if( rs.next() ) if( rs.next() )
{ {
confirmed = rs.getString("CONFIRMED"); confirmed = checkNull(rs.getString("CONFIRMED"));
}
if( pstmt != null )
{
pstmt.close();
pstmt = null;
} }
System.out.println("confirmed--@@@["+confirmed+"]");
if ( rs != null ) if ( rs != null )
{ {
rs.close(); rs.close();
rs = null; rs = null;
} }
if( confirmed == null ) if( pstmt != null )
{
pstmt.close();
pstmt = null;
}
if( confirmed == null || confirmed.trim().length() == 0 )
{ {
confirmed = "N"; confirmed = "N";
} }
if( confirmed == "N") if( "N".equalsIgnoreCase(confirmed))
{ {
mStat = "C"; mStatus = "C";
} }
else else
{ {
cnt = 0;
sql = "SELECT COUNT(1) FROM SORDALLOC WHERE SALE_ORDER = ? AND CASE WHEN STATUS IS NULL THEN 'P' ELSE STATUS END <> 'D' "; sql = "SELECT COUNT(1) FROM SORDALLOC WHERE SALE_ORDER = ? AND CASE WHEN STATUS IS NULL THEN 'P' ELSE STATUS END <> 'D' ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mSaleOrder.trim()); pstmt.setString(1, mSaleOrder.trim());
...@@ -410,19 +559,20 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -410,19 +559,20 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
{ {
cnt = rs.getInt(1); cnt = rs.getInt(1);
} }
if( pstmt != null )
{
pstmt.close();
pstmt = null;
}
if ( rs != null ) if ( rs != null )
{ {
rs.close(); rs.close();
rs = null; rs = null;
} }
if( pstmt != null )
{
pstmt.close();
pstmt = null;
}
if(cnt > 0) if(cnt > 0)
{ {
errString = itmDBAccessLocal.getErrorString("", "VTALLOC02", "","",conn); errString = itmDBAccess.getErrorString("", "VTALLOC02", "","",conn);
return errString; return errString;
} }
sql = "SELECT SUM(QTY_ALLOC) AS LD_QTY_ALLOC, SUM(QTY_DESP) AS LD_QTY_DESP FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_TYPE = 'I'"; sql = "SELECT SUM(QTY_ALLOC) AS LD_QTY_ALLOC, SUM(QTY_DESP) AS LD_QTY_DESP FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_TYPE = 'I'";
...@@ -434,19 +584,19 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -434,19 +584,19 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
ldQtyAlloc = rs.getDouble("LD_QTY_ALLOC"); ldQtyAlloc = rs.getDouble("LD_QTY_ALLOC");
ldQtyDesp = rs.getDouble("LD_QTY_DESP"); ldQtyDesp = rs.getDouble("LD_QTY_DESP");
} }
if( pstmt != null )
{
pstmt.close();
pstmt = null;
}
if ( rs != null ) if ( rs != null )
{ {
rs.close(); rs.close();
rs = null; rs = null;
} }
if( pstmt != null )
{
pstmt.close();
pstmt = null;
}
if( ldQtyAlloc == 0 && ldQtyDesp == 0 ) if( ldQtyAlloc == 0 && ldQtyDesp == 0 )
{ {
mStat = "X"; mStatus = "X";
} }
else else
{ {
...@@ -458,119 +608,114 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -458,119 +608,114 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
{ {
mQtyAlloc = rs.getDouble("QTY_ALLOC"); mQtyAlloc = rs.getDouble("QTY_ALLOC");
mQtyDesp = rs.getDouble("QTY_DESP"); mQtyDesp = rs.getDouble("QTY_DESP");
if( mQtyAlloc <= mQtyDesp)
{
mStat = "C";
}
errString = gfAutoCloseExt(mSaleOrder, mStat); if( mQtyAlloc <= mQtyDesp)
if( errString.trim().length() == 0 )
{ {
if( confirmed == "M") mStatus = "C";
{
sql = "UPDATE SORDER SET STATUS = ?, STATUS_DATE = ? WHERE SALE_ORDER = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, mStat.trim());
pstmt1.setTimestamp(2, currDate);
pstmt1.setString(3, mSaleOrder.trim());
llCnt = pstmt.executeUpdate();
System.out.println("Number od effect rows in SORDER table =====>"+llCnt);
if( pstmt1 != null )
{
pstmt1.close();
pstmt1 = null;
}
}
else
{
sql = "UPDATE SORDITEM SET STATUS = ? WHERE SALE_ORDER = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, mStat.trim());
pstmt1.setString(2, mSaleOrder.trim());
llCnt = pstmt1.executeUpdate();
System.out.println("Number od effect rows in else block SORDER table =====>"+llCnt);
if( pstmt1 != null )
{
pstmt1.close();
pstmt1 = null;
}
cnt = 0;
sql = "SELECT COUNT(1) FROM SORDITEM WHERE SALE_ORDER = ? AND (STATUS NOT IN ('C','X') OR STATUS IS NULL)";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, mSaleOrder.trim());
rs1 = pstmt1.executeQuery();
if( rs1.next() )
{
cnt = rs1.getInt(1);
}
if( pstmt1 != null )
{
pstmt1.close();
pstmt1 = null;
}
if ( rs1 != null )
{
rs1.close();
rs1 = null;
}
if( cnt == 0)
{
sql = "UPDATE SORDER SET STATUS = ?, STATUS_DATE = ? WHERE SALE_ORDER = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, mStat.trim());
pstmt1.setTimestamp(2, currDate);
pstmt1.setString(3, mSaleOrder.trim());
llCnt = pstmt1.executeUpdate();
System.out.println("Number od effect rows in 2nd if SORDER table =====>"+llCnt);
if( pstmt1 != null )
{
pstmt1.close();
pstmt1 = null;
}
}
else
{
errString = itmDBAccessLocal.getErrorString("", "VTSOSTAUS", "","",conn);
return errString;
}
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
}
} }
} }
if ( rs != null )
{
rs.close();
rs = null;
}
if( pstmt != null ) if( pstmt != null )
{ {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
if ( rs != null ) errString = gfAutoCloseExt(mSaleOrder, mStatus,conn);
}
}
if( errString == null || errString.trim().length() == 0 )
{
if( confirmed == "N")
{
llCnt = 0;
sql = "UPDATE SORDER SET STATUS = ?, STATUS_DATE = ? WHERE SALE_ORDER = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, mStatus.trim());
pstmt1.setTimestamp(2, currDate);
pstmt1.setString(3, mSaleOrder.trim());
llCnt = pstmt1.executeUpdate();
System.out.println("Number od effect rows in SORDER table =====>"+llCnt);
if( pstmt1 != null )
{ {
rs.close(); pstmt1.close();
rs = null; pstmt1 = null;
}
}
else
{
llCnt = 0;
sql = "UPDATE SORDITEM SET STATUS = ? WHERE SALE_ORDER = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, mStatus.trim());
pstmt1.setString(2, mSaleOrder.trim());
llCnt = pstmt1.executeUpdate();
System.out.println("Number od effect rows in else block SORDER table =====>"+llCnt);
if( pstmt1 != null )
{
pstmt1.close();
pstmt1 = null;
}
cnt = 0;
sql = "SELECT COUNT(1) FROM SORDITEM WHERE SALE_ORDER = ? AND (STATUS NOT IN ('C','X') OR STATUS IS NULL)";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, mSaleOrder.trim());
rs1 = pstmt1.executeQuery();
if( rs1.next() )
{
cnt = rs1.getInt(1);
}
if( pstmt1 != null )
{
pstmt1.close();
pstmt1 = null;
}
if ( rs1 != null )
{
rs1.close();
rs1 = null;
}
if( cnt == 0)
{
sql = "UPDATE SORDER SET STATUS = ?, STATUS_DATE = ? WHERE SALE_ORDER = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, mStatus.trim());
pstmt1.setTimestamp(2, currDate);
pstmt1.setString(3, mSaleOrder.trim());
llCnt = pstmt1.executeUpdate();
System.out.println("Number od effect rows in 2nd if SORDER table =====>"+llCnt);
if( pstmt1 != null )
{
pstmt1.close();
pstmt1 = null;
}
}
else
{
errString = itmDBAccess.getErrorString("", "VTSOSTAUS", "","",conn);
return errString;
}
if(errString != null && errString.trim().length() > 0)
{
return errString;
} }
} }
} }
} }
catch(Exception e) catch(Exception e)
{ {
isError = true;
System.out.println("SorderCancel.gfAutoClose()==>>"+e.getMessage()); System.out.println("SorderCancel.gfAutoClose()==>>"+e.getMessage());
e.printStackTrace(); e.printStackTrace();
throw new ITMException(e);
} }
finally finally
{ {
try try
{ {
if(isError)
{
conn.rollback();
}
else
{
conn.commit();
}
if ( rs != null ) if ( rs != null )
{ {
rs.close(); rs.close();
...@@ -586,14 +731,33 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -586,14 +731,33 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
{ {
System.out.println("SorderCancel.gfAutoClose() ====>"+e.getMessage()); System.out.println("SorderCancel.gfAutoClose() ====>"+e.getMessage());
e.printStackTrace(); e.printStackTrace();
throw new ITMException(e);
} }
} }
mStat = mStatus ;
return errString; return errString;
} }
public String gfAutoCloseExt(String mSaleOrder, String mStat,Connection conn) throws ITMException
@SuppressWarnings("resource")
public String gfAutoCloseExt(String mSaleOrder, String mStat)
{ {
String retString = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "";
PreparedStatement pstmt1 = null;
ResultSet rs1 = null;
String sql1 = "";
/*PreparedStatement pstmt2 = null;
ResultSet rs2 = null;
String sql2 = "";
PreparedStatement pstmt3 = null;
ResultSet rs3 = null;
String sql3 = "";
PreparedStatement pstmt4 = null;
ResultSet rs4 = null;
String sql4 ="";
int cnt = 0;
String database = "";
String userId = "";*/
String errString = ""; String errString = "";
String lsSaleOrder = ""; String lsSaleOrder = "";
String asLineNo = ""; String asLineNo = "";
...@@ -611,20 +775,10 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -611,20 +775,10 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
Date mtday = null; Date mtday = null;
SimpleDateFormat sdf = null; SimpleDateFormat sdf = null;
String currDateStr = null; String currDateStr = null;
String sql = "";
Connection conn = null;
PreparedStatement pstmt = null, pstmt1 = null;
ResultSet rs = null, rs1 = null;
try try
{ {
conn = getConnection(); sql = "SELECT SUM(QUANTITY) - SUM(QTY_DESP) AS LD_QTY_CHK, SUM(QTY_DESP) AS LD_DESPATCHED_QTY, SUM(QTY_ALLOC) AS LD_ALLOCATED_QTY FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_TYPE = 'I'";
mtday = new Date();
System.out.println("dateFormat ["+mtday+"]");
String applDateFormat = genericUtility.getApplDateFormat();
sdf = new SimpleDateFormat(applDateFormat);
currDateStr = sdf.format(mtday);
System.out.println("currDateStr ["+ currDateStr + "]");
sql = "SUM(QUANTITY) - SUM(QTY_DESP) AS LD_QTY_CHK, SUM(QTY_DESP) AS LD_DESPATCHED_QTY, SUM(QTY_ALLOC) AS LD_ALLOCATED_QTY FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_TYPE = 'I'";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mSaleOrder.trim()); pstmt.setString(1, mSaleOrder.trim());
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
...@@ -634,16 +788,16 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -634,16 +788,16 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
ldDespatchetQty = rs.getDouble("LD_DESPATCHED_QTY"); ldDespatchetQty = rs.getDouble("LD_DESPATCHED_QTY");
ldAllocatedQty = rs.getDouble("LD_ALLOCATED_QTY"); ldAllocatedQty = rs.getDouble("LD_ALLOCATED_QTY");
} }
if( pstmt != null )
{
pstmt.close();
pstmt = null;
}
if ( rs != null ) if ( rs != null )
{ {
rs.close(); rs.close();
rs = null; rs = null;
} }
if( pstmt != null )
{
pstmt.close();
pstmt = null;
}
if( ldQtyChk > 0 ) if( ldQtyChk > 0 )
{ {
if( ldDespatchetQty > 0 ) if( ldDespatchetQty > 0 )
...@@ -661,139 +815,128 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -661,139 +815,128 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
} }
sql = " SELECT SALE_ORDER, LINE_NO, EXP_LEV FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_TYPE = 'I'"; sql = " SELECT SALE_ORDER, LINE_NO, EXP_LEV FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_TYPE = 'I'";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
sql1 = " Select SORDITEM.SALE_ORDER, SORDITEM.LINE_NO, SORDITEM.EXP_LEV," +
" SORDALLOC.ITEM_CODE, SORDALLOC.ITEM_CODE__ORD, SORDALLOC.LOT_SL, " +
" SORDALLOC.LOT_NO, SORDALLOC.LOC_CODE, SORDALLOC.QUANTITY, SORDALLOC.QTY_ALLOC, " +
" SORDALLOC.UNIT, SORDALLOC.STATUS, SORDALLOC.SITE_CODE " +
" from SORDALLOC, " +
" SORDITEM " +
" where ( SORDALLOC.SALE_ORDER = SORDITEM.SALE_ORDER )" +
" and ( SORDALLOC.LINE_NO = SORDITEM.LINE_NO ) " +
" and ( SORDALLOC.EXP_LEV = SORDITEM.EXP_LEV ) " +
" and ( SORDALLOC.ITEM_CODE__ORD = SORDITEM.ITEM_CODE__ORD ) " +
" and ( SORDALLOC.ITEM_CODE = SORDITEM.ITEM_CODE ) " +
" and ( SORDITEM.SALE_ORDER = ?) " +
" and ( TRIM(SORDITEM.LINE_NO) = ?)" +
" and ( SORDITEM.EXP_LEV = ?)";
pstmt1 = conn.prepareStatement(sql1);
pstmt.setString(1, mSaleOrder.trim()); pstmt.setString(1, mSaleOrder.trim());
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
while( rs.next() ) while( rs.next() )
{ {
lsSaleOrder = rs.getString(" SALE_ORDER "); lsSaleOrder = checkNull(rs.getString("SALE_ORDER"));
asLineNo = rs.getString(" LINE_NO "); asLineNo = checkNull(rs.getString("LINE_NO"));
lsExpLev = rs.getString(" EXP_LEV "); lsExpLev = checkNull(rs.getString("EXP_LEV"));
sql = " Select SORDITEM.SALE_ORDER, SORDITEM.LINE_NO, SORDITEM.EXP_LEV," + pstmt1.setString(1, lsSaleOrder.trim());
" SORDALLOC.ITEM_CODE, SORDALLOC.ITEM_CODE__ORD, SORDALLOC.LOT_SL, " + pstmt1.setString(2, asLineNo);
" SORDALLOC.LOT_NO, SORDALLOC.LOC_CODE, SORDALLOC.QUANTITY, ORDALLOC.QTY_ALLOC, " + pstmt1.setString(3, lsExpLev);
" SORDALLOC.UNIT, SORDALLOC.STATUS, SORDALLOC.SITE_CODE " + rs1 = pstmt1.executeQuery();
" from SORDALLOC, " + while( rs1.next() )
" SORDITEM " + {
" where ( SORDALLOC.SALE_ORDER = SORDITEM.SALE_ORDER )" + lsSaleOrder = checkNull(rs1.getString("SALE_ORDER"));
" and ( SORDALLOC.LINE_NO = SORDITEM.LINE_NO ) " + asLineNo = checkNull(rs1.getString("LINE_NO"));
" and ( SORDALLOC.EXP_LEV = SORDITEM.EXP_LEV ) " + lsExpLev = checkNull(rs1.getString("EXP_LEV"));
" and ( SORDALLOC.ITEM_CODE__ORD = SORDITEM.ITEM_CODE__ORD ) " + lsItemCode = checkNull(rs1.getString("ITEM_CODE"));
" and ( SORDALLOC.ITEM_CODE = SORDITEM.ITEM_CODE ) " + lsItemCodeOrd = checkNull(rs1.getString("ITEM_CODE__ORD"));
" and ( SORDITEM.SALE_ORDER = ?) " + lsLotSl =checkNull( rs1.getString("LOT_SL"));
" and ( SORDITEM.LINE_NO = ?)" + lsLotNo = checkNull(rs1.getString("LOT_NO"));
" and ( SORDITEM.EXP_LEV = ?)"; lsLocCode = checkNull(rs1.getString("LOC_CODE"));
pstmt1 = conn.prepareStatement(sql); ldOrdQty = rs1.getDouble("QUANTITY");
pstmt1.setString(1, lsSaleOrder.trim()); ldAllocatedQty = (Double)rs1.getDouble("QTY_ALLOC") == null ? 0 : rs.getDouble("QTY_ALLOC");
pstmt1.setString(2, asLineNo); lsUnit = checkNull(rs1.getString("UNIT"));
pstmt1.setString(3, lsExpLev); lsStatus = checkNull(rs1.getString("STATUS"));
rs1 = pstmt1.executeQuery(); lsSiteCode = checkNull(rs1.getString("SITE_CODE"));
while( rs1.next() )
{ if(ldAllocatedQty < 0)
lsSaleOrder = rs.getString("SALE_ORDER");
asLineNo = rs.getString("LINE_NO");
lsExpLev = rs.getString("EXP_LEV");
lsItemCode = rs.getString("ITEM_CODE");
lsItemCodeOrd = rs.getString("ITEM_CODE__ORD");
lsLotSl = rs.getString("LOT_SL");
lsLotNo = rs.getString("LOT_NO");
lsLocCode = rs.getString("LOC_CODE");
ldOrdQty = rs.getDouble("QUANTITY");
ldAllocatedQty = (Double)rs.getDouble("QTY_ALLOC") == null ? 0 : rs.getDouble("QTY_ALLOC");
lsUnit = rs.getString("UNIT");
lsStatus = rs.getString("STATUS");
lsSiteCode = rs.getString("SITE_CODE");
System.out.println("lsSaleOrder ==>"+lsSaleOrder);
System.out.println("asLineNo ==>"+asLineNo);
System.out.println("lsItemCode ==>"+lsItemCode);
System.out.println("lsItemCodeOrd ==>"+lsItemCodeOrd);
System.out.println("lsLotSl ==>"+lsLotSl);
System.out.println("lsLotNo ==>"+lsLotNo);
System.out.println("lsLocCode ==>"+lsLocCode);
System.out.println("ldOrdQty ==>"+ldOrdQty);
System.out.println("ldAllocatedQty ==>"+ldAllocatedQty);
System.out.println("lsUnit ==>"+lsUnit);
System.out.println("lsStatus ==>"+lsStatus);
System.out.println("SITE_CODE ==>"+lsSiteCode);
if( ldAllocatedQty == 0 || ldAllocatedQty < 0)
{
ldUserQty = ldAllocatedQty * -1 ;
errString = gbfAllocated(lsSaleOrder,asLineNo, lsSiteCode, lsItemCode, lsLocCode, lsLotNo, lsLotSl, ldUserQty, lsExpLev, lsItemCodeOrd);
if( errString != null && errString.trim().length() > 0)
{
return errString;
}
}
}
if( pstmt1 != null )
{ {
pstmt1.close(); ldAllocatedQty = 0;
pstmt1 = null;
} }
if ( rs1 != null ) ldUserQty = ldAllocatedQty * -1 ;
errString = gbfAllocated(lsSaleOrder,asLineNo, lsSiteCode, lsItemCode, lsLocCode, lsLotNo, lsLotSl, ldUserQty, lsExpLev, lsItemCodeOrd, conn);
if( errString != null && errString.trim().length() > 0)
{ {
rs1.close(); return errString;
rs1 = null;
} }
}
} }
if( pstmt != null ) if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{ {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
if ( rs != null ) if(rs1 != null)
{ {
rs.close(); rs1.close();
rs = null; rs1 = null;
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
} }
} }
catch(Exception e) catch(Exception e)
{ {
System.out.println("SorderCancel.gfAutoCloseExt()===>"+e.getMessage()); System.out.println("Exception e ---["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
} }
finally finally
{ {
try try
{ {
if( conn != null) if(rs != null)
{ {
if ( rs != null ) rs.close();
{ rs = null;
rs.close(); }
rs = null; if(pstmt != null)
} {
if( pstmt != null ) pstmt.close();
{ pstmt = null;
pstmt.close(); }
pstmt = null; if(rs1 != null)
} {
conn.close(); rs1.close();
rs1 = null;
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
} }
conn = null;
} }
catch( Exception e) catch(Exception e)
{ {
System.out.println("Exception e ---["+e.getMessage()+"]");
e.printStackTrace(); e.printStackTrace();
throw new ITMException(e);
} }
} }
return errString; return retString;
}
private String checkNull(String input)
{
if (input == null)
{
input = "";
}
return input.trim();
} }
@SuppressWarnings({ "unchecked", "rawtypes" }) public String gbfAllocated(String lsSaleOrder,String asLineNo, String lsSiteCode,String lsItemCode, String lsLocCode, String lsLotNo, String lsLotSl,double adQty, String lsExpLev, String lsItemCodeOrd,Connection conn) throws ITMException
public String gbfAllocated(String lsSaleOrder,String asLineNo, String lsSiteCode,String lsItemCode, String lsLocCode, String lsLotNo, String lsLotSl,double adQty, String lsExpLev, String lsItemCodeOrd)
{ {
String errCode = "", lsGrade = "", lssiteCodeMfg = "", munitStd = "", ldtExpDateStr = "", String errCode = "", lsGrade = "", lssiteCodeMfg = "", munitStd = "", ldtExpDateStr = "",
lsCustCode = "", lsLocGroup = "", lsAllocFlag = "", sql = "", ldtMfgDateStr = ""; lsCustCode = "", lsLocGroup = "", lsAllocFlag = "", ldtMfgDateStr = "";
double ldQtyAllocated = 0, mconvQtyStduom = 0, mqtyStk = 0, mallocQty = 0, minputQty, mnetQty = 0, lcHoldQty = 0; double ldQtyAllocated = 0, mconvQtyStduom = 0, mqtyStk = 0, mallocQty = 0, minputQty, mnetQty = 0, lcHoldQty = 0;
Date ldToday ; Date ldToday ;
Timestamp ldtExpDate = null, ldtMfgDate = null, currDate = null; Timestamp ldtExpDate = null, ldtMfgDate = null, currDate = null;
...@@ -801,20 +944,38 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -801,20 +944,38 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
boolean isError = false; boolean isError = false;
SimpleDateFormat sdf = null; SimpleDateFormat sdf = null;
String currDateStr = null; String currDateStr = null;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
HashMap invallocTraceMap = new HashMap(); HashMap invallocTraceMap = new HashMap();
InvAllocTraceBean allocTraceBean = new InvAllocTraceBean(); InvAllocTraceBean allocTraceBean = new InvAllocTraceBean();
E12GenericUtility genericUtility = null;
ITMDBAccessEJB itmDBAccessLocal = new ITMDBAccessEJB();
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "";
PreparedStatement pstmt1 = null;
ResultSet rs1 = null;
String sql1 = "";
PreparedStatement pstmt2 = null;
ResultSet rs2 = null;
String sql2 = "";
PreparedStatement pstmt3 = null;
ResultSet rs3 = null;
String sql3 = "";
PreparedStatement pstmt4 = null;
ResultSet rs4 = null;
String sql4 ="";
int cnt = 0;
try try
{ {
genericUtility = new E12GenericUtility();
ldToday = new Date(); ldToday = new Date();
String applDateFormat = genericUtility.getApplDateFormat(); String applDateFormat = genericUtility.getApplDateFormat();
sdf = new SimpleDateFormat(applDateFormat); sdf = new SimpleDateFormat(applDateFormat);
currDateStr = sdf.format(ldToday); currDateStr = sdf.format(ldToday);
System.out.println("currDateStr ["+ currDateStr + "]"); System.out.println("currDateStr ["+ currDateStr + "]");
currDate = java.sql.Timestamp.valueOf( genericUtility.getValidDateString( currDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()+ " 00:00:00.00")); currDate = java.sql.Timestamp.valueOf( genericUtility.getValidDateString( currDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()+ " 00:00:00.00"));
conn = getConnection(); System.out.println("adQty--["+adQty+"]");
if( adQty < 0) if( adQty < 0)
{ {
sql = " SELECT COUNT(1) " + sql = " SELECT COUNT(1) " +
...@@ -843,158 +1004,148 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -843,158 +1004,148 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
{ {
count = rs.getInt(1); count = rs.getInt(1);
} }
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null) if(rs != null)
{ {
rs.close(); rs.close();
rs = null; rs = null;
} }
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if( count == 0) if( count == 0)
{ {
errCode = itmDBAccessLocal.getErrorString("", "VALCERR", "","",conn); errCode = itmDBAccessLocal.getErrorString("", "VALCERR", "","",conn);
return errCode; return errCode;
} }
sql = " UPDATE SORDITEM " + }
" SET QTY_ALLOC = QTY_ALLOC + ? " + sql = " UPDATE SORDITEM " +
" WHERE SALE_ORDER = ? " + " SET QTY_ALLOC = QTY_ALLOC + ? " +
" AND LINE_NO = ? " + " WHERE SALE_ORDER = ? " +
" AND EXP_LEV = ? " + " AND LINE_NO = ? " +
" AND LINE_TYPE = 'I'"; " AND EXP_LEV = ? " +
pstmt = conn.prepareStatement(sql); " AND LINE_TYPE = 'I'";
pstmt.setDouble(1, adQty); pstmt = conn.prepareStatement(sql);
pstmt.setString(2, lsSaleOrder); pstmt.setDouble(1, adQty);
pstmt.setString(3, asLineNo); pstmt.setString(2, lsSaleOrder);
pstmt.setString(4, lsExpLev); pstmt.setString(3, asLineNo);
effRow = pstmt.executeUpdate(); pstmt.setString(4, lsExpLev);
System.out.println("Update Sorder Item "+effRow); effRow = pstmt.executeUpdate();
if(pstmt != null) System.out.println("Update Sorder Item "+effRow);
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
sql = " SELECT QTY_ALLOC AS LD_QTY_ALLOCATED" +
" FROM SORDALLOC" +
" WHERE SALE_ORDER = ? " +
" AND LINE_NO = ? " +
" AND SITE_CODE = ? " +
" AND ITEM_CODE = ? " +
" AND LOC_CODE = ? " +
" AND LOT_NO = ? " +
" AND LOT_SL = ? " +
" AND EXP_LEV = ? " +
" AND ITEM_CODE__ORD = ?";
pstmt = conn.prepareStatement(sql);
sql1 = " DELETE FROM SORDALLOC" +
" WHERE SALE_ORDER = ? " +
" AND LINE_NO = ? " +
" AND SITE_CODE = ? " +
" AND ITEM_CODE = ? " +
" AND LOC_CODE = ? " +
" AND LOT_NO = ? " +
" AND LOT_SL = ? " +
" AND EXP_LEV = ? " +
" AND ITEM_CODE__ORD = ?";
pstmt1 = conn.prepareStatement(sql1);
sql2 = " UPDATE SORDALLOC " +
" SET QTY_ALLOC = QTY_ALLOC + ? " +
" WHERE SALE_ORDER = ? " +
" AND LINE_NO = ? " +
" AND SITE_CODE = ? " +
" AND ITEM_CODE = ? " +
" AND LOC_CODE = ? " +
" AND LOT_NO = ? " +
" AND LOT_SL = ? " +
" AND EXP_LEV = ? " +
" AND ITEM_CODE__ORD = ?";
pstmt2 = conn.prepareStatement(sql2);
pstmt.setString(1, lsSaleOrder);
pstmt.setString(2, asLineNo);
pstmt.setString(3, lsSiteCode);
pstmt.setString(4, lsItemCode);
pstmt.setString(5, lsLocCode);
pstmt.setString(6, lsLotNo);
pstmt.setString(7, lsLotSl);
pstmt.setString(8, lsExpLev);
pstmt.setString(9, lsItemCodeOrd);
rs = pstmt.executeQuery();
if( rs.next() )
{
ldQtyAllocated = rs.getDouble("LD_QTY_ALLOCATED");
if((ldQtyAllocated + adQty) == 0)
{ {
pstmt.close();
pstmt = null; pstmt1.setString(1, lsSaleOrder);
pstmt1.setString(2, asLineNo);
pstmt1.setString(3, lsSiteCode);
pstmt1.setString(4, lsItemCode);
pstmt1.setString(5, lsLocCode);
pstmt1.setString(6, lsLotNo);
pstmt1.setString(7, lsLotSl);
pstmt1.setString(8, lsExpLev);
pstmt1.setString(9, lsItemCodeOrd);
effRow = pstmt1.executeUpdate();
System.out.println("Delete record from sordalloc ==> "+effRow);
pstmt1.clearParameters();
}
else
{
pstmt2.setDouble(1, adQty);
pstmt2.setString(2, lsSaleOrder);
pstmt2.setString(3, asLineNo);
pstmt2.setString(4, lsSiteCode);
pstmt2.setString(5, lsItemCode);
pstmt2.setString(6, lsLocCode);
pstmt2.setString(7, lsLotNo);
pstmt2.setString(8, lsLotSl);
pstmt2.setString(9, lsExpLev);
pstmt2.setString(10, lsItemCodeOrd);
effRow = pstmt2.executeUpdate();
System.out.println("Update record from sordalloc ==> "+effRow);
pstmt2.clearParameters();
} }
sql = " SELECT QTY_ALLOC AS LD_QTY_ALLOCATED" + }
" FROM SORDALLOC" + else
" WHERE SALE_ORDER = ? " + {
" AND LINE_NO = ? " + sql = "SELECT CUST_CODE,LOC_GROUP FROM SORDER WHERE SALE_ORDER = ?";
" AND SITE_CODE = ? " +
" AND ITEM_CODE = ? " +
" AND LOC_CODE = ? " +
" AND LOT_NO = ? " +
" AND LOT_SL = ? " +
" AND EXP_LEV = ? " +
" AND ITEM_CODE__ORD = ?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsSaleOrder); pstmt.setString(1, lsSaleOrder);
pstmt.setString(2, asLineNo);
pstmt.setString(3, lsSiteCode);
pstmt.setString(4, lsItemCode);
pstmt.setString(5, lsLocCode);
pstmt.setString(6, lsLotNo);
pstmt.setString(7, lsLotSl);
pstmt.setString(8, lsExpLev);
pstmt.setString(9, lsItemCodeOrd);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if( rs.next() ) if( rs.next() )
{ {
ldQtyAllocated = rs.getDouble("LD_QTY_ALLOCATED"); lsCustCode = checkNull(rs.getString("CUST_CODE"));
} lsLocGroup = checkNull(rs.getString("LOC_GROUP"));
if(pstmt != null)
{
pstmt.close();
pstmt = null;
} }
if(rs != null) if(rs != null)
{ {
rs.close(); rs.close();
rs = null; rs = null;
} }
if((ldQtyAllocated + adQty) == 0)
{
sql = " DELETE FROM SORDALLOC" +
" WHERE SALE_ORDER = ? " +
" AND LINE_NO = ? " +
" AND SITE_CODE = ? " +
" AND ITEM_CODE = ? " +
" AND LOC_CODE = ? " +
" AND LOT_NO = ? " +
" AND LOT_SL = ? " +
" AND EXP_LEV = ? " +
" AND ITEM_CODE__ORD = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsSaleOrder);
pstmt.setString(2, asLineNo);
pstmt.setString(3, lsSiteCode);
pstmt.setString(4, lsItemCode);
pstmt.setString(5, lsLocCode);
pstmt.setString(6, lsLotNo);
pstmt.setString(7, lsLotSl);
pstmt.setString(8, lsExpLev);
pstmt.setString(9, lsItemCodeOrd);
effRow = pstmt.executeUpdate();
System.out.println("Delete record from sordalloc ==> "+effRow);
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
else
{
sql = " UPDATE SORDALLOC " +
" SET QTY_ALLOC = QTY_ALLOC + ? " +
" WHERE SALE_ORDER = ? " +
" AND LINE_NO = ? " +
" AND SITE_CODE = ? " +
" AND ITEM_CODE = ? " +
" AND LOC_CODE = ? " +
" AND LOT_NO = ? " +
" AND LOT_SL = ? " +
" AND EXP_LEV = ? " +
" AND ITEM_CODE__ORD = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, adQty);
pstmt.setString(2, lsSaleOrder);
pstmt.setString(3, asLineNo);
pstmt.setString(4, lsSiteCode);
pstmt.setString(5, lsItemCode);
pstmt.setString(6, lsLocCode);
pstmt.setString(7, lsLotNo);
pstmt.setString(8, lsLotSl);
pstmt.setString(9, lsExpLev);
pstmt.setString(10, lsItemCodeOrd);
effRow = pstmt.executeUpdate();
System.out.println("Update record from sordalloc ==> "+effRow);
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
sql = "SELECT CUST_CODE,LOC_GROUP FROM SORDER WHERE SALE_ORDER = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsSaleOrder);
rs = pstmt.executeQuery();
if( rs.next() )
{
lsCustCode = rs.getString("CUST_CODE");
lsLocGroup = rs.getString("LOC_GROUP");
}
if(pstmt != null) if(pstmt != null)
{ {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
if(rs != null)
{
rs.close();
rs = null;
}
System.out.println("lsCustCode ==>"+lsCustCode);
System.out.println("lsLocGroup ==>"+lsLocGroup);
if( lsLocGroup == null || lsLocGroup.trim().length() == 0) if( lsLocGroup == null || lsLocGroup.trim().length() == 0)
{ {
sql = " SELECT A.EXP_DATE AS LDT_EXP_DATE, A.GRADE AS LS_GRADE, A.MFG_DATE AS LDT_MFG_DATE, " + sql = " SELECT A.EXP_DATE AS LDT_EXP_DATE, A.GRADE AS LS_GRADE, A.MFG_DATE AS LDT_MFG_DATE, " +
...@@ -1015,24 +1166,25 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -1015,24 +1166,25 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if( rs.next() ) if( rs.next() )
{ {
ldtExpDateStr = rs.getString("LDT_EXP_DATE"); ldtExpDateStr = checkNull(rs.getString("LDT_EXP_DATE"));
lsGrade = checkNull(rs.getString("LS_GRADE")); lsGrade = checkNull(rs.getString("LS_GRADE"));
ldtMfgDateStr = rs.getString("LDT_MFG_DATE"); ldtMfgDateStr = checkNull(rs.getString("LDT_MFG_DATE"));
lssiteCodeMfg = rs.getString("LS_SITE_CODE__MFG"); lssiteCodeMfg = checkNull(rs.getString("LS_SITE_CODE__MFG"));
mqtyStk = rs.getDouble("MQTY_STK"); mqtyStk = rs.getDouble("MQTY_STK");
mallocQty = rs.getDouble("MALLOC_QTY"); mallocQty = rs.getDouble("MALLOC_QTY");
lcHoldQty = rs.getDouble("LC_HOLD_QTY"); lcHoldQty = rs.getDouble("LC_HOLD_QTY");
} }
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null) if(rs != null)
{ {
rs.close(); rs.close();
rs = null; rs = null;
} }
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
} }
else else
{ {
...@@ -1057,110 +1209,133 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -1057,110 +1209,133 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if( rs.next() ) if( rs.next() )
{ {
ldtExpDateStr = rs.getString("LDT_EXP_DATE"); ldtExpDateStr = checkNull(rs.getString("LDT_EXP_DATE"));
lsGrade = checkNull(rs.getString("LS_GRADE")); lsGrade = checkNull(rs.getString("LS_GRADE"));
ldtMfgDateStr = rs.getString("LDT_MFG_DATE"); ldtMfgDateStr = checkNull(rs.getString("LDT_MFG_DATE"));
lssiteCodeMfg = rs.getString("LS_SITE_CODE__MFG"); lssiteCodeMfg = checkNull(rs.getString("LS_SITE_CODE__MFG"));
mqtyStk = rs.getDouble("MQTY_STK"); mqtyStk = rs.getDouble("MQTY_STK");
mallocQty = rs.getDouble("MALLOC_QTY"); mallocQty = rs.getDouble("MALLOC_QTY");
lcHoldQty = (Double) rs.getDouble("LC_HOLD_QTY") == null ? 0 : rs.getDouble("LC_HOLD_QTY"); lcHoldQty = (Double) rs.getDouble("LC_HOLD_QTY") == null ? 0 : rs.getDouble("LC_HOLD_QTY");
} }
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null) if(pstmt != null)
{ {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
sql = "SELECT UNIT__STD, CONV__QTY_STDUOM FROM SORDDET WHERE SALE_ORDER = ? AND LINE_NO = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsSaleOrder);
pstmt.setString(2, asLineNo);
rs = pstmt.executeQuery();
if( rs.next() )
{
munitStd = checkNull(rs.getString("UNIT__STD"));
mconvQtyStduom = rs.getInt("CONV__QTY_STDUOM");
}
if(rs != null) if(rs != null)
{ {
rs.close(); rs.close();
rs = null; rs = null;
} }
} if(pstmt != null)
sql = "SELECT UNIT__STD, CONV__QTY_STDUOM FROM SORDDET WHERE SALE_ORDER = ? AND LINE_NO = ?"; {
pstmt = conn.prepareStatement(sql); pstmt.close();
pstmt.setString(1, lsSaleOrder); pstmt = null;
pstmt.setString(2, asLineNo); }
rs = pstmt.executeQuery();
if( rs.next() )
{
munitStd = rs.getString("UNIT__STD");
mconvQtyStduom = rs.getInt("CONV__QTY_STDUOM");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
sql = " SELECT QUANTITY FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_NO = ? AND EXP_LEV = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsSaleOrder);
pstmt.setString(2, asLineNo);
pstmt.setString(3, lsExpLev);
rs = pstmt.executeQuery();
if( rs.next() )
{
mnetQty = rs.getDouble("QUANTITY");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
if( (mqtyStk - mallocQty - lcHoldQty) <= mnetQty) sql = " SELECT QUANTITY FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_NO = ? AND EXP_LEV = ?";
{ pstmt = conn.prepareStatement(sql);
minputQty = mqtyStk - mallocQty - lcHoldQty; pstmt.setString(1, lsSaleOrder);
} pstmt.setString(2, asLineNo);
else pstmt.setString(3, lsExpLev);
{ rs = pstmt.executeQuery();
minputQty = mnetQty; if( rs.next() )
} {
mnetQty = rs.getDouble("QUANTITY");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if( (mqtyStk - mallocQty - lcHoldQty) <= mnetQty)
{
minputQty = mqtyStk - mallocQty - lcHoldQty;
}
else
{
minputQty = mnetQty;
}
ldtMfgDate = java.sql.Timestamp.valueOf( genericUtility.getValidDateString( ldtMfgDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()+ " 00:00:00.00")); ldtMfgDate = java.sql.Timestamp.valueOf( genericUtility.getValidDateString( ldtMfgDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()+ " 00:00:00.00"));
ldtExpDate = java.sql.Timestamp.valueOf( genericUtility.getValidDateString( ldtExpDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()+ " 00:00:00.00")); ldtExpDate = java.sql.Timestamp.valueOf( genericUtility.getValidDateString( ldtExpDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()+ " 00:00:00.00"));
sql = " INSERT INTO SORDALLOC(SALE_ORDER, LINE_NO, EXP_LEV, ITEM_CODE__ORD, ITEM_CODE, " + sql = " INSERT INTO SORDALLOC(SALE_ORDER, LINE_NO, EXP_LEV, ITEM_CODE__ORD, ITEM_CODE, " +
" LOT_NO, LOT_SL, LOC_CODE, ITEM_REF, QUANTITY, UNIT, QTY_ALLOC, DATE_ALLOC, " + " LOT_NO, LOT_SL, LOC_CODE, ITEM_REF, QUANTITY, UNIT, QTY_ALLOC, DATE_ALLOC, " +
" STATUS, ALLOC_MODE, SITE_CODE, ITEM_GRADE, EXP_DATE, MFG_DATE, SITE_CODE__MFG, " + " STATUS, ALLOC_MODE, SITE_CODE, ITEM_GRADE, EXP_DATE, MFG_DATE, SITE_CODE__MFG, " +
" UNIT__STD,CONV__QTY_STDUOM, QUANTITY__STDUOM ) " + " UNIT__STD,CONV__QTY_STDUOM, QUANTITY__STDUOM ) " +
" SELECT SORDITEM.SALE_ORDER, SORDITEM.LINE_NO, SORDITEM.EXP_LEV, SORDITEM.ITEM_CODE__ORD, " + " SELECT SORDITEM.SALE_ORDER, SORDITEM.LINE_NO, SORDITEM.EXP_LEV, SORDITEM.ITEM_CODE__ORD, " +
" SORDITEM.ITEM_CODE, ? , ?, ?, SORDITEM.ITEM_REF, SORDITEM.QUANTITY, SORDITEM.UNIT, ?, ?, 'P','M', " + " SORDITEM.ITEM_CODE, ? , ?, ?, SORDITEM.ITEM_REF, SORDITEM.QUANTITY, SORDITEM.UNIT, ?, ?, 'P','M', " +
" ?, ?, ?, ?, ?, ?, ?, ? " + " ?, ?, ?, ?, ?, ?, ?, ? " +
" FROM sorditem WHERE sale_order = ? " + " FROM sorditem WHERE sale_order = ? " +
" and line_no = ?" + " and line_no = ?" +
" AND EXP_LEV = ?" + " AND EXP_LEV = ?" +
" and line_type = 'I'"; " and line_type = 'I'";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsLotNo); pstmt.setString(1, lsLotNo);
pstmt.setString(2, lsLotSl); pstmt.setString(2, lsLotSl);
pstmt.setString(3, lsLocCode); pstmt.setString(3, lsLocCode);
pstmt.setDouble(4, adQty); pstmt.setDouble(4, adQty);
pstmt.setTimestamp(5, currDate); pstmt.setTimestamp(5, currDate);
pstmt.setString(6, lsSiteCode); pstmt.setString(6, lsSiteCode);
pstmt.setString(7, lsGrade); pstmt.setString(7, lsGrade);
pstmt.setTimestamp(8, ldtExpDate); pstmt.setTimestamp(8, ldtExpDate);
pstmt.setTimestamp(9, ldtMfgDate); pstmt.setTimestamp(9, ldtMfgDate);
pstmt.setString(10, lssiteCodeMfg); pstmt.setString(10, lssiteCodeMfg);
pstmt.setString(11, munitStd); pstmt.setString(11, munitStd);
pstmt.setDouble(12, mconvQtyStduom); pstmt.setDouble(12, mconvQtyStduom);
pstmt.setDouble(13, minputQty); pstmt.setDouble(13, minputQty);
effRow = pstmt.executeUpdate(); effRow = pstmt.executeUpdate();
System.out.println("SorderCancel.gbfAllocated() Insert no of row [ "+ effRow + "] in SORDALLOC table"); System.out.println("SorderCancel.gbfAllocated() Insert no of row [ "+ effRow + "] in SORDALLOC table");
if(pstmt != null) if(pstmt != null)
{ {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
}
} }
} }
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
if(pstmt2 != null)
{
pstmt2.close();
pstmt2 = null;
}
if( adQty != 0 || adQty != 0.0) if( adQty != 0 || adQty != 0.0)
{ {
invallocTraceMap.put("tran_date", currDate); invallocTraceMap.put("tran_date", currDate);
...@@ -1180,63 +1355,271 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -1180,63 +1355,271 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
errCode = allocTraceBean.updateInvallocTrace(invallocTraceMap, conn); errCode = allocTraceBean.updateInvallocTrace(invallocTraceMap, conn);
System.out.println("AsnConf.confirm() error_Code ::"+errCode); System.out.println("AsnConf.confirm() error_Code ::"+errCode);
invallocTraceMap.clear(); invallocTraceMap.clear();
if(errCode == null) if(errCode != null && errCode.trim().length() > 0)
{
isError = true;
}
else if ( errCode.trim().length() == 0 )
{
isError = false;
}
else
{ {
isError = true; return errCode;
} }
count = 0; }
sql = "select COUNT(1) SORDITEM where SALE_ORDER = ? and (case when QTY_ALLOC is null then 0 else QTY_ALLOC end) > 0";
count = 0;
sql = "select COUNT(1) SORDITEM where SALE_ORDER = ? and (case when QTY_ALLOC is null then 0 else QTY_ALLOC end) > 0";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsSaleOrder);
rs = pstmt.executeQuery();
if( rs.next() )
{
count = rs.getInt(1);
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
if( count > 0)
{
lsAllocFlag = "Y";
}
else if( count == 0 )
{
lsAllocFlag = null;
}
effRow = 0;
sql = "UPDATE SORDER SET ALLOC_FLAG = ? WHERE SALE_ORDER = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsAllocFlag);
pstmt.setString(2, lsSaleOrder);
effRow = pstmt.executeUpdate();
System.out.println("Effected row in Sorder ["+effRow+"] in Table");
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Exception--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
}
catch(Exception e)
{
System.out.println("Exception--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return errCode;
}
public String sorderStatusLog(String tranId, Timestamp tod, double evtype, String xtraParams,String lineno,String explev,String reascode,String refdescr) throws RemoteException,ITMException
{
int lskey = 0;
Timestamp todayDate = null ;
String sql = "",siteCode= "";
ResultSet rs = null;
PreparedStatement pstmt = null;
ibase.utility.E12GenericUtility genericUtility= null;
ITMDBAccessEJB itmDBAccessEJB = null;
String errString = "" ;
String generatedtranId = "";
String chgTerm = "",chgUser = "";
int rows = 0;
String edioption = "";
Connection conn = null;
try
{
conn = getConnection();
System.out.println("@@@@@ :: sorderStatusLog :::: called :::: ");
genericUtility = new ibase.utility.E12GenericUtility();
itmDBAccessEJB = new ITMDBAccessEJB();
chgTerm = genericUtility.getValueFromXTRA_PARAMS( xtraParams, "CHG_TERM" );
chgUser = genericUtility.getValueFromXTRA_PARAMS( xtraParams, "CHG_USER" );
java.util.Date dt = new java.util.Date();
SimpleDateFormat sdf1= new SimpleDateFormat(genericUtility.getDBDateFormat());
todayDate = java.sql.Timestamp.valueOf(sdf1.format(dt)+" 00:00:00.0");
sql = "select site_code from sorder where sale_order = ?" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
siteCode = checkNull(rs.getString("site_code"));
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
lskey = 0;
sql = "select count(key_string) from transetup where tran_window = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,"w_sorder_stat_log");
rs = pstmt.executeQuery();
if(rs.next())
{
lskey = rs.getInt(1) ;
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(lskey == 0)
{
sql = "select count(key_string) from transetup where tran_window = ? ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsSaleOrder); pstmt.setString(1,"GENERAL");
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if( rs.next() ) if(rs.next())
{
count = rs.getInt(1);
}
if(pstmt != null)
{ {
pstmt.close(); if(rs.getInt(1) > 0);
pstmt = null; {
System.out.println("-- key_string found in general --");
errString = itmDBAccessEJB.getErrorString("","DS000","","",conn);
}
} }
if(rs != null) if(rs != null)
{ {
rs.close(); rs.close();
rs = null; rs = null;
} }
if( count > 0) if(pstmt != null)
{ {
lsAllocFlag = "Y"; pstmt.close();
pstmt = null;
} }
else if( count == 0 ) }
generatedtranId = generateTranId( "w_sorder_stat_log",siteCode, conn );
sql = " insert into sorder_stat_log values(?,?,?,?,?,?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,generatedtranId);
pstmt.setString(2,tranId);
pstmt.setTimestamp(3,tod);
pstmt.setDouble(4,evtype);
pstmt.setString(5,lineno);
pstmt.setString(6,explev);
pstmt.setString(7,reascode);
pstmt.setString(8,refdescr);
pstmt.setTimestamp(9,todayDate);
pstmt.setString(10,userId);
pstmt.setString(11,termId);
rows = pstmt.executeUpdate();
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rows > 0)
{
if(tranId != null)
{ {
lsAllocFlag = null; /*sql = " select edi_option from transetup where tran_window = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,"w_sorder_stat_log");
rs = pstmt.executeQuery();
if(rs.next())
{
edioption = rs.getString(1);
String dataStr = "";
if("1".equalsIgnoreCase(edioption.trim()))
{
CreateRCPXML createRCPXML = new CreateRCPXML("w_sorder_stat_log","tran_id");
dataStr = createRCPXML.getTranXML( tranId, conn );
System.out.println( "dataStr =[ "+ dataStr + "]" );
Document ediDataDom = genericUtility.parseString(dataStr);
E12CreateBatchLoadEjb e12CreateBatchLoad = new E12CreateBatchLoadEjb();
String retString = e12CreateBatchLoad.createBatchLoad(ediDataDom, "w_sorder_stat_log", "0", xtraParams, conn );
createRCPXML = null;
e12CreateBatchLoad = null;
if( retString != null && retString.indexOf("SUCCESS") > -1 )
{
System.out.println("retString from batchload ["+retString+"]");
}
}
}
else
{
System.out.println(" edi option !found in transetup for w_sorder_stat_log ");
errString = itmDBAccessEJB.getErrorString("","DS000","","",conn);
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}*/
} }
sql = "UPDATE SORDER SET ALLOC_FLAG = ? WHERE SALE_ORDER = ? "; }
pstmt = conn.prepareStatement(sql); else
pstmt.setString(1, lsAllocFlag); {
pstmt.setString(2, lsSaleOrder); System.out.println("-- not insert into sorder_stat_log --");
effRow = pstmt.executeUpdate(); errString = itmDBAccessEJB.getErrorString("","DS000","","",conn);
System.out.println("Effected row in Sorder ["+effRow+"] in Table");
} }
} }
catch(Exception e) catch(Exception e)
{ {
isError = true; try
System.out.println("SorderCancel.gbfAllocated() ["+e.getMessage()+"]"); {
if( errString != null && errString.trim().length() > 0 )
{
conn.rollback();
System.out.println("--Transaction rollback in catch--");
}
System.out.println("Exception.. "+e.getMessage());
e.printStackTrace();
errString=e.getMessage();
throw new ITMException(e);
}
catch (Exception e1)
{
e1.printStackTrace();
errString=e.getMessage();
throw new ITMException(e1);
}
} }
finally finally
{ {
try try
{ {
if(isError) if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(errString != null && errString.trim().length() > 0)
{ {
conn.rollback(); conn.rollback();
} }
...@@ -1244,29 +1627,124 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal, ...@@ -1244,29 +1627,124 @@ public class SorderCancel extends ActionHandlerEJB implements SorderCancelLocal,
{ {
conn.commit(); conn.commit();
} }
if( conn != null) }
catch (Exception e1)
{
e1.printStackTrace();
errString=e1.getMessage();
throw new ITMException(e1);
}
}
return errString;
}
private String generateTranId( String windowName,String siteCode, Connection conn )throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
ResultSet rs = null;
String selSql = "";
String tranId = "";
String tranSer = "";
String keyString = "";
String keyCol = "";
String xmlValues = "";
java.sql.Timestamp currDate = null;
ibase.utility.E12GenericUtility genericUtility= new ibase.utility.E12GenericUtility();
try
{
SimpleDateFormat sdfAppl = new SimpleDateFormat(genericUtility.getApplDateFormat());
currDate = new java.sql.Timestamp(System.currentTimeMillis());
String currDateStr = sdfAppl.format(currDate);
selSql = "SELECT KEY_STRING, TRAN_ID_COL, REF_SER FROM TRANSETUP WHERE TRAN_WINDOW = ? ";
pstmt = conn.prepareStatement(selSql);
pstmt.setString( 1, windowName );
rs = pstmt.executeQuery();
if (rs.next())
{
keyString = rs.getString("KEY_STRING");
keyCol = rs.getString("TRAN_ID_COL");
tranSer = rs.getString("REF_SER");
}
rs.close();rs = null;
pstmt.close();pstmt = null;
System.out.println("keyString :"+keyString);
System.out.println("keyCol :"+keyCol);
System.out.println("tranSer :"+tranSer);
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id></tran_id>";
xmlValues = xmlValues + "<site_code>" + siteCode + "</site_code>";
xmlValues = xmlValues + "<tran_date>" + currDateStr + "</tran_date>";
xmlValues = xmlValues + "</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
tranId = tg.generateTranSeqID(tranSer, keyCol, keyString, conn);
System.out.println("tranId :"+tranId);
}
catch (SQLException ex)
{
System.out.println("Exception ::" +selSql+ ex.getMessage() + ":");
ex.printStackTrace();
throw new ITMException(ex);
}
catch (Exception e)
{
System.out.println("Exception ::" + e.getMessage() + ":");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if (rs != null)
{ {
if ( rs != null ) rs.close();
{ rs = null;
rs.close(); }
rs = null; if (pstmt != null)
} {
if( pstmt != null ) pstmt.close();
{ pstmt = null;
pstmt.close();
pstmt = null;
}
conn.close();
} }
conn = null;
} }
catch( Exception e) catch(Exception e)
{ {
System.out.println("SorderCancel.gfAutoClose() ====>"+e.getMessage()); System.out.println("Exception ::" + e.getMessage() + ":");
e.printStackTrace(); e.printStackTrace();
throw new ITMException(e);
} }
} }
return errCode; System.out.println("@@@@@@@@@@@@@@@@@@@@@@tranId[[[[[[[[[[["+tranId+"]]]]]]]]]]]]]]]");
return tranId;
}
public String checkNull(String inputStr) throws ITMException
{
String retString = "";
try
{
retString = inputStr;
if(retString == null || retString.trim().length() == 0)
{
retString = "";
}
else
{
retString = retString.trim();
}
}
catch(Exception e)
{
System.out.println("Exception in checknull--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
return retString;
} }
} }
\ No newline at end of file
...@@ -54,6 +54,12 @@ alter table sordertype add CR_TERM_SOURCE char(1); ...@@ -54,6 +54,12 @@ alter table sordertype add CR_TERM_SOURCE char(1);
------------ added by ANJALI R on 13-11-2018 [START] ---------------------------------- ------------ added by ANJALI R on 13-11-2018 [START] ----------------------------------
INSERT INTO GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3) INSERT INTO GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
VALUES ('TRAN_TYPE','W_PORCP','FOR','CP','CP','BASE','BASE','BASE','Y',NULL,NULL,NULL); VALUES ('TRAN_TYPE','W_PORCP','FOR','CP','CP',sysdate,'BASE','BASE','Y',NULL,NULL,NULL);
------------ added by ANJALI R on 13-11-2018 [End] ---------------------------------- ------------ added by ANJALI R on 13-11-2018 [End] ----------------------------------
\ No newline at end of file
------------ added by ANJALI R on 14-11-2018 [START] ----------------------------------
update system_events set SERVICE_CODE = 'prcm_default_2',COMP_TYPE = 'JB',COMP_NAME = 'ibase.webitm.ejb.dis.adv.SorderCancel'
where obj_name ='sorder' and EVENT_CODE = 'pre_cancel';
commit;
------------ added by ANJALI R on 14-11-2018 [End] ----------------------------------
\ No newline at end of file
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