Commit 216ccfac authored by cpatil's avatar cpatil

modify for post order process


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@101077 ce508802-f39f-4f6c-b175-0d175dae99d5
parent c9839ae9
......@@ -8,7 +8,6 @@
package ibase.webitm.ejb.dis;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ActionHandlerEJB;
......@@ -33,23 +32,23 @@ import java.util.HashMap;
import org.w3c.dom.Document;
@javax.ejb.Stateless
public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirmLocal,DespatchConfirmRemote{
//Calling GR NO GEneration and Retreiving Despatch Code Here ...
//GP No Generation code...
public String generateGPNO(String xmlValues,String site,String SOrderNo,Connection conn) throws Exception
{
String GPno = "",orderType = "",orderTypes = "",keyString = "",keyCol = "",tranSer = "";
DistCommon dis = new DistCommon();
//SELECTING ORDER TYPE OF SALES ORDER
PreparedStatement pstmt3 = null;
ResultSet rs = null, rs1 = null,rs3 = null;
String sql = "",sql1 = "";
sql1 = "select order_type from sorder where sale_order = ? ";
pstmt3 = conn.prepareStatement(sql1);
pstmt3.setString(1,SOrderNo);
......@@ -57,13 +56,13 @@ public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirm
while(rs3.next())
{
orderType = rs3.getString("order_type");
}
rs3.close();
rs3 = null;
pstmt3.close();
pstmt3 = null;
sql1 = "select key_string, TRAN_ID_COL, REF_SER from transetup where tran_window = 'gpno'";
pstmt3 = conn.prepareStatement(sql1);
rs3 = pstmt3.executeQuery();
......@@ -72,33 +71,33 @@ public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirm
keyString = rs3.getString("key_string");
keyCol = rs3.getString("TRAN_ID_COL");
tranSer = rs3.getString("REF_SER");
}
rs3.close();
rs3 = null;
pstmt3.close();
pstmt3 = null;
//SELECTING ORDER TYPES FROM DISPARM
orderTypes = dis.getDisparams("999999", "GP_NO", conn);
//IF DATA FOUND IN DISPARM THEN ONLY GENERATE GP NO ELSE NOT REQUIRED
//COMPARING VALUES FROM SORDER AND DISPARM IF ORDER TYPE FROM SORDER DOES EXIST
//IN DISPARM THEN GP_NO SHOULD NOT BE GENERATED
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
GPno = tg.generateTranSeqID(tranSer, keyCol, keyString, conn);
System.out.println("GP NO Generated :::::::::"+GPno);
return GPno;
}
//Confirmation through Button ..
//Calling Despatch Confirmation Code Here....
public String confirm(String tranID,String xtraParams, String forcedFlag) throws RemoteException,ITMException
{
System.out.println("----------------confirmed method (Despatch confirm)----through button-----");
......@@ -111,34 +110,34 @@ public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirm
connDriver = new ConnDriver();
conn = connDriver.getConnectDB("Driver");
conn.setAutoCommit(false);
itmDBAccessEJB = new ITMDBAccessEJB();
itmDBAccessEJB = new ITMDBAccessEJB();
retString = confirm( tranID, xtraParams, forcedFlag,conn); //calling and creating connection
if( retString != null && retString.trim().length() > 0 && !retString.contains("VTPOSTDES"))
{
conn.rollback();
return retString;
}
else
{
System.out.println("@@@@@@@@@@@118:::::::::::commiting record........");
conn.commit();
retString = itmDBAccessEJB.getErrorString("","CONFSUCC","");
return retString;
}
if( retString != null && retString.trim().length() > 0 && !retString.contains("VTPOSTDES"))
{
conn.rollback();
return retString;
}
else
{
System.out.println("@@@@@@@@@@@118:::::::::::commiting record........");
conn.commit();
retString = itmDBAccessEJB.getErrorString("","CONFSUCC","");
return retString;
}
}
catch(Exception exception)
{
System.out.println("Exception in [Despatch Confirmation] confirm " + exception.getMessage());
}
finally
{
try
{
if( conn != null && ! conn.isClosed() )
{
conn.close();
......@@ -151,14 +150,14 @@ public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirm
ef.printStackTrace();
throw new ITMException(ef);
}
}
return retString;
}
public String confirm(String tranId,String xtraParams, String forcedFlag ,Connection conn) throws RemoteException,ITMException
{
System.out.println("----------------confirmed method (Despatch confirm)---- with Connection-----");
DistCommon distCommon = new DistCommon();
PreparedStatement pstmt = null, pstmt1 = null ,pstmt3 = null ;
ResultSet rs = null, rs1 = null,rs3 = null;
......@@ -182,11 +181,13 @@ public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirm
Timestamp despDate = null,gpDate = null;
int cnt = 0,editOption = 0,detCount = 0;
boolean isLocal=false;
try
{
itmDBAccessEJB = new ITMDBAccessEJB();
/* if(conn==null)
String autoInvOnDesp="";
try
{
itmDBAccessEJB = new ITMDBAccessEJB();
autoInvOnDesp = distCommon.getDisparams("999999", "AUTO_INV_ON_DESPATCH", conn);
/* if(conn==null)
{
connDriver = new ConnDriver();
conn = connDriver.getConnectDB("DriverITM");
......@@ -194,102 +195,102 @@ public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirm
conn.setAutoCommit(false);
isLocal=true;
}*/
sql = "select confirmed from despatch where desp_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
confirm = rs.getString("confirmed");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(confirm != null && "Y".equalsIgnoreCase(confirm))
{
System.out.println("The Selected transaction is already confirmed");
errString = itmDBAccessEJB.getErrorString("","VTMCONF1","");
return errString;
}
else
{
sql = "select status,desp_date,available_yn,desp_id,site_code,sord_no,cust_code__dlv,cust_code,gp_date,gp_ser,gp_no "
+ " from despatch where desp_id = ? ";// QUERY OF SRD TO BE COPIED...........
sql = "select confirmed from despatch where desp_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
while ( rs.next() )
if(rs.next())
{
statusDesp = checkNull(rs.getString("status"));
// tranSer = rs.getString("tran_ser");
//despDate = new Timestamp(rs.getDate("tran_Date").getTime());
despDate = rs.getTimestamp("desp_date");
availableYN = checkNull(rs.getString("available_yn"));
tranid = checkNull(rs.getString("desp_id"));
siteCode = checkNull(rs.getString("site_code"));
sordNo = checkNull(rs.getString("sord_no"));
custCode = checkNull(rs.getString("cust_code"));
custCodeDlv = checkNull(rs.getString("cust_code__dlv"));
gpDate = rs.getTimestamp("gp_date");
gpSer = checkNull(rs.getString("gp_ser"));
gpNo = checkNull(rs.getString("gp_no"));
confirm = rs.getString("confirmed");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
/**************************For despatch GP NO Generation********************************************************************/
sql1 = "select site_code__exc "
+" from site where site_code = ? ";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1,siteCode);
rs1 = pstmt1.executeQuery();
while(rs1.next())
pstmt.close();
pstmt = null;
if(confirm != null && "Y".equalsIgnoreCase(confirm))
{
siteCodeExc = checkNull(rs1.getString("site_code__exc"));
System.out.println("The Selected transaction is already confirmed");
errString = itmDBAccessEJB.getErrorString("","VTMCONF1","");
return errString;
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
/* genKey.put("site_code",siteCodeExc);
else
{
sql = "select status,desp_date,available_yn,desp_id,site_code,sord_no,cust_code__dlv,cust_code,gp_date,gp_ser,gp_no "
+ " from despatch where desp_id = ? ";// QUERY OF SRD TO BE COPIED...........
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
while ( rs.next() )
{
statusDesp = checkNull(rs.getString("status"));
// tranSer = rs.getString("tran_ser");
//despDate = new Timestamp(rs.getDate("tran_Date").getTime());
despDate = rs.getTimestamp("desp_date");
availableYN = checkNull(rs.getString("available_yn"));
tranid = checkNull(rs.getString("desp_id"));
siteCode = checkNull(rs.getString("site_code"));
sordNo = checkNull(rs.getString("sord_no"));
custCode = checkNull(rs.getString("cust_code"));
custCodeDlv = checkNull(rs.getString("cust_code__dlv"));
gpDate = rs.getTimestamp("gp_date");
gpSer = checkNull(rs.getString("gp_ser"));
gpNo = checkNull(rs.getString("gp_no"));
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
/**************************For despatch GP NO Generation********************************************************************/
sql1 = "select site_code__exc "
+" from site where site_code = ? ";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1,siteCode);
rs1 = pstmt1.executeQuery();
while(rs1.next())
{
siteCodeExc = checkNull(rs1.getString("site_code__exc"));
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
/* genKey.put("site_code",siteCodeExc);
genKey.put("desp_date",despDate);
genKey.put("sord_no",sordNo);
genKey.put("gp_date",gpDate);
genKey.put("gp_ser",gpSer);*/
String xmlValues = "";
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id/>";
xmlValues = xmlValues + "<site_code>" + siteCodeExc + "</site_code>";
xmlValues = xmlValues + "<desp_date>"+ despDate + "</desp_date>";
xmlValues = xmlValues + "<gp_ser>"+ gpSer + "</gp_ser>";
xmlValues = xmlValues + "</Detail1></Root>";
varValue= distCommon.getDisparams("999999", "EXC_SITE_NO", conn);
System.out.println("varValue===="+varValue);
/*sql1 = "select var_value from disparm where prd_code = '999999' and var_name = 'EXC_SITE_NO' ";
String xmlValues = "";
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id/>";
xmlValues = xmlValues + "<site_code>" + siteCodeExc + "</site_code>";
xmlValues = xmlValues + "<desp_date>"+ despDate + "</desp_date>";
xmlValues = xmlValues + "<gp_ser>"+ gpSer + "</gp_ser>";
xmlValues = xmlValues + "</Detail1></Root>";
varValue= distCommon.getDisparams("999999", "EXC_SITE_NO", conn);
System.out.println("varValue===="+varValue);
/*sql1 = "select var_value from disparm where prd_code = '999999' and var_name = 'EXC_SITE_NO' ";
pstmt1 = conn.prepareStatement(sql1);
rs1 = pstmt1.executeQuery();
while(rs1.next())
{
......@@ -299,416 +300,416 @@ public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirm
rs1 = null;
pstmt1.close();
pstmt1 = null;*/
if( varValue.contains(siteCodeExc))
{
gpNo = generateGPNO(xmlValues,siteCodeExc+gpSer,sordNo,conn);//Code need to be migrated
}
else{
gpNo = generateGPNO(xmlValues,siteCodeExc,sordNo,conn);//Code need to be migrated
}
sql = "update despatch set gp_no = ? , gp_date = ? "
+" where desp_id = ? ";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1,gpNo);
pstmt1.setTimestamp(2,gpDate);
pstmt1.setString(3,tranId);
int cnt2 = pstmt1.executeUpdate();
System.out.println("Count value after updating despatch...."+cnt2);
pstmt1.close();
pstmt1 = null;
//despatch_edit.setitem(ll_ctr,"confirmed", 'Y') //Ruchira 21/09/2k5 taken out of abovve if ... endif statement.
// CHECKING WHETHER PURCHASE IS INTEGRATED WITH SALES OR NOT
varValuePurInteg = checkNull(distCommon.getDisparams("999999","PUR_INTEGRATED",conn));
sql1 = "select edi_option from transetup "
+ "where tran_window = 'w_despatch' ";
pstmt1 = conn.prepareStatement(sql1);
rs1 = pstmt1.executeQuery();
while(rs1.next())
{
editOption = rs1.getInt("edi_option");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
/*despatch_edit.setfilter("desp_id = '" + ls_desp_id + "'")
if( varValue.contains(siteCodeExc))
{
gpNo = generateGPNO(xmlValues,siteCodeExc+gpSer,sordNo,conn);//Code need to be migrated
}
else{
gpNo = generateGPNO(xmlValues,siteCodeExc,sordNo,conn);//Code need to be migrated
}
sql = "update despatch set gp_no = ? , gp_date = ? "
+" where desp_id = ? ";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1,gpNo);
pstmt1.setTimestamp(2,gpDate);
pstmt1.setString(3,tranId);
int cnt2 = pstmt1.executeUpdate();
System.out.println("Count value after updating despatch...."+cnt2);
pstmt1.close();
pstmt1 = null;
//despatch_edit.setitem(ll_ctr,"confirmed", 'Y') //Ruchira 21/09/2k5 taken out of abovve if ... endif statement.
// CHECKING WHETHER PURCHASE IS INTEGRATED WITH SALES OR NOT
varValuePurInteg = checkNull(distCommon.getDisparams("999999","PUR_INTEGRATED",conn));
sql1 = "select edi_option from transetup "
+ "where tran_window = 'w_despatch' ";
pstmt1 = conn.prepareStatement(sql1);
rs1 = pstmt1.executeQuery();
while(rs1.next())
{
editOption = rs1.getInt("edi_option");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
/*despatch_edit.setfilter("desp_id = '" + ls_desp_id + "'")
despatch_edit.filter()
desp_det.setfilter("desp_id = '" + ls_desp_id + "'")
desp_det.filter()*/
if(varValuePurInteg == "Y" || editOption > 0)
{
//channelPartner and dis link retrieved earlier
if(channelPartner == null)
{
sql1 = "select channel_partner, dis_link from customer "
+" where cust_code = ? ";
pstmt1 = conn.prepareStatement(sql1);
rs1 = pstmt1.executeQuery();
while(rs1.next())
{
channelPartner = checkNull(rs1.getString("channel_partner"));
disLink = checkNull(rs1.getString("dis_link"));
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
}
//Took code from Porder amd conf
if(channelPartner == "Y" || editOption > 0)
{
if(disLink == "E" || editOption > 0 )
{
if(editOption == 2)
if(varValuePurInteg == "Y" || editOption > 0)
{
CreateRCPXML createRCPXML = new CreateRCPXML("w_despatch", "tran_id");
dataStr = createRCPXML.getTranXML(tranId, conn);
System.out.println("dataStr =[ " + dataStr + "]");
Document ediDataDom = genericUtility.parseString(dataStr);
E12CreateBatchLoadEjb e12CreateBatchLoad = new E12CreateBatchLoadEjb();
errString = e12CreateBatchLoad.createBatchLoad(ediDataDom, "w_despatch", ""+editOption , xtraParams, conn);
createRCPXML = null;
e12CreateBatchLoad = null;
//channelPartner and dis link retrieved earlier
if(channelPartner == null || channelPartner.trim().length() == 0 )
{
sql1 = "select channel_partner, dis_link from customer "
+" where cust_code = ? ";
pstmt1 = conn.prepareStatement(sql1);
if (errString != null && "SUCCESS".equals(errString))
{
System.out.println("retString from batchload = [" + errString + "]");
}
}
}
/*if (ls_dis_link = 'A' or ls_dis_link = 'S' or ls_dis_link = 'C') and ls_var_value = 'Y' then //prince --17-11-06
rs1 = pstmt1.executeQuery();
while(rs1.next())
{
channelPartner = checkNull(rs1.getString("channel_partner"));
disLink = checkNull(rs1.getString("dis_link"));
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
}
//Took code from Porder amd conf
if(channelPartner == "Y" || editOption > 0)
{
if(disLink == "E" || editOption > 0 )
{
if(editOption == 2)
{
CreateRCPXML createRCPXML = new CreateRCPXML("w_despatch", "tran_id");
dataStr = createRCPXML.getTranXML(tranId, conn);
System.out.println("dataStr =[ " + dataStr + "]");
Document ediDataDom = genericUtility.parseString(dataStr);
E12CreateBatchLoadEjb e12CreateBatchLoad = new E12CreateBatchLoadEjb();
errString = e12CreateBatchLoad.createBatchLoad(ediDataDom, "w_despatch", ""+editOption , xtraParams, conn);
createRCPXML = null;
e12CreateBatchLoad = null;
if (errString != null && "SUCCESS".equals(errString))
{
System.out.println("retString from batchload = [" + errString + "]");
}
}
}
/*if (ls_dis_link = 'A' or ls_dis_link = 'S' or ls_dis_link = 'C') and ls_var_value = 'Y' then //prince --17-11-06
ls_hdr = despatch_edit.describe("datawindow.data")
ls_det = desp_det.describe("datawindow.data")
//sqlca_cp,ls_dis_link argument added by jasmina 18/06/09-DI78SUN061
merrcode = nvo_porcp.gbf_create_porcp(ls_hdr,ls_det,sqlca_cp,ls_dis_link)
if len(trim(merrcode)) > 0 then goto errfound
end if*/
}
}
//Despatch confirm code ...
// merrcode = gbf_confirm_despatch(despatch_edit.describe("datawindow.data"), desp_det.describe("datawindow.data"),1)
exportOrderType = checkNull(distCommon.getDisparams("999999","EXPORT_DESPATCH_ORDER_TYPE",conn));//gf_getenv_dis('999999',"EXPORT_DESPATCH_ORDER_TYPE")
if(exportOrderType != "")
{
bondTaxGroup = checkNull(distCommon.getDisparams("999999","B17_BOND_TAX_GROUP",conn));
}
sql3 = "select sord_no,line_no,line_no__sord,exp_lev,item_code__ord,item_code,lot_no,lot_sl," +
"loc_code,unit__std,quantity__stduom,quantity,rate__stduom,no_art,lock_code " +
"from despatchdet where desp_id = ?";
pstmt3 = conn.prepareStatement(sql3);
pstmt3.setString(1,tranId);
rs3 = pstmt3.executeQuery();
while ( rs3.next() )
{
if(statusDesp != "X") {
lineNo = checkNull(rs3.getString("line_no"));
lineNoSord = checkNull(rs3.getString("line_no__sord"));
expLev = checkNull(rs3.getString("exp_lev"));
itemCodeOrd = checkNull(rs3.getString("item_code__ord"));
itemCode = checkNull(rs3.getString("item_code"));
lotNo = checkNull(rs3.getString("lot_no"));
lotSl = checkNull(rs3.getString("lot_sl"));
locCode = checkNull(rs3.getString("loc_code"));
unitStd = checkNull(rs3.getString("unit__std"));
quantityStduom = rs3.getDouble("quantity__stduom");
quantity = rs3.getDouble("quantity");
rateStduom = rs3.getDouble("rate__stduom");
noArt = checkNull(rs3.getString("no_art"));
lockCode = checkNull(rs3.getString("lock_code"));
disparmVal = checkNull(distCommon.getDisparams("999999","QUARNTINE_LOCKCODE",conn));//gf_getenv_dis('999999','QUARNTINE_LOCKCODE')
sql = " Select hold_qty as lc_hold_qty "
+" From stock Where item_code = ? and site_code = ? and loc_code = ? and lot_no = ? and lot_sl = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
pstmt.setString(2,siteCode);
pstmt.setString(3,locCode);
pstmt.setString(4,lotNo);
pstmt.setString(5,lotSl);
rs = pstmt.executeQuery();
while(rs.next())
{
hldQty = rs.getDouble("lc_hold_qty");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(hldQty > 0.0)
{
sql = "select count(*) as ll_cnt from inv_hold a, inv_hold_det b , inv_hold_rel_trace c"
+" where a.tran_id = b.tran_id and b.tran_id = c.ref_no and c.item_code = ? and c.site_code = ? and c.loc_code = ?"
+" and c.lot_no = ? and c.lot_sl = ? and b.lot_no = ?"
+" and b.lot_sl = ? and (b.line_no_sl = 0 or b.line_no_sl is null)"
+" and a.confirmed='Y' and b.hold_status ='H' and a.lock_code = ? ";
}
//Despatch confirm code ...
// merrcode = gbf_confirm_despatch(despatch_edit.describe("datawindow.data"), desp_det.describe("datawindow.data"),1)
exportOrderType = checkNull(distCommon.getDisparams("999999","EXPORT_DESPATCH_ORDER_TYPE",conn));//gf_getenv_dis('999999',"EXPORT_DESPATCH_ORDER_TYPE")
if(exportOrderType != "")
{
bondTaxGroup = checkNull(distCommon.getDisparams("999999","B17_BOND_TAX_GROUP",conn));
}
sql3 = "select sord_no,line_no,line_no__sord,exp_lev,item_code__ord,item_code,lot_no,lot_sl," +
"loc_code,unit__std,quantity__stduom,quantity,rate__stduom,no_art,lock_code " +
"from despatchdet where desp_id = ?";
pstmt3 = conn.prepareStatement(sql3);
pstmt3.setString(1,tranId);
rs3 = pstmt3.executeQuery();
while ( rs3.next() )
{
if(statusDesp != "X") {
lineNo = checkNull(rs3.getString("line_no"));
lineNoSord = checkNull(rs3.getString("line_no__sord"));
expLev = checkNull(rs3.getString("exp_lev"));
itemCodeOrd = checkNull(rs3.getString("item_code__ord"));
itemCode = checkNull(rs3.getString("item_code"));
lotNo = checkNull(rs3.getString("lot_no"));
lotSl = checkNull(rs3.getString("lot_sl"));
locCode = checkNull(rs3.getString("loc_code"));
unitStd = checkNull(rs3.getString("unit__std"));
quantityStduom = rs3.getDouble("quantity__stduom");
quantity = rs3.getDouble("quantity");
rateStduom = rs3.getDouble("rate__stduom");
noArt = checkNull(rs3.getString("no_art"));
lockCode = checkNull(rs3.getString("lock_code"));
disparmVal = checkNull(distCommon.getDisparams("999999","QUARNTINE_LOCKCODE",conn));//gf_getenv_dis('999999','QUARNTINE_LOCKCODE')
sql = " Select hold_qty as lc_hold_qty "
+" From stock Where item_code = ? and site_code = ? and loc_code = ? and lot_no = ? and lot_sl = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
pstmt.setString(2,siteCode);
pstmt.setString(3,locCode);
pstmt.setString(4,lotNo);
pstmt.setString(5,lotSl);
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
pstmt.setString(8,disparmVal);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt = rs.getInt("ll_cnt");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(cnt > 0)
{
lockCode = disparmVal;
}
}//end of hld condn...
sql = "select channel_partner,dis_link,site_code__ch from site_customer where cust_code = ? and site_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,custCodeDlv);
pstmt.setString(2,siteCode);
rs = pstmt.executeQuery();
while(rs.next())
{
channelPartner = checkNull(rs.getString("channel_partner"));
disLink = checkNull(rs.getString("dis_link"));
siteCodeDlv = checkNull(rs.getString("site_code__ch"));
if(channelPartner == null)//not found in above query
{
sql1 = "select channel_partner,dis_link, site_code from customer where cust_code = ? ";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1,custCodeDlv);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
channelPartner = checkNull(rs1.getString("channel_partner"));
disLink = checkNull(rs1.getString("dis_link"));
siteCodeDlv = checkNull(rs1.getString("site_code__ch"));
if(channelPartner == null)
{
channelPartner = "N";
}
}
pstmt1.close();
pstmt1 = null;
rs1.close();
rs1 = null;
}
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(channelPartner == "N")
{
sql = "select lock_level from inv_lock where lock_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,lockCode);
rs = pstmt.executeQuery();
while(rs.next())
{
lockLevel = checkNull(rs.getString("lock_level"));
hldQty = rs.getDouble("lc_hold_qty");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(lockLevel == "I")
if(hldQty > 0.0)
{
sql = "select hold_flag from item where item_code = ? ";
sql = "select count(*) as ll_cnt from inv_hold a, inv_hold_det b , inv_hold_rel_trace c"
+" where a.tran_id = b.tran_id and b.tran_id = c.ref_no and c.item_code = ? and c.site_code = ? and c.loc_code = ?"
+" and c.lot_no = ? and c.lot_sl = ? and b.lot_no = ?"
+" and b.lot_sl = ? and (b.line_no_sl = 0 or b.line_no_sl is null)"
+" and a.confirmed='Y' and b.hold_status ='H' and a.lock_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
pstmt.setString(2,siteCode);
pstmt.setString(3,locCode);
pstmt.setString(4,lotNo);
pstmt.setString(5,lotSl);
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
pstmt.setString(8,disparmVal);
rs = pstmt.executeQuery();
while(rs.next())
if(rs.next())
{
holdFlag = checkNull(rs.getString("hold_flag"));
cnt = rs.getInt("ll_cnt");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(holdFlag == "Y")
if(cnt > 0)
{
errString = itmDBAccessEJB.getErrorString("","VTCODE1","","",conn);
return errString;
lockCode = disparmVal;
}
}//end of hld condn...
sql = "select channel_partner,dis_link,site_code__ch from site_customer where cust_code = ? and site_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,custCodeDlv);
pstmt.setString(2,siteCode);
rs = pstmt.executeQuery();
while(rs.next())
{
channelPartner = checkNull(rs.getString("channel_partner"));
disLink = checkNull(rs.getString("dis_link"));
siteCodeDlv = checkNull(rs.getString("site_code__ch"));
if(channelPartner == null)//not found in above query
{
sql1 = "select channel_partner,dis_link, site_code from customer where cust_code = ? ";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1,custCodeDlv);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
channelPartner = checkNull(rs1.getString("channel_partner"));
disLink = checkNull(rs1.getString("dis_link"));
siteCodeDlv = checkNull(rs1.getString("site_code__ch"));
if(channelPartner == null)
{
channelPartner = "N";
}
}
pstmt1.close();
pstmt1 = null;
rs1.close();
rs1 = null;
}
}
else if(lockLevel == "L")
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(channelPartner == "N")
{
sql = "select hold_flag from item_lot_info where item_code = ? and lot_no = ?";
sql = "select lock_level from inv_lock where lock_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
pstmt.setString(2,lotNo);
pstmt.setString(1,lockCode);
rs = pstmt.executeQuery();
while(rs.next())
{
holdFlagNew = checkNull(rs.getString("hold_flag"));
lockLevel = checkNull(rs.getString("lock_level"));
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(holdFlagNew == "Y")
{
errString = itmDBAccessEJB.getErrorString("","VTCODE2","","",conn);
return errString ;
}
}
}
sql = " select inv_stat from location where loc_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,locCode);
rs = pstmt.executeQuery();
while(rs.next())
{
invStat = rs.getString("inv_stat");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
sql = " select count(*) as count1 from sordalloc "
+" where sale_order = ? "
+" and line_no = ? "
+" and exp_lev = ? "
+" and item_code__ord = ? "
+" and item_code = ? "
+" and lot_no = ? "
+" and lot_sl = ? "
+" and loc_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
pstmt.setString(2,lineNo);
pstmt.setString(3,expLev);
pstmt.setString(4,itemCodeOrd);
pstmt.setString(5,itemCode);
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
pstmt.setString(8,locCode);
rs = pstmt.executeQuery();
while(rs.next())
{
cnt = rs.getInt("count1");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(cnt == 0)
{
isAllocated = "N";
}
else{
isAllocated = "Y";
}
if(isAllocated == "Y")
{
sql ="select qty_alloc from sordalloc "
+" where sale_order = ? and line_no = ? and exp_lev = ? and item_code__ord = ? and item_code = ? "
+" and lot_no = ? and lot_sl = ? and loc_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
pstmt.setString(2,lineNo);
pstmt.setString(3,expLev);
pstmt.setString(4,itemCodeOrd);
pstmt.setString(5,itemCode);
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
pstmt.setString(8,locCode);
rs = pstmt.executeQuery();
if(rs.next())
{
qtyAlloc = rs.getDouble("qty_alloc");
}
pstmt.close();
if(lockLevel == "I")
{
sql = "select hold_flag from item where item_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
rs = pstmt.executeQuery();
while(rs.next())
{
holdFlag = checkNull(rs.getString("hold_flag"));
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(holdFlag == "Y")
{
errString = itmDBAccessEJB.getErrorString("","VTCODE1","","",conn);
return errString;
}
}
else if(lockLevel == "L")
{
sql = "select hold_flag from item_lot_info where item_code = ? and lot_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
pstmt.setString(2,lotNo);
rs = pstmt.executeQuery();
while(rs.next())
{
holdFlagNew = checkNull(rs.getString("hold_flag"));
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(holdFlagNew == "Y")
{
errString = itmDBAccessEJB.getErrorString("","VTCODE2","","",conn);
return errString ;
}
}
}
sql = " select inv_stat from location where loc_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,locCode);
rs = pstmt.executeQuery();
while(rs.next())
{
invStat = rs.getString("inv_stat");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if((qtyAlloc - quantityStduom) <= 0.0)
{
sql =" delete from sordalloc where sale_order = ? and line_no = ? and exp_lev = ? and item_code__ord = ? and item_code = ?"
+" and lot_no = ? and lot_sl = ? and loc_code = ? ";
sql = " select count(*) as count1 from sordalloc "
+" where sale_order = ? "
+" and line_no = ? "
+" and exp_lev = ? "
+" and item_code__ord = ? "
+" and item_code = ? "
+" and lot_no = ? "
+" and lot_sl = ? "
+" and loc_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
pstmt.setString(2,lineNo);
pstmt.setString(3,expLev);
pstmt.setString(4,itemCodeOrd);
pstmt.setString(5,itemCode);
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
pstmt.setString(8,locCode);
rs = pstmt.executeQuery();
while(rs.next())
{
cnt = rs.getInt("count1");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(cnt == 0)
{
isAllocated = "N";
}
else{
isAllocated = "Y";
}
if(isAllocated == "Y")
{
sql ="select qty_alloc from sordalloc "
+" where sale_order = ? and line_no = ? and exp_lev = ? and item_code__ord = ? and item_code = ? "
+" and lot_no = ? and lot_sl = ? and loc_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
pstmt.setString(2,lineNo);
pstmt.setString(3,expLev);
pstmt.setString(4,itemCodeOrd);
pstmt.setString(5,itemCode);
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
pstmt.setString(8,locCode);
rs = pstmt.executeQuery();
if(rs.next())
{
qtyAlloc = rs.getDouble("qty_alloc");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if((qtyAlloc - quantityStduom) <= 0.0)
{
sql =" delete from sordalloc where sale_order = ? and line_no = ? and exp_lev = ? and item_code__ord = ? and item_code = ?"
+" and lot_no = ? and lot_sl = ? and loc_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
pstmt.setString(2,lineNo);
......@@ -718,636 +719,678 @@ public class DespatchConfirm extends ActionHandlerEJB implements DespatchConfirm
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
pstmt.setString(8,locCode);
pstmt.executeQuery();
pstmt.close();
pstmt = null;
}
else{
sql = "Update sordalloc set status = 'D', qty_alloc = qty_alloc - ? "
+" where sale_order = ? and line_no = ? and exp_lev = ? and item_code__ord = ? and item_code = ? "
+" and lot_no = ? and lot_sl = ? and loc_code = ? ";
}
else{
sql = "Update sordalloc set status = 'D', qty_alloc = qty_alloc - ? "
+" where sale_order = ? and line_no = ? and exp_lev = ? and item_code__ord = ? and item_code = ? "
+" and lot_no = ? and lot_sl = ? and loc_code = ? ";
pstmt = conn.prepareStatement(sql);
//pstmt.setDouble(1,qtyAlloc - quantityStduom);
pstmt.setDouble(1,quantityStduom);
pstmt.setString(2,sordNo);
pstmt.setString(3,lineNo);
pstmt.setString(4,expLev);
pstmt.setString(5,itemCodeOrd);
pstmt.setString(6,itemCode);
pstmt.setString(7,lotNo);
pstmt.setString(8,lotSl);
pstmt.setString(9,locCode);
pstmt.executeQuery();
pstmt.close();
pstmt = null;
}
}
sql = " update sorditem set status = 'D', qty_alloc = qty_alloc - ? , " +
" qty_desp = (case when qty_desp is null then 0 else qty_desp end ) + ? , "+
" date_desp = ? where sale_order = ? and line_no = ? and exp_lev = ? ";
pstmt = conn.prepareStatement(sql);
//pstmt.setDouble(1,qtyAlloc - quantityStduom);
pstmt.setDouble(1,quantityStduom);
pstmt.setString(2,sordNo);
pstmt.setString(3,lineNo);
pstmt.setString(4,expLev);
pstmt.setString(5,itemCodeOrd);
pstmt.setString(6,itemCode);
pstmt.setString(7,lotNo);
pstmt.setString(8,lotSl);
pstmt.setString(9,locCode);
pstmt.executeQuery();
// pstmt.setDouble(1,quantity);
// pstmt.setDouble(2,qtyAlloc - quantityStduom);
pstmt.setDouble(1, quantityStduom);
pstmt.setDouble(2,quantity);
pstmt.setTimestamp(3,despDate);
pstmt.setString(4,sordNo);
pstmt.setString(5,lineNo);
pstmt.setString(6,expLev);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
}
sql = " update sorditem set status = 'D', qty_alloc = qty_alloc - ? , " +
" qty_desp = (case when qty_desp is null then 0 else qty_desp end ) + ? , "+
" date_desp = ? where sale_order = ? and line_no = ? and exp_lev = ? ";
pstmt = conn.prepareStatement(sql);
// pstmt.setDouble(1,quantity);
// pstmt.setDouble(2,qtyAlloc - quantityStduom);
pstmt.setDouble(1, quantityStduom);
pstmt.setDouble(2,quantity);
pstmt.setTimestamp(3,despDate);
pstmt.setString(4,sordNo);
pstmt.setString(5,lineNo);
pstmt.setString(6,expLev);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
// CALLING FUNCTION FOR UPDATING STOCK AFTER DESPATCH PICKING GRADE,ACCT_CODE__CR AND CCTR_CODE__CR FROM STOCK
String ordType = "",itemSer = "",acctCodeDr = "",cctrCodeDr = "",acctCodeCr = "",cctrCodeCr = "",invLock = "",holdTranId = "";
sql = " select grade ,acct_code__inv,cctr_code__inv from stock "
+" where site_code = ? and item_code = ? and loc_code = ? and lot_no = ? and lot_sl = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setString(2,itemCode);
pstmt.setString(3,locCode);
pstmt.setString(4,lotNo);
pstmt.setString(5,lotSl);
rs = pstmt.executeQuery();
while(rs.next())
{
grade = rs.getString("grade");
acctCodeCr = rs.getString("acct_code__inv");
cctrCodeCr = rs.getString("cctr_code__inv");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
// PICKING ORDER TYPE, ITEM SER FROM SORDER
sql = " select order_type, item_ser from sorder "
+" where sale_order = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
rs = pstmt.executeQuery();
while(rs.next())
{
ordType = rs.getString("order_type");
itemSer = rs.getString("item_ser");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
//PICKING ACCT_CODE AND CCTR_CODE COGS. IF CCTR CODE COGS IS BLANK THEN REPLACE WITH CREDIT CCTR CODE AS PER SHIRI
sql = " select acct_code__cogs, cctr_code__cogs from item_acct_detr where item_ser = ? and grp_code = ' '"
+" and item_code = ' ' and tran_type = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemSer);
pstmt.setString(2,ordType);
rs = pstmt.executeQuery();
while(rs.next())
{
acctCodeDr = rs.getString("acct_code__cogs");
cctrCodeDr = rs.getString("cctr_code__cogs");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(cctrCodeDr == null || cctrCodeDr.trim().length() == 0)
{
cctrCodeDr = cctrCodeCr;
}
updDesp.put("hold_lock", "N");
updDesp.put("tran_date",despDate);
updDesp.put("tran_ser","S-DSP");
updDesp.put("tran_id", tranId);
updDesp.put("tran_type", "ID");
updDesp.put("line_no", lineNo);
updDesp.put("sorder_no",sordNo);
updDesp.put("item_code", itemCode);
updDesp.put("site_code", siteCode);
updDesp.put("loc_code", locCode);
updDesp.put("unit", unitStd);
updDesp.put("lot_no", lotNo);
updDesp.put("lot_sl", lotSl);
updDesp.put("quantity", quantity);
updDesp.put("qty_stduom", quantityStduom);
updDesp.put("rate", rateStduom);
updDesp.put("item_ser",itemSer);
updDesp.put("inv_stat", invStat);
updDesp.put("grade", grade);
updDesp.put("acct_code__dr", acctCodeDr);
updDesp.put("cctr_code__dr", cctrCodeDr);
updDesp.put("acct_code__cr",acctCodeCr);
updDesp.put("cctr_code__cr", cctrCodeCr);
updDesp.put("gross_weight", grossWeight);
updDesp.put("tare_weight", tareWeight);
updDesp.put("net_weight", netweight);
updDesp.put("no_art",noArt);
if(hldQty > 0.0)
{
sql = " Select a.lock_code ,a.tran_id "
+ " From inv_hold a, inv_hold_det b , inv_hold_rel_trace c"
+ " Where a.tran_id = b.tran_id "
+ " And b.tran_id = c.ref_no "
+ " And c.item_code = ? "
+ " And c.site_code = ? "
+ " And c.loc_code = ? "
+ " And c.lot_no = ? "
+ " And c.lot_sl = ? "
+ " And b.lot_no = ? "
+ " And b.lot_sl = ? "
+ " And (b.line_no_sl = 0 or b.line_no_sl is null) "
+ " And a.confirmed='Y' "
+ " And b.hold_status ='H' ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
pstmt.setString(2,siteCode);
pstmt.setString(3,locCode);
pstmt.setString(4,lotNo);
pstmt.setString(5,lotSl);
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
rs = pstmt.executeQuery();
while(rs.next())
{
invLock = rs.getString("lock_code");
holdTranId = rs.getString("tran_id");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(invLock != null && invLock.trim().length() > 0 && availableYN == "N")
{
if(invLock.equals(disparmVal))
{
updDesp.put("hold_lock", "Y");
}
else
{
updDesp.put("hold_lock", "N");
}
}
if("Y".equalsIgnoreCase(updDesp.get("hold_lock")==null?"":updDesp.get("hold_lock").toString()))
{
updDesp.put("hold_qty", quantityStduom);
}
}
StockUpdate stckupd = new StockUpdate();
errString = stckupd.updateStock(updDesp, xtraParams, conn);
//CALLING UPDATE OF STOCK FOR TRANSIT ENTRY
if(channelPartner == "Y" && disLink == "E")
{
sql = "select var_value from disparm where prd_code='999999' and var_name='TRANSIT_LOC'";
pstmt = conn.prepareStatement(sql);
// CALLING FUNCTION FOR UPDATING STOCK AFTER DESPATCH PICKING GRADE,ACCT_CODE__CR AND CCTR_CODE__CR FROM STOCK
String ordType = "",itemSer = "",acctCodeDr = "",cctrCodeDr = "",acctCodeCr = "",cctrCodeCr = "",invLock = "",holdTranId = "";
sql = " select grade ,acct_code__inv,cctr_code__inv from stock "
+" where site_code = ? and item_code = ? and loc_code = ? and lot_no = ? and lot_sl = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setString(2,itemCode);
pstmt.setString(3,locCode);
pstmt.setString(4,lotNo);
pstmt.setString(5,lotSl);
rs = pstmt.executeQuery();
while(rs.next())
{
grade = rs.getString("grade");
acctCodeCr = rs.getString("acct_code__inv");
cctrCodeCr = rs.getString("cctr_code__inv");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
// PICKING ORDER TYPE, ITEM SER FROM SORDER
sql = " select order_type, item_ser from sorder "
+" where sale_order = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
rs = pstmt.executeQuery();
while(rs.next())
{
ordType = rs.getString("order_type");
itemSer = rs.getString("item_ser");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
//PICKING ACCT_CODE AND CCTR_CODE COGS. IF CCTR CODE COGS IS BLANK THEN REPLACE WITH CREDIT CCTR CODE AS PER SHIRI
sql = " select acct_code__cogs, cctr_code__cogs from item_acct_detr where item_ser = ? and grp_code = ' '"
+" and item_code = ' ' and tran_type = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemSer);
pstmt.setString(2,ordType);
rs = pstmt.executeQuery();
while(rs.next())
{
varValueTransit = rs.getString("var_value");//location code
acctCodeDr = rs.getString("acct_code__cogs");
cctrCodeDr = rs.getString("cctr_code__cogs");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
sql = "select inv_stat from location where loc_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,varValueTransit);
if(cctrCodeDr == null || cctrCodeDr.trim().length() == 0)
{
cctrCodeDr = cctrCodeCr;
}
updDesp.put("hold_lock", "N");
updDesp.put("tran_date",despDate);
updDesp.put("tran_ser","S-DSP");
updDesp.put("tran_id", tranId);
updDesp.put("tran_type", "ID");
updDesp.put("line_no", lineNo);
updDesp.put("sorder_no",sordNo);
updDesp.put("item_code", itemCode);
updDesp.put("site_code", siteCode);
updDesp.put("loc_code", locCode);
updDesp.put("unit", unitStd);
updDesp.put("lot_no", lotNo);
updDesp.put("lot_sl", lotSl);
updDesp.put("quantity", quantity);
updDesp.put("qty_stduom", quantityStduom);
updDesp.put("rate", rateStduom);
updDesp.put("item_ser",itemSer);
updDesp.put("inv_stat", invStat);
updDesp.put("grade", grade);
updDesp.put("acct_code__dr", acctCodeDr);
updDesp.put("cctr_code__dr", cctrCodeDr);
updDesp.put("acct_code__cr",acctCodeCr);
updDesp.put("cctr_code__cr", cctrCodeCr);
updDesp.put("gross_weight", grossWeight);
updDesp.put("tare_weight", tareWeight);
updDesp.put("net_weight", netweight);
updDesp.put("no_art",noArt);
if(hldQty > 0.0)
{
sql = " Select a.lock_code ,a.tran_id "
+ " From inv_hold a, inv_hold_det b , inv_hold_rel_trace c"
+ " Where a.tran_id = b.tran_id "
+ " And b.tran_id = c.ref_no "
+ " And c.item_code = ? "
+ " And c.site_code = ? "
+ " And c.loc_code = ? "
+ " And c.lot_no = ? "
+ " And c.lot_sl = ? "
+ " And b.lot_no = ? "
+ " And b.lot_sl = ? "
+ " And (b.line_no_sl = 0 or b.line_no_sl is null) "
+ " And a.confirmed='Y' "
+ " And b.hold_status ='H' ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
pstmt.setString(2,siteCode);
pstmt.setString(3,locCode);
pstmt.setString(4,lotNo);
pstmt.setString(5,lotSl);
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
rs = pstmt.executeQuery();
while(rs.next())
{
invLock = rs.getString("lock_code");
holdTranId = rs.getString("tran_id");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(invLock != null && invLock.trim().length() > 0 && availableYN == "N")
{
if(invLock.equals(disparmVal))
{
updDesp.put("hold_lock", "Y");
}
else
{
updDesp.put("hold_lock", "N");
}
}
if("Y".equalsIgnoreCase(updDesp.get("hold_lock")==null?"":updDesp.get("hold_lock").toString()))
{
updDesp.put("hold_qty", quantityStduom);
}
}
StockUpdate stckupd = new StockUpdate();
errString = stckupd.updateStock(updDesp, xtraParams, conn);
//CALLING UPDATE OF STOCK FOR TRANSIT ENTRY
if(channelPartner == "Y" && disLink == "E")
{
sql = "select var_value from disparm where prd_code='999999' and var_name='TRANSIT_LOC'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next())
{
varValueTransit = rs.getString("var_value");//location code
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
sql = "select inv_stat from location where loc_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,varValueTransit);
rs = pstmt.executeQuery();
while(rs.next())
{
invStatTransit = rs.getString("inv_stat");
invStatTransit = rs.getString("inv_stat");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
sql = "select exp_date,mfg_date,site_code__mfg,pack_code,acct_code__inv,cctr_code__inv "
sql = "select exp_date,mfg_date,site_code__mfg,pack_code,acct_code__inv,cctr_code__inv "
+" from stock where site_code = ? and item_code = ? and loc_code = ? and lot_no = ? and lot_sl = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setString(2,itemCode);
pstmt.setString(3,locCode);
pstmt.setString(4,lotNo);
pstmt.setString(5,lotSl);
rs = pstmt.executeQuery();
while(rs.next())
{
updDespTransit.put("acct_code_inv", rs.getString("acct_code__inv"));
updDespTransit.put("cctr_code_inv", rs.getString("cctr_code__inv"));
updDespTransit.put("exp_date", rs.getTimestamp("exp_date"));
updDespTransit.put("mfg_date", rs.getTimestamp("mfg_date"));
updDespTransit.put("site_code__mfg", rs.getString("site_code__mfg"));
updDespTransit.put("pack_code", rs.getString("pack_code"));
updDespTransit.put("inv_stat", invStatTransit);
updDespTransit.put("loc_code",varValueTransit);
updDespTransit.put("tran_type","R");
updDespTransit.put("site_code",siteCodeDlv);
updDespTransit.put("hold_qty",0.0);
errString = stckupd.updateStock(updDespTransit, xtraParams, conn);
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
//following code added by ajit on date 19/08/2014
if(errString == null || errString.trim().length() == 0 && "Y".equalsIgnoreCase(updDesp.get("hold_lock")==null?"":updDesp.get("hold_lock").toString()) )
{
sql = " 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 = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,quantityStduom);
pstmt.setString(2,itemCode);
pstmt.setString(3,siteCodeDlv);
pstmt.setString(4,invStatTransit);
pstmt.setString(5,lotNo);
pstmt.setString(6,lotSl);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
sql = "update inv_hold_det set loc_code = ?, site_code = ? Where tran_id = ? And item_code = ? And lot_no = ? "
+" And lot_sl = ? And loc_code = ? And hold_status ='H'" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,invStatTransit);
pstmt.setString(2,itemCode);
pstmt.setString(3,holdTranId);
pstmt.setString(4,itemCode);
pstmt.setString(5,lotNo);
pstmt.setString(6,lotSl);
pstmt.setString(7,locCode);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
sql = " update inv_hold_rel_trace set loc_code = ?, site_code = ? Where ref_no = ? And site_code = ? "
+" And item_code = ? And lot_no = ? And lot_sl = ? And loc_code = ? And hold_qty > 0 ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,invStatTransit);
pstmt.setString(2,siteCodeDlv);
pstmt.setString(3,holdTranId);
pstmt.setString(4,siteCode);
pstmt.setString(5,itemCode);
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
pstmt.setString(8,locCode);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
}//end of transit entry
//Updating sorder status.
sql = "select sum(quantity) as lc_order_qty , sum(quantity) - sum(qty_desp) as mqty_chk from sorditem "
+ "where sale_order = ? and line_type = 'I'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setString(2,itemCode);
pstmt.setString(3,locCode);
pstmt.setString(4,lotNo);
pstmt.setString(5,lotSl);
rs = pstmt.executeQuery();
pstmt.setString(1,sordNo);
rs = pstmt.executeQuery();
while(rs.next())
{
updDespTransit.put("acct_code_inv", rs.getString("acct_code__inv"));
updDespTransit.put("cctr_code_inv", rs.getString("cctr_code__inv"));
updDespTransit.put("exp_date", rs.getTimestamp("exp_date"));
updDespTransit.put("mfg_date", rs.getTimestamp("mfg_date"));
updDespTransit.put("site_code__mfg", rs.getString("site_code__mfg"));
updDespTransit.put("pack_code", rs.getString("pack_code"));
updDespTransit.put("inv_stat", invStatTransit);
updDespTransit.put("loc_code",varValueTransit);
updDespTransit.put("tran_type","R");
updDespTransit.put("site_code",siteCodeDlv);
updDespTransit.put("hold_qty",0.0);
errString = stckupd.updateStock(updDespTransit, xtraParams, conn);
OrderQty = rs.getDouble("lc_order_qty");
mQtyCheck = rs.getDouble("mqty_chk");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
//following code added by ajit on date 19/08/2014
if(errString == null || errString.trim().length() == 0 && "Y".equalsIgnoreCase(updDesp.get("hold_lock")==null?"":updDesp.get("hold_lock").toString()) )
{
sql = " 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 = ? ";
rs = null;
if(mQtyCheck > 0.0) //PARTIAL DESPATCH
{
status = "P";
allocFlag = "N";
}
else
{
status = "C";
allocFlag = "Y";
}
sql = " update sorder set status = ?,order_status = ?, status_date = ?,alloc_flag = ? "
+" where sale_order = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,quantityStduom);
pstmt.setString(2,itemCode);
pstmt.setString(3,siteCodeDlv);
pstmt.setString(4,invStatTransit);
pstmt.setString(5,lotNo);
pstmt.setString(6,lotSl);
pstmt.executeUpdate();
pstmt.setString(1,status);
pstmt.setString(2,status);
pstmt.setTimestamp(3,despDate);
pstmt.setString(4,allocFlag);
pstmt.setString(5,sordNo);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
sql = "update inv_hold_det set loc_code = ?, site_code = ? Where tran_id = ? And item_code = ? And lot_no = ? "
+" And lot_sl = ? And loc_code = ? And hold_status ='H'" ;
//End of updating sorder status.
sql = " select pending_order from sorder where sale_order = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,invStatTransit);
pstmt.setString(2,itemCode);
pstmt.setString(3,holdTranId);
pstmt.setString(4,itemCode);
pstmt.setString(5,lotNo);
pstmt.setString(6,lotSl);
pstmt.setString(7,locCode);
pstmt.executeUpdate();
pstmt.setString(1,sordNo);
rs = pstmt.executeQuery();
while(rs.next())
{
pendOrder = checkNull(rs.getString("pending_order"));
}
pstmt.close();
pstmt = null;
sql = " update inv_hold_rel_trace set loc_code = ?, site_code = ? Where ref_no = ? And site_code = ? "
+" And item_code = ? And lot_no = ? And lot_sl = ? And loc_code = ? And hold_qty > 0 ";
rs.close();
rs = null;
if(pendOrder == "I")
{
sql = "Select (case when ordc_perc is null then 0 else ordc_perc end) as mCancperc "
+" from item where item_code = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,invStatTransit);
pstmt.setString(2,siteCodeDlv);
pstmt.setString(3,holdTranId);
pstmt.setString(4,siteCode);
pstmt.setString(5,itemCode);
pstmt.setString(6,lotNo);
pstmt.setString(7,lotSl);
pstmt.setString(8,locCode);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
}//end of transit entry
//Updating sorder status.
sql = "select sum(quantity) as lc_order_qty , sum(quantity) - sum(qty_desp) as mqty_chk from sorditem "
+ "where sale_order = ? and line_type = 'I'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
rs = pstmt.executeQuery();
while(rs.next())
{
OrderQty = rs.getDouble("lc_order_qty");
mQtyCheck = rs.getDouble("mqty_chk");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(mQtyCheck > 0.0) //PARTIAL DESPATCH
{
status = "P";
allocFlag = "N";
}
else
{
status = "C";
allocFlag = "Y";
}
sql = " update sorder set status = ?,order_status = ?, status_date = ?,alloc_flag = ? "
+" where sale_order = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,status);
pstmt.setString(2,status);
pstmt.setTimestamp(3,despDate);
pstmt.setString(4,allocFlag);
pstmt.setString(5,sordNo);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
//End of updating sorder status.
sql = " select pending_order from sorder where sale_order = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
pstmt.setString(1,itemCode);
rs = pstmt.executeQuery();
while(rs.next())
{
pendOrder = checkNull(rs.getString("pending_order"));
mCancperc = rs.getDouble("mCancperc");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(pendOrder == "I")
if(OrderQty > 0.0)
{
sql = "Select (case when ordc_perc is null then 0 else ordc_perc end) as mCancperc "
+" from item where item_code = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
if((mQtyCheck/OrderQty * 100) <= mCancperc)
{
sql = " update sorditem set status = 'C' where sale_order = ? and line_no = ? and exp_lev= ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
pstmt.setString(2,lineNoSord);
pstmt.setString(3,expLev);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
sql = "update sorddet set status = 'C' where sale_order = ? and line_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
pstmt.setString(2,lineNoSord);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
sql = "select count(1) as ll_cnt from sorddet where sale_order = ? and status <> 'C'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
rs = pstmt.executeQuery();
while(rs.next())
{
mCancperc = rs.getDouble("mCancperc");
detCount = rs.getInt("ll_cnt");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(OrderQty > 0.0)
if(detCount == 0)
{
if((mQtyCheck/OrderQty * 100) <= mCancperc)
{
sql = " update sorditem set status = 'C' where sale_order = ? and line_no = ? and exp_lev= ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
pstmt.setString(2,lineNoSord);
pstmt.setString(3,expLev);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
sql = "update sorddet set status = 'C' where sale_order = ? and line_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
pstmt.setString(2,lineNoSord);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
sql = "select count(1) as ll_cnt from sorddet where sale_order = ? and status <> 'C'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNo);
rs = pstmt.executeQuery();
while(rs.next())
{
detCount = rs.getInt("ll_cnt");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(detCount == 0)
{
sql = "update sorder set status = 'C', status_date = ?, alloc_flag = 'Y', order_status = 'C' "
+"where sale_order = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,despDate);
pstmt.setString(2,sordNo);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
}
}//end of if pending order == "I"
else if(pendOrder == "Y")
{
sql = "update sorder set status = 'C', status_date = ?, alloc_flag = 'Y', order_status = 'C' where sale_order = ?";
sql = "update sorder set status = 'C', status_date = ?, alloc_flag = 'Y', order_status = 'C' "
+"where sale_order = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,despDate);
pstmt.setString(2,sordNo);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
}
//If eou is site and EXPORT order type than Updating Bond Value, bond value shd be Credited
sql = "Select case when eou is null then 'N' else eou end as ls_eou From site Where site_code = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
rs = pstmt.executeQuery();
while(rs.next())
{
eou = rs.getString("ls_eou");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if("Y".equalsIgnoreCase(eou) && (exportOrderType == ordType) && bondTaxGroup!= null && bondTaxGroup.trim().length() > 0)
}//end of if pending order == "I"
else if(pendOrder == "Y")
{
sql = "update sorder set status = 'C', status_date = ?, alloc_flag = 'Y', order_status = 'C' where sale_order = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,despDate);
pstmt.setString(2,sordNo);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
//If eou is site and EXPORT order type than Updating Bond Value, bond value shd be Credited
sql = "Select case when eou is null then 'N' else eou end as ls_eou From site Where site_code = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
rs = pstmt.executeQuery();
while(rs.next())
{
eou = rs.getString("ls_eou");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if("Y".equalsIgnoreCase(eou) && (exportOrderType == ordType) && bondTaxGroup!= null && bondTaxGroup.trim().length() > 0)
{
bondTaxAmt = 0.0;
sql = "select Sum(case when tax_amt is null then 0 else tax_amt end) as tax_amt from taxtran Where tran_code = 'S-DSP' and tran_id = ? "
+ "and line_no = ? and tax_code IN ( select tax_code from tax where tax_group in ( ? )" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.setString(2,lineNo);
pstmt.setString(3,bondTaxGroup);
rs = pstmt.executeQuery();
while(rs.next())
{
bondTaxAmt = 0.0;
sql = "select Sum(case when tax_amt is null then 0 else tax_amt end) as tax_amt from taxtran Where tran_code = 'S-DSP' and tran_id = ? "
+ "and line_no = ? and tax_code IN ( select tax_code from tax where tax_group in ( ? )" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.setString(2,lineNo);
pstmt.setString(3,bondTaxGroup);
rs = pstmt.executeQuery();
while(rs.next())
{
bondTaxAmt = rs.getDouble("tax_amt");
}
bondTaxAmt = rs.getDouble("tax_amt");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(bondTaxAmt != 0.0)
{
int cnt4=0;
bondValue = 0.0;
sql = "select bond_no, case when bond_value is null then 0 else bond_value end as bond_value,case when bank_guarantee is null then 0 else bank_guarantee end "
+ " as lc_bank_guarantee from b17_bond where site_code = ? and ? >= eff_from and ? <= valid_upto "
+" and case when confirmed is null then 'N' else confirmed end = 'Y' and bond_type = 'B' " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setTimestamp(2,despDate);
pstmt.setTimestamp(3,despDate);
pstmt.setString(3,bondTaxGroup);
rs = pstmt.executeQuery();
while(rs.next())
{
cnt4++;
bondNo = rs.getString("bond_no");
bondValue = rs.getDouble("bond_value");
bankGuarantee = rs.getDouble("lc_bank_guarantee");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(cnt4 == 0)
{
errString = itmDBAccessEJB.getErrorString("","VTB17ERR1","","",conn);
return errString ;
}
else if(bankGuarantee < (bondValue+bondTaxAmt))
{
errString = itmDBAccessEJB.getErrorString("","VTB17ERR2","","",conn);
return errString ;
}
else
{
sql = "update b17_bond set bond_value = ? where bond_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,bondValue+bondTaxAmt);
pstmt.setString(2,bondNo);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(bondTaxAmt != 0.0)
{
int cnt4=0;
bondValue = 0.0;
sql = "select bond_no, case when bond_value is null then 0 else bond_value end as bond_value,case when bank_guarantee is null then 0 else bank_guarantee end "
+ " as lc_bank_guarantee from b17_bond where site_code = ? and ? >= eff_from and ? <= valid_upto "
+" and case when confirmed is null then 'N' else confirmed end = 'Y' and bond_type = 'B' " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setTimestamp(2,despDate);
pstmt.setTimestamp(3,despDate);
pstmt.setString(3,bondTaxGroup);
rs = pstmt.executeQuery();
while(rs.next())
{
cnt4++;
bondNo = rs.getString("bond_no");
bondValue = rs.getDouble("bond_value");
bankGuarantee = rs.getDouble("lc_bank_guarantee");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(cnt4 == 0)
{
errString = itmDBAccessEJB.getErrorString("","VTB17ERR1","","",conn);
return errString ;
}
else if(bankGuarantee < (bondValue+bondTaxAmt))
{
errString = itmDBAccessEJB.getErrorString("","VTB17ERR2","","",conn);
return errString ;
}
else
{
sql = "update b17_bond set bond_value = ? where bond_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,bondValue+bondTaxAmt);
pstmt.setString(2,bondNo);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
}
}
}//status not cancelled
}
}//status not cancelled
}
pstmt3.close();
pstmt3 = null;
rs3.close();
rs3 = null;
}
pstmt3.close();
pstmt3 = null;
rs3.close();
rs3 = null;
}
System.out.println("ERROR STRING WHILE DESPATCH CONFIRMATION!!!!!!!!!!!!!!"+errString);
if(errString == null || errString.trim().length()== 0)
{
System.out.println("Insiding Despatch Confirmation!!!!!!");
sql = "update despatch set confirmed = 'Y', conf_date = ? where desp_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,new Timestamp(System.currentTimeMillis()));
pstmt.setString(2,tranId);
int confirmCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
if(confirmCnt > 0)
{
System.out.println(">>The selected transaction is confirmed!!!!");
errString= "<?xml version='1.0'?><Root><message>VTPOSTDES</message><TranID>"+tranId+"</TranID></errors></Root>";
System.out.println("@@@@@ retString:" + errString);
}
/*sql = "select confirmed from despatch where desp_id = ?";
System.out.println("ERROR STRING WHILE DESPATCH CONFIRMATION!!!!!!!!!!!!!!"+errString);
if(errString == null || errString.trim().length()== 0)
{
System.out.println("Insiding Despatch Confirmation!!!!!!");
sql = "update despatch set confirmed = 'Y', conf_date = ? where desp_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,new Timestamp(System.currentTimeMillis()));
pstmt.setString(2,tranId);
int confirmCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
if(confirmCnt > 0)
{
InvAcct inv = new InvAcct();
errString = inv.despatchPost(tranId,"S-DSP",conn);
if(errString.trim().length() == 0 || errString == null)
{
if("Y".equalsIgnoreCase(autoInvOnDesp))
{
String fromSaleOrder="", fromCustCode="", orderType="", siteCodeShip="";
Timestamp fromDate = null;
sql = " select d.sord_no,d.cust_code,so.order_type, d.desp_date, so.site_code__ship " +
" from despatch d, sorder so " +
" where d.desp_id = ? and d.sord_no = so.sale_order ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId );
rs = pstmt.executeQuery();
if(rs.next())
{
fromSaleOrder = checkNull(rs.getString("sord_no"));
fromCustCode = checkNull(rs.getString("cust_code"));
orderType = checkNull(rs.getString("order_type"));
fromDate = rs.getTimestamp("desp_date");
siteCodeShip = checkNull(rs.getString("site_code__ship"));
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
System.out.println("@@@@@@@@@ fromSaleOrder["+fromSaleOrder+"]fromCustCode["+fromCustCode+"]orderType["+orderType+"]fromDate["+fromDate+"]siteCodeShip["+siteCodeShip+"]");
// setting default value like post order default
String clubOrder = "",clubPendingOrd="",adjDrcr="",adjCustAdv="",advAdjMode="",adjNewProdInv="";
//Boolean adjDrcrFlag= false, adjAdv=false, adjNewProdInvFlag=false;
clubOrder = "N";
clubPendingOrd="N";
adjDrcr="N";
adjCustAdv="N";
advAdjMode="C";
adjNewProdInv="N";
PostOrderProcess postOrderProcess = new PostOrderProcess();
// fromSaleOrder, toSaleOrder, fromCustCode, toCustCode, tranIdDespatch, orderType, fromDate, clubOrder, clubPendingOrd, adjDrcr, adjCustAdv, advAdjMode, adjNewProdInv, siteCodeShip, conn
errString= postOrderProcess.invPosting( fromSaleOrder, fromSaleOrder, fromCustCode, fromCustCode, tranId , orderType, fromDate, clubOrder, clubPendingOrd, adjDrcr, adjCustAdv, advAdjMode, adjNewProdInv, siteCodeShip, conn);
System.out.println("@@@@@@@@@689 invPosting() errString::::::["+errString+"]");
}
}
if( errString == null || errString.trim().length() == 0)
{
System.out.println("errCode in despatch posting===="+errString);
System.out.println(">>The selected transaction is confirmed!!!!");
errString= "<?xml version='1.0'?><Root><message>VTPOSTDES</message><TranID>"+tranId+"</TranID></errors></Root>";
System.out.println("@@@@@ retString:[" + errString+"]");
}
}
/*sql = "select confirmed from despatch where desp_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
......@@ -1360,64 +1403,64 @@ System.out.println("ERROR STRING WHILE DESPATCH CONFIRMATION!!!!!!!!!!!!!!"+errS
pstmt.close();
pstmt = null;
System.out.println("@@@@@@@@@@@@test:::desp_id["+tranId+"]confirm["+confirm+"]");
*/
}
}
catch(Exception e)
{
try
{
conn.rollback();
}
catch (Exception e1)
{
}
e.printStackTrace();
System.out.println("Exception ::"+e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if(pstmt1 != null)
*/
}
}
catch(Exception e)
{
pstmt1.close();
pstmt1 = null;
}
if(pstmt != null)
try
{
conn.rollback();
}
catch (Exception e1)
{
}
e.printStackTrace();
System.out.println("Exception ::"+e.getMessage());
throw new ITMException(e);
}
finally
{
pstmt.close();
pstmt = null;
}
/*if( conn != null && ! conn.isClosed() )
try
{
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
/*if( conn != null && ! conn.isClosed() )
{
conn.close();
conn = null;
}*/
}
catch(Exception ef)
{
System.out.println(ef.getMessage());
ef.printStackTrace();
throw new ITMException(ef);
}
}
return errString;
}
catch(Exception ef)
{
System.out.println(ef.getMessage());
ef.printStackTrace();
throw new ITMException(ef);
}
}
return errString;
}
private String checkNull(String inp)
{
if(inp == null)
inp = " ";
return inp.trim();
}
}
package ibase.webitm.ejb.dis;
import ibase.planner.utility.ITMException;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.EMail;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.fin.FinCommon;
//import ibase.utility.MailInfo;
//import ibase.webitm.ejb.ITMDBAccessEJB;
//import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.TransIDGenerator;
//import ibase.webitm.utility.GenericUtility;
import java.io.File;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
public class InvoiceDrcrAdj
{
public String invoiceDrcrAdj(String siteCode, String invoiceId, String custCode, String itemSer, double netAmt, boolean adjDrCr, boolean adjAdv, String advAdj, boolean adjNewProdInv, String frtDrnArr[], Connection conn) throws RemoteException,ITMException
{
///////////////////////////////////////////
//14/03/01 manoharan update of receivables commented
//only insert of receivables_adj records will be taken place in
//this function. The related updates will be done when the invoice
//is confirmed
//
//what if one invoice is not confirmed and another invoice is
//generated for the same customer/site ?????????????????
String errString = "", tranID = "", tranSer = "", refNo = "", adjTranSer = "", adjRefNo = "",mOrderNo = "",finScheme = "";
String nextID = "", status = "", refType = "",ignoreDrDays = "",ordTypeNewPrd = "", sqlStr = "", tranSeries = "", asjCustAdv = "";
double netAmount = 0, mTotAmt = 0, mAdjAmt = 0, mDiffAmt = 0, mSetAmt = 0;//, mAmt = 0
double mChkAmt = 0, mDrAmt = 0;//, mAmtAdj
int mctr = 1, mChkRec = 0,llIgnoreDrDays = 0, llCrDays = 0;
Timestamp mRefDate = null;
String rcpNo = "",siteCodeRcp = "",siteCodeDlv ="",subsNo = "",drnNotIn = "";
String tempStr;
//09-01-02 Arif
String keystr = "",adjustNewProduct = "";//added radhakrishnan on 16-04-04
//09-01-02 End Arif
//03-08-2005 manoharan moved from below
String tranTypeFinChrgDrn = "", trnTypArray[], ordTypArray[], sType = "", tempStrType = "";
FinCommon finCommon = null;
DistCommon distCommon = null;
E12GenericUtility genericUtility = null;
ITMDBAccessEJB itmDBAccessEJB = null;
PreparedStatement pstmt = null,pstmt1 = null, pstmtInsert = null, pstmtUpd = null;
ResultSet rs = null, rs1 = null;
//String ls_transer, ls_refno, ls_tranid
double lcAdj = 0;
String xmlValues = null;
String mTranId="", mTranSer="", mRefNo="";
try
{
finCommon = new FinCommon();
distCommon = new DistCommon();
genericUtility = new E12GenericUtility();
itmDBAccessEJB = new ITMDBAccessEJB();
//24/01/14 manoharan FI3JSUN007 adjust freight dr note also
drnNotIn = " ";
if (frtDrnArr.length == 1)
{
if ( frtDrnArr[0] == null || frtDrnArr[0].trim().length() == 0)
{
frtDrnArr[0] = " ";
}
}
drnNotIn ="";
for(int i = 0; i < frtDrnArr.length; i++)
{
drnNotIn =drnNotIn+"'"+frtDrnArr[i]+"',";
}
drnNotIn =drnNotIn.substring(0,drnNotIn.length()-1);
System.out.println("12-Mar-16 manoharan drnNotIn after ["+drnNotIn + "]");
adjustNewProduct = distCommon.getDisparams("999999","ADJUST_NEWPRODUCT",conn);
if (!"NULLFOUND".equals(adjustNewProduct) || "Y".equals(adjustNewProduct) )
{
ordTypeNewPrd = distCommon.getDisparams("999999","ORD_TYPE_NEWPRD",conn);
}
else
{
ordTypeNewPrd = " ";
}
ordTypeNewPrd = ordTypeNewPrd.trim();
tranTypeFinChrgDrn = distCommon.getDisparams("999999","IGNORE_TYPE_FINCHRG",conn);
if ("NULLFOUND".equals(tranTypeFinChrgDrn))
{
tranTypeFinChrgDrn = " ";
}
//end 03-08-2005 manoharan moved from below
adjTranSer = "S-INV";
//in below Sql cr_days added by Jasmina 29/08/08-DI89SUN015
sqlStr ="select invoice_id, tran_date, inv_type,sale_order, cr_days from invoice "
+ "where invoice_id = ? " ;
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1,invoiceId);
rs = pstmt.executeQuery();
if(rs.next())
{
adjRefNo = rs.getString("invoice_id");
mRefDate = rs.getTimestamp("tran_date");
refType = rs.getString("inv_type");
mOrderNo = rs.getString("sale_order");
llCrDays = rs.getInt("cr_days");
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTNOINV","","",conn);
return errString ;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//commented by Amit 04/05/05 as FN type checking is done thru disparm further.
//elseif (trim(refType) = 'FN' )
//return errString
//03-08-2005 manoharan new product order type taken from
//elseif (pos(ordTypeNewPrd,trim(refType)) > 0 )
System.out.println("12-Mar-16 manoharan ordTypeNewPrd ["+ordTypeNewPrd + "]");
if (ordTypeNewPrd.trim().length() > 0 )
{
String arrStr[] = ordTypeNewPrd.split(",");
for(int i = 0; i<arrStr.length; i++)
{
if (refType.trim().equals(arrStr[i].trim()))
{
return "";
}
}
//end 03-08-2005 manoharan new product order type taken from
}
netAmount = netAmt;
mDrAmt = netAmt;
//09-01-02 Arif
sqlStr ="select key_String from transetup "
+ "where upper(tran_window) = 'W_REC_ADJ' " ;
pstmt = conn.prepareStatement(sqlStr);
rs = pstmt.executeQuery();
if(rs.next())
{
keystr = rs.getString("key_string");
}
else
{
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sqlStr ="select key_String from transetup "
+ "where upper(tran_window) = 'GENERAL' " ;
pstmt = conn.prepareStatement(sqlStr);
rs = pstmt.executeQuery();
if(rs.next())
{
keystr = rs.getString("key_string");
}
else
{
rs.close();
rs = null;
pstmt.close();
pstmt = null;
errString = itmDBAccessEJB.getErrorString("","VTNOINV","","",conn);
return errString ;
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//09-01-02 End Arif
//formulation new products hard coded and 15 days
//Sanjeev - 14/10/03 - Removed harcoding done by Arif (for 15 days and used finparm variable
//in sql below.
ignoreDrDays = finCommon.getFinparams("999999", "IGNORE_DR_DAYS",conn);
//if (get_sqlcode() = 100 )
if ("NULLFOUND".equals(ignoreDrDays) )
{
// llIgnoreDrDays = 9999999//decreased on manoharanji's instruction as mssql is giving error of arithmatic overflow ** kiran 29/06/05
llIgnoreDrDays = 999999;
}
else if (ignoreDrDays == null )
{
// llIgnoreDrDays = 9999999//decreased on manoharanji's instruction as mssql is giving error of arithmatic overflow ** kiran 29/06/05
llIgnoreDrDays = 999999;
}
else
{
//added by Jasmina 29/08/08-DI89SUN015
if ("BEFORE_CR_DAYS".equals(ignoreDrDays.trim()) )
{
llIgnoreDrDays = llCrDays * -1;
}
else //added end by Jasmina 29/08/08-DI89SUN015
{
llIgnoreDrDays = Integer.valueOf(ignoreDrDays);
}
}
System.out.println("12-Mar-16 manoharan llIgnoreDrDays final ["+llIgnoreDrDays + "]");
//03-08-2005 manoharan commented and taken above
//
////added by radhakrishnan on 16-04-04
//
//adjustNewProduct = gf_getenv_dis('999999','ADJUST_NEWPRODUCT')
//adjustNewProduct = upper(trim(adjustNewProduct))
//if (adjustNewProduct='NULLFOUND' or adjustNewProduct = 'Y' )
//ordTypeNewPrd = gf_getenv_dis('999999','ORD_TYPE_NEWPRD')
//}
////end radhakrishnan on 16-04-04
//End Sanjeev - 14/10/03
//end 03-08-2005 manoharan commented and taken above
//added by bhavin
sqlStr ="select (case when fin_scheme is null then ' ' else fin_scheme end ) fin_scheme from sorder "
+ "where sale_order = ? " ;
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1,mOrderNo);
rs = pstmt.executeQuery();
if(rs.next())
{
finScheme = rs.getString(1);
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTNOSORD","","",conn);
return errString ;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//ended by bhavin
//24/01/14 Manoharan FI3JSUN007 adjust all the freight drn
if (drnNotIn.trim().length() > 0 )
{
sqlStr = "insert into receivables_adj "
+ "(tran_id, ref_ser, ref_no, tot_amt, adj_amt, net_amt,ref_ser_adj,ref_no_adj, tran_id__rcv) "
+ " values (?, ?, ?, ?, ?, 0, ?, ? ,?) ";
pstmtInsert = conn.prepareStatement(sqlStr);
//old logic kept in this Condition
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables "
+ " where tran_ser = 'MDRCRD' and ref_no in ( ? ) " //( " + drnNotIn + ") ) "
+ " and tot_amt - adj_amt > 0 "
+ " and site_code = '" + siteCode + "' "
+ " and item_ser = '" + itemSer + "' "
+ " and cust_code = '" + custCode + "' order by tran_id ";
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1,mOrderNo);
rs = pstmt.executeQuery();
while(rs.next())
{
tranID = rs.getString("tran_id");
tranSer= rs.getString("tran_ser");
refNo= rs.getString("ref_no");
mTotAmt= rs.getDouble("tot_amt");
mAdjAmt= rs.getDouble("adj_amt");
mDiffAmt = mTotAmt - mAdjAmt;
mDrAmt = mDrAmt + mDiffAmt;
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 +"</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
nextID = tg.generateTranSeqID("R-ADJ", "tran_id", keystr, conn);
System.out.println("nextID ["+nextID + "]");
// 09-01-02 End Arif
pstmtInsert.setString(1,nextID);
pstmtInsert.setString(2,tranSer);
pstmtInsert.setString(3,refNo);
pstmtInsert.setDouble(4,mDiffAmt);
pstmtInsert.setDouble(5,mDiffAmt);
pstmtInsert.setString(6,adjTranSer);
pstmtInsert.setString(7,adjRefNo);
pstmtInsert.setString(8,tranID);
pstmtInsert.addBatch();
pstmtInsert.clearParameters();
mChkRec++;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
pstmtInsert.executeBatch();
pstmtInsert.clearParameters();
//pstmtInsert.close();
mTotAmt = 0;
mAdjAmt = 0;
mDiffAmt = 0;
}
//end 24/01/14 manoharan
//04-09-2005 manoharan
//reverted on 15-09-2005 as per sun requirement
//if (adjDrCr = TRUE ) //Commented by jasmina-19/01/10-DI89SUN228
if (adjDrCr || (adjNewProdInv && ("Y".equals(adjustNewProduct) && ordTypeNewPrd != null && ordTypeNewPrd.trim().length() > 0) ) ) //Added by jasmina-19/01/10-DI89SUN228
{
//if (adjDrCr or adjustNewProduct = 'Y' )
// 03-08-2005 manoharan dynamic cursor used to have multiple
// order/transaction types specified in disparm for new product/ financial charges
//declare c_recv cursor for
//select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables
// where (tran_ser = 'DRNRCP' or tran_ser = 'MDRCRD')
// and ( ((ref_type = 'FC' or ref_type = :ordTypeNewPrd )
// and ( (:mRefDate - ref_date ) >= :llIgnoreDrDays )) OR (ref_type <> 'FC' and ref_type <> :ordTypeNewPrd) )
// and (tot_amt - adj_amt) > 0
// and site_code = :siteCode
// and item_ser = :itemSer
// and cust_code = :custCode
// and (case when fin_scheme is null ) ' ' else fin_scheme end ) = :finScheme
//order by tran_id;
//open c_recv;
//if (get_sqlcode() < 0 )
// errString = 'DS000' + String(sqlca.sqldbcode)
// return errString
//}
//
String[] arrStr;
if (adjDrCr && adjNewProdInv ) //if (condition Added by jasmina-19/01/10-DI89SUN228
{
//old logic kept in this Condition
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables ";
if (tranTypeFinChrgDrn != null && tranTypeFinChrgDrn.trim().length() > 0)
{
arrStr = tranTypeFinChrgDrn.split(",");
tranTypeFinChrgDrn ="";
for (int i = 0; i < frtDrnArr.length; i++)
{
tranTypeFinChrgDrn = tranTypeFinChrgDrn+"'"+frtDrnArr[i]+"',";
}
tranTypeFinChrgDrn = tranTypeFinChrgDrn.substring(0,tranTypeFinChrgDrn.length()-1);
sqlStr = sqlStr + " where ( ( (tran_ser = 'DRNRCP') ";
if (drnNotIn.trim().length() > 0 ) // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
{
sqlStr = sqlStr + " or ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) ) ";
sqlStr = sqlStr + " and ref_type not in (" + tranTypeFinChrgDrn + ") ) ";
}
else
{
sqlStr = sqlStr + " ) ) ";
}
}
else
{
sqlStr = sqlStr + " where ( ( (tran_ser = 'DRNRCP' ) ";
if (drnNotIn.trim().length() > 0 ) // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
{
sqlStr = sqlStr + " or ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) ) ";
}
else
{
sqlStr = sqlStr + " ) ) ";
}
}
//if (len(trim(drnNotIn)) > 0 ) // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
//sqlStr = sqlStr + " and ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) "
//}
// 04-09-2005 manoharan
//if ((not isnull(ordTypeNewPrd)) and (len(trim(ordTypeNewPrd)) > 0) )
if (ordTypeNewPrd != null && ordTypeNewPrd.trim().length() > 0 && "Y".equals(adjustNewProduct) )
{
// end 04-09-2005 manoharan
arrStr = ordTypeNewPrd.split(",");
ordTypeNewPrd ="";
for (int i = 0; i < frtDrnArr.length; i++)
{
ordTypeNewPrd = ordTypeNewPrd+"'"+frtDrnArr[i]+"',";
}
ordTypeNewPrd = ordTypeNewPrd.substring(0,ordTypeNewPrd.length()-1);
sqlStr = sqlStr + " or ( tran_ser = 'S-INV' "
+ " and ref_type in (" + ordTypeNewPrd + ") "
+ " and ? - due_date >= " + (llIgnoreDrDays) + " ) ";
}
else
{
if (tranTypeFinChrgDrn != null && tranTypeFinChrgDrn.trim().length() > 0 && drnNotIn.trim().length() > 0 )
{
// NOTHING
}
else
{
sqlStr = sqlStr + " ) ";
}
}
sqlStr = sqlStr + " and tot_amt - adj_amt > 0 "
+ " and site_code = '" + siteCode + "' "
+ " and item_ser = '" + itemSer + "' "
+ " and cust_code = '" + custCode + "' "
+ " and case when fin_scheme is null then ' ' else fin_scheme end = '" + finScheme +"' "
+ " order by tran_id ";
}
else if (adjDrCr && (!adjNewProdInv) ) //Else if (Condtion Added by jasmina 22/01/10-DI89SUN228
{
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables ";
if (tranTypeFinChrgDrn != null && tranTypeFinChrgDrn.trim().length() > 0)
{
arrStr = tranTypeFinChrgDrn.split(",");
tranTypeFinChrgDrn ="";
for (int i = 0; i < frtDrnArr.length; i++)
{
tranTypeFinChrgDrn = tranTypeFinChrgDrn+"'"+frtDrnArr[i]+"',";
}
tranTypeFinChrgDrn = tranTypeFinChrgDrn.substring(0,tranTypeFinChrgDrn.length()-1);
sqlStr = sqlStr + " where ( ( (tran_ser = 'DRNRCP' ) ";
if (drnNotIn.trim().length() > 0 ) // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
{
sqlStr = sqlStr + " or ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) ) ";
}
else
{
sqlStr = sqlStr + " ) ";
}
sqlStr = sqlStr + " and ref_type not in (" + tranTypeFinChrgDrn + ") ) ";
}
else
{
sqlStr = sqlStr + " where ( (tran_ser = 'DRNRCP' ) ";
if (drnNotIn.trim().length() > 0 ) // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
{
sqlStr = sqlStr + " or ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) ) ";
}
else
{
sqlStr = sqlStr + " ) ";
}
}
//if (len(trim(drnNotIn)) > 0 ) // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
//sqlStr = sqlStr + " and ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) "
//}
sqlStr = sqlStr + " and tot_amt - adj_amt > 0 "
+ " and site_code = '" + siteCode + "' "
+ " and item_ser = '" + itemSer + "' "
+ " and cust_code = '" + custCode + "' "
+ " and case when fin_scheme is null then ' ' else fin_scheme end = '" + finScheme +"' "
+ " order by tran_id ";
}
else if (!adjDrCr && adjNewProdInv ) //Else if (Condtion Added by jasmina 22/01/10-DI89SUN228
{
if ( ordTypeNewPrd != null && ordTypeNewPrd.trim().length() > 0 && "Y".equals(adjustNewProduct) )
{
arrStr = ordTypeNewPrd.split(",");
ordTypeNewPrd ="";
for (int i = 0; i < frtDrnArr.length; i++)
{
ordTypeNewPrd = ordTypeNewPrd+"'"+frtDrnArr[i]+"',";
}
ordTypeNewPrd = ordTypeNewPrd.substring(0,ordTypeNewPrd.length()-1);
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables "
+ " where tran_ser = 'S-INV' "
+ " and ref_type in (" + ordTypeNewPrd + ") "
+ " and ? - due_date >= " + llIgnoreDrDays + " "
+ " and tot_amt - adj_amt > 0 "
+ " and site_code = '" + siteCode + "' "
+ " and item_ser = '" + itemSer + "' "
+ " and cust_code = '" + custCode + "' "
+ " and case when fin_scheme is null then ' ' else fin_scheme end = '" + finScheme +"' "
+ " order by tran_id ";
}
}
sqlStr = "insert into receivables_adj "
+ "(tran_id, ref_ser, ref_no, tot_amt, adj_amt, net_amt,ref_ser_adj,ref_no_adj, tran_id__rcv) "
+ " values (?, ?, ?, ?, ?, 0, ?, ? ,?) ";
pstmtInsert = conn.prepareStatement(sqlStr);
pstmt = conn.prepareStatement(sqlStr);
rs = pstmt.executeQuery();
while(rs.next())
{
mTranId = rs.getString("tran_id");
mTranSer = rs.getString("tran_ser");
mRefNo = rs.getString("ref_no");
mTotAmt = rs.getDouble("tot_amt");
mAdjAmt = rs.getDouble("adj_amt");
mDiffAmt = mTotAmt - mAdjAmt;
mDrAmt = mDrAmt + mDiffAmt;
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 +"</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
nextID = tg.generateTranSeqID("R-ADJ", "tran_id", keystr, conn);
System.out.println("nextID ["+nextID + "]");
// 09-01-02 End Arif
pstmtInsert.setString(1,nextID);
pstmtInsert.setString(2,mTranSer);
pstmtInsert.setString(3,mRefNo);
pstmtInsert.setDouble(4,mDiffAmt);
pstmtInsert.setDouble(5,mDiffAmt);
pstmtInsert.setString(6,adjTranSer);
pstmtInsert.setString(7,adjRefNo);
pstmtInsert.setString(8,mTranId);
pstmtInsert.addBatch();
pstmtInsert.clearParameters();
// 09-01-02 End Arif
mChkRec++;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
pstmtInsert.executeBatch();
pstmtInsert.clearParameters();
//pstmtInsert.close();
mTotAmt = 0;
mAdjAmt = 0;
mDiffAmt = 0;
}
// end 24/01/14 manoharan
// 04-09-2005 manoharan
// reverted on 15-09-2005 as per sun requirement
//if ab_drcr = TRUE then //Commented by jasmina-19/01/10-DI89SUN228
String[] arrStr;
if (adjDrCr || (adjNewProdInv && ("Y".equals(adjustNewProduct) && ordTypeNewPrd != null && ordTypeNewPrd.trim().length() > 0) )) //Added by jasmina-19/01/10-DI89SUN228
{
//if (adjDrCr or adjustNewProduct = 'Y' then
// 03-08-2005 manoharan dynamic cursor used to have multiple
// order/transaction types specified in disparm for new product/ financial charges
//declare c_recv cursor for
//select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables
// where (tran_ser = 'DRNRCP' or tran_ser = 'MDRCRD')
// and ( ((ref_type = 'FC' or ref_type = :ordTypeNewPrd )
// and ( (:mrefdate - ref_date ) >= :ll_ignore_dr_days )) OR (ref_type <> 'FC' and ref_type <> :ordTypeNewPrd) )
// and (tot_amt - adj_amt) > 0
// and site_code = :as_site_code
// and item_ser = :as_item_ser
// and cust_code = :as_cust_code
// and (case when fin_scheme is null then ' ' else fin_scheme end ) = :ls_finscheme
//order by tran_id;
//open c_recv;
//if (get_sqlcode() < 0 then
// merrcode = 'DS000' + string(sqlca.sqldbcode)
// return merrcode
//end if
//
//String[] arrStr;
if (adjDrCr && adjNewProdInv) //if (condition Added by jasmina-19/01/10-DI89SUN228
{
//old logic kept in this Condition
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables ";
if (tranTypeFinChrgDrn != null && tranTypeFinChrgDrn.trim().length() > 0)
{
arrStr = tranTypeFinChrgDrn.split(",");
tranTypeFinChrgDrn ="";
for (int i = 0; i < frtDrnArr.length; i++)
{
tranTypeFinChrgDrn = tranTypeFinChrgDrn+"'"+frtDrnArr[i]+"',";
}
tranTypeFinChrgDrn = tranTypeFinChrgDrn.substring(0,tranTypeFinChrgDrn.length()-1);
sqlStr = sqlStr + " where ( ( (tran_ser = 'DRNRCP') " ;
if (drnNotIn.trim().length() > 0 ) // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
{
sqlStr = sqlStr + " or ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) ) " ;
}
else
{
sqlStr = sqlStr + " ) ";
}
sqlStr = sqlStr + " and ref_type not in (" + tranTypeFinChrgDrn + ") ) " ;
}
else
{
sqlStr = sqlStr + " where ( ( (tran_ser = 'DRNRCP' ) ";
if (drnNotIn.trim().length() > 0 ) // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
{
sqlStr = sqlStr + " or ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) ) ";
}
else
{
sqlStr = sqlStr + " ) ";
}
}
// if (len(trim(drnNotIn)) > 0 then // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
// sqlStr = sqlStr + " and ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) "
// }
// 04-09-2005 manoharan
//if ((not isnull(ordTypeNewPrd)) and (len(trim(ordTypeNewPrd)) > 0) then
if (ordTypeNewPrd != null && ordTypeNewPrd.trim().length() > 0 && "Y".equals(adjustNewProduct))
{
arrStr = ordTypeNewPrd.split(",");
ordTypeNewPrd ="";
for (int i = 0; i < frtDrnArr.length; i++)
{
ordTypeNewPrd = ordTypeNewPrd+"'"+frtDrnArr[i]+"',";
}
ordTypeNewPrd = ordTypeNewPrd.substring(0,ordTypeNewPrd.length()-1);
// end 04-09-2005 manoharan
sqlStr = sqlStr + " or ( tran_ser = 'S-INV' " +
" and ref_type in (" + ordTypeNewPrd + ") " +
" and ? - due_date >= " + llIgnoreDrDays + " ) ";
}
else
{
if (tranTypeFinChrgDrn != null && tranTypeFinChrgDrn.trim().length() > 0 && drnNotIn.trim().length() > 0 )
{
// NOTHING
}
else
{
sqlStr = sqlStr + " ) ";
}
}
sqlStr = sqlStr + " and tot_amt - adj_amt > 0 "
+ " and site_code = '" + siteCode + "' "
+ " and item_ser = '" + itemSer + "' "
+ " and cust_code = '" + custCode + "' "
+ " and case when fin_scheme is null then ' ' else fin_scheme end = '" + finScheme +"' "
+ " order by tran_id ";
}
else if (adjDrCr && !adjNewProdInv) //Else if (Condtion Added by jasmina 22/01/10-DI89SUN228
{
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables ";
if (tranTypeFinChrgDrn != null && tranTypeFinChrgDrn.trim().length() > 0)
{
arrStr = tranTypeFinChrgDrn.split(",");
tranTypeFinChrgDrn ="";
for (int i = 0; i < frtDrnArr.length; i++)
{
tranTypeFinChrgDrn = tranTypeFinChrgDrn+"'"+frtDrnArr[i]+"',";
}
tranTypeFinChrgDrn = tranTypeFinChrgDrn.substring(0,tranTypeFinChrgDrn.length()-1);
sqlStr = sqlStr + " where ( ( (tran_ser = 'DRNRCP' )";
if ( drnNotIn.trim().length() > 0 ) // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
{
sqlStr = sqlStr + " or ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) ) ";
}
else
{
sqlStr = sqlStr + " ) ";
}
sqlStr = sqlStr + " and ref_type not in (" + tranTypeFinChrgDrn + ") ) ";
}
else
{
sqlStr = sqlStr + " where ( (tran_ser = 'DRNRCP' ) ";
if ( drnNotIn.trim().length() > 0 ) // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
{
sqlStr = sqlStr + " or ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) ) ";
}
else
{
sqlStr = sqlStr + " ) ";
}
}
//if (len(trim(drnNotIn)) > 0 then // 24/01/14 manoharan to FI3JSUN007 do not consider ther freight drn
//sqlStr = sqlStr + " and ( tran_ser = 'MDRCRD' and ref_no not in ( " + drnNotIn + ") ) "
//}
sqlStr = sqlStr + " and tot_amt - adj_amt > 0 "
+ " and site_code = '" + siteCode + "' "
+ " and item_ser = '" + itemSer + "' "
+ " and cust_code = '" + custCode + "' "
+ " and case when fin_scheme is null then ' ' else fin_scheme end = '" + finScheme +"' "
+ " order by tran_id ";
}
else if (!adjDrCr && adjNewProdInv) //Else if (Condtion Added by jasmina 22/01/10-DI89SUN228
{
if ((ordTypeNewPrd != null && ordTypeNewPrd.trim().length() > 0) && "Y".equals(adjustNewProduct))
{
arrStr = ordTypeNewPrd.split(",");
ordTypeNewPrd ="";
for (int i = 0; i < frtDrnArr.length; i++)
{
ordTypeNewPrd = ordTypeNewPrd+"'"+frtDrnArr[i]+"',";
}
ordTypeNewPrd = ordTypeNewPrd.substring(0,ordTypeNewPrd.length()-1);
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables "
+ " where tran_ser = 'S-INV' "
+ " and ref_type in (" + ordTypeNewPrd + ") "
+ " and ? - due_date >= " + llIgnoreDrDays + " "
+ " and tot_amt - adj_amt > 0 "
+ " and site_code = '" + siteCode + "' "
+ " and item_ser = '" + itemSer + "' "
+ " and cust_code = '" + custCode + "' "
+ " and case when fin_scheme is null then ' ' else fin_scheme end = '" + finScheme +"' "
+ " order by tran_id ";
}
}
pstmt = conn.prepareStatement(sqlStr);
if (adjNewProdInv && ordTypeNewPrd != null && ordTypeNewPrd.trim().length() > 0 && "Y".equals(adjustNewProduct)) //Added by jasmina 22/01/10-DI89SUN228
{
pstmt.setTimestamp(1,mRefDate);
}
rs = pstmt.executeQuery();
while(rs.next())
{
// end 03-08-2005 manoharan dynamic cursor used to have multiple
// order/transaction types specified in disparm for new product/ financial charges
mTranId = rs.getString("tran_id");
mTranSer = rs.getString("tran_ser");
mRefNo = rs.getString("ref_no");
mTotAmt = rs.getDouble("tot_amt");
mAdjAmt = rs.getDouble("adj_amt");
mDiffAmt = mTotAmt - mAdjAmt;
mDrAmt = mDrAmt + mDiffAmt;
// 09-01-02 Arif (to get the tran id from nvo_keygen
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 +"</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
nextID = tg.generateTranSeqID("R-ADJ", "tran_id", keystr, conn);
System.out.println("nextID ["+nextID + "]");
// 09-01-02 End Arif
pstmtInsert.setString(1,nextID);
pstmtInsert.setString(2,mTranSer);
pstmtInsert.setString(3,mRefNo);
pstmtInsert.setDouble(4,mDiffAmt);
pstmtInsert.setDouble(5,mDiffAmt);
pstmtInsert.setString(6,adjTranSer);
pstmtInsert.setString(7,adjRefNo);
pstmtInsert.setString(8,mTranId);
pstmtInsert.addBatch();
pstmtInsert.clearParameters();
// 09-01-02 End Arif
//////////////////////////////////////////////////////////////////
// 14/03/01 manoharan update of receivables commented
// only insert of receivables_adj records will be taken place in
// this function. The related updates will be done when the invoice
// is confirmed
//update receivables
// set adj_amt = tot_amt, status = 'A'
// where tran_id = :mTranId;
//if (get_sqlcode() < 0 then
// merrcode = 'DS000' + string(sqlca.sqldbcode)
// return merrcode
//elseif (sqlca.sqlnrows <> 1 then
// merrcode = 'DS000NR'
//} (
mChkRec++;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
pstmtInsert.executeBatch();
pstmtInsert.clearParameters();
//pstmtInsert.close();
mTotAmt = 0;
mAdjAmt = 0;
mDiffAmt = 0;
}
// CRNRCP Processing
//declare c_credit cursor for
//select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables
// where ((tran_ser = 'CRNRCP' or tran_ser = 'MDRCRC' or tran_ser = 'R-ADV' ) and (tot_amt - adj_amt) < 0)
// and site_code = :as_site_code and item_ser = :as_item_ser
// and cust_code = :as_cust_code order by tran_id;
// 04-09-2005 manoharan if (dr/cr adjustment and advance adjustment not selected
// no need to do the following adjustment
// end 04-09-2005 manoharan
if (adjDrCr || adjAdv)
{
if (adjDrCr && adjAdv)
{
tranSeries = "'CRNRCP','MDRCRC', 'R-ADV'";
}
else if (adjDrCr && !adjAdv)
{
tranSeries = "'CRNRCP', 'MDRCRC'";
}
else if (!adjDrCr && adjAdv)
{
tranSeries = "'R-ADV'";
}
//Amit 21/01/05 'CUST_ADV'
asjCustAdv = distCommon.getDisparams("999999","CUST_ADVADJ_TYPE",conn);
if ("C".equals(advAdj)) //prince 11/11/05
{
if ("I".equals(asjCustAdv))
{
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables "
+ " where ((tran_ser in (" + tranSeries + ")) and (tot_amt - adj_amt) < 0 and (fin_scheme is null or fin_scheme = ' ')) "
+ " and (site_code = ? and item_ser = ? and cust_code = ?) order by tran_id ";
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1,siteCode);
pstmt.setString(2,itemSer);
pstmt.setString(3,custCode);
//changes done by Vyankatesh on 24-01-05 for subscription
}
else if ("S".equals(asjCustAdv))
{
sqlStr = "select cust_pord from sorder where sale_order = ?";
pstmt1 = conn.prepareStatement(sqlStr);
pstmt1.setString(1,mOrderNo);
rs1 = pstmt1.executeQuery();
if (rs1.next())
{
subsNo = rs1.getString("cust_pord");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
sqlStr = "select rcp_no, site_code__rec,site_code__dlv "
+ " from subscrip_rcp a,subscrip_rcpdet b "
+ " where a.tran_id = b.tran_id and b.subs_no = ?";
pstmt1 = conn.prepareStatement(sqlStr);
pstmt1.setString(1,subsNo);
rs1 = pstmt1.executeQuery();
if (rs1.next())
{
rcpNo = rs1.getString("cust_pord");
siteCodeRcp = rs1.getString("cust_pord");
siteCodeDlv = rs1.getString("cust_pord");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if (!siteCodeRcp.trim().equals(siteCodeDlv.trim()))
{
tranSeries ="'R-IBCA'";
}
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables "
+ " where ((tran_ser in (" +tranSeries + ")) and (tot_amt - adj_amt) < 0 and (fin_scheme is null or fin_scheme = ' ')) "
+ " and (site_code = ? and ref_no = ? and cust_code = ?) order by tran_id ";
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1,siteCode);
pstmt.setString(2,rcpNo);
pstmt.setString(3,custCode);
//changes end by Vyankatesh on 24-01-05 for subscription
}
else
{
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables "
+ " where ((tran_ser in (" +tranSeries + ")) and (tot_amt - adj_amt) < 0 and (fin_scheme is null or fin_scheme = ' ')) "
+ " and ((site_code = ? and item_ser = ? and cust_code = ?) "
+ " OR ( site_code = ? and cust_code = ?)) order by tran_id ";
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1,siteCode);
pstmt.setString(2,itemSer);
pstmt.setString(3,custCode);
pstmt.setString(4,siteCode);
pstmt.setString(5,custCode);
}
}
else
{
//adjust advance thorugh sale order wise prince 10/11/05
sqlStr = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables "
+ " where ((tran_ser in (" +tranSeries + ")) and (tot_amt - adj_amt) < 0 ) "
+ " and ((site_code = ? and item_ser = ? and cust_code = ?) "
+ " OR ( site_code = ? and cust_code = ?)) "
+ " and ( sale_order = ?) order by tran_id ";
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1,siteCode);
pstmt.setString(2,itemSer);
pstmt.setString(3,custCode);
pstmt.setString(4,siteCode);
pstmt.setString(5,custCode);
pstmt.setString(6,mOrderNo);
}
//PREPARE SQLSA FROM :sqlStr ;
//OPEN DYNAMIC c_credit using :siteCode, :itemSer, :custCode, :siteCode, :custCode ;
//end Amit 21/01/05 'CUST_ADV'
rs = pstmt.executeQuery();
while(rs.next())
{
mTranId = rs.getString("tran_id");
mTranSer = rs.getString("tran_ser");
mRefNo = rs.getString("ref_no");
mTotAmt = rs.getDouble("tot_amt");
mAdjAmt = rs.getDouble("adj_amt");
if (mDrAmt == 0)
{
break;
}
mDiffAmt = mTotAmt - mAdjAmt;
if (mDrAmt >= Math.abs(mDiffAmt))
{
mDrAmt = mDrAmt - Math.abs(mDiffAmt);
mAdjAmt = mDiffAmt;
status = "A";
}
else
{
mAdjAmt = (mDrAmt * -1);
mDrAmt = 0;
status = "P";
}
// 09-01-02 Arif (to get the tran id from nvo_keygen
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 +"</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
nextID = tg.generateTranSeqID("R-ADJ", "tran_id", keystr, conn);
System.out.println("nextID ["+nextID + "]");
// 09-01-02 End Arif
sqlStr = "insert into receivables_adj "
+ " (tran_id, ref_ser, ref_no, tot_amt, adj_amt, net_amt,ref_ser_adj,ref_no_adj, tran_id__rcv) "
+ " values (?, ?, ?, ?, ?, ?, ?, ? ,?) ";
pstmtInsert.close();
pstmtInsert = conn.prepareStatement(sqlStr);
pstmtInsert.setString(1,nextID);
pstmtInsert.setString(2,mTranSer);
pstmtInsert.setString(3,mRefNo);
pstmtInsert.setDouble(4,mDiffAmt);
pstmtInsert.setDouble(5,mAdjAmt);
pstmtInsert.setDouble(6,(mDiffAmt - mAdjAmt));
pstmtInsert.setString(7,adjTranSer);
pstmtInsert.setString(8,adjRefNo);
pstmtInsert.setString(9,mTranId);
pstmtInsert.addBatch();
pstmtInsert.clearParameters();
mChkRec++;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
pstmtInsert.executeBatch();
pstmtInsert.close();
}
//**************************
if (mChkRec > 0 )
{
// 09-01-02 Arif (to get the tran id from nvo_keygen
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 +"</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
nextID = tg.generateTranSeqID("R-ADJ", "tran_id", keystr, conn);
System.out.println("nextID ["+nextID + "]");
// 09-01-02 End Arif
sqlStr = "INSERT INTO receivables_adj "
+ " (tran_id, ref_ser, ref_no, tot_amt, "
+ " adj_amt, ref_ser_adj, ref_no_adj, "
+ " net_amt, tran_id__rcv ) "
+ " values (?, ?, ?, ?, ?, ' ', ' ', ?, ' ') ";
pstmtInsert = conn.prepareStatement(sqlStr);
pstmtInsert.setString(1,nextID);
pstmtInsert.setString(2,adjTranSer);
pstmtInsert.setString(3,adjRefNo);
pstmtInsert.setDouble(4,netAmt);
pstmtInsert.setDouble(5,(mDrAmt - netAmt) * -1);
pstmtInsert.setDouble(6,(netAmt - (mDrAmt - netAmt)));
pstmtInsert.executeUpdate();
pstmtInsert.close();
//ended by prince
sqlStr = "update invoice "
+ " set adj_amount = ? "
+ " where invoice_id = ? ";
pstmtInsert = conn.prepareStatement(sqlStr);
pstmtInsert.setDouble(1,(mDrAmt - netAmt) * -1);
pstmtInsert.setString(1,invoiceId);
pstmtInsert.executeUpdate();
}
}
catch( Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
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(pstmtInsert != null)
{
pstmtInsert.close();
pstmtInsert = null;
}
//conn.close();
}
catch(Exception e)
{
System.out.println("Exception : "+e);e.printStackTrace();
throw new ITMException(e);
}
}
return errString;
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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