Commit 6e5566b5 authored by cpatil's avatar cpatil

modify / added for post order migration by vishakha / Mahendra / priyanka / vallabh


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@101055 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 6b4526ed
package ibase.webitm.ejb.dis;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.E12CreateBatchLoadEjb;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.fin.InvAcct;
import ibase.webitm.ejb.sys.CreateRCPXML;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
import java.io.Serializable;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
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);
rs3 = pstmt3.executeQuery();
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();
while(rs3.next())
{
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-----");
String retString = "";
Connection conn = null;
ConnDriver connDriver = null;
ITMDBAccessEJB itmDBAccessEJB = null;
try
{
connDriver = new ConnDriver();
conn = connDriver.getConnectDB("Driver");
conn.setAutoCommit(false);
itmDBAccessEJB = new ITMDBAccessEJB();
retString = confirm( tranID, xtraParams, forcedFlag,conn); //calling and creating connection
if( retString != null && retString.trim().length() > 0 )
{
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();
conn = null;
}
}
catch(Exception ef)
{
System.out.println(ef.getMessage());
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;
String sql = "",sql1 = "",sql3 = "";
String confirm = "";
String errString = "",holdFlag = "",holdFlagNew = "",invStat = "",grade = "",tranSer = "",gpSer = "",gpNo = "",siteCodeExc = "";
String statusDesp = "",channelPartner = "",lockLevel = "",isAllocated = "",varValue = "",disLink = "";
String availableYN = "",tranid = "",siteCode = "",disparmVal = "",sordNo = "",lineNo = "",lineNoSord = "",expLev = "",itemCodeOrd = "",itemCode = "",lotNo = "",lotSl = "",locCode = "",unitStd = "";
double quantityStduom = 0.0,quantity = 0.0,rateStduom = 0.0,hldQty = 0.0,qtyAlloc = 0.0,OrderQty = 0.0,mQtyCheck = 0.0;
double mCancperc = 0.0,bondTaxAmt = 0.0,bondValue = 0.0,bankGuarantee = 0.0;
double grossWeight = 0.0,tareWeight = 0.0,netweight = 0.0;
String exportOrderType = "",bondTaxGroup = "",eou = "";
String noArt = "",custCode = "",custCodeDlv = "",lockCode = "",varValuePurInteg = "",dataStr = "",siteCodeDlv = "";
String status ="",allocFlag = "",pendOrder = "";
String varValueTransit = "",invStatTransit = "",bondNo ="";
HashMap updDesp = new HashMap();
HashMap updDespTransit = new HashMap();
E12GenericUtility genericUtility = new E12GenericUtility();
//ConnDriver connDriver = null;
ITMDBAccessEJB itmDBAccessEJB = null;
Timestamp despDate = null,gpDate = null;
int cnt = 0,editOption = 0,detCount = 0;
boolean isLocal=false;
try
{
itmDBAccessEJB = new ITMDBAccessEJB();
/* if(conn==null)
{
connDriver = new ConnDriver();
conn = connDriver.getConnectDB("DriverITM");
connDriver = null;
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...........
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' ";
pstmt1 = conn.prepareStatement(sql1);
rs1 = pstmt1.executeQuery();
while(rs1.next())
{
varValue = rs1.getString("site_code__exc");
}
rs1.close();
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 + "'")
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)
{
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 = ? ";
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"));
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
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;
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);
pstmt.setString(3,expLev);
pstmt.setString(4,itemCodeOrd);
pstmt.setString(5,itemCode);
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 = ? ";
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,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);
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");
}
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 "
+" 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,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);
rs = pstmt.executeQuery();
while(rs.next())
{
pendOrder = checkNull(rs.getString("pending_order"));
}
pstmt.close();
pstmt = null;
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,itemCode);
rs = pstmt.executeQuery();
while(rs.next())
{
mCancperc = rs.getDouble("mCancperc");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(OrderQty > 0.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 = ?";
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 = 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;
}
}
}
}//status not cancelled
}
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 = ?";
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;
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)
{
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;
}
private String checkNull(String inp)
{
if(inp == null)
inp = " ";
return inp.trim();
}
}
package ibase.webitm.ejb.dis;
import ibase.webitm.utility.ITMException;
import ibase.webitm.ejb.*;
import java.sql.Connection;
import java.rmi.RemoteException;
import javax.ejb.Local;
@Local
public interface DespatchConfirmLocal extends ActionHandlerLocal
{
public String confirm(String tranID, String xtraParams, String forcedFlag) throws RemoteException,ITMException;
public String confirm( String tranId, String xtraParams,String forcedFlag, Connection conn) throws RemoteException,ITMException;
}
package ibase.webitm.ejb.dis;
import ibase.webitm.utility.ITMException;
import ibase.webitm.ejb.*;
import java.sql.Connection;
import java.rmi.RemoteException;
import javax.ejb.Remote;
@Remote
public interface DespatchConfirmRemote extends ActionHandlerRemote
{
public String confirm(String tranID, String xtraParams, String forcedFlag) throws RemoteException,ITMException;
public String confirm( String tranId, String xtraParams,String forcedFlag, Connection conn) throws RemoteException,ITMException;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
package ibase.webitm.ejb.dis;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import javax.naming.InitialContext;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
import ibase.system.config.AppConnectParm;
import ibase.webitm.ejb.MasterStatefulLocal;
public class PostOrdDespatchGen
{
E12GenericUtility genericUtility=new E12GenericUtility();
FinCommon finCommon=new FinCommon();
public String createDespatch(String saleOrderfr, String saleOrderTo,String custCodeFr, String custCodeTo, Timestamp frDate,
Timestamp toDate, String siteCodeShip, Connection conn) throws RemoteException, ITMException, SQLException
{
ibase.utility.UserInfoBean userInfo = new UserInfoBean();
System.out.println("CREATING DESPATCH !!!!!!!!!!!!");
String sql = "";
// Connection conn = null;
ibase.utility.E12GenericUtility genericUtility = null;
genericUtility = new ibase.utility.E12GenericUtility();
java.util.Date today = new java.util.Date();
PreparedStatement pstmt = null, pstmt1 = null,pstmt2=null,pstmt3=null;
ResultSet rs = null, rs1 = null,rs2=null,rs3=null;;
String saleOrder = "", custCode = "", custCodeDlv = "", custCodeBill = "", itemSer = "", priceList = "", crTerm = "";
String custName="",custNameDlv="",listType="";
String siteCode = "", currCode = "", dlvAdd1 = "", dlvAdd2 = "", dlvAdd3 = "", tranCode = "", stateCodeDlv = "";
String stanCode = "",stationDescr="", dlvPin = "", countCodeDlv = "", dlvCity = "", dlvTerm = "", orderType = "";
String lineNo = "", transMode = "", itemCode = "", remarks = "", currCodeFrt = "", currCodeIns = "";
String keyString="",keyCol="",tranSer1="";
double exchrate = 0, exchrateFrt = 0, exchrateIns = 0, insAmt = 0, frtAmt = 0,sordQty=0,itemRate=0,totRate=0,diffRate=0,discAmt=0;
String stkOpt = "",gpSer="",shName="",lrNo="",gpNo="",confirmed="";
Date orderDate = null,retestDate=null;
String splitCode = "",restdate="";
String tempSplitCode = "";
String priceListDisc="",priceListClg="",getPriceList="",itemRef="",priceListType="",priceListDiscType="",priceListClgType="";
Date plDate=null,ordDate=null;
int count = 0;
HashMap splitCodeWiseMap = new HashMap();
HashMap tempMap = null;
HashMap tempMapSord = null;
HashMap sordDetMap=null;
ArrayList tempList = null;
ArrayList sordList=new ArrayList();
ArrayList sordDetList=null;
HashMap newTempMap = new HashMap();
//HashMap newTempMapDet=new HashMap();
StringBuffer xmlString = null;
String userId="",chgUser="",chgTerm="";
String sysDate = "",despDate="";
Timestamp despDateTs=null,effDate=null;
String tranId="";
int insertCntHdr=0,insertCntDet=0;
String xtraParams = null;
//Details
String errString = "";
String orderDtStr ="",plDateStr="";
Timestamp ordDtTS=null,plDateTs=null;
int whileCnt=0,whileCntDet=0;
ITMDBAccessEJB itmDBAccessEJB = null;
String lineNoOrd="",expLev="",locCode="",descr="",itemCodeRef="",nature="",applyPrice="",priceVar="";
String itemType="",unitWt="",unitRate="",rateOpt="",priceListClgYN="",temp="",status="";
double grossWtPerart=0,tareWtPerArt=0,netWtPerArt=0;
String siteCodeMfg="",itemCodeOrd="",lotNo="",lotSl="",siteCde="",unitStd="",unit="",custCodeSal="";
double mZero=0,allocQty=0,qtyOrduom=0,mrate=0,discMerge=0,plistDisc=0,rateStdum=0;
int cnt=0,lineNum=0;
boolean lbCheck=false;
Date expDate=null,mfgDate=null;
double quantityStd=0,qtyAllocStd=0,convQtyStduom=0,costRate=0,noArt=0,confDiffAmt=0;
double rate=0,rateClg=0,qtyDesp=0,pendingQty=0,shipperQty=0,intQty=0,convRtuomStduom=0,rateStduom=0,rateStd=0;
String taxClass="",taxChap="",taxEnv="",packCode="",custItemRef="",unitRateSord="",unitSord="";
DistCommon distCommon=new DistCommon();
try {
System.out.println("process starts---------");
itmDBAccessEJB = new ITMDBAccessEJB();
xtraParams = "loginCode="+userInfo.getLoginCode()+"~~termId="+userInfo.getRemoteHost()+"~~loginSiteCode="+userInfo.getSiteCode()+"~~loginEmpCode="+userInfo.getEmpCode();
java.util.Date currentDate = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat(this.genericUtility.getApplDateFormat());
Calendar c = Calendar.getInstance();
c.setTime(today);
today = c.getTime();
SimpleDateFormat sdf1 = new SimpleDateFormat(this.genericUtility.getApplDateFormat());
sysDate = sdf.format(today);
System.out.println("sysDate****==========" + sysDate);
despDate=sysDate;
despDateTs = Timestamp.valueOf(genericUtility.getValidDateString(despDate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0");
System.out.println("Date to be set as despDateTs@@@@@@@==="+despDateTs);
System.out.println("Despatch Date-========="+despDate);
effDate=despDateTs;
System.out.println("Effective date====="+effDate);
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
chgUser =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode"));
chgTerm =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "chgTerm"));
userId=userInfo.getLoginCode();
System.out.println("User Id :- ["+userId+"]");
System.out.println("saleOrderfr=====" + saleOrderfr);
System.out.println("saleOrderTo=====" + saleOrderTo);
System.out.println("custCodeFr=====" + custCodeFr);
System.out.println("custCodeTo=====" + custCodeTo);
System.out.println("frDate=====" + frDate);
System.out.println("toDate=====" + toDate);
System.out.println("siteCodeShip=====" + siteCodeShip);
sql = "SELECT SORDER.SALE_ORDER, SORDER.ORDER_DATE,SORDER.CUST_CODE,SORDER.CUST_CODE__DLV,SORDER.CUST_CODE__BIL , "
+ " SORDER.ITEM_SER , SORDER.PRICE_LIST,SORDER.PRICE_LIST__DISC,SORDER.PRICE_LIST__CLG,SORDER.PL_DATE,SORDER.CR_TERM,SORDER.SITE_CODE, SORDER.CONFIRMED,"
+ "SORDER.CONF_DATE , SORDER.CURR_CODE , SORDER.DLV_ADD1 ,SORDER.DLV_ADD2,SORDER.DLV_CITY ,"
+ "SORDER.COUNT_CODE__DLV,SORDER.DLV_PIN,SORDER.STAN_CODE,SORDER.TRAN_CODE,SORDER.STATE_CODE__DLV,"
+ "SORDER.DLV_ADD3,SORDER.ALLOC_FLAG,SORDER.DLV_TERM,SORDDET.SITE_CODE,SORDDET.QUANTITY,"
+ "SORDDET.UNIT, SORDDET.RATE,SORDDET.DISCOUNT,SORDDET.TAX_AMT,SORDDET.TAX_CLASS,SORDDET.TAX_CHAP,"
+ "SORDDET.TAX_ENV,SORDDET.NET_AMT,SORDDET.UNIT__RATE,SORDDET.RATE__CLG,SORDDET.PACK_CODE,SORDDET.CUST_ITEM__REF,SORDDET.CONV__QTY_STDUOM,"
+ "SORDDET.CONV__RTUOM_STDUOM,SORDDET.UNIT__STD,SORDDET.QUANTITY__STDUOM,SORDDET.RATE__STDUOM,SORDDET.RATE__STD,"
+ "SORDDET.NO_ART,SORDDET.ITEM_CODE,SORDDET.ITEM_SER, SORDER.ORDER_TYPE,SORDDET.LINE_NO,"
+ "SORDER.TRANS_MODE,SORDER.REMARKS,SORDER.EXCH_RATE, SORDER.EXCH_RATE__FRT,SORDER.CURR_CODE__FRT,"
+ "SORDER.EXCH_RATE__INS,SORDER.CURR_CODE__INS,SORDER.FRT_AMT,SORDER.INS_AMT "
+ "FROM SORDER,SORDDET "
+ "WHERE ( SORDER . SALE_ORDER = SORDDET . SALE_ORDER ) "
+ "and ( sorder.sale_order >= ? ) "
+ "AND ( sorder.sale_order <= ? )"
+ "AND ( sorder.cust_code >= ?)"
+ "AND ( sorder.cust_code <= ?) "
+ "AND ( sorder.due_date >= ?) "
+ "AND ( sorder.due_date <= ?) "
+ "AND ( sorder.confirmed = 'Y' )"
+ " AND ( sorder.alloc_flag = 'Y' )"
+ "AND ( sorder.status = 'P' )"
+ "AND sorder.site_code__ship = ? "
+ "ORDER BY SORDER . CUST_CODE ASC,SORDER.CUST_CODE__DLV ASC, "
+ "SORDER.ITEM_SER ASC,SORDER.CR_TERM ASC,SORDER.DLV_TERM ASC,"
+ "SORDER.ORDER_TYPE ASC,SORDER.TRANS_MODE ASC,SORDDET.SITE_CODE ASC";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, saleOrderfr);
pstmt.setString(2, saleOrderTo);
pstmt.setString(3, custCodeFr);
pstmt.setString(4, custCodeTo);
pstmt.setTimestamp(5, frDate);// due date frm
pstmt.setTimestamp(6, toDate);// due date to
pstmt.setString(7, siteCodeShip);
rs = pstmt.executeQuery();
while (rs.next())
{
whileCnt++;
System.out.println("while cnt==="+whileCnt);
saleOrder = rs.getString("SALE_ORDER");
orderDate = rs.getDate("ORDER_DATE");
custCode = rs.getString("CUST_CODE");
custCodeDlv = rs.getString("CUST_CODE__DLV");
custCodeBill = rs.getString("CUST_CODE__BIL");
itemSer = rs.getString("ITEM_SER");
priceList = rs.getString("PRICE_LIST");
priceListDisc=rs.getString("PRICE_LIST__DISC");
priceListClg=rs.getString("PRICE_LIST__CLG");
plDate = rs.getDate("PL_DATE");
crTerm = rs.getString("CR_TERM");
siteCode = rs.getString("SITE_CODE");
currCode = rs.getString("CURR_CODE");
dlvAdd1 = rs.getString("DLV_ADD1");
dlvAdd2 = rs.getString("DLV_ADD2");
dlvAdd3 = rs.getString("DLV_ADD3");
dlvCity = rs.getString("DLV_CITY");
countCodeDlv = rs.getString("COUNT_CODE__DLV");
dlvPin = rs.getString("DLV_PIN");
stanCode = rs.getString("STAN_CODE");
tranCode = rs.getString("TRAN_CODE");
stateCodeDlv = rs.getString("STATE_CODE__DLV");
dlvTerm = rs.getString("DLV_TERM");
orderType = rs.getString("ORDER_TYPE");
lineNo = rs.getString("LINE_NO");
transMode = rs.getString("TRANS_MODE");
itemCode = rs.getString("item_code");
remarks = rs.getString("remarks");
exchrate = rs.getDouble("EXCH_RATE");
currCodeFrt = rs.getString("CURR_CODE__FRT");
currCodeIns = rs.getString("CURR_CODE__INS");
exchrateFrt = rs.getDouble("EXCH_RATE__FRT");
exchrateIns = rs.getDouble("EXCH_RATE__INS");
frtAmt = rs.getDouble("FRT_AMT");
insAmt = rs.getDouble("INS_AMT");
rateClg = rs.getDouble("RATE__CLG");
packCode = rs.getString("PACK_CODE");
custItemRef = rs.getString("CUST_ITEM__REF");
convRtuomStduom = rs.getDouble("CONV__RTUOM_STDUOM");
rateStduom = rs.getDouble("RATE__STDUOM");
rateStd = rs.getDouble("RATE__STD");
unitRateSord = rs.getString("UNIT__RATE");
unitSord = rs.getString("UNIT");
System.out.println("saleOrder=====" + saleOrder);
System.out.println("orderDate=====" + orderDate);
System.out.println("custCode=====" + custCode);
System.out.println("custCodeDlv=====" + custCodeDlv);
System.out.println("custCodeBill=====" + custCodeBill);
System.out.println("itemSer=====" + itemSer);
System.out.println("priceList=====" + priceList);
System.out.println("priceListClg=====" + priceListClg);
System.out.println("priceListDisc=====" + priceListDisc);
System.out.println("plDate=====" + plDate);
System.out.println("crTerm=====" + crTerm);
System.out.println("siteCode=====" + siteCode);
System.out.println("currCode=====" + currCode);
System.out.println("dlvAdd1=====" + dlvAdd1);
System.out.println("dlvAdd1=====" + dlvAdd1);
System.out.println("dlvAdd3=====" + dlvAdd3);
System.out.println("dlvCity=====" + dlvCity);
System.out.println("countCodeDlv=====" + countCodeDlv);
System.out.println("currCode=====" + currCode);
System.out.println("dlvPin=====" + dlvPin);
System.out.println("stanCode=====" + stanCode);
System.out.println("tranCode=====" + tranCode);
System.out.println("stateCodeDlv=====" + stateCodeDlv);
System.out.println("dlvTerm=====" + dlvTerm);
System.out.println("orderType=====" + orderType);
System.out.println("lineNo=====" + lineNo);
System.out.println("transMode=====" + transMode);
System.out.println("itemCode=====" + itemCode);
System.out.println("remarks=====" + remarks);
System.out.println("exchrate=====" + exchrate);
System.out.println("currCodeFrt=====" + currCodeFrt);
System.out.println("currCodeIns=====" + currCodeIns);
System.out.println("exchrateFrt=====" + exchrateFrt);
System.out.println("exchrateIns=====" + exchrateIns);
System.out.println("frtAmt=====" + frtAmt);
System.out.println("insAmt=====" + insAmt);
System.out.println("rateClg=====" + rateClg);
System.out.println("packCode=====" + packCode);
System.out.println("custItemRef=====" + custItemRef);
System.out.println("convRtuomStduom=====" + convRtuomStduom);
System.out.println("rateStduom=====" + rateStduom);
System.out.println("unitRateSord=====" + unitRateSord);
if(orderDate!=null)
{
orderDtStr = sdf.format(orderDate);
ordDtTS = Timestamp.valueOf(genericUtility.getValidDateString(orderDtStr, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0");
System.out.println("Date to be set as ordDtTS@@@@@@@==="+ordDtTS);
}
sql = "select stk_opt from siteitem where site_code = ? and item_code = ? ";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, siteCode);
pstmt1.setString(2, itemCode);
rs1 = pstmt1.executeQuery();
if (rs1.next())
{
stkOpt = rs1.getString("stk_opt");
System.out.println("stkOpt=====" + stkOpt);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if (stkOpt == null || stkOpt.trim().length() == 0)
{
sql = "select stk_opt from item where item_code = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, itemCode);
rs1 = pstmt1.executeQuery();
if (rs1.next())
{
stkOpt = rs1.getString("stk_opt");
System.out.println("stkOpt=====" + stkOpt);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if (stkOpt == null || stkOpt.trim().length() == 0)
{
stkOpt = "0";
}
}
System.out.println(" final stkOpt=====" + stkOpt);
// //SELECT TO CHECK WHETHER ITEM IS ALLOCATED OR NOT
sql = "select count(*) from sorditem where sale_order = ? "
+ "and line_no = ? and item_code__ref = ?"
+ "and line_type = 'I' "
+ "and quantity - (case when qty_desp is NULL then 0 else qty_desp end ) > 0 "
+ "and case when ? = '0' then 1 else (case when qty_alloc is NULL then 0 else qty_alloc end ) end > 0 ";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, saleOrder);
pstmt1.setString(2, lineNo);
pstmt1.setString(3, itemCode);
pstmt1.setString(4, stkOpt);
rs1 = pstmt1.executeQuery();
if (rs1.next())
{
count = rs1.getInt(1);
System.out.println("Count =======" + count);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if (count > 0)
{
tempSplitCode = custCode + "@" + custCodeDlv + "@" + itemSer
+ "@" + crTerm + "@" + dlvTerm + "@" + orderType + "@"
+ siteCode + "@" + transMode;
System.out.println("splitCodeWiseMap===" + splitCodeWiseMap);
System.out.println("tempSplitCode Combo===" + tempSplitCode);
if (splitCodeWiseMap.containsKey(tempSplitCode))
{
System.out.println("*****Combination Exist*****");
tempList = (ArrayList) splitCodeWiseMap.get(tempSplitCode);
System.out.println("Combination Exist TempList======"+ tempList);
}
else
{
System.out.println("*****Combination Not Exist*****");
tempList = new ArrayList();
System.out.println("Combination Not $$ Exist TempList======"+ tempList);
}
System.out.println("tempList======" + tempList);
tempMap = new HashMap();//to put header detail value from sorder
sql=" select cust_name from customer where cust_code = ?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,custCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
custName =rs1.getString("cust_name");
System.out.println("custName ======="+custName);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
sql="select cust_name from customer where cust_code = ?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,custCodeDlv);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
custNameDlv =rs1.getString("cust_name");
System.out.println("custNameDlv ======="+custNameDlv);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
sql="select gp_ser from sordertype where order_type = ?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,orderType);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
gpSer =rs1.getString("gp_ser");
System.out.println("gpSer ======="+gpSer);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if(gpSer==null||gpSer.trim().length()==0)
{
//ls_gp_ser = left(trim(ls_ordertype),1)
gpSer=orderType.substring(1);
System.out.println("gpSer==="+gpSer);
}
sql="select descr from station where stan_code = ?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,stanCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
stationDescr =rs1.getString("descr");
System.out.println("stationDescr ======="+stationDescr);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
//Detail Migrate for sorditem
System.out.println("Starting Detail Migration@@@@");
sql="select item_code from sorditem where sale_order = ? " +
"and line_no = ? and (status <> 'I' or status is null) order by line_no,item_code ";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,saleOrder);
pstmt1.setString(2,lineNo);
rs1=pstmt.executeQuery();
if(rs1.next())
{
itemCode =rs1.getString("item_code");
System.out.println("itemCode ======="+itemCode);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
sql="select stk_opt from item where item_code = ?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,itemCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
stkOpt =rs1.getString("stk_opt");
System.out.println("stkOpt ======="+stkOpt);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if("0".equals(stkOpt))
{
System.out.println("0.equals(stkOpt)");
sql=" select line_no, exp_lev, item_code__ord, quantity, item_code, quantity qty_alloc,lot_no,lot_sl," +
"loc_code,unit unit__std,1 conv__qty_stduom, unit,exp_date, site_code,mfg_date,site_code__mfg " +
"from sorditem " +
"where sale_order = ? " +
"and line_no =? " +
"and site_code = ? " +
"and (status <> 'I' or status is null) order by item_code, line_no ";
}
else
{
System.out.println("Else////");
/*sql=" select line_no, exp_lev, item_code__ord, quantity, item_code,qty_alloc, " +
"lot_no, lot_sl, loc_code, unit__std, conv__qty_stduom,unit," +
" exp_date, site_code, mfg_date, site_code__mfg " +
"from sordalloc " +
"where sale_order =? " +
"and line_no = ? " +
"and site_code = ? " +
"and (status <> 'I' or status is null) order by item_code, exp_lev,exp_date";*/
sql=" select line_no, exp_lev, item_code__ord, quantity, item_code,qty_alloc, " +
"lot_no, lot_sl, loc_code, unit__std, conv__qty_stduom,unit," +
" exp_date, site_code, mfg_date, site_code__mfg " +
"from sordalloc " +
"where sale_order =? " +
"and site_code = ? " +
"and (status <> 'I' or status is null) order by item_code, exp_lev,exp_date";
}
pstmt2=conn.prepareStatement(sql);
pstmt2.setString(1,saleOrder);
// pstmt2.setString(2,lineNo);
pstmt2.setString(2,siteCode);
rs2=pstmt2.executeQuery();
while(rs2.next())
{
whileCntDet++;
System.out.println("While of Detail count@@@@"+whileCntDet);
lineNoOrd =rs2.getString("line_no");
expLev =rs2.getString("exp_lev");
itemCodeOrd =rs2.getString("item_code__ord");
quantityStd =rs2.getDouble("quantity");
itemCode =rs2.getString("item_code");
qtyAllocStd =rs2.getDouble("qty_alloc");
lotNo =rs2.getString("lot_no");
lotSl =rs2.getString("lot_sl");
locCode =rs2.getString("loc_code");
unitStd =rs2.getString("unit__std");
convQtyStduom =rs2.getDouble("conv__qty_stduom");
unit =rs2.getString("unit");
expDate =rs2.getDate("exp_date");
siteCde =rs2.getString("site_code");
mfgDate =rs2.getDate("mfg_date");
siteCodeMfg =rs2.getString("site_code__mfg");
System.out.println("lineNoOrd ======="+lineNoOrd);
System.out.println("expLev ======="+expLev);
System.out.println("itemCodeOrd ======="+itemCodeOrd);
System.out.println("quantity ======="+quantityStd);
System.out.println("itemCode ======="+itemCode);
System.out.println("qtyAllocStd ======="+qtyAllocStd);
System.out.println("lotNo ======="+lotNo);
System.out.println("lotSl ======="+lotSl);
System.out.println("locCode ======="+locCode);
System.out.println("unitStd ======="+unitStd);
System.out.println("convQtyStduom ======="+convQtyStduom);
System.out.println("unit ======="+unit);
System.out.println("expDate ======="+expDate);
System.out.println("siteCde ======="+siteCde);
System.out.println("mfgDate ======="+mfgDate);
System.out.println("siteCodeMfg ======="+siteCodeMfg);
sql="select sum(quantity__stduom) as qty_desp from despatch, despatchdet " +
"where despatch.desp_id = despatchdet.desp_id " +
" and despatchdet.sord_no = ? " +
" and line_no__sord = ? " +
" and exp_lev = ? " +
" and item_code = ? and despatch.confirmed = 'N' ";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,saleOrder);
pstmt1.setString(2,lineNoOrd);
pstmt1.setString(3,expLev);
pstmt1.setString(4,itemCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
qtyDesp =rs1.getDouble("qty_desp");
System.out.println("qtyDesp ======="+qtyDesp);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if(qtyDesp==0)
{
qtyDesp=0;
}
sql="select sum(quantity - qty_desp) as pending_qty from sorditem " +
"where sale_order = ? " +
"and line_no = ? " +
"and exp_lev = ? ";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,saleOrder);
pstmt1.setString(2,lineNoOrd);
pstmt1.setString(3,expLev);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
pendingQty =rs1.getDouble("pending_qty");
System.out.println("pendingQty ======="+pendingQty);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if(pendingQty==0)
{
pendingQty=0;
}
if(pendingQty < (qtyAllocStd+qtyDesp))
{
qtyAllocStd=qtyAllocStd-qtyDesp;
System.out.println("qtyDesp Value=="+qtyDesp);
}
if(qtyAllocStd==0)
{
System.out.println(">>The selected transaction is confirmed");
errString = itmDBAccessEJB.getErrorString("","VTDESP6","","",conn);
}
if(unitStd!=unit)
{
mZero=0;
allocQty=distCommon.convQtyFactor(unitStd, unit, itemCode, qtyAllocStd, conn);
if(allocQty==-999999999)
{
// errcode = "Unable to convert quantity";
System.out.println("Unable to convert quantity");
errString = itmDBAccessEJB.getErrorString("","VTQTY01","","",conn);
}
//doubt
qtyOrduom=distCommon.convQtyFactor(unitStd, unit, itemCode, quantityStd ,conn);
if(qtyOrduom==-999999999)
{
//errcode = "Unable to convert quantity";
System.out.println("Unable to convert quantity");
errString = itmDBAccessEJB.getErrorString("","VTQTY01","","",conn);
}
}
else
{
allocQty=qtyAllocStd;
qtyOrduom=quantityStd;
}
sql="select descr from item where item_code = ?";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, itemCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
descr =rs1.getString("descr");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
status="I";
tempMapSord=new HashMap();// contain values for sorditem
tempMapSord.put("line_no__sord", lineNoOrd);
tempMapSord.put("exp_lev",expLev);
tempMapSord.put("item_code__ord", itemCodeOrd);
tempMapSord.put("quantity__ord", qtyOrduom);
tempMapSord.put("item_code", itemCode);
// tempMap.put("item_descr", dlvCity);
tempMapSord.put("quantity", allocQty);
tempMapSord.put("lot_no", lotNo);
tempMapSord.put("lot_sl", lotSl);
tempMapSord.put("loc_code", locCode);
tempMapSord.put("unit__std", unitStd);
tempMapSord.put("conv__qty_stduom", convQtyStduom);
tempMapSord.put("unit", unit);
tempMapSord.put("quantity__stduom", allocQty);
tempMapSord.put("quantity_real", allocQty);
if(expDate!=null)
{
tempMapSord.put("exp_date", expDate);
}
if(mfgDate!=null)
{
tempMapSord.put("mfg_date", mfgDate);
}
tempMapSord.put("site_code", siteCode);
tempMapSord.put("site_code__mfg", siteCde);
tempMapSord.put("status", status);
tempMapSord.put("tax_chap", taxChap);
tempMapSord.put("tax_class", taxClass);
tempMapSord.put("tax_env", taxEnv);
confDiffAmt=0;
tempMapSord.put("conf_diff_amt", confDiffAmt);
System.out.println("@@@@@@@@@@@ custItemRef["+custItemRef+"]");
if(custItemRef!=null && custItemRef.trim().length()>0)
{
tempMapSord.put("cust_item__ref", custItemRef);
}
else
{
sql=" select ITEM_CODE__REF from customeritem where item_code = ? and cust_code =? ";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1, itemCode);
pstmt1.setString(2, custCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
itemCodeRef =rs1.getString("ITEM_CODE__REF");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("@@@@@@@@@@ itemCodeRef==========="+itemCodeRef);
tempMapSord.put("cust_item__ref",checkNull(itemCodeRef));
}
sql=" select (case when rate is null then 0 else rate end ) as costRate ,retest_date as retest_date " +
"from stock " +
"where item_code = ? " +
"and site_code = ? " +
"and loc_code = ? " +
"and lot_no = ? " +
"and lot_sl = ? ";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, itemCode);
pstmt1.setString(2, siteCde);
pstmt1.setString(3, locCode);
pstmt1.setString(4, lotNo);
pstmt1.setString(5, lotSl);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
costRate =rs1.getDouble("costRate");
retestDate =rs1.getDate("retest_date");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("costRate====="+costRate);
System.out.println("retestDate====="+retestDate);
tempMapSord.put("cost_rate", costRate);
if(retestDate!=null)
{
restdate=sdf.format(retestDate);
}
System.out.println("restdate======"+restdate);
if(restdate!=null && restdate.trim().length()>0 &&restdate.equals("01/01/1900"))
{
restdate= null;
}
else
{
tempMapSord.put("retest_date", retestDate);
}
noArt=distCommon.getNoArt(siteCde, custCode, itemCode, packCode, allocQty, 'B', shipperQty, intQty, conn);
System.out.println("noArt========"+noArt);
tempMapSord.put("no_art", noArt);
sql=" select nature from sorditem where sale_order = ? and line_no = ? and exp_lev = ?";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, saleOrder);
pstmt1.setString(2, lineNoOrd);
pstmt1.setString(3, expLev);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
nature =rs1.getString("nature");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("Nature==="+nature);
if(nature==null ||nature.trim().length()==0)
{
nature="C";
}
if(rate==0 && "C".equalsIgnoreCase(nature))
{
plDateStr = sdf.format(plDate);
System.out.println("plDateStr======"+plDateStr);
plDateTs = Timestamp.valueOf(genericUtility.getValidDateString(plDateStr, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0");
System.out.println("plDateTs time stamp@@@@@@@==="+plDateTs);
///
sql="select quantity__stduom from sorddet where sale_order = ? and line_no = ?";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, saleOrder);
pstmt1.setString(2, lineNoOrd);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
sordQty =rs1.getDouble("quantity__stduom");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("sordQty======"+sordQty);
if(priceListDisc==null||priceListDisc.trim().length()==0)
{
priceListType= distCommon.getPriceListType(priceList, conn);
System.out.println("priceListType====="+priceListType);
if("L".equals(priceListType))
{
sql=" select count(*) from pricelist where price_list =? and list_type = 'I'";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, priceList);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
cnt =rs1.getInt(1);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("cnt======"+cnt);
if(cnt==0)
{
mrate=distCommon.pickRate(priceList, despDate, itemCode, lotNo, "D", sordQty, conn);//changes required
}
else
{
String listTyp= siteCode + "@" + locCode + "@" + lotNo;
mrate=distCommon.pickRate(priceList, despDate, itemCode, listTyp, "I", sordQty, conn);//changes required
}
if(mrate<0)
{
// errcode = 'VTRATE1'
System.out.println(">Rate is not proper for "+ itemCode + "@" + lotNo);
errString = itmDBAccessEJB.getErrorString("","VTRATE1","","",conn);
}
}
}
else
{
// lc_plist_disc = i_nvo_gbf_func.gbf_get_discount(ls_plist_disc,ld_order_date,ls_custcode,ls_site_code,ls_itemcode,ls_unitstd,lc_disc_merge,ld_plist_date,lc_sord_qty)
plistDisc=getDiscount(priceListDisc, ordDtTS, custCode, siteCode, itemCode, unit, discMerge, plDateTs, sordQty, conn);
priceListDiscType= distCommon.getPriceListType(priceListDisc, conn);
System.out.println("priceListDiscType for priceListDisc ======"+priceListDiscType);
if("M".equals(priceListDiscType))
{
System.out.println("priceListDiscType for priceListDisc===M");
priceListType= distCommon.getPriceListType(priceList, conn);
System.out.println("priceListType====="+priceListType);
if(!"L".equalsIgnoreCase(priceListType))
{
System.out.println("priceListType not equal to l");
mrate=distCommon.pickRate(priceList, despDate, itemCode, lotNo, "D", sordQty, conn);//changes required
}
mrate =calcRate(mrate, plistDisc);
System.out.println("mrate from calcRate function====="+mrate);
}
else
{
sql="select count(*) from pricelist where price_list = ? and list_type = 'I'";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, priceList);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
cnt =rs1.getInt(1);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("cnt======"+cnt);
if(cnt==0)
{
System.out.println("cnt is zero======");
priceListType= distCommon.getPriceListType(priceList, conn);
System.out.println("priceListType====="+priceListType);
if(!"L".equalsIgnoreCase(priceListType))
{
mrate=distCommon.pickRate(priceList, despDate, itemCode, lotNo, "D", sordQty, conn);
}
}
else
{
mrate=distCommon.pickRate(priceList, despDate, itemCode, lotNo, "D", sordQty, conn);//changes required****
}
if(mrate<0)
{
System.out.println(">Rate is not proper for !!! "+ itemCode + "@" + lotNo);
errString = itmDBAccessEJB.getErrorString("","VTRATE1","","",conn);
}
}
}
}
if( (nature!=null && nature.trim().length()>0) && "F".equalsIgnoreCase(nature))
{
mrate=0;
}
listType= distCommon.getPriceListType(priceList, conn);
sql="select apply_price,price_var from bom where bom_code =?";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, itemCodeOrd);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
applyPrice =rs1.getString("apply_price");
priceVar =rs1.getString("price_var");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("applyPrice======"+applyPrice);
System.out.println("priceVar======"+priceVar);
sql="select item_ref from sorditem where sale_order =? and line_no = ? and exp_lev = ?";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, saleOrder);
pstmt1.setString(2, lineNo);
pstmt1.setString(3, expLev);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
itemRef =rs1.getString("item_ref");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("itemRef======"+itemRef);
if((listType!=null && listType.trim().length()>0) && (applyPrice!=null && applyPrice.trim().length()>0 ))
{
if("L".equalsIgnoreCase(listType) && "E".equalsIgnoreCase(applyPrice))
{
sql="select (case when eff_cost is null then 0 else eff_cost end ) as mrate from bomdet " +
"where bom_code = ? and item_ref = ?";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, itemCodeOrd);
pstmt1.setString(2, itemRef);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
mrate =rs1.getDouble("mrate");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("mrate from bomdet======"+mrate);
}
}
tempMapSord.put("conv__rtuom_stduom", convRtuomStduom);
rateStdum=convRtuomStduom*mrate;
System.out.println("rateStdum==="+rateStdum);
tempMapSord.put("rate__stduom", rateStdum);
tempMapSord.put("rate__std", rateStdum);
CalcSchemeAmt calcSchemeAmt= new CalcSchemeAmt();
calcSchemeAmt.updateAmt(saleOrder, conn);
sql="select item_type, unit__netwt, unit__rate from item where item_code = ? ";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1, itemCodeOrd);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
itemType =rs1.getString("item_type");
unitWt =rs1.getString("unit__netwt");
unitRate =rs1.getString("unit__rate");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("itemType======"+itemType);
System.out.println("unitWt======"+unitWt);
System.out.println("unitRate======"+unitRate);
if(itemType!=null && itemType.trim().length()>0)
{
sql="select rate_opt from item_type where item_type = ?";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, itemType);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
rateOpt=rs1.getString("rate_opt");
System.out.println("rateOpt===="+rateOpt);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if("1".equalsIgnoreCase(rateOpt))
{
if(unitWt.trim().equalsIgnoreCase(unitRate.trim()))
{
if((unitSord!=null && unitSord.trim().length()>0) &&(unitRateSord!=null && unitRateSord.trim().length()>0))
{
if(unitSord!=unitRateSord)
{
sql="select gross_wt_per_art, tare_wt_per_art from stock " +
"where item_code = ? " +
" and site_code = ? " +
" and loc_code = ? " +
" and lot_no= ? " +
" and lot_sl= ? ";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, itemCodeOrd);
pstmt1.setString(2, siteCode);
pstmt1.setString(3, locCode);
pstmt1.setString(4, lotNo);
pstmt1.setString(5, lotSl);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
grossWtPerart=rs1.getDouble("gross_wt_per_art");
tareWtPerArt=rs1.getDouble("tare_wt_per_art");
System.out.println("grossWtPerart===="+grossWtPerart);
System.out.println("tareWtPerArt===="+tareWtPerArt);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if(grossWtPerart==0)
{
grossWtPerart=0;
}
if(tareWtPerArt==0)
{
tareWtPerArt=0;
}
netWtPerArt=grossWtPerart-tareWtPerArt;
System.out.println("netWtPerArt====="+netWtPerArt);
tempMapSord.put("conv__rtuom_stduom", netWtPerArt);
tempMapSord.put("rate__stduom", netWtPerArt*mrate);
//CalcSchemeAmt calcSchemeAmt= new CalcSchemeAmt();
calcSchemeAmt.updateAmt(saleOrder, conn);
/* lc_offinv_rate = nvo_fin_inv.gbf_calc_discount_rate(as_sordno,ls_linenoord,ls_itemcode,(ld_net_wt_perart * mrate),'O')
if isnull(lc_offinv_rate) then lc_offinv_rate = 0
if lc_offinv_rate > 0 and lc_offinv_rate <> ((ld_net_wt_perart * mrate)) then
a_dwobject.setitem(ll_newrow, "rate__stduom", lc_offinv_rate)
end if
a_dwobject.setitem(ll_newrow, "rate__std", (ld_net_wt_perart * mrate))
mdesc_offinv_amt = nvo_fin_inv.gbf_calc_detdisc_amt(as_sordno,ls_linenoord,ls_itemcode,(ld_net_wt_perart * mrate),lc_qtyallocstd,'O')
mdesc_bb_amt = nvo_fin_inv.gbf_calc_detdisc_amt(as_sordno,ls_linenoord,ls_itemcode,(ld_net_wt_perart * mrate),lc_qtyallocstd,'B')
a_dwobject.SetItem(ll_newrow, "disc_schem_offinv_amt", mdesc_offinv_amt )
a_dwobject.setitem(ll_newrow, "disc_schem_billback_amt", mdesc_bb_amt ) */
}
}
}
}
}
if(rateClg==0)
{
priceListClgYN= distCommon.getDisparams("999999", "PRICE_LIST__CLG_YN", conn);
System.out.println("priceListClgYN====="+priceListClgYN);
if(priceListClgYN.equals("NULLFOUND"))
{
priceListClgYN="N";
}
if("N".equalsIgnoreCase(priceListClgYN))
{
rateClg=mrate;
}
else
{
priceListClgType= distCommon.getPriceListType(priceListClg, conn);
System.out.println("priceListClgType========="+priceListClgType);
if("L".equalsIgnoreCase(priceListClgType))
{
rateClg=distCommon.pickRate(priceListClg, despDate, itemCode, lotNo, "L", quantityStd, conn);
}
}
}
if(rateClg==0||rateClg==-1)
{
tempMapSord.put("rate__clg", mrate);
}
else
{
tempMapSord.put("rate__clg", rateClg);
}
sql=" select distinct list_type from pricelist where price_list = ?";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, priceList);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
listType=rs1.getString("list_type");
System.out.println("listType===="+listType);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if("L".equalsIgnoreCase(listType) && "P".equalsIgnoreCase(applyPrice))
{
sql="select rate from pricelist where price_list =?";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, priceList);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
itemRate=rs1.getDouble("rate");
System.out.println("itemRate===="+itemRate);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
sql=" select sum(rate) as tot_rate from pricelist " +
" where price_list = ? " +
"and item_code in (select item_code from sorditem " +
"where sale_order = ? " +
"and line_no= ? " +
"and line_type = 'I')";
pstmt1= conn.prepareStatement(sql);
pstmt1.setString(1, priceList);
pstmt1.setString(2, saleOrder);
pstmt1.setString(3, lineNoOrd);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
totRate=rs1.getDouble("tot_rate");
System.out.println("totRate===="+totRate);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
diffRate= totRate*rateStduom;
System.out.println("diffRate===="+diffRate);
discAmt=diffRate*(itemRate/totRate);
System.out.println("discAmt===="+discAmt);
if(discAmt==0)
{
discAmt=0;
}
tempMapSord.put("disc_amt", discAmt);
System.out.println("DisAmt==="+ checkDoubleNullVal((Double) tempMapSord.get("disc_amt")));
}
else
{
discAmt=0;
tempMapSord.put("disc_amt", discAmt);
}
// sordList=new ArrayList();
sordList.add(tempMapSord);
System.out.println("Sord item list====="+sordList);
}
rs2.close();
rs2 = null;
pstmt2.close();
pstmt2 = null;
lrNo=null;
tempMap.put("desp_date", sysDate);
tempMap.put("sord_no", saleOrder);
if
(orderDate!=null)
{
tempMap.put("sord_date",orderDate);
}
tempMap.put("cust_code", custCode);
tempMap.put("cust_code__dlv", custCodeDlv);
tempMap.put("site_code", siteCode);
tempMap.put("dlv_add1", dlvAdd1);
tempMap.put("dlv_add2", dlvAdd2);
tempMap.put("dlv_add3", dlvAdd3);
tempMap.put("dlv_city", dlvCity);
tempMap.put("dlv_pin", dlvCity);
tempMap.put("count_code__dlv", countCodeDlv);
tempMap.put("state_code__dlv", stateCodeDlv);
tempMap.put("tran_code", tranCode);
sql="select sh_name from transporter where tran_code = ?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,tranCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
shName =rs1.getString("sh_name");
System.out.println("shName ======="+shName);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
tempMap.put("stan_code", stanCode);
sql="select descr from station where stan_code = ?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,tranCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
stationDescr =rs1.getString("descr");
System.out.println("stationDescr ======="+stationDescr);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
gpNo=null;
/* tempMap.put("lr_no", lrNo);
tempMap.put("gp_ser", gpSer);
tempMap.put("gp_no", gpNo);
tempMap.put("gp_date", sysDate);*/
tempMap.put("eff_date", sysDate);
/* if len(trim(ls_post_upto)) = 0 or isnull(ls_post_upto) then
ls_post_upto = gf_getenv_dis('999999','POST_SORDER_UPTO')
end if
ls_conf_onpost = gf_getenv_dis('999999','CONFIRM_DESPATCH_ONPOST')
if ls_conf_onpost = 'Y' or ls_post_upto = 'I' then
despatch_edit.setitem(ls_hdr_row, "confirmed", 'Y')
despatch_edit.setitem(ls_hdr_row, "conf_date", mdesp_date)
else
despatch_edit.setitem(ls_hdr_row, "confirmed", 'N')
end if
*/
tempMap.put("trans_mode", transMode);
tempMap.put("curr_code", currCode);
tempMap.put("remarks", remarks);
tempMap.put("exch_rate", exchrate);
tempMap.put("curr_code__frt", currCodeFrt);
tempMap.put("exch_rate__frt", exchrateFrt);
tempMap.put("curr_code__ins", currCodeIns);
tempMap.put("curr_code__ins", currCodeIns);
tempMap.put("exch_rate__ins", exchrateIns);
tempMap.put("freight", frtAmt);
tempMap.put("insurance", insAmt);
tempMap.put("detailList", sordList);
System.out.println("Getting value in Map======" + tempMap);
tempList.add(tempMap);
System.out.println("1303Getting tempList value after ading in list ======" + tempList);
if (splitCodeWiseMap.containsKey(tempSplitCode))
{
System.out.println("splitCodeWiseMap.containsKey(tempSplitCode)");
splitCodeWiseMap.put(tempSplitCode, tempList);
}
else
{
System.out.println("else*************");
splitCodeWiseMap.put(tempSplitCode, tempList);
}
}
// //SELECT TO CHECK WHETHER ITEM IS ALLOCATED OR NOT
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//iterating Map
Set setItem = splitCodeWiseMap.entrySet();
System.out.println("1327getting set item=====" + setItem);
tempList = null;
Iterator itrItem = setItem.iterator();
int testCnt = 0;
String tranIdDespatch="";
double sumNetAmt = 0.0D;
while (itrItem.hasNext())
{
testCnt++;
System.out.println("1335while loop@@@@@@@ " + testCnt);
Map.Entry itemMapEntry = (Map.Entry)itrItem.next();
splitCode = (String)itemMapEntry.getKey();
System.out.println("splitCode---" + splitCode);
System.out.println("Length---" + splitCode.split("@").length);
tempList = (ArrayList)splitCodeWiseMap.get(splitCode);
System.out.println("TempList Inside While=======" + tempList);
if (splitCode.split("@").length != 0)
{
String spiltArr[]=splitCode.split("@");
custCode = checkNull(spiltArr[0]);
custCodeDlv = checkNull(spiltArr[1]);
itemSer = checkNull(spiltArr[2]);
crTerm = checkNull(spiltArr[3]);
dlvTerm = checkNull(spiltArr[4]);
orderType = checkNull(spiltArr[5]);
siteCode = checkNull(spiltArr[6]);
transMode = checkNull(spiltArr[7]);
}
sql="select dlv_add1,dlv_add2,dlv_add3,dlv_city,dlv_pin,count_code__dlv,state_code__dlv from sorder where cust_code__dlv= ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, custCodeDlv);
rs1 = pstmt1.executeQuery();
if (rs1.next())
{
dlvAdd1 = rs1.getString("dlv_add1");
dlvAdd2 = rs1.getString("dlv_add2");
dlvAdd3 = rs1.getString("dlv_add3");
dlvCity = rs1.getString("dlv_city");
dlvPin = rs1.getString("dlv_pin");
countCodeDlv = rs1.getString("count_code__dlv");
stateCodeDlv = rs1.getString("state_code__dlv");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("dlvAdd1=====" + dlvAdd1);
System.out.println("dlvAdd1=====" + dlvAdd2);
System.out.println("dlvAdd3=====" + dlvAdd3);
System.out.println("dlvCity=====" + dlvCity);
System.out.println("countCodeDlv=====" + countCodeDlv);
System.out.println("stateCodeDlv=====" + stateCodeDlv);
System.out.println("Header Creation for Despatch@@@@@@@@");
sql = "SELECT KEY_STRING, TRAN_ID_COL, REF_SER FROM TRANSETUP WHERE lower(TRAN_WINDOW) = 'w_despatch'";
System.out.println("keyStringQuery--------->>"+sql);
pstmt1 = conn.prepareStatement(sql);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
keyString = rs1.getString(1);
keyCol = rs1.getString(2);
tranSer1 = rs1.getString(3);
}
rs1.close();
rs1=null;
pstmt1.close();
pstmt1 =null;
System.out.println("keyString :"+ keyString);
System.out.println("keyCol :"+ keyCol);
System.out.println("tranSer1 :"+ tranSer1);
String xmlValues = "";
String tranDateStr = getCurrdateAppFormat();
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id></tran_id>";
xmlValues = xmlValues + "<site_code>" + siteCode + "</site_code>";
xmlValues = xmlValues + "<tran_date>" + tranDateStr + "</tran_date>";
xmlValues = xmlValues +"</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
tranId = tg.generateTranSeqID(tranSer1, keyCol, keyString, conn);
System.out.println("@@@@ generated tranId :["+tranId+"]");
confirmed="N";
sql="Insert into despatch(desp_id,desp_date,sord_no,sord_date,cust_code,cust_code__dlv," +
"site_code,dlv_add1,dlv_add2,dlv_add3,dlv_city,dlv_pin,count_code__dlv,state_code__dlv," +
"tran_code,stan_code,trans_mode,curr_code,exch_rate," +
"curr_code__frt,exch_rate__frt,curr_code__ins,exch_rate__ins,freight," +
"insurance,eff_date,confirmed,status)" +
"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
//tranId = generateTranId("w_despatch",userId,conn);
pstmt.setString(1,tranId);
pstmt.setTimestamp(2,despDateTs);
pstmt.setString(3,tempMap.get("sord_no").toString());
pstmt.setDate(4,(Date)tempMap.get("sord_date"));//
pstmt.setString(5,custCode);
pstmt.setString(6,custCodeDlv);
//pstmt.setString(6,tempMap.get("cust_code__dlv").toString());
pstmt.setString(7,siteCode);
pstmt.setString(8,dlvAdd1);
pstmt.setString(9,dlvAdd2);
pstmt.setString(10,dlvAdd3);
pstmt.setString(11,dlvCity);
pstmt.setString(12,dlvPin);
pstmt.setString(13,countCodeDlv);
pstmt.setString(14,stateCodeDlv);
//pstmt.setString(11,tempMap.get("count_code__dlv").toString());
//pstmt.setString(12,tempMap.get("state_code__dlv").toString());
pstmt.setString(15,tempMap.get("tran_code").toString());
pstmt.setString(16,tempMap.get("stan_code").toString());
pstmt.setString(17,transMode);
pstmt.setString(18,currCode);
//pstmt.setString(31,tempMap.get("remarks").toString());//
pstmt.setDouble(19,exchrate);
pstmt.setString(20,currCodeFrt);
pstmt.setDouble(21,exchrateFrt);
pstmt.setString(22,currCodeIns);
pstmt.setDouble(23,exchrateIns);
pstmt.setString(24,tempMap.get("freight").toString());
pstmt.setString(25,tempMap.get("insurance").toString());
// pstmt.setDate(26,(Date)tempMap.get("eff_date"));//
pstmt.setTimestamp(26,effDate );
pstmt.setString(27,confirmed);
pstmt.setString(28,"I");
insertCntHdr = pstmt.executeUpdate();
System.out.println("Despatch Header Count===="+insertCntHdr);
lineNum = 0;
for (int itemCtr = 0; itemCtr < tempList.size(); itemCtr++)
{
//templist contain records as per spiltcode of specific size
newTempMap=(HashMap) tempList.get(itemCtr);
System.out.println("newTempMap Value===="+newTempMap);
//newTempMap contain list of detailMap with key "detailList"
sordDetList=(ArrayList) newTempMap.get("detailList");
System.out.println("sordDetList===="+sordDetList);
System.out.println("sordDetList size===="+sordDetList.size());
for (int sordCtr = 0; sordCtr < sordDetList.size(); sordCtr++)
{
lineNum++;
System.out.println("lineNum======"+lineNum);
String lineNumber=String.valueOf(lineNum);
System.out.println("lineNumber======"+lineNumber);
sordDetMap=new HashMap();
sordDetMap=(HashMap) sordDetList.get(sordCtr);
System.out.println("@@@@@@@@@@@sordDetMap values======[[["+sordDetMap+"]]]");
/*lc_qty_std = desp_det.getitemnumber(ls_ctr, "quantity__stduom")
lc_rate_std = desp_det.getitemnumber(ls_ctr, "rate__stduom")
lc_tot_amt = lc_tot_amt + (lc_rate_std * lc_qty_std)*/
System.out.println("quantity__stduom values======"+(Double)sordDetMap.get("quantity__stduom"));
System.out.println("quantity__stduom values======"+(Double)sordDetMap.get("rate__stduom"));
sumNetAmt = 0.0D;
System.out.println("Sum Amount 1 @@@===" + sumNetAmt);
sumNetAmt+=((Double)sordDetMap.get("quantity__stduom")*(Double)sordDetMap.get("rate__stduom"));
System.out.println("Sum Amount After 1 @@@===" + sumNetAmt);
sql="insert into despatchdet(DESP_ID,LINE_NO,SORD_NO,LINE_NO__SORD,EXP_LEV,ITEM_CODE__ORD,ITEM_CODE," +
"LOT_NO ,LOT_SL,QUANTITY__ORD,QUANTITY,LOC_CODE ,STATUS," +
"CONV__QTY_STDUOM,UNIT__STD,UNIT,QUANTITY__STDUOM,QUANTITY_REAL," +
"RATE__STDUOM,NO_ART ,SITE_CODE,MFG_DATE,EXP_DATE,SITE_CODE__MFG," +
"RATE__CLG,DISC_AMT,COST_RATE,CUST_ITEM__REF,RETEST_DATE,CONF_DIFF_AMT,CONV__RTUOM_STDUOM,RATE__STD) " +
"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.setString(2,lineNumber);//
//pstmt.setString(2,sordDetMap.get("line_no").toString());//
//pstmt.setString(3,sordDetMap.get("sord_no").toString());
pstmt.setString(3,checkNull(tempMap.get("sord_no").toString()));
pstmt.setString(4,checkNull(sordDetMap.get("line_no__sord").toString()));
pstmt.setString(5,checkNull(sordDetMap.get("exp_lev").toString()));//
pstmt.setString(6,checkNull(sordDetMap.get("item_code__ord").toString()));
pstmt.setString(7,checkNull(sordDetMap.get("item_code").toString()));
pstmt.setString(8,checkNull(sordDetMap.get("lot_no").toString()));
pstmt.setString(9,checkNull(sordDetMap.get("lot_sl").toString()));
pstmt.setDouble(10,(Double)sordDetMap.get("quantity__ord"));
pstmt.setDouble(11,(Double)sordDetMap.get("quantity"));
pstmt.setString(12,sordDetMap.get("loc_code").toString());
pstmt.setString(13,sordDetMap.get("status").toString());
pstmt.setDouble(14,(Double)sordDetMap.get("conv__qty_stduom"));
pstmt.setString(15,sordDetMap.get("unit__std").toString());
pstmt.setString(16,sordDetMap.get("unit").toString());
pstmt.setDouble(17,(Double)sordDetMap.get("quantity__stduom"));
pstmt.setDouble(18,(Double)sordDetMap.get("quantity_real"));
pstmt.setDouble(19,(Double)sordDetMap.get("rate__stduom"));
pstmt.setDouble(20,(Double)sordDetMap.get("no_art"));//
pstmt.setString(21,sordDetMap.get("site_code").toString());
pstmt.setDate(22,(Date) sordDetMap.get("mfg_date"));
pstmt.setDate(23,(Date) sordDetMap.get("exp_date"));//
pstmt.setString(24,sordDetMap.get("site_code__mfg").toString());
pstmt.setDouble(25,(Double)sordDetMap.get("rate__clg"));
//pstmt.setDouble(26, checkDoubleNullVal((Double) sordDetMap.get("disc_amt")));
pstmt.setDouble(26,((Double)sordDetMap.get("disc_amt")));
pstmt.setDouble(27,(Double)sordDetMap.get("cost_rate"));
pstmt.setString(28,sordDetMap.get("cust_item__ref").toString());
pstmt.setDate(29,(Date)sordDetMap.get("retest_date"));//
pstmt.setDouble(30,(Double)sordDetMap.get("conf_diff_amt"));
pstmt.setDouble(31,(Double)sordDetMap.get("conv__rtuom_stduom"));
pstmt.setDouble(32,(Double)sordDetMap.get("rate__std"));
insertCntDet = pstmt.executeUpdate();
System.out.println("Despatch Detail Count===="+insertCntDet);
}
}
}
System.out.println("insertCntHdr==="+insertCntHdr+"@=====@"+"insertCntDet=="+insertCntDet);
if(insertCntHdr>0 && insertCntDet>0)
{
//VTCONSUCF
System.out.println(">>The selected transaction is getting saved!!!!");
errString= "<?xml version='1.0'?><Root><message>VTCONPARM</message><TranID>"+tranId+"</TranID></errors></Root>";
System.out.println("@@@@@2: retString:" + errString);
if (errString.indexOf("VTCONPARM") > -1)
{
System.out.println("retString.indexOf(Success) > -1)");
String[] arrayForTranId = errString.split("<TranID>");
System.out.println(">>>In Post order Despatch generation arrayForTranId:[" + arrayForTranId.toString() + "]arrayForTranId.length[" + arrayForTranId.length + "]");
if (arrayForTranId.length > 1)
{
int endIndex = arrayForTranId[1].indexOf("</TranID>");
tranIdDespatch = arrayForTranId[1].substring(0, endIndex);
}
System.out.println("tranIdDespatch for Despatch Creation===="+tranIdDespatch);
sql = "UPDATE DESPATCH SET TOT_VALUE= ? WHERE DESP_ID= ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, sumNetAmt);
pstmt.setString(2, tranIdDespatch);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
//conn.commit();
}
else
{
// conn.rollback();
System.out.println("RollBack!!!!!!!!!!");
}
}
else
{
System.out.println("Record not found!!!!!!!");
}
// }
}
catch (Exception e)
{
System.out.println("Inside Catch@@@@@@@");
conn.rollback();
errString = itmDBAccessEJB.getErrorString("","VTDESPF","","",conn);
System.out.println("Exception ::"+e.getMessage());
//errString = GenericUtility.getInstance().createErrorString(e);
e.printStackTrace();
throw new ITMException(e);
// throw new ITMException(e);
}
finally
{
try
{
System.out.println(">>>>>In finally errString:"+errString);
/*if(errString != null && errString.trim().length() > 0)
{
if(errString.indexOf("VTCONSUCF") > -1)
{
conn.commit();
System.out.println("Commit Completed");
}
else
{
conn.rollback();
}
}*/
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
//conn.close();
}
catch(Exception e)
{
System.out.println("Exception : "+e);
e.printStackTrace();
throw new ITMException(e);
}
}
return errString;
}
private static String generateTranId(String windowName, String userId, Connection conn) throws Exception
{
Statement stmt = null;
ResultSet rs = null;
String sql = "";
String tranId = "";
String newKeystring = "";
CommonConstants commonConstants = new CommonConstants();
try
{
sql = "SELECT KEY_STRING, TRAN_ID_COL, nvl(REF_SER,'PEXRE') FROM TRANSETUP WHERE TRAN_WINDOW = '"+windowName+"'";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
System.out.println("keyString :"+rs.toString());
String keyString = "";
String keyCol = "";
String tranSer ="";
if (rs.next())
{
keyString = rs.getString(1);
keyCol = rs.getString(2);
tranSer = rs.getString(3);
}
String xmlValues = "";
System.out.println("keyCol"+keyCol);
System.out.println("keyString"+keyString);
System.out.println("tranSer"+tranSer);
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id></tran_id>" ;
xmlValues = xmlValues + "</Detail1></Root>";
System.out.println("xmlValues for tranid :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, userId, commonConstants.DB_NAME);
tranId = tg.generateTranSeqID(tranSer, keyCol, keyString, conn);
}
catch (SQLException ex)
{
System.out.println("Exception ::" +sql+ ex.getMessage() + ":");
ex.printStackTrace();
throw new Exception(ex);
}
catch (Exception e)
{
System.out.println("Exception ::" + e.getMessage() + ":");
e.printStackTrace();
throw new Exception(e);
}
System.out.println("tranId :- ["+tranId+"]");
return tranId;
}
private String checkNull(String str)
{
if (str == null)
{
return "";
}
return str;
}
private double checkDoubleNull(String str)
{
if(str == null || str.trim().length() == 0)
{
return 0.0;
}
else
{
return Double.parseDouble(str) ;
}
}
private double checkDoubleNullVal(double str)
{
if(str==0)
{
return 0.0;
}
return str;
}
public double calcRate(double rate,double plistDisc)
{
try
{
rate = rate - (plistDisc * rate)/100;
if( rate < 0 )
{
rate=0;
}
}
catch(Exception e)
{
e.printStackTrace();
}
return rate;
}
public double getDiscount(String plistDisc,Timestamp orderDate,String custCode,String siteCode,String itemCode,String unit,double discMerge,Timestamp plDate,double sordItmQty,Connection conn) throws SQLException, ITMException
{
String ls_listtype = "", itemSer = "",sql="";
double lc_rate=0.0, lc_disc=0.0,rate=0.0,discPerc=0.0;
PreparedStatement pstmt=null;
ResultSet rs = null;
try
{
if(plistDisc.trim().length() > 0)
{
sql = " select case when rate is null then 0 else rate end as rate" +
" from pricelist where price_list = ? and " +
" item_code = ? and unit = ? " +
" and list_type IN ('M','N') " +
" and case when min_qty is null then 0 else min_qty end <= ? " +
" and ((case when max_qty is null then 0 else max_qty end >= ? ) " +
" OR (case when max_qty is null then 0 else max_qty end =0)) and eff_from <= ? " +
" and valid_upto >= ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,plistDisc);
pstmt.setString(2,itemCode);
pstmt.setString(3,unit);
pstmt.setDouble(4,sordItmQty);
pstmt.setDouble(5,sordItmQty);
pstmt.setTimestamp(6,plDate);
pstmt.setTimestamp(7,plDate);
rs = pstmt.executeQuery();
if(rs.next())
{
rate = rs.getDouble("rate");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
if("M".equalsIgnoreCase(ls_listtype) || plistDisc == null || plistDisc.trim().length() == 0
|| rate == 0)
{
sql = "select item_ser from item where item_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
rs = pstmt.executeQuery();
if(rs.next())
{
itemSer = rs.getString("item_ser");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql = "select disc_perc from customer_series where cust_code = ? and item_ser = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,custCode);
pstmt.setString(2,itemSer);
rs = pstmt.executeQuery();
if(rs.next())
{
discPerc = rs.getDouble("disc_perc");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(discPerc == 0)
{
sql = "select disc_perc from site_customer where site_code = ? and cust_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setString(2,custCode);
rs = pstmt.executeQuery();
if(rs.next())
{
discPerc = rs.getDouble("disc_perc");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
if(discPerc == 0)
{
sql = "select disc_perc from customer where cust_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,custCode);
rs = pstmt.executeQuery();
if(rs.next())
{
discPerc = rs.getDouble("disc_perc");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
if("M".equalsIgnoreCase(ls_listtype))
{
discMerge = discPerc;
if(rate != 0)
{
discPerc = rate;
}
}
else
{
discMerge = 0;
}
}
if(itemCode == null)
{
discPerc = 0;
}
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return discPerc;
}
// lc_offinv_rate = nvo_fin_inv.gbf_calc_discount_rate(as_sordno,ls_linenoord,ls_itemcode,lc_rtconv * mrate,'O')
public double getDiscountRate(String saleOrder,String lineNoOrd,String itemCode,double rate,String value,Connection conn) throws SQLException, ITMException
{
String schemeCode = "", promoTerm = "",priceVar="",sql="";
double mrate=0.0, lc_disc=0.0,discPerc=0.0;
PreparedStatement pstmt=null,pstmt1=null;
ResultSet rs = null,rs1=null;
try
{
sql="select scheme_code from sorderdet_scheme where tran_id = ? and line_no_form = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNoOrd);
rs = pstmt.executeQuery();
while(rs.next())
{
schemeCode = rs.getString("scheme_code");
System.out.println(" schemeCode========="+ schemeCode);
if( schemeCode!=null && schemeCode.trim().length()>0)
{
sql="select promo_term,price_var from bom where bom_code = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1,saleOrder);
pstmt1.setString(2,lineNoOrd);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
promoTerm= rs1.getString("promo_term");
priceVar= rs1.getString("price_var");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if("D".equalsIgnoreCase("priceVar"))
{
mrate= -1;
}
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return discPerc;
}
private String getCurrdateAppFormat() throws ITMException
{
String s = "";
GenericUtility genericUtility = GenericUtility.getInstance();
try
{
java.util.Date date = null;
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
System.out.println(genericUtility.getDBDateFormat());
SimpleDateFormat simpledateformat = new SimpleDateFormat(genericUtility.getDBDateFormat());
date = simpledateformat.parse(timestamp.toString());
timestamp = Timestamp.valueOf(simpledateformat.format(date).toString() + " 00:00:00.0");
s = (new SimpleDateFormat(genericUtility.getApplDateFormat())).format(timestamp).toString();
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return s;
}
}
package ibase.webitm.ejb.dis;
import ibase.system.config.AppConnectParm;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import javax.naming.InitialContext;
/**
* @author VALLABH KADAM
* To generate Invoice from dispatch
*/
public class PostOrdInvoiceGen extends ActionHandlerEJB
{
DistCommon distCommon= new DistCommon();
FinCommon finCommon=new FinCommon();
String postUpto="";
E12GenericUtility genericUtility=new E12GenericUtility();
FileOutputStream fos1 = null;
Calendar calendar = Calendar.getInstance();
java.util.Date startDate = new java.util.Date(System.currentTimeMillis());
String startDateStr = null;
/**
*
* @param conn
* @return String
* @throws ITMException
* @throws Exception
*/
public String invoiceProcess(String salesOrdFrm,String salesOrdTo,String custCodeFrm,String custCodeTo,
String descpIdFrm,String orderType,Timestamp frmDateStr,String clubOrder,String clubPendOrder,
String adjDrCr,String adjCustAdv,String advAdjMode,String adjNewPrdInv,Connection conn) throws ITMException, Exception
{
String retString="",frmDate="",frmCustCode="",currCode="",lrNo="",lrDate="",remarks="",sysDate="",toDateStr="";
String toCustCode="",stanCodeInit="",descpIdTo="";
String runOpt="*";
boolean lbClubOrders=false,lbClub=false,lbDrCr=false,lbAdv=false,lbCustomer=false,lbNewPrdInv=false,tempflag=false;
String sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
double exchangeRate=0.0;
HashMap<String, String> ldsInvHdrMp=new HashMap<String, String>();
/**
* Select postUpto from table 'disparam'
* where var_name='POST_SORDER_UPTO'
* */
postUpto=checknull(distCommon.getDisparams("999999", "POST_SORDER_UPTO", conn));
/**
* Intializing Log
* */
System.out.println("Intializing Log $$$$$..."+ intializingLog("Post_Ord_InvGen_log"));
try
{
java.util.Date today = new java.util.Date();
Calendar cal = Calendar.getInstance();
cal.setTime(today);
today = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
sysDate = sdf.format(today);
System.out.println("System date :- [" + sysDate + "]");
SimpleDateFormat sdf1 = new SimpleDateFormat(genericUtility.getApplDateFormat());
startDate = new java.util.Date(System.currentTimeMillis());
calendar.setTime(new java.sql.Timestamp(System.currentTimeMillis()));
startDateStr = sdf1.format(startDate)+" "+calendar.get(Calendar.HOUR)+":"+calendar.get(Calendar.MINUTE)+":"+calendar.get(Calendar.SECOND);
fos1.write(("Invoice Genertion Started At " + startDateStr +"\r\n").getBytes());
System.out.println("postUpto::::::::::::::::::::::"+postUpto);
/**
* Check postUpto is not 'D'
* */
/*added by vishakha*/
SimpleDateFormat dateFormat = new SimpleDateFormat(genericUtility.getApplDateFormat());
String fromDate = dateFormat.format(frmDateStr);
System.out.println("@@@@@@@@@@@98::::::::Form Date["+fromDate+"]frmDateStr["+frmDateStr+"]postUpto["+postUpto+"]");
if(postUpto.equalsIgnoreCase("D"))
{
System.out.println("@@@@@@@@@.........conn.commit()................");
conn.commit();
}
else
{
descpIdTo=descpIdFrm;
// frmDateStr="";//ld_from_date
if(orderType==null || orderType.trim().length()==0)
{
orderType="%";
}
else
{
System.out.println("Insidingggg else part of order type:::::::::::"+orderType);
/**
* select desp_date,cust_code, curr_code,
* lr_no, lr_date, remarks from table 'despatch'
* */
sql="select desp_date, cust_code, curr_code, lr_no, lr_date, remarks,exch_rate from despatch where desp_id=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, descpIdFrm);
rs=pstmt.executeQuery();
if(rs.next())
{
frmDate=checknull(rs.getString("desp_date"));
frmCustCode=checknull(rs.getString("cust_code"));
currCode=checknull(rs.getString("curr_code"));
lrNo=checknull(rs.getString("lr_no"));
lrDate=checknull(rs.getString("lr_date"));
remarks=checknull(rs.getString("remarks"));
remarks=checknull(rs.getString("remarks"));
exchangeRate=rs.getDouble("exch_rate");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
toDateStr=frmDate;
toCustCode=frmCustCode;
/**
* Check lrDate is not null
* */
if(lrDate!=null && lrDate.trim().length()>0)
{
exchangeRate=0.0;
/**
* select exch_rate__sell
* from table 'daily_exch_rate_sell_buy'
* for lrDate in between from_date and to_date
* and curr_code,curr_code__to='RS'
* */
sql="select exch_rate__sell from daily_exch_rate_sell_buy where ? between from_date and to_date"
+ " and curr_code = ? and curr_code__to = 'RS'";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lrDate);
pstmt.setString(2, currCode);
rs=pstmt.executeQuery();
if(rs.next())
{
exchangeRate=rs.getDouble("exch_rate__sell");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
}
System.out.println("@@@@@@lrDate["+lrDate+"]fromDate["+fromDate+"]");
ldsInvHdrMp.put("so_type", orderType);
ldsInvHdrMp.put("desp_id__fr", descpIdFrm);
ldsInvHdrMp.put("desp_id__to", descpIdTo);
ldsInvHdrMp.put("desp_date__fr", ""+fromDate);
ldsInvHdrMp.put("desp_date__to", toDateStr);
ldsInvHdrMp.put("cust_code__fr", frmCustCode);
ldsInvHdrMp.put("cust_code__to", toCustCode);
ldsInvHdrMp.put("invoice__date", ""+fromDate);
ldsInvHdrMp.put("lr_date", lrDate);
ldsInvHdrMp.put("lr_no", lrNo);
ldsInvHdrMp.put("remarks", remarks);
ldsInvHdrMp.put("curr_code", currCode);
ldsInvHdrMp.put("exch_rate", String.valueOf(exchangeRate));
sql="select stan_code__init from sorder where sale_order =?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, salesOrdFrm);
rs=pstmt.executeQuery();
if(rs.next())
{
stanCodeInit=checknull(rs.getString("stan_code__init"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
ldsInvHdrMp.put("stan_code__init", stanCodeInit);
if(clubOrder.equalsIgnoreCase("Y"))
{
lbClubOrders=true;
}
else
{
lbClubOrders=false;
}
if(clubPendOrder.equalsIgnoreCase("Y"))
{
lbClub=true;
}
else
{
lbClub=false;
}
if(adjDrCr.equalsIgnoreCase("Y"))
{
lbDrCr=true;
}
else
{
lbDrCr=false;
}
if(adjCustAdv.equalsIgnoreCase("Y"))
{
lbAdv=true;
}
else
{
lbAdv=false;
}
if(advAdjMode.equalsIgnoreCase("Y"))
{
lbCustomer=true;
}
else
{
lbCustomer=false;
}
if(adjNewPrdInv.equalsIgnoreCase("Y"))
{
lbNewPrdInv=true;
}
else
{
lbNewPrdInv=false;
}
tempflag=true;
/**
* Create Invoice header
* */
System.out.println("@@@@@@@@@@260:::::ldsInvHdrMp["+ldsInvHdrMp+"]");
retString=createInvoice(ldsInvHdrMp,lbClub,lbDrCr,lbAdv,tempflag,runOpt,lbCustomer,lbNewPrdInv,conn); // Missing 'lds_credit_check'
fos1.write(("\n \n Final Return String :- [" + retString +"]\r\n").getBytes());
}
}
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if(fos1!=null)
{
fos1.close();
fos1=null;
}
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
}
return retString;
}
/**
*
* @param ldsInvHdrMp
* @param lbClub
* @param lbDrCr
* @param lbAdv
* @param tempflag
* @param runOpt
* @param lbCustomer
* @param lbNewPrdInv
* @param conn
* @return String
* @throws ITMException
*/
private String createInvoice(HashMap<String, String> ldsInvHdrMp, boolean lbClub, boolean lbDrCr, boolean lbAdv, boolean tempflag,
String runOpt, boolean lbCustomer, boolean lbNewPrdInv, Connection conn) throws ITMException
{
// TODO Auto-generated method stub
StringBuffer xmlBuff=new StringBuffer();
// HashMap<String, HashMap<String, String>> mainInvDespMap=new HashMap<String, HashMap<String, String>>();
// HashMap<String, HashMap<String, String>> mainInvDespDetMap=new HashMap<String, HashMap<String, String>>();
HashMap<String, HashMap> mainInvDespDetMap=new HashMap<String, HashMap>();
HashMap<String, String> invDespMap=new HashMap<String, String>();
HashMap<String, Object> invDetBeanMap= new HashMap<String, Object>();
// HashMap<String, String> invDespDetMap=null;
HashMap<String, String> invTraceDetMap=null;
HashMap<String, String> acctSchemehdrMap=null;
HashMap<String, String> sorderSalMap=null;
HashMap<String, String> disItemserMap=null;
HashMap<String, String> arCustomerMap=null;
String xtraParams = null;
String despIdKey="",despId="",sysDate="",salesInvPstHdr="",despLineNo="",userId="",termId="",loginSite="",tranId="";
String xmlInvString="",retString="";
double lcCommAmtOc=0.0,tcommAmt=0.0,lcExchRate=0.0;
int lineNo=0,lineNoDet=0;
Timestamp dueDate=null;
/**
* Generate Bean object
* */
InvoiceDetBean invoiceDetBean= null;
try
{
UserInfoBean userInfo=new UserInfoBean();
userId=userInfo.getLoginCode();
termId=userInfo.getRemoteHost();
loginSite=userInfo.getSiteCode();
xtraParams = "loginCode="+userInfo.getLoginCode()+"~~termId="+userInfo.getRemoteHost()+"~~loginSiteCode="+userInfo.getSiteCode()+"~~loginEmpCode="+userInfo.getEmpCode();
java.util.Date today = new java.util.Date();
Calendar cal = Calendar.getInstance();
cal.setTime(today);
today = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
sysDate = sdf.format(today);
System.out.println("System date :- [" + sysDate + "]");
// mainInvDespMap=getInvDespatch(ldsInvHdrMp,conn);
invDespMap=getInvDespatch(ldsInvHdrMp,conn);
System.out.println("@@@@@@@@@invDespMap.size():-["+invDespMap.size()+"]invDespMap["+invDespMap+"]");
salesInvPstHdr=checknull(finCommon.getFinparams("999999", "SALES_INV_POST_HDR", conn));
/**
* Iterate MainInvDeapMap
* to get inner values
* */
// for(String key:mainInvDespMap.keySet())
// {
// despIdKey=key;
// invDespMap=new HashMap<String, String>();
// invDespMap=mainInvDespMap.get(despIdKey);
// System.out.println("Inner InvDespMap size:-["+invDespMap.size()+"]");
despIdKey=invDespMap.get("desp_id");
fos1.write(("\n Invoice in process for Dispatch Id :- [" + despIdKey +"]\r\n").getBytes());
/**
* get dispat_det main map
* */
ArrayList <Object>dataList= new ArrayList<Object>();
dataList=getInvDespatchDet(invDespMap.get("sord_no"),invDespMap.get("status"),despIdKey,ldsInvHdrMp,
invDespMap.get("desp_site_code"),conn);
// System.out.println("MainInvDespDetMap size :- ["+mainInvDespDetMap.size()+"]");
System.out.println("@@@@@@@@dataList.size:::["+dataList.size()+"]::::::::dataList["+dataList+"]");
System.out.println("@@@@@@@@:::::::ldsInvHdrMp[["+ldsInvHdrMp+"]]::::::::invDespMap["+invDespMap+"]");
/**
* Generate XML string
* for invoice header
* */
xmlBuff.append("<?xml version='1.0' encoding='ISO-8859-1'?><DocumentRoot>");
xmlBuff.append("<description>Datawindow Root</description>");
xmlBuff.append("<group0>");
xmlBuff.append("<description>Group0 description</description>");
xmlBuff.append("<Header0>");
xmlBuff.append("<objName><![CDATA[").append("invoice_po").append("]]></objName>");
xmlBuff.append("<pageContext><![CDATA[").append("1").append("]]></pageContext>");
xmlBuff.append("<objContext><![CDATA[").append("1").append("]]></objContext>");
xmlBuff.append("<editFlag><![CDATA[").append("A").append("]]></editFlag>");
xmlBuff.append("<focusedColumn><![CDATA[").append("").append("]]></focusedColumn>");
xmlBuff.append("<action><![CDATA[").append("SAVE").append("]]></action>");
xmlBuff.append("<elementName><![CDATA[").append("").append("]]></elementName>");
xmlBuff.append("<keyValue><![CDATA[").append("1").append("]]></keyValue>");
xmlBuff.append("<taxKeyValue><![CDATA[").append("").append("]]></taxKeyValue>");
xmlBuff.append("<saveLevel><![CDATA[").append("1").append("]]></saveLevel>");
xmlBuff.append("<forcedSave><![CDATA[").append(true).append("]]></forcedSave>");
xmlBuff.append("<taxInFocus><![CDATA[").append(false).append("]]></taxInFocus>");
xmlBuff.append("<description>Header0 members</description>");
xmlBuff.append("<Detail1 dbID=\"\" domID=\"1\" objContext=\"1\" objName=\"invoice_po\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" status=\"N\" updateFlag=\"A\"/>");
xmlBuff.append("<invoice_id/>");
if(ldsInvHdrMp.get("lr_date")==null || ldsInvHdrMp.get("lr_date").trim().length()==0)
{
xmlBuff.append("<tran_date><![CDATA[" + ldsInvHdrMp.get("invoice__date") + "]]></tran_date>");
xmlBuff.append("<eff_date><![CDATA[" + ldsInvHdrMp.get("invoice__date") + "]]></eff_date>");
}
else
{
xmlBuff.append("<tran_date><![CDATA[" + ldsInvHdrMp.get("lr_date") + "]]></tran_date>");
xmlBuff.append("<eff_date><![CDATA[" + ldsInvHdrMp.get("lr_date") + "]]></eff_date>");
}
xmlBuff.append("<fin_entity><![CDATA[" +invDespMap.get("fin_entity")+ "]]></fin_entity>"); //fin_entity required 'site_fin_entity'
xmlBuff.append("<sales_grp><![CDATA[" +""+ "]]></sales_grp>"); //sales_grp required 'sales_grp'
acctSchemehdrMap= new HashMap<String, String>();
acctSchemehdrMap=getAcctSchemehdr(invDespMap.get("sord_no"),conn);
System.out.println("AcctSchemehdrMap size :- ["+acctSchemehdrMap.size()+"]");
xmlBuff.append("<acc_code__order><![CDATA[" +acctSchemehdrMap.get("ls_acct_schemehdr")+ "]]></acc_code__order>");
xmlBuff.append("<tran_mode><![CDATA[" +"S"+ "]]></tran_mode>");
xmlBuff.append("<desp_id><![CDATA[" +invDespMap.get("desp_id")+ "]]></desp_id>");
xmlBuff.append("<desp_date><![CDATA[" +invDespMap.get("desp_date")+ "]]></desp_date>");
xmlBuff.append("<sale_order><![CDATA[" +invDespMap.get("sord_no")+ "]]></sale_order>");
xmlBuff.append("<site_code><![CDATA[" +invDespMap.get("desp_site_code")+ "]]></site_code>");
xmlBuff.append("<cust_code><![CDATA[" +invDespMap.get("cust_code")+ "]]></cust_code>");
xmlBuff.append("<cust_code__bil><![CDATA[" +invDespMap.get("cust_code__bil")+ "]]></cust_code__bil>");
xmlBuff.append("<item_ser><![CDATA[" +invDespMap.get("item_ser")+ "]]></item_ser>");
xmlBuff.append("<gp_no><![CDATA[" +invDespMap.get("gp_no")+ "]]></gp_no>");
xmlBuff.append("<gp_date><![CDATA[" +invDespMap.get("gp_date")+ "]]></gp_date>");
xmlBuff.append("<lr_no><![CDATA[" +ldsInvHdrMp.get("lr_no")+ "]]></lr_no>");
xmlBuff.append("<lr_date><![CDATA[" +ldsInvHdrMp.get("lr_date")+ "]]></lr_date>");
// xmlBuff.append("<lr_date><![CDATA[" +ldsInvHdrMp.get("lr_date")+ "]]></lr_date>");
if(salesInvPstHdr.equalsIgnoreCase("NULLFOUND") || salesInvPstHdr.equalsIgnoreCase("H"))
{
sorderSalMap=new HashMap<String, String>();
sorderSalMap=getsorderSal(invDespMap.get("sord_no"),conn);
System.out.println("SorderSalMap size :- ["+sorderSalMap.size()+"]");
xmlBuff.append("<acct_code__sal><![CDATA[" +sorderSalMap.get("lsacct_sal")+ "]]></acct_code__sal>");
xmlBuff.append("<cctr_code__sal><![CDATA[" +sorderSalMap.get("lscctr_sal")+ "]]></cctr_code__sal>");
xmlBuff.append("<posttype><![CDATA[" +"H"+ "]]></posttype>");
}
else if(salesInvPstHdr.equalsIgnoreCase("D"))
{
xmlBuff.append("<acct_code__sal><![CDATA[]]></acct_code__sal>"); //set to null
xmlBuff.append("<cctr_code__sal><![CDATA[]]></cctr_code__sal>"); // set to null
xmlBuff.append("<posttype><![CDATA[" +"D"+ "]]></posttype>");
}
disItemserMap= new HashMap<String, String>();
disItemserMap=getdisItemser(invDespMap.get("item_ser"),conn);
xmlBuff.append("<acct_code__dis><![CDATA["+disItemserMap.get("lsacct_dis")+"]]></acct_code__dis>");
xmlBuff.append("<cctr_code__dis><![CDATA["+disItemserMap.get("lscctr_dis")+"]]></cctr_code__dis>");
xmlBuff.append("<bank_code><![CDATA["+invDespMap.get("bank_code")+"]]></bank_code>");
xmlBuff.append("<market_reg><![CDATA["+sorderSalMap.get("ls_market_reg")+"]]></market_reg>");
arCustomerMap=new HashMap<String, String>();
arCustomerMap=getarCustomer(invDespMap.get("cust_code__bil"),conn);
xmlBuff.append("<acct_code__ar><![CDATA["+arCustomerMap.get("macctar")+"]]></acct_code__ar>");
xmlBuff.append("<cctr_code__ar><![CDATA["+arCustomerMap.get("mcctrar")+"]]></cctr_code__ar>");
xmlBuff.append("<cr_term><![CDATA["+invDespMap.get("cr_term")+"]]></cr_term>");
xmlBuff.append("<cr_days><![CDATA["+invDespMap.get("cr_days")+"]]></cr_days>");
String dueDate1=getDueDate(invDespMap.get("cr_term"),ldsInvHdrMp.get("invoice__date"),invDespMap.get("eff_date"),ldsInvHdrMp.get("lr_date"),
invDespMap.get("cr_days"),conn);
xmlBuff.append("<due_date><![CDATA["+dueDate1+"]]></due_date>"); //Get due date from method "gbf_get_duedate()"
xmlBuff.append("<tax_class><![CDATA["+invDespMap.get("tax_class")+"]]></tax_class>");
xmlBuff.append("<tax_chap><![CDATA["+invDespMap.get("tax_chap")+"]]></tax_chap>");
xmlBuff.append("<tax_env><![CDATA["+invDespMap.get("tax_env")+"]]></tax_env>");
xmlBuff.append("<tax_date><![CDATA["+invDespMap.get("tax_date")+"]]></tax_date>");
xmlBuff.append("<frt_amt><![CDATA["+invDespMap.get("frt_amt")+"]]></frt_amt>");
xmlBuff.append("<frt_type><![CDATA["+invDespMap.get("frt_term")+"]]></frt_type>");
xmlBuff.append("<curr_code><![CDATA["+invDespMap.get("sorder_curr_code")+"]]></curr_code>");
xmlBuff.append("<exch_rate><![CDATA["+invDespMap.get("sorder_exch_rate")+"]]></exch_rate>");
xmlBuff.append("<sales_pers><![CDATA["+invDespMap.get("sales_pers")+"]]></sales_pers>");
xmlBuff.append("<curr_code__frt><![CDATA["+invDespMap.get("curr_code__frt")+"]]></curr_code__frt>");
xmlBuff.append("<exch_rate__frt><![CDATA["+invDespMap.get("exch_rate__frt")+"]]></exch_rate__frt>");
xmlBuff.append("<confirmed><![CDATA["+"N"+"]]></confirmed>");
xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
xmlBuff.append("<chg_term><![CDATA["+termId+"]]></chg_term>");
xmlBuff.append("<inv_type><![CDATA["+sorderSalMap.get("ls_ordertype")+"]]></inv_type>");
xmlBuff.append("<curr_code__ins><![CDATA["+invDespMap.get("curr_code__ins")+"]]></curr_code__ins>");
xmlBuff.append("<exch_rate__ins><![CDATA["+invDespMap.get("exch_rate__ins")+"]]></exch_rate__ins>");
xmlBuff.append("<ins_amt><![CDATA["+invDespMap.get("ins_amt")+"]]></ins_amt>");
xmlBuff.append("<remarks><![CDATA["+ldsInvHdrMp.get("remarks")+"]]></remarks>");
xmlBuff.append("<stan_code__init><![CDATA["+ldsInvHdrMp.get("stan_code__init")+"]]></stan_code__init>");
xmlBuff.append("<frt_amt><![CDATA["+invDespMap.get("frt_amt")+"]]></frt_amt>");
xmlBuff.append("<exch_rate__frt><![CDATA["+invDespMap.get("exch_rate__frt")+"]]></exch_rate__frt>");
xmlBuff.append("<acct_code__pr><![CDATA["+acctSchemehdrMap.get("ls_acct_code__pr")+"]]></acct_code__pr>");
xmlBuff.append("<cctr_code__pr><![CDATA["+acctSchemehdrMap.get("ls_cctr_code__pr")+"]]></cctr_code__pr>");
xmlBuff.append("<comm_amt><![CDATA["+invDespMap.get("comm_amt")+"]]></comm_amt>");
xmlBuff.append("<tax_amt><![CDATA["+invDespMap.get("tax_amt")+"]]></tax_amt>");
// xmlBuff.append("<disc_amt><![CDATA[]]></disc_amt>"); //Get disc_amt from inv_det
// xmlBuff.append("<inv_amt><![CDATA[]]></inv_amt>"); //Get inv_amt from inv_det
xmlBuff.append("<disc_schem_billback_amt><![CDATA["+invDespMap.get("disc_schem_billback_amt")+"]]></disc_schem_billback_amt>");
xmlBuff.append("<disc_schem_offinv_amt><![CDATA["+invDespMap.get("disc_schem_offinv_amt")+"]]></disc_schem_offinv_amt>");
// xmlBuff.append("<disc_offinv_amt_hdr><![CDATA[]]></disc_offinv_amt_hdr>"); // get by method gbf_calc_hdrdisc_amt()
// xmlBuff.append("<disc_billback_amt_hdr><![CDATA[]]></disc_billback_amt_hdr>"); // get by method gbf_calc_hdrdisc_amt()
lcCommAmtOc=Double.parseDouble(invDespMap.get("comm_amt"))/Double.parseDouble(ldsInvHdrMp.get("exch_rate"));
xmlBuff.append("<comm_amt__oc><![CDATA["+lcCommAmtOc+"]]></comm_amt__oc>");
xmlBuff.append("<sales_pers__1><![CDATA["+invDespMap.get("sales_pers__1")+"]]></sales_pers__1>");
xmlBuff.append("<sales_pers__2><![CDATA["+invDespMap.get("sales_pers__2")+"]]></sales_pers__2>");
xmlBuff.append("<sales_pers_comm_1><![CDATA["+invDespMap.get("sales_pers_comm_1")+"]]></sales_pers_comm_1>");
xmlBuff.append("<sales_pers_comm_2><![CDATA["+invDespMap.get("sales_pers_comm_2")+"]]></sales_pers_comm_2>");
xmlBuff.append("<sales_pers_comm_3><![CDATA["+invDespMap.get("sales_pers_comm_3")+"]]></sales_pers_comm_3>");
xmlBuff.append("<sales_pers_comm_1><![CDATA["+invDespMap.get("sales_pers_comm_1")+"]]></sales_pers_comm_1>");
xmlBuff.append("<sales_pers_comm_2><![CDATA["+invDespMap.get("sales_pers_comm_2")+"]]></sales_pers_comm_2>");
xmlBuff.append("<sales_pers_comm_3><![CDATA["+invDespMap.get("sales_pers_comm_3")+"]]></sales_pers_comm_3>");
xmlBuff.append("<round_adj><![CDATA[]]></round_adj>"); // Set round_adj
xmlBuff.append("<net_amt><![CDATA[]]></net_amt>"); // Set net_amt
xmlBuff.append("</Detail1>");
mainInvDespDetMap=(HashMap<String, HashMap>) dataList.get(0);
System.out.println("@@@@@@@@@525:::mainInvDespDetMap["+mainInvDespDetMap+"]");
for(String keyStr:mainInvDespDetMap.keySet())
{
System.out.println("Detail 2:::");
// if(!keyStr.contains("@"))
// {
/**
* Generating XML for
* Invoice Trace
* */
invTraceDetMap= new HashMap<String, String>();
despLineNo=keyStr;
invTraceDetMap=mainInvDespDetMap.get(keyStr);
System.out.println("Inner InvDespDetMap size:-["+invTraceDetMap.size()+"]");
lineNo++;
xmlBuff.append("<Detail2 dbID=\"\" domID=\""+lineNo+"\" objContext=\"2\" objName=\"invoice_po\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" status=\"N\" updateFlag=\"A\"/>");
xmlBuff.append("<invoice_id/>");
xmlBuff.append("<inv_line_no><![CDATA[" + lineNo + "]]></inv_line_no>");
xmlBuff.append("<desp_id><![CDATA["+invTraceDetMap.get("desp_id")+"]]></desp_id>");
xmlBuff.append("<desp_line_no><![CDATA["+invTraceDetMap.get("line_no")+"]]></desp_line_no>");
xmlBuff.append("<item_code><![CDATA[" + invTraceDetMap.get("item_code") + "]]></item_code>");
xmlBuff.append("<quantity><![CDATA[" + invTraceDetMap.get("quantity") + "]]></quantity>");
xmlBuff.append("<unit><![CDATA[" + invTraceDetMap.get("unit") + "]]></unit>");
xmlBuff.append("<rate><![CDATA[" + invTraceDetMap.get("rate") + "]]></rate>");
xmlBuff.append("<unit__rate><![CDATA[" + invTraceDetMap.get("unit__rate") + "]]></unit__rate>");
xmlBuff.append("<discount><![CDATA[" + invTraceDetMap.get("discount") + "]]></discount>");
xmlBuff.append("<tax_class><![CDATA["+invTraceDetMap.get("tax_class")+"]]></tax_class>");
xmlBuff.append("<tax_chap><![CDATA["+invTraceDetMap.get("tax_chap")+"]]></tax_chap>");
xmlBuff.append("<tax_env><![CDATA["+invTraceDetMap.get("tax_env")+"]]></tax_env>");
xmlBuff.append("<tax_amt><![CDATA[]]></tax_amt>"); //tax_amt missing
xmlBuff.append("<net_amt><![CDATA[]]></net_amt>"); //net_amt missing
xmlBuff.append("<unit__std><![CDATA[" + invTraceDetMap.get("sord_unit__std") + "]]></unit__std>");
xmlBuff.append("<conv__qty_stduom><![CDATA[" + invTraceDetMap.get("sord_conv__qty_stduom") + "]]></conv__qty_stduom>");
xmlBuff.append("<quantity__stduom><![CDATA[" + invTraceDetMap.get("desp_quantity__stduom") + "]]></quantity__stduom>");
xmlBuff.append("<conv__rtuom_stduom><![CDATA[" + invTraceDetMap.get("conv__rtuom_stduom") + "]]></conv__rtuom_stduom>");
xmlBuff.append("<rate__stduom><![CDATA[" + invTraceDetMap.get("desp_rate__stduom") + "]]></rate__stduom>");
xmlBuff.append("<comm_amt__oc><![CDATA[]]></comm_amt__oc>"); //comm_amt__oc missing
xmlBuff.append("<sord_no><![CDATA[" + invTraceDetMap.get("sord_no") + "]]></sord_no>");
xmlBuff.append("<sord_line_no><![CDATA[" + invTraceDetMap.get("line_no__sord") + "]]></sord_line_no>");
xmlBuff.append("<item_code__ord><![CDATA[" + invTraceDetMap.get("item_code__ord") + "]]></item_code__ord>");
xmlBuff.append("<no_art><![CDATA[" + invTraceDetMap.get("no_art") + "]]></no_art>");
xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
xmlBuff.append("<chg_term><![CDATA["+termId+"]]></chg_term>");
xmlBuff.append("<lot_no><![CDATA["+invTraceDetMap.get("lot_no")+"]]></lot_no>");
xmlBuff.append("<lot_sl><![CDATA["+invTraceDetMap.get("lot_sl")+"]]></lot_sl>");
xmlBuff.append("<site_code__mfg><![CDATA["+invTraceDetMap.get("site_code__mfg")+"]]></site_code__mfg>");
xmlBuff.append("<mfg_date><![CDATA["+invTraceDetMap.get("mfg_date")+"]]></mfg_date>");
xmlBuff.append("<exp_date><![CDATA["+invTraceDetMap.get("exp_date")+"]]></exp_date>");
xmlBuff.append("<exp_lev><![CDATA["+invTraceDetMap.get("exp_lev")+"]]></exp_lev>");
xmlBuff.append("<fob_value><![CDATA[]]></fob_value>");
xmlBuff.append("<rate__clg><![CDATA["+invTraceDetMap.get("rate__clg")+"]]></rate__clg>");
xmlBuff.append("<line_no><![CDATA["+lineNo+"]]></line_no>");
xmlBuff.append("<item_ser__prom><![CDATA[]]></item_ser__prom>");
xmlBuff.append("<curr_code><![CDATA["+invDespMap.get("sorder_curr_code")+"]]></curr_code>");
xmlBuff.append("<exch_rate><![CDATA["+invDespMap.get("sorder_exch_rate")+"]]></exch_rate>");
xmlBuff.append("<rate__stk><![CDATA[]]></rate__stk>");
xmlBuff.append("<rate__std><![CDATA[]]></rate__std>");
xmlBuff.append("<cost_rate><![CDATA[]]></cost_rate>");
xmlBuff.append("<line_type><![CDATA["+invTraceDetMap.get("line_type")+"]]></line_type>");
xmlBuff.append("<cust_item__ref><![CDATA["+invTraceDetMap.get("cust_item__ref")+"]]></cust_item__ref>");
xmlBuff.append("<disc_schem_billback_amt><![CDATA[" + invTraceDetMap.get("disc_schem_billback_amt") + "]]></disc_schem_billback_amt>");
xmlBuff.append("<disc_schem_offinv_amt><![CDATA[" + invTraceDetMap.get("disc_schem_offinv_amt") + "]]></disc_schem_offinv_amt>");
xmlBuff.append("<item_flg><![CDATA[I]]></item_flg>");
xmlBuff.append("</Detail2>");
// }
// else
// {
// }
} // END of Detail [mainInvDespDetMap] for loop
/**
* Generating XML for
* Invoice Det
* */
// invDetBeanMap=mainInvDespDetMap.get(keyStr);
invDetBeanMap=(HashMap<String, Object>) dataList.get(1);
System.out.println("@@@@@@@@@@@ invDetBeanMap["+invDetBeanMap+"]");
for(String keyStr:invDetBeanMap.keySet())
{
System.out.println("Detail 3:::::::::::");
lineNoDet++;
invoiceDetBean=(InvoiceDetBean) invDetBeanMap.get(keyStr);
xmlBuff.append("<Detail3 dbID=\"\" domID=\""+lineNoDet+"\" objContext=\"3\" objName=\"invoice_po\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" status=\"N\" updateFlag=\"A\"/>");
xmlBuff.append("<invoice_id/>");
xmlBuff.append("<line_no><![CDATA[" + lineNoDet + "]]></line_no>");
xmlBuff.append("<sord_no><![CDATA[" + invoiceDetBean.getSord_no()+ "]]></sord_no>");
xmlBuff.append("<sord_line_no><![CDATA[" + invoiceDetBean.getLine_no__sord() + "]]></sord_line_no>");
xmlBuff.append("<item_code><![CDATA[" + invoiceDetBean.getItem_code() + "]]></item_code>");
xmlBuff.append("<item_code__ord><![CDATA[" + invoiceDetBean.getItem_code__ord() + "]]></item_code__ord>");
xmlBuff.append("<item_flg><![CDATA[I]]></item_flg>"); //item_flag missing
xmlBuff.append("<quantity><![CDATA[" + invoiceDetBean.getmTotDespQty()+ "]]></quantity>");
xmlBuff.append("<unit><![CDATA[" + invoiceDetBean.getUnit()+ "]]></unit>");
xmlBuff.append("<unit__std><![CDATA[" + invoiceDetBean.getSord_unit__std() + "]]></unit__std>");
xmlBuff.append("<conv__qty_stduom><![CDATA[" + invoiceDetBean.getSord_conv__qty_stduom() + "]]></conv__qty_stduom>");
xmlBuff.append("<quantity__stduom><![CDATA[" + invoiceDetBean.getmTotStdQty() + "]]></quantity__stduom>");
xmlBuff.append("<no_art><![CDATA[" + invoiceDetBean.getmNoArt() + "]]></no_art>");
xmlBuff.append("<rate><![CDATA[" + invoiceDetBean.getRate() + "]]></rate>");
xmlBuff.append("<unit__rate><![CDATA[" + invoiceDetBean.getUnit__rate() + "]]></unit__rate>");
xmlBuff.append("<conv__rtuom_stduom><![CDATA[" + invoiceDetBean.getConv__rtuom_stduom() + "]]></conv__rtuom_stduom>");
xmlBuff.append("<rate__stduom><![CDATA[" + invoiceDetBean.getDesp_rate__stduom() + "]]></rate__stduom>");
xmlBuff.append("<discount><![CDATA[" + invoiceDetBean.getDiscount() + "]]></discount>");
xmlBuff.append("<disc_amt><![CDATA[" + invoiceDetBean.getDisc_amt()+ "]]></disc_amt>");
xmlBuff.append("<disc_schem_billback_amt><![CDATA[" + invoiceDetBean.getDisc_schem_billback_amt()+ "]]></disc_schem_billback_amt>");
xmlBuff.append("<disc_schem_offinv_amt><![CDATA[" + invoiceDetBean.getDisc_schem_offinv_amt() + "]]></disc_schem_offinv_amt>");
xmlBuff.append("<acc_code__item><![CDATA[" + invoiceDetBean.getAcc_code__item() + "]]></acc_code__item>");
xmlBuff.append("<comm_amt><![CDATA[]]></comm_amt>"); //comm_amt missing
xmlBuff.append("<sales_pers_comm_1><![CDATA["+invDespMap.get("sales_pers_comm_1")+"]]></sales_pers_comm_1>");
xmlBuff.append("<sales_pers_comm_2><![CDATA["+invDespMap.get("sales_pers_comm_2")+"]]></sales_pers_comm_2>");
xmlBuff.append("<sales_pers_comm_3><![CDATA["+invDespMap.get("sales_pers_comm_3")+"]]></sales_pers_comm_3>");
xmlBuff.append("<sales_pers_comm_3><![CDATA["+invDespMap.get("sales_pers_comm_3")+"]]></sales_pers_comm_3>");
xmlBuff.append("<comm_amt__oc><![CDATA[]]></comm_amt__oc>"); //comm_amt__oc missing
//xmlBuff.append("<tax_class><![CDATA["+invoiceDetBean.getTax_class()+"]]></tax_class>");
//xmlBuff.append("<tax_chap><![CDATA["+invoiceDetBean.getTax_chap()+"]]></tax_chap>");
//xmlBuff.append("<tax_env><![CDATA["+invoiceDetBean.getTax_env()+"]]></tax_env>");
xmlBuff.append("<desp_id><![CDATA["+invoiceDetBean.getDesp_id()+"]]></desp_id>");
xmlBuff.append("<line_no_desp><![CDATA["+"1"+"]]></line_no_desp>");
xmlBuff.append("<rate__clg><![CDATA["+invoiceDetBean.getRate__clg()+"]]></rate__clg>");
xmlBuff.append("<fin_scheme><![CDATA["+invoiceDetBean.getFin_scheme()+"]]></fin_scheme>");
xmlBuff.append("<cust_item__ref><![CDATA["+invoiceDetBean.getCust_item__ref()+"]]></cust_item__ref>");
xmlBuff.append("<tax_amt><![CDATA[]]></tax_amt>"); //tax_amt missing
xmlBuff.append("<net_amt><![CDATA[]]></net_amt>"); //net_amt missing
xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
xmlBuff.append("<chg_term><![CDATA["+termId+"]]></chg_term>");
xmlBuff.append("</Detail3>");
}
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
xmlInvString=xmlBuff.toString();
System.out.println("XML generated :- ["+xmlInvString+"]");
/**
* Master statefull
* Save data
* */
retString = saveData(loginSite, xmlInvString, xtraParams, conn);
System.out.println("Return string after save data :- ["+retString+"]");
fos1.write(("Return String after save data is :- [" + retString +"]\r\n").getBytes());
/**
* Check Save return string
* */
if (retString.indexOf("Success") > -1)
{
System.out.println("Master statefull SAVE success..");
// conn.commit();
String[] arrayForTranIdIssue = retString.split("<TranID>");
int endIndexIssue = arrayForTranIdIssue[1].indexOf("</TranID>");
tranId = arrayForTranIdIssue[1].substring(0, endIndexIssue);
System.out.println("@V@ Tran id :- [" + tranId + "]");
fos1.write(("Invoice successful for Dispatch id :- ["+despIdKey+"] TranId generated is:- [" + tranId +"]\n END \r\n\n").getBytes());
/**
* Call Credit check component
* PostOrdCreditChk.java
* */
// PostOrdCreditChk pCrdChk=new PostOrdCreditChk();
//net amount is not exist in
//invDespMap
// retString=pCrdChk.creditCheck(invDespMap.get("cust_code"),invDespMap.get("cust_code__bil"), invDespMap.get("item_ser"), "0.00",runOpt,//Net amount missing
// invDespMap.get("sord_no"), ldsInvHdrMp.get("invoice__date"), invDespMap.get("desp_site_code"), "I", despId,conn);
/**
* Invoice Posting
* */
// temp cpatil
// PostOrdInvoicePost invPost=new PostOrdInvoicePost();
// retString=invPost.invoicePosting(tranId, conn);
System.out.println("Invoice posting ret string :- ["+retString+"]");
}
else
{
fos1.write(("Invoice fail for Dispatch id :- ["+despIdKey+"]\n END \r\n\n").getBytes());
}
// } // END of Header [mainInvDespMap] for loop
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return retString;
}
private String getDueDate(String crTerm, String invDate, String effDate, String lrDate, String crDays,Connection conn) throws ITMException, Exception
{
Timestamp dueDate=null,ldTranDate=null,ldTodate=null;
// TODO Auto-generated method stub
String sql="",startFrom="",lsMonth="",liDueDays="",lsOvrdDueDate="",liDays="";
PreparedStatement pstmt=null;
ResultSet rs=null;
int liMonth=0;
long liCrDays=0,liCurrDays=0,liDaysNo=0;
try
{
UtilMethods utlMethods= new UtilMethods();
System.out.println("crterm :::::::::::::::::::::::"+crTerm);
sql="select start_from from crterm where cr_term =?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, crTerm);
rs=pstmt.executeQuery();
if(rs.next())
{
startFrom=rs.getString("start_from");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
System.out.println("Startfrom value!!!"+startFrom);
System.out.println("Effective date:::::::::::"+effDate);
System.out.println("LR date:::::::::::"+lrDate);
if("D".equalsIgnoreCase(startFrom) || "Q".equalsIgnoreCase(startFrom) || "B".equalsIgnoreCase(startFrom))
{
ldTranDate = Timestamp.valueOf(genericUtility.getValidDateString(effDate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0"); //Timestamp.valueOf(effDate);
}
else if("L".equalsIgnoreCase(startFrom))
{
ldTranDate = Timestamp.valueOf(genericUtility.getValidDateString(lrDate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0"); //Timestamp.valueOf(lrDate);
}
//pending for R
System.out.println("ldTranDate::::::::::::"+ldTranDate);
if(ldTranDate != null)
{
liMonth=ldTranDate.getMonth();
}
System.out.println("Li Month :- ["+liMonth+"]");
if(liMonth==12)
{
liMonth=1;
lsMonth="01";
}
else
{
liMonth=liMonth+1;
if(liMonth>9)
{
lsMonth=String.valueOf(liMonth);
}
else
{
lsMonth="0"+String.valueOf(liMonth);
}
}
sql="select c.cr_days ,d.override_due_date from crterm c,crterm_disc d where c.cr_term = d.cr_term and c.cr_term = ?"
+ " and d.cr_month=? and d.override_due_date is not null";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, crTerm);
pstmt.setString(2, lsMonth);
rs=pstmt.executeQuery();
if(rs.next())
{
liDueDays=rs.getString("cr_days");
lsOvrdDueDate=rs.getString("override_due_date");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
if(lsOvrdDueDate!=null && lsOvrdDueDate.trim().length()>0)
{
liCrDays=Long.valueOf(lsOvrdDueDate.substring(3, 2));
}
else
{
sql="select c.cr_days ,d.override_due_date from crterm c,crterm_disc d where c.cr_term = d.cr_term and c.cr_term = ?"
+ " and d.cr_month='99' and d.override_due_date is not null";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, crTerm);
rs=pstmt.executeQuery();
if(rs.next())
{
liDueDays=rs.getString("cr_days");
lsOvrdDueDate=rs.getString("override_due_date");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
if(lsOvrdDueDate!=null && lsOvrdDueDate.trim().length()>0)
{
liCrDays=Long.valueOf(lsOvrdDueDate.substring(3, 2));
}
else
{
sql="select cr_days from crterm where cr_term =?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, crTerm);
rs=pstmt.executeQuery();
if(rs.next())
{
liDays=rs.getString("cr_days");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
}
}
if(liDueDays==null || liDueDays.trim().length()==0)
{
liDueDays="0";
}
if(liDays==null || liDays.trim().length()==0)
{
liDays="0";
}
if(lsOvrdDueDate!=null && lsOvrdDueDate.trim().length()>0)
{
sql="select to_date from period where fr_date <=? and to_date >=?";
pstmt=conn.prepareStatement(sql);
pstmt.setTimestamp(1, ldTranDate);
pstmt.setTimestamp(2, ldTranDate);
rs=pstmt.executeQuery();
if(rs.next())
{
ldTodate=rs.getTimestamp("to_date");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
liCurrDays= utlMethods.DaysAfter(ldTranDate, ldTodate);
liDaysNo=liCurrDays+Long.valueOf(liCrDays)+Long.valueOf(liDueDays);
}
System.out.println("crDays:::::::::::::::::::::::::"+crDays);
if(Integer.parseInt(crDays)!= -999)
{
dueDate=utlMethods.RelativeDate(ldTranDate, Integer.parseInt(crDays));
}
else
{
dueDate=utlMethods.RelativeDate(ldTranDate,(int)liDaysNo);
}
System.out.println("Due Date is :- ["+dueDate+"]");
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
System.out.println("@@@@@@@@@@@901::::::::dueDate["+dueDate+"]");
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
String dueDate1 = sdf.format(dueDate);
System.out.println("System date :- [" + dueDate + "]");
System.out.println("@@@@@@@@@@@901::::::::dueDate1["+dueDate1+"]");
return dueDate1;
}
/**
*
* @param ldsInvHdrMp
* @param conn
* @return HashMap<String, String>
* @throws ITMException
*/
// private HashMap<String, HashMap<String, String>> getInvDespatch(HashMap<String, String> ldsInvHdrMp,Connection conn)
private HashMap<String, String> getInvDespatch(HashMap<String, String> ldsInvHdrMp,Connection conn) throws ITMException
{
// TODO Auto-generated method stub
HashMap<String, String> invDespMap=null;
HashMap<String, HashMap<String, String>> mainInvDespMap=new HashMap<String, HashMap<String,String>>();
String invDespSql="",mFrDespDt="",mToDespDt="",despDtStr="",sordDtStr="",lrDtStr="",gpDtStr="",taxDtStr="",effDtStr="";
String fromDate = "";
PreparedStatement pstmt=null;
ResultSet rs=null;
Timestamp fromDateTimestamp = null;
try
{
if(ldsInvHdrMp.get("lr_date")!=null && ldsInvHdrMp.get("lr_date").trim().length()>0)
{
mFrDespDt=ldsInvHdrMp.get("lr_date");
mToDespDt=ldsInvHdrMp.get("lr_date");
}
//added by vishakha for date since query was not getting executed
if(ldsInvHdrMp.get("desp_date__fr")!=null && ldsInvHdrMp.get("desp_date__fr").trim().length()>0)
{
fromDate=ldsInvHdrMp.get("desp_date__fr");
// mToDespDt=ldsInvHdrMp.get("lr_date");
}
/* fromDateTimestamp = Timestamp.valueOf(fromDate,genericUtility.getDBDateFormat(),genericUtility.getApplDateFormat());//(complDate, dateFormat,genericUtility.getDBDateFormat()) + " 00:00:00.0");
System.out.println("fromDateTimestamp:::::::::::::::::::::"+fromDateTimestamp);
*/
invDespSql="SELECT despatch.desp_id,despatch.desp_date,despatch.sord_no,despatch.sord_date,despatch.cust_code,"
+ "despatch.cust_code__dlv,despatch.tran_code,despatch.lr_no,despatch.lr_date,despatch.gp_ser,"
+ "despatch.gp_no,despatch.gp_date,despatch.stan_code,despatch.chg_date,despatch.chg_user,"
+ "despatch.chg_term,despatch.status,despatch.site_code,sorder.sales_pers,sorder.tax_class,"
+ "sorder.tax_chap,sorder.tax_env,sorder.tax_date,sorder.cr_term,sorder.site_code,"
+ "sorder.curr_code,sorder.exch_rate,sorder.ord_amt,sorder.tax_amt,sorder.tot_amt,"
+ "sorder.comm_amt,sorder.frt_amt,sorder.curr_code__frt,sorder.exch_rate__frt,site.fin_entity,"
+ "crterm.cr_days,sorder.cust_code__bil,sorder.frt_term,sorder.part_qty,sorder.comm_perc,"
+ "sorder.comm_perc__on,despatch.eff_date,sorder.item_ser,sorder.bank_code,sorder.order_type,"
+ "despatch.trans_mode,sorder.curr_code__ins,sorder.exch_rate__ins,sorder.ins_amt,sorder.sales_pers__1,"
+ "sorder.sales_pers__2,sorder.sales_pers_comm_1,sorder.sales_pers_comm_2,sorder.sales_pers_comm_3,despatch.freight,"
+ "despatch.curr_code__frt,despatch.exch_rate__frt,despatch.exch_rate,despatch.curr_code,despatch.disc_schem_billback_amt,"
+ "despatch.disc_schem_offinv_amt,despatch.disc_offinv_amt_det,despatch.disc_billback_amt_det,despatch.freight_amt_add"
+ " FROM despatch,sorder,site,crterm"
+ " WHERE ( sorder.cr_term = crterm.cr_term ) "
+ " and( despatch.sord_no = sorder.sale_order ) "
+ " and( despatch.site_code = site.site_code ) "
+ " AND( despatch.desp_id >= ? ) "
+ " AND( despatch.desp_id <= ? ) "
+ " AND( despatch.cust_code >= ? ) "
+ " AND( despatch.cust_code <= ? ) "
// + " AND( despatch.status = ?) "
// + " OR( despatch.status = 'H' ) "
+ " AND( despatch.confirmed = 'Y' ) "
+ " AND( sorder.order_type like (?) )"
+ " ORDER BY despatch.sord_no ASC,despatch.desp_id ASC";
pstmt=conn.prepareStatement(invDespSql);
// pstmt.setString(1, ldsInvHdrMp.get("desp_date__fr"));
// pstmt.setString(2, ldsInvHdrMp.get("desp_date__to"));
// pstmt.setString(1, mFrDespDt);
// pstmt.setString(2, mToDespDt);
// pstmt.setTimestamp(1, fromDateTimestamp);//changed by vishakha
// pstmt.setTimestamp(2, fromDateTimestamp);//changed by vishakha
pstmt.setString(1, ldsInvHdrMp.get("desp_id__fr"));
// pstmt.setString(4, ldsInvHdrMp.get("desp_id__to"));
pstmt.setString(2, ldsInvHdrMp.get("desp_id__fr"));
pstmt.setString(3, ldsInvHdrMp.get("cust_code__fr"));
pstmt.setString(4, ldsInvHdrMp.get("cust_code__to"));
// pstmt.setString(7, ""); // Blank Status
pstmt.setString(5, ldsInvHdrMp.get("so_type"));
rs=pstmt.executeQuery();
if(rs.next())
{
System.out.println("@@@@@@@@@@@@ for deaspatch header data.......data found........ ");
invDespMap=new HashMap<String, String>();
invDespMap.put("desp_id", checknull(rs.getString("desp_id")));
if((rs.getString("desp_date"))!= null)
{
despDtStr=genericUtility.getValidDateString(checknull(rs.getString("desp_date")), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
}
invDespMap.put("desp_date", despDtStr);
invDespMap.put("sord_no", checknull(rs.getString("sord_no")));
if((rs.getString("sord_date"))!= null)
{
System.out.println("inside if of sord_date");
sordDtStr=genericUtility.getValidDateString(checknull(rs.getString("sord_date")), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
}
invDespMap.put("sord_date", sordDtStr);
invDespMap.put("cust_code", checknull(rs.getString("cust_code")));
invDespMap.put("cust_code__dlv", checknull(rs.getString("cust_code__dlv")));
invDespMap.put("tran_code", checknull(rs.getString("tran_code")));
invDespMap.put("lr_no", checknull(rs.getString("lr_no")));
if((rs.getString("lr_date")) != null)
{
System.out.println("inside if of lr_date");
lrDtStr=genericUtility.getValidDateString(checknull(rs.getString("lr_date")), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
}
invDespMap.put("lr_date", lrDtStr);
invDespMap.put("gp_ser", checknull(rs.getString("gp_ser")));
invDespMap.put("gp_no", checknull(rs.getString("gp_no")));
if((rs.getString("gp_date"))!=null)
{
System.out.println("inside if of gp_date");
gpDtStr=genericUtility.getValidDateString(checknull(rs.getString("gp_date")), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
}
invDespMap.put("gp_date", gpDtStr);
invDespMap.put("stan_code", checknull(rs.getString("stan_code")));
invDespMap.put("status", checknull(rs.getString("status")));
invDespMap.put("desp_site_code", checknull(rs.getString("site_code")));
invDespMap.put("sales_pers", checknull(rs.getString("sales_pers")));
invDespMap.put("tax_class", checknull(rs.getString("tax_class")));
invDespMap.put("tax_chap", checknull(rs.getString("tax_chap")));
invDespMap.put("tax_env", checknull(rs.getString("tax_env")));
if((rs.getString("tax_date")) != null)
{
System.out.println("inside if of tax_date");
taxDtStr=genericUtility.getValidDateString(checknull(rs.getString("tax_date")), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
}
invDespMap.put("tax_date", taxDtStr);
invDespMap.put("cr_term", checknull(rs.getString("cr_term")));
invDespMap.put("sorder_site_code", checknull(rs.getString("site_code")));
invDespMap.put("sorder_curr_code", checknull(rs.getString("curr_code")));
invDespMap.put("sorder_exch_rate", checknull(rs.getString("exch_rate")));
invDespMap.put("ord_amt", checknull(rs.getString("ord_amt")));
invDespMap.put("tax_amt", checknull(rs.getString("tax_amt")));
invDespMap.put("tot_amt", checknull(rs.getString("tot_amt")));
invDespMap.put("comm_amt", checknull(rs.getString("comm_amt")));
invDespMap.put("frt_amt", checknull(rs.getString("frt_amt")));
invDespMap.put("curr_code__frt", checknull(rs.getString("curr_code__frt")));
invDespMap.put("exch_rate__frt", checknull(rs.getString("exch_rate__frt")));
invDespMap.put("fin_entity", checknull(rs.getString("fin_entity")));
invDespMap.put("cr_days", checknull(rs.getString("cr_days")));
invDespMap.put("cust_code__bil", checknull(rs.getString("cust_code__bil")));
invDespMap.put("frt_term", checknull(rs.getString("frt_term")));
invDespMap.put("part_qty", checknull(rs.getString("part_qty")));
invDespMap.put("comm_perc", checknull(rs.getString("comm_perc")));
invDespMap.put("comm_perc__on", checknull(rs.getString("comm_perc__on")));
if((rs.getString("eff_date"))!= null)
{
System.out.println("inside if of eff_date");
effDtStr=genericUtility.getValidDateString(checknull(rs.getString("eff_date")), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
}
invDespMap.put("eff_date", effDtStr);
invDespMap.put("item_ser", checknull(rs.getString("item_ser")));
invDespMap.put("bank_code", checknull(rs.getString("bank_code")));
invDespMap.put("order_type", checknull(rs.getString("order_type")));
invDespMap.put("trans_mode", checknull(rs.getString("trans_mode")));
invDespMap.put("curr_code__ins", checknull(rs.getString("curr_code__ins")));
invDespMap.put("exch_rate__ins", checknull(rs.getString("exch_rate__ins")));
invDespMap.put("ins_amt", checknull(rs.getString("ins_amt")));
invDespMap.put("sales_pers__1", checknull(rs.getString("sales_pers__1")));
invDespMap.put("sales_pers__2", checknull(rs.getString("sales_pers__2")));
invDespMap.put("sales_pers_comm_1", checknull(rs.getString("sales_pers_comm_1")));
invDespMap.put("sales_pers_comm_2", checknull(rs.getString("sales_pers_comm_2")));
invDespMap.put("sales_pers_comm_3", checknull(rs.getString("sales_pers_comm_3")));
invDespMap.put("freight", checknull(rs.getString("freight")));
invDespMap.put("curr_code__frt", checknull(rs.getString("curr_code__frt")));
invDespMap.put("exch_rate__frt", checknull(rs.getString("exch_rate__frt")));
invDespMap.put("exch_rate", checknull(rs.getString("exch_rate")));
invDespMap.put("curr_code", checknull(rs.getString("curr_code")));
invDespMap.put("disc_schem_billback_amt", checknull(rs.getString("disc_schem_billback_amt")));
invDespMap.put("disc_schem_offinv_amt", checknull(rs.getString("disc_schem_offinv_amt")));
invDespMap.put("disc_offinv_amt_det", checknull(rs.getString("disc_offinv_amt_det")));
invDespMap.put("disc_billback_amt_det", checknull(rs.getString("disc_billback_amt_det")));
invDespMap.put("freight_amt_add", checknull(rs.getString("freight_amt_add")));
System.out.println("MAP VALUES:::::::::::::::"+invDespMap);
// mainInvDespMap.put(rs.getString("desp_id"), invDespMap);
// invDespMap=null;
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (ITMException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
// return mainInvDespMap;
return invDespMap;
}
/**
*
* @param sordNo
* @param status
* @param despId
* @param ldsInvHdrMp
* @param despSiteCode
* @param conn
* @return HashMap<String, String>
* @throws ITMException
*/
// private HashMap<String, HashMap<String, String>> getInvDespatchDet(String sordNo, String status,String despId,HashMap<String, String> ldsInvHdrMp, Connection conn)
private ArrayList<Object> getInvDespatchDet(String sordNo, String status,String despId,HashMap<String, String> ldsInvHdrMp, String despSiteCode, Connection conn) throws ITMException
{
// TODO Auto-generated method stub
// HashMap<String, String> invDespDetMap=null;
HashMap<String, String> invTraceMap=null;
// HashMap<String, HashMap<String, String>> mainInvDespDetMap=new HashMap<String, HashMap<String,String>>();
HashMap<String, HashMap> mainInvDespDetMap=new HashMap<String, HashMap>();
HashMap<String, Object> invDetBeanMap= new HashMap<String, Object>();
HashMap<String, String> stockDetMap=new HashMap<String, String>();
String invDespDetSql="",mFrDespDt="",mToDespDt="",lsAcctSchemedet="",lsFinscheme="",lsCustitemRef="",mfgDtStr="",ldExpDtStr="";
double lcDiscAmt=0.0,mTotDespQty=0.0,mTotStdQty=0.0,mRealQty=0.0;
int mNoArt=0;
String desp_id="",line_no="",sord_no="",line_no__sord="",exp_lev="",item_code__ord="",item_code="",lot_no="",lot_sl="",quantity__ord="";
String quantity="",loc_code="",desp_conv__qty_stduom="",desp_unit__std="",unit="",desp_quantity__stduom="",tax_class="",tax_chap="",tax_env="";
String discount="",unit__rate="",sord_conv__qty_stduom="",conv__rtuom_stduom="",sord_unit__std="",sord_quantity__stduom="",sord_rate__stduom="";
String rate="",quantity_real="",quantity_inv="",invoice_id="",no_art="",rate__clg="",desp_rate__stduom="",disc_amt="",cust_item__ref="";
String disc_schem_billback_amt="",disc_schem_offinv_amt="";
PreparedStatement pstmt=null;
ResultSet rs=null;
String beanMapKey="",lsLineType="";
ArrayList<Object> mainArrayList= new ArrayList<Object>();
/**
* Generate Bean object
* */
InvoiceDetBean invoiceDetBean= null;
try
{
invDespDetSql="SELECT despatchdet.desp_id,despatchdet.line_no,despatchdet.sord_no,despatchdet.line_no__sord,despatchdet.exp_lev,"
+ "despatchdet.item_code__ord,despatchdet.item_code,despatchdet.lot_no,despatchdet.lot_sl,despatchdet.quantity__ord,"
+ "despatchdet.quantity,despatchdet.loc_code,despatchdet.status,despatchdet.conv__qty_stduom,despatchdet.unit__std,"
+ "despatchdet.unit,despatchdet.quantity__stduom,sorddet.tax_class,sorddet.tax_chap,sorddet.tax_env,"
+ "sorddet.discount,sorddet.unit__rate,sorddet.conv__qty_stduom,sorddet.conv__rtuom_stduom,sorddet.unit__std,"
+ "sorddet.quantity__stduom,sorddet.rate__stduom,sorddet.rate,despatchdet.quantity_real,despatchdet.quantity_inv,"
+ "despatchdet.invoice_id,despatchdet.no_art,despatchdet.rate__clg,despatchdet.rate__stduom,despatchdet.disc_amt,"
+ "despatchdet.cust_item__ref,despatchdet.disc_schem_billback_amt,despatchdet.disc_schem_offinv_amt"
+ " FROM despatchdet,sorddet"
+ " WHERE ( despatchdet.sord_no = sorddet.sale_order )"
+ " and( despatchdet.line_no__sord = sorddet.line_no )"
+ " and( ( case when DESPATCHDET.STATUS is null then ' ' else despatchdet.STATUS end = ? )"
+ " AND( DESPATCHDET.SORD_NO = ?)"
+ " AND( DESPATCHDET.DESP_ID >= ?)"
+ " AND( DESPATCHDET.DESP_ID <= ? ) )"
+ " ORDER BY despatchdet.sord_no ASC,despatchdet.line_no__sord ASC,despatchdet.exp_lev ASC";
pstmt=conn.prepareStatement(invDespDetSql);
pstmt.setString(1,status);
pstmt.setString(2,sordNo);
pstmt.setString(3,despId);
pstmt.setString(4,despId);
rs=pstmt.executeQuery();
while(rs.next())
{
invTraceMap=new HashMap<String, String>();
desp_id=checknull(rs.getString("desp_id"));
line_no=checknull(rs.getString("line_no"));
sord_no=checknull(rs.getString("sord_no"));
line_no__sord=checknull(rs.getString("line_no__sord"));
exp_lev=checknull(rs.getString("exp_lev"));
item_code__ord=checknull(rs.getString("item_code__ord"));
item_code=checknull(rs.getString("item_code"));
lot_no=checknull(rs.getString("lot_no"));
lot_sl=checknull(rs.getString("lot_sl"));
quantity__ord=checknull(rs.getString("quantity__ord"));
quantity=checknull(rs.getString("quantity"));
loc_code=checknull(rs.getString("loc_code"));
status=checknull(rs.getString("status"));
desp_conv__qty_stduom=checknull(rs.getString("conv__qty_stduom"));
desp_unit__std=checknull(rs.getString("unit__std"));
unit=checknull(rs.getString("unit"));
desp_quantity__stduom=checknull(rs.getString("quantity__stduom"));
tax_class=checknull(rs.getString("tax_class"));
tax_chap=checknull(rs.getString("tax_chap"));
tax_env=checknull(rs.getString("tax_env"));
discount=checknull(rs.getString("discount"));
unit__rate=checknull(rs.getString("unit__rate"));
sord_conv__qty_stduom=checknull(rs.getString("conv__qty_stduom"));
conv__rtuom_stduom=checknull(rs.getString("conv__rtuom_stduom"));
sord_unit__std=checknull(rs.getString("unit__std"));
sord_quantity__stduom=checknull(rs.getString("quantity__stduom"));
sord_rate__stduom=checknull(rs.getString("rate__stduom"));
rate=checknull(rs.getString("rate"));
quantity_real=checknull(rs.getString("quantity_real"));
quantity_inv=checknull(rs.getString("quantity_inv"));
invoice_id=checknull(rs.getString("invoice_id"));
no_art=checknull(rs.getString("no_art"));
rate__clg=checknull(rs.getString("rate__clg"));
desp_rate__stduom=checknull(rs.getString("rate__stduom"));
disc_amt=checknull(rs.getString("disc_amt"));
cust_item__ref=checknull(rs.getString("cust_item__ref"));
disc_schem_billback_amt=checknull(rs.getString("disc_schem_billback_amt"));
disc_schem_offinv_amt=checknull(rs.getString("disc_schem_offinv_amt"));
invTraceMap.put("desp_id", desp_id);
invTraceMap.put("line_no", line_no);
invTraceMap.put("sord_no", sord_no);
invTraceMap.put("line_no__sord",line_no__sord);
invTraceMap.put("exp_lev",exp_lev );
invTraceMap.put("item_code__ord", item_code__ord);
invTraceMap.put("item_code",item_code );
invTraceMap.put("lot_no",lot_no );
invTraceMap.put("lot_sl", lot_sl);
invTraceMap.put("quantity__ord",quantity__ord );
invTraceMap.put("quantity",quantity );
invTraceMap.put("loc_code", loc_code);
invTraceMap.put("status", status);
invTraceMap.put("desp_conv__qty_stduom", desp_conv__qty_stduom);
invTraceMap.put("desp_unit__std",desp_unit__std);
invTraceMap.put("unit", unit);
invTraceMap.put("desp_quantity__stduom",desp_quantity__stduom );
invTraceMap.put("tax_class", tax_class);
invTraceMap.put("tax_chap", tax_chap);
invTraceMap.put("tax_env", tax_env);
invTraceMap.put("discount", discount);
invTraceMap.put("unit__rate", unit__rate);
invTraceMap.put("sord_conv__qty_stduom", sord_conv__qty_stduom);
invTraceMap.put("conv__rtuom_stduom", conv__rtuom_stduom);
invTraceMap.put("sord_unit__std", sord_unit__std);
invTraceMap.put("sord_quantity__stduom", sord_quantity__stduom);
invTraceMap.put("sord_rate__stduom", sord_rate__stduom);
invTraceMap.put("rate", rate);
invTraceMap.put("quantity_real", quantity_real);
invTraceMap.put("quantity_inv", quantity_inv);
invTraceMap.put("invoice_id", invoice_id);
invTraceMap.put("no_art", no_art);
invTraceMap.put("rate__clg", rate__clg);
invTraceMap.put("desp_rate__stduom", desp_rate__stduom);
invTraceMap.put("disc_amt", disc_amt);
invTraceMap.put("cust_item__ref", cust_item__ref);
invTraceMap.put("disc_schem_billback_amt", disc_schem_billback_amt);
invTraceMap.put("disc_schem_offinv_amt", disc_schem_offinv_amt);
System.out.println("Detal map Size::::::::::::::"+invTraceMap.size());
System.out.println("Map Values :::::::::::::::::::"+invTraceMap);
CalcSchemeAmt calcSchemeAmt=new CalcSchemeAmt();
calcSchemeAmt.updateAmt(rs.getString("sord_no"), conn);
lsAcctSchemedet=getLsAcctSchemedet(rs.getString("sord_no"),rs.getString("line_no__sord"),conn);
invTraceMap.put("acc_code__item", lsAcctSchemedet);
lsFinscheme=getLsFinscheme(rs.getString("sord_no"),conn);
invTraceMap.put("fin_scheme", lsFinscheme);
lsLineType=getLineType(rs.getString("sord_no"),rs.getString("line_no__sord"),rs.getString("exp_lev"),conn);
invTraceMap.put("line_type",lsLineType);
stockDetMap=getStockDetail(rs.getString("item_code"),despSiteCode,rs.getString("loc_code"),rs.getString("lot_no"),
rs.getString("lot_sl"),conn);
System.out.println("@@@@@@@@stockDetMap["+stockDetMap+"]");
invTraceMap.put("site_code__mfg",stockDetMap.get("ls_site_code__mfg"));
//mfgDtStr=genericUtility.getValidDateString(stockDetMap.get("ld_mfg_date"), genericUtility.getDBDateFormat(),genericUtility.getApplDateFormat());
invTraceMap.put("mfg_date",stockDetMap.get("ld_mfg_date"));
//invTraceMap.put("mfg_date",mfgDtStr);
//ldExpDtStr=genericUtility.getValidDateString(stockDetMap.get("ld_exp_date"), genericUtility.getDBDateFormat(),genericUtility.getApplDateFormat());
invTraceMap.put("exp_date",stockDetMap.get("ld_exp_date"));
//invTraceMap.put("exp_date",ldExpDtStr);
// lsCustitemRef=getlsCustitemRef(rs.getString("sord_no"),rs.getString("item_code"),conn);
// invDespDetMap.put("cust_item__ref", lsCustitemRef);
// mainInvDespDetMap.put(rs.getString("desp_id"), invDespDetMap);
System.out.println("@@@@@@@@@@@@@@@@@ invTraceMap["+invTraceMap+"]");
mainInvDespDetMap.put(rs.getString("line_no"), invTraceMap);
System.out.println("@@@@@@@@@@@@@@@@@ mainInvDespDetMap["+mainInvDespDetMap+"]");
beanMapKey=rs.getString("sord_no").trim()+"@".trim()+rs.getString("line_no__sord").trim();
/**
* Check generated key is exist in
* Bean map
* */
if(invDetBeanMap.get(beanMapKey)==null)
{
invoiceDetBean= new InvoiceDetBean();
invoiceDetBean.setmTotDespQty(Double.parseDouble(quantity==null?"0.00":quantity));
invoiceDetBean.setmTotStdQty(Double.parseDouble(desp_quantity__stduom==null?"0.00":desp_quantity__stduom));
invoiceDetBean.setmNoArt(Integer.parseInt(no_art==null?"0":no_art));
invoiceDetBean.setmRealQty(Double.parseDouble(quantity_real==null?"0.00":quantity_real));
invoiceDetBean.setDesp_id(checknull(desp_id));
invoiceDetBean.setLine_no(checknull(line_no));
invoiceDetBean.setSord_no(checknull(sord_no));
invoiceDetBean.setLine_no__sord(checknull(line_no__sord));
invoiceDetBean.setExp_lev(checknull(exp_lev));
invoiceDetBean.setItem_code__ord(checknull(item_code__ord));
invoiceDetBean.setItem_code(checknull(item_code));
invoiceDetBean.setLot_no(checknull(lot_no));
invoiceDetBean.setLot_sl(checknull(lot_sl));
invoiceDetBean.setQuantity__ord(checknull(quantity__ord));
// invDespDetMap.put("quantity", checknull(rs.getString("quantity")));
invoiceDetBean.setLoc_code(checknull(loc_code));
invoiceDetBean.setStatus(checknull(status));
invoiceDetBean.setDesp_conv__qty_stduom(checknull(desp_quantity__stduom));
invoiceDetBean.setDesp_unit__std(checknull(desp_unit__std));
invoiceDetBean.setUnit(checknull(unit));
invoiceDetBean.setDesp_quantity__stduom(checknull(sord_quantity__stduom));
invoiceDetBean.setTax_class(checknull(tax_class));
invoiceDetBean.setTax_chap(checknull(tax_chap));
invoiceDetBean.setTax_env(checknull(tax_env));
invoiceDetBean.setDiscount(checknull(discount));
invoiceDetBean.setUnit__rate(checknull(unit__rate));
invoiceDetBean.setSord_conv__qty_stduom(checknull(sord_conv__qty_stduom));
invoiceDetBean.setConv__rtuom_stduom(checknull(conv__rtuom_stduom));
invoiceDetBean.setSord_unit__std(checknull(sord_unit__std));
// invDespDetMap.put("sord_quantity__stduom", checknull(rs.getString("quantity__stduom")));
invoiceDetBean.setSord_rate__stduom(checknull(sord_rate__stduom));
invoiceDetBean.setRate(checknull(rate));
// invDespDetMap.put("quantity_real", checknull(rs.getString("quantity_real")));
invoiceDetBean.setQuantity_inv(checknull(quantity_inv));
invoiceDetBean.setInvoice_id(checknull(invoice_id));
// invDespDetMap.put("no_art", checknull(rs.getString("no_art")));
invoiceDetBean.setRate__clg(checknull(rate__clg));
invoiceDetBean.setDesp_rate__stduom(checknull(desp_rate__stduom));
invoiceDetBean.setDisc_amt(checknull(disc_amt));
invoiceDetBean.setCust_item__ref(checknull(cust_item__ref));
invoiceDetBean.setDisc_schem_billback_amt(checknull(disc_schem_billback_amt));
invoiceDetBean.setDisc_schem_offinv_amt(checknull(disc_schem_offinv_amt));
invoiceDetBean.setAcc_code__item(lsAcctSchemedet);
invoiceDetBean.setFin_scheme(lsFinscheme);
invDetBeanMap.put(beanMapKey, invoiceDetBean);
}
else
{
invoiceDetBean=(InvoiceDetBean) invDetBeanMap.get(beanMapKey);
mTotDespQty=mTotDespQty+invoiceDetBean.getmTotDespQty();
mTotStdQty=mTotStdQty+invoiceDetBean.getmTotStdQty();
mNoArt=mNoArt+invoiceDetBean.getmNoArt();
mRealQty=mRealQty+invoiceDetBean.getmRealQty();
invDetBeanMap.put(beanMapKey, invoiceDetBean);
}
}// DESP_DET while loop END
/**
* Set invDetBeanMap
* in mainInvDespDetMap
* */
System.out.println("@@@@@@@@@@@1384:::before:mainArrayList.size()["+mainArrayList.size()+"]:::mainInvDespDetMap[["+mainInvDespDetMap+"]]::::::::invDetBeanMap[["+invDetBeanMap+"]]");
mainArrayList.add(mainInvDespDetMap);
mainArrayList.add(invDetBeanMap);
System.out.println("@@@@@@@@@@@1388:::after:mainArrayList.size()["+mainArrayList.size()+"]");
// mainInvDespDetMap.put(beanMapKey, invDetBeanMap);
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (ITMException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
// return mainInvDespDetMap;
return mainArrayList;
}
private HashMap<String, String> getStockDetail(String itemCode, String despSiteCode, String locCode, String lotNo, String lotSl, Connection conn) throws ITMException, Exception
{
HashMap<String, String> stockMap=new HashMap<String, String>();
String sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
// TODO Auto-generated method stub
try
{
sql="select site_code__mfg, mfg_date, exp_date 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, despSiteCode);
pstmt.setString(3, locCode);
pstmt.setString(4, lotNo);
pstmt.setString(5, lotSl);
rs=pstmt.executeQuery();
if(rs.next())
{
//stockMap.put("ls_site_code__mfg", checknull(rs.getString("site_code__mfg")));
//String ld_mfg_date = rs.getString("mfg_date");
String ld_mfg_date=genericUtility.getValidDateString(rs.getString("mfg_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
String ld_exp_date=genericUtility.getValidDateString(rs.getString("exp_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
//Timestamp ld_exp_date = rs.getTimestamp("exp_date");
System.out.println("@@@@@@@@@ ld_mfg_date["+ld_mfg_date+"]ld_exp_date["+ld_exp_date+"]");
stockMap.put("ls_site_code__mfg", checknull(rs.getString("site_code__mfg")));
stockMap.put("ld_mfg_date", ld_mfg_date);
stockMap.put("ld_exp_date", ld_exp_date);
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return stockMap;
}
private String getLineType(String sordNo, String sordNoLineno, String expLev, Connection conn) throws ITMException
{
String lsLineType="",sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
// TODO Auto-generated method stub
try
{
sql="select nature from sorditem where sale_order =? and line_no =? and exp_lev= ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, sordNo);
pstmt.setString(2, sordNoLineno);
pstmt.setString(3, expLev);
rs=pstmt.executeQuery();
if(rs.next())
{
lsLineType=checknull(rs.getString("nature"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return lsLineType;
}
class InvoiceDetBean
{
private double mTotDespQty;
private double mTotStdQty;
private double mDescOffInvTotAmt;
private double mDescbbTotAmt;
private int mNoArt;
private double mRealQty;
private double mRealQtyConv;
private String desp_id;
private String line_no;
private String sord_no;
private String line_no__sord;
private String exp_lev;
private String item_code__ord;
private String item_code;
private String lot_no;
private String lot_sl;
private String quantity__ord;
private String quantity;
private String loc_code;
private String status;
private String desp_conv__qty_stduom;
private String desp_unit__std;
private String unit;
private String desp_quantity__stduom;
private String tax_class;
private String tax_chap;
private String tax_env;
private String discount;
private String unit__rate;
private String sord_conv__qty_stduom;
private String sord_rate__stduom;
private String rate;
private String quantity_real;
private String quantity_inv;
private String invoice_id;
private String no_art;
private String rate__clg;
private String desp_rate__stduom;
private String disc_amt;
private String cust_item__ref;
private String disc_schem_billback_amt;
private String disc_schem_offinv_amt;
private String acc_code__item;
private String fin_scheme;
private String conv__rtuom_stduom;
private String sord_unit__std;
public double getmTotDespQty()
{
return mTotDespQty;
}
public void setmTotDespQty(double mTotDespQty)
{
this.mTotDespQty = mTotDespQty;
}
public double getmTotStdQty()
{
return mTotStdQty;
}
public void setmTotStdQty(double mTotStdQty)
{
this.mTotStdQty = mTotStdQty;
}
public double getmDescOffInvTotAmt()
{
return mDescOffInvTotAmt;
}
public void setmDescOffInvTotAmt(double mDescOffInvTotAmt)
{
this.mDescOffInvTotAmt = mDescOffInvTotAmt;
}
public double getmDescbbTotAmt()
{
return mDescbbTotAmt;
}
public void setmDescbbTotAmt(double mDescbbTotAmt)
{
this.mDescbbTotAmt = mDescbbTotAmt;
}
public int getmNoArt()
{
return mNoArt;
}
public void setmNoArt(int mNoArt)
{
this.mNoArt = mNoArt;
}
public double getmRealQty()
{
return mRealQty;
}
public void setmRealQty(double mRealQty)
{
this.mRealQty = mRealQty;
}
public double getmRealQtyConv()
{
return mRealQtyConv;
}
public void setmRealQtyConv(double mRealQtyConv)
{
this.mRealQtyConv = mRealQtyConv;
}
public String getDesp_id()
{
return desp_id;
}
public void setDesp_id(String desp_id)
{
this.desp_id = desp_id;
}
public String getLine_no()
{
return line_no;
}
public void setLine_no(String line_no)
{
this.line_no = line_no;
}
public String getSord_no()
{
return sord_no;
}
public void setSord_no(String sord_no)
{
this.sord_no = sord_no;
}
public String getLine_no__sord()
{
return line_no__sord;
}
public void setLine_no__sord(String line_no__sord)
{
this.line_no__sord = line_no__sord;
}
public String getExp_lev()
{
return exp_lev;
}
public void setExp_lev(String exp_lev)
{
this.exp_lev = exp_lev;
}
public String getItem_code__ord()
{
return item_code__ord;
}
public void setItem_code__ord(String item_code__ord)
{
this.item_code__ord = item_code__ord;
}
public String getItem_code()
{
return item_code;
}
public void setItem_code(String item_code)
{
this.item_code = item_code;
}
public String getLot_no()
{
return lot_no;
}
public void setLot_no(String lot_no)
{
this.lot_no = lot_no;
}
public String getLot_sl()
{
return lot_sl;
}
public void setLot_sl(String lot_sl)
{
this.lot_sl = lot_sl;
}
public String getQuantity__ord()
{
return quantity__ord;
}
public void setQuantity__ord(String quantity__ord)
{
this.quantity__ord = quantity__ord;
}
public String getQuantity()
{
return quantity;
}
public void setQuantity(String quantity)
{
this.quantity = quantity;
}
public String getLoc_code()
{
return loc_code;
}
public void setLoc_code(String loc_code)
{
this.loc_code = loc_code;
}
public String getStatus()
{
return status;
}
public void setStatus(String status)
{
this.status = status;
}
public String getDesp_conv__qty_stduom()
{
return desp_conv__qty_stduom;
}
public void setDesp_conv__qty_stduom(String desp_conv__qty_stduom)
{
this.desp_conv__qty_stduom = desp_conv__qty_stduom;
}
public String getDesp_unit__std()
{
return desp_unit__std;
}
public void setDesp_unit__std(String desp_unit__std)
{
this.desp_unit__std = desp_unit__std;
}
public String getUnit()
{
return unit;
}
public void setUnit(String unit)
{
this.unit = unit;
}
public String getDesp_quantity__stduom()
{
return desp_quantity__stduom;
}
public void setDesp_quantity__stduom(String desp_quantity__stduom)
{
this.desp_quantity__stduom = desp_quantity__stduom;
}
public String getTax_class()
{
return tax_class;
}
public void setTax_class(String tax_class)
{
this.tax_class = tax_class;
}
public String getTax_chap()
{
return tax_chap;
}
public void setTax_chap(String tax_chap)
{
this.tax_chap = tax_chap;
}
public String getTax_env()
{
return tax_env;
}
public void setTax_env(String tax_env)
{
this.tax_env = tax_env;
}
public String getDiscount()
{
return discount;
}
public void setDiscount(String discount)
{
this.discount = discount;
}
public String getUnit__rate()
{
return unit__rate;
}
public void setUnit__rate(String unit__rate)
{
this.unit__rate = unit__rate;
}
public String getSord_conv__qty_stduom()
{
return sord_conv__qty_stduom;
}
public void setSord_conv__qty_stduom(String sord_conv__qty_stduom)
{
this.sord_conv__qty_stduom = sord_conv__qty_stduom;
}
public String getSord_rate__stduom()
{
return sord_rate__stduom;
}
public void setSord_rate__stduom(String sord_rate__stduom)
{
this.sord_rate__stduom = sord_rate__stduom;
}
public String getRate()
{
return rate;
}
public void setRate(String rate)
{
this.rate = rate;
}
public String getQuantity_real()
{
return quantity_real;
}
public void setQuantity_real(String quantity_real)
{
this.quantity_real = quantity_real;
}
public String getQuantity_inv()
{
return quantity_inv;
}
public void setQuantity_inv(String quantity_inv)
{
this.quantity_inv = quantity_inv;
}
public String getInvoice_id()
{
return invoice_id;
}
public void setInvoice_id(String invoice_id)
{
this.invoice_id = invoice_id;
}
public String getNo_art()
{
return no_art;
}
public void setNo_art(String no_art)
{
this.no_art = no_art;
}
public String getRate__clg()
{
return rate__clg;
}
public void setRate__clg(String rate__clg)
{
this.rate__clg = rate__clg;
}
public String getDesp_rate__stduom()
{
return desp_rate__stduom;
}
public void setDesp_rate__stduom(String desp_rate__stduom)
{
this.desp_rate__stduom = desp_rate__stduom;
}
public String getDisc_amt()
{
return disc_amt;
}
public void setDisc_amt(String disc_amt)
{
this.disc_amt = disc_amt;
}
public String getCust_item__ref()
{
return cust_item__ref;
}
public void setCust_item__ref(String cust_item__ref)
{
this.cust_item__ref = cust_item__ref;
}
public String getDisc_schem_billback_amt()
{
return disc_schem_billback_amt;
}
public void setDisc_schem_billback_amt(String disc_schem_billback_amt)
{
this.disc_schem_billback_amt = disc_schem_billback_amt;
}
public String getDisc_schem_offinv_amt()
{
return disc_schem_offinv_amt;
}
public void setDisc_schem_offinv_amt(String disc_schem_offinv_amt)
{
this.disc_schem_offinv_amt = disc_schem_offinv_amt;
}
public String getAcc_code__item()
{
return acc_code__item;
}
public void setAcc_code__item(String acc_code__item)
{
this.acc_code__item = acc_code__item;
}
public String getFin_scheme()
{
return fin_scheme;
}
public void setFin_scheme(String fin_scheme)
{
this.fin_scheme = fin_scheme;
}
public String getConv__rtuom_stduom()
{
return conv__rtuom_stduom;
}
public void setConv__rtuom_stduom(String conv__rtuom_stduom)
{
this.conv__rtuom_stduom = conv__rtuom_stduom;
}
public String getSord_unit__std()
{
return sord_unit__std;
}
public void setSord_unit__std(String sord_unit__std)
{
this.sord_unit__std = sord_unit__std;
}
}
/**
*
* @param custCodeBill
* @param conn
* @return HashMap<String, String>
* @throws ITMException
*/
private HashMap<String, String> getarCustomer(String custCodeBill, Connection conn) throws ITMException
{
HashMap<String, String> arCustomerMap=new HashMap<String, String>();
String sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
// TODO Auto-generated method stub
try
{
sql="select acct_code__ar , cctr_code__ar from customer where cust_code = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, custCodeBill);
rs=pstmt.executeQuery();
if(rs.next())
{
arCustomerMap.put("macctar", rs.getString("acct_code__ar"));
arCustomerMap.put("mcctrar", rs.getString("cctr_code__ar"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return arCustomerMap;
}
/**
*
* @param itemSer
* @param conn
* @return HashMap<String, String>
* @throws ITMException
*/
private HashMap<String, String> getdisItemser(String itemSer, Connection conn) throws ITMException
{
HashMap<String, String> disItemserMap=new HashMap<String, String>();
String sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
// TODO Auto-generated method stub
try
{
sql="select acct_code__dis, cctr_code__dis from itemser where item_ser = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, itemSer);
rs=pstmt.executeQuery();
if(rs.next())
{
disItemserMap.put("lsacct_dis", checknull(rs.getString("acct_code__dis")));
disItemserMap.put("lscctr_dis", checknull(rs.getString("cctr_code__dis")));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return disItemserMap;
}
/**
*
* @param sordId
* @param itemCode
* @param conn
* @return String
* @throws ITMException
*/
private String getlsCustitemRef(String sordId, String itemCode, Connection conn) throws ITMException
{
String lsCustitemRef="",sql="";
// TODO Auto-generated method stub
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
sql="select item_code__ref from customeritem where item_code = ? and cust_code = (select cust_code from sorder where sale_order =?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, itemCode);
pstmt.setString(2, sordId);
rs=pstmt.executeQuery();
if(rs.next())
{
lsCustitemRef=checknull(rs.getString("item_code__ref"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return lsCustitemRef;
}
/**
*
* @param sorderNo
* @param conn
* @return HashMap<String, String>
* @throws ITMException
*/
private HashMap<String, String> getsorderSal(String sorderNo, Connection conn) throws ITMException
{
HashMap<String, String> sorderSalMap=new HashMap<String, String>();
String sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
// TODO Auto-generated method stub
try
{
sql="select acct_code__sal, cctr_code__sal, market_reg, order_type from sorder where sale_order =?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, sorderNo);
rs=pstmt.executeQuery();
if(rs.next())
{
sorderSalMap.put("lsacct_sal", rs.getString("acct_code__sal"));
sorderSalMap.put("lscctr_sal", rs.getString("cctr_code__sal"));
sorderSalMap.put("ls_market_reg", rs.getString("market_reg"));
sorderSalMap.put("ls_ordertype", rs.getString("order_type"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return sorderSalMap;
}
/**
*
* @param sordId
* @param conn
* @return String
* @throws ITMException
*/
private String getLsFinscheme(String sordId, Connection conn) throws ITMException
{
String lsFinscheme="",sql="";
// TODO Auto-generated method stub
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
sql="select fin_scheme from sorder where sale_order = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, sordId);
rs=pstmt.executeQuery();
if(rs.next())
{
lsFinscheme=checknull(rs.getString("fin_scheme"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return lsFinscheme;
}
/**
*
* @param sorderNo
* @param conn
* @return HashMap<String, String>
* @throws ITMException
*/
private HashMap<String, String> getAcctSchemehdr(String sorderNo, Connection conn) throws ITMException
{
HashMap<String, String> acctSchemehdrMap=new HashMap<String, String>();
String sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
// TODO Auto-generated method stub
try
{
sql="select a.acc_code__order,a.acct_code__pr,a.cctr_code__pr from bom a,sorder_scheme b where a.bom_code = b.scheme_code"
+ " and b.tran_id = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, sorderNo);
rs=pstmt.executeQuery();
if(rs.next())
{
acctSchemehdrMap.put("ls_acct_schemehdr", rs.getString("acc_code__order"));
acctSchemehdrMap.put("ls_acct_code__pr", rs.getString("acct_code__pr"));
acctSchemehdrMap.put("ls_cctr_code__pr", rs.getString("cctr_code__pr"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return acctSchemehdrMap;
}
/**<NEWLINE>
*
* @param sordId
* @param lineNoSord
* @param conn
* @return String
* @throws ITMException
*/
private String getLsAcctSchemedet(String sordId, String lineNoSord, Connection conn) throws ITMException
{
String lsAcctSchemedet="",sql="";
// TODO Auto-generated method stub
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
sql="select a.acc_code__item from bom a,sorderdet_scheme b where a.bom_code = b.scheme_code "
+ "and tran_id = ? and line_no_form = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, sordId);
pstmt.setString(2, lineNoSord);
rs=pstmt.executeQuery();
if(rs.next())
{
lsAcctSchemedet=checknull(rs.getString("acc_code__item"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return lsAcctSchemedet;
}
/**
* Save XML data
* @param siteCode
* @param xmlString
* @param xtraParams
* @param conn
* @return String
* @throws ITMException
*/
private String saveData(String siteCode, String xmlString, String xtraParams, Connection conn) throws ITMException
{
System.out.println("saving data...........");
InitialContext ctx = null;
String retString = null;
MasterStatefulLocal masterStateful = null; // for ejb3
ibase.utility.UserInfoBean userInfo = new UserInfoBean();
String chgUser = "", chgTerm = "";
String loginCode = "", loginEmpCode = "", loginSiteCode = "";
E12GenericUtility genericUtility = new E12GenericUtility();
try
{
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
masterStateful = (MasterStatefulLocal) ctx.lookup("ibase/MasterStatefulEJB/local");
System.out.println("-----------masterStateful------- " + masterStateful);
String[] authencate = new String[2];
authencate[0] = "";
authencate[1] = "";
System.out.println("xmlString to masterstateful [" + xmlString + "]");
// userInfo = new ibase.utility.UserInfoBean();
System.out.println("xtraParams>>>>" + xtraParams);
chgUser = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "chgUser");
chgTerm = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "chgTerm");
loginCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
loginEmpCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode");
loginSiteCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
userInfo.setEmpCode(loginEmpCode);
userInfo.setRemoteHost(chgTerm);
userInfo.setSiteCode(loginSiteCode);
userInfo.setLoginCode(loginCode);
userInfo.setEntityCode(loginEmpCode);
System.out.println("userInfo>>>>>" + userInfo);
System.out.println("chgUser :" + chgUser);
System.out.println("chgTerm :" + chgTerm);
System.out.println("loginCode :" + loginCode);
System.out.println("loginEmpCode :" + loginEmpCode);
retString = masterStateful.processRequest(authencate, siteCode, true, xmlString, true, conn);
//retString = masterStateful.processRequest(userInfo, xmlString, true, conn);
System.out.println("--retString - -" + retString);
} catch (ITMException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception :CreateDistOrder :saveData :==>");
throw new ITMException(e);
}
return retString;
}
/**
* Initialise and generate log file
* @param fileName
* @return String
* @throws ITMException
*/
private String intializingLog(String fileName) throws ITMException
{
String log="intializingLog_Failed";
String strToWrite = "";
String currTime = null;
try{
SimpleDateFormat sdf1 = new SimpleDateFormat(genericUtility.getDBDateFormat());
try
{
currTime = sdf1.format(new Timestamp(System.currentTimeMillis())).toString();
currTime = currTime.replaceAll("-","");
calendar.setTime(new java.sql.Timestamp(System.currentTimeMillis()));
fileName = fileName+currTime+calendar.get(Calendar.HOUR)+""+calendar.get(Calendar.MINUTE)+".log";
fos1 = new FileOutputStream(CommonConstants.JBOSSHOME + File.separator +"EDI"+File.separator+fileName);
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
startDate = new java.util.Date(System.currentTimeMillis());
calendar.setTime(new java.sql.Timestamp(System.currentTimeMillis()));
startDateStr = sdf1.format(startDate)+" "+calendar.get(Calendar.HOUR)+":"+calendar.get(Calendar.MINUTE)+":"+calendar.get(Calendar.SECOND);
fos1.write(("Fetching Records Started At " + startDateStr +"\r\n").getBytes());
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
log ="intializingLog_Successesfull";
return log;
}
/**
* Check null String
* @param inputStr
* @return String
*/
private String checknull(String inputStr)
{
// TODO Auto-generated method stub
if(inputStr==null)
{
inputStr="";
}
return inputStr;
}
}
package ibase.webitm.ejb.dis;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import ibase.system.config.ConnDriver;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.fin.InvAcct;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.ITMException;
public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoicePostLocal,PostOrdInvoicePostRemote
{
E12GenericUtility genericUtility= new E12GenericUtility();
DistCommon distCommon= new DistCommon();
FinCommon finCommon=new FinCommon();
@Override
public String invoicePosting(String invoiceId, Connection conn) throws ITMException
{
String retString="",sql="",itemSer="",lsCctrCodeSal="",lsAcctCodeSal="",lsAnalysis="",lsTemp="",tempInvId="",sqlUpd="";
String detInvId="",detAcctCode="",detCctrCode="",hdrAnalCode="",detAnalysis1="",detAnalysis2="",detAnalysis3="",detItemCd="";
String analysis1__dr="",analysis2__dr="",analysis3__dr="",analysis1__cr="",analysis2__cr="",analysis3__cr="";
String lsCctrCodeDis="",lsAcctCodeDis="",lsAcctSchemedet="",lsAcctCodePr="",lsCctrCodePr="",lsAcctCodeTax="",lsCctrCodeTax="";
String sql1="",lsTaxRecoCctr="",lsTaxRecoAcct="",lsAcctReco="",lsCctrReco="",lsAnalysis1="",lsAnalysis2="",lsAnalysis3="";
int detLineNo=0,iActCnt=0,uActCnt=0;
double detAmount=0.0,tempAmount=0.0,lnAmountDis=0.0,lcSchemeDiscount=0.0,lnAmountTax=0.0,lcRecoAmt=0.0,lnAmountSal=0.0;
PreparedStatement pstmt=null,pstmtU=null,pstmt1=null;
ResultSet rs=null,rs1=null;
boolean connFlag=false;
// TODO Auto-generated method stub
HashMap<String, String> InvoiceHrdMap=new HashMap<String, String>();
// HashMap<String, HashMap<String, String>> InvoiceAcctMap=new HashMap<String, HashMap<String,String>>();
ArrayList<Object> invoiceAcctList=new ArrayList<Object>();
ArrayList<Object> invoiceDeapList=new ArrayList<Object>();
ArrayList<Object> invoiceDetList=new ArrayList<Object>();
HashMap<String, String>InvoiceDetMap=null;
String analysisStr []=null;
try
{
if(conn==null)
{
ConnDriver connDriver = new ConnDriver();
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
connDriver = null;
connFlag=true;
}
InvAcct invAcct=new InvAcct();
/**
* Select from
* Invoice header
* */
InvoiceHrdMap=getInvoiceHdr(invoiceId,conn);
/**
* Select from
* Invoice trace
* */
invoiceDeapList=getInvoiceDesp(invoiceId,conn);
System.out.println("Invoice trace list size:- ["+invoiceDeapList.size()+"]");
// invoiceDetList=getInvoiceDet(invoiceId,conn);
/**
* Invoice trace list size
* */
if(invoiceDeapList.size()>0)
{
/**
* Insert in Table 'invacct'
* for each 'invdet' line
* */
for(int itr=0;itr<invoiceDeapList.size();itr++)
{
InvoiceDetMap=(HashMap<String, String>) invoiceDeapList.get(itr);
detInvId=InvoiceDetMap.get("invoice_id");
detItemCd=InvoiceDetMap.get("item_code");
hdrAnalCode=InvoiceHrdMap.get("anal_code");
detLineNo=Integer.parseInt(InvoiceDetMap.get("line_no"));
detAmount=Double.parseDouble(InvoiceDetMap.get("quantity__stduom")) * Double.parseDouble(InvoiceDetMap.get("rate__stduom"));
lsAnalysis=invAcct.AcctAnalysisType(" ","S-INV",InvoiceHrdMap.get("inv_type"),"CR",conn);
lsTemp="CR"+lsAnalysis;
analysisStr = lsAnalysis.split("@");
int lenCr = analysisStr.length-1;
//System.out.println("@@@cr len["+len+"]");
if( lenCr > -1 )
{
analysis1__cr = analysisStr[0];
}
else
{
analysis1__cr = "";
}
if( lenCr > 0 )
{
analysis2__cr = analysisStr[1];
}
else
{
analysis2__cr = "";
}
if( lenCr > 1)
{
analysis3__cr = analysisStr[2];
}
else
{
analysis3__cr ="";
}
lsAnalysis=invAcct.AcctAnalysisType(" ","S-INV",InvoiceHrdMap.get("inv_type"),"DR",conn);
lsTemp="DR"+lsAnalysis;
analysisStr = lsAnalysis.split("@");
int lenDr = analysisStr.length-1;
//System.out.println("@@@cr len["+len+"]");
if( lenDr > -1 )
{
analysis1__dr = analysisStr[0];
}
else
{
analysis1__dr = "";
}
if( lenDr > 0 )
{
analysis2__dr = analysisStr[1];
}
else
{
analysis2__dr = "";
}
if( lenDr > 1)
{
analysis3__dr = analysisStr[2];
}
else
{
analysis3__dr ="";
}
sql="select item_ser from item where item_code=? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, detItemCd);
rs=pstmt.executeQuery();
if(rs.next())
{
itemSer=rs.getString("item_ser");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
/**
* Select 'ls_acct_schemedet','ls_acct_code__pr','ls_cctr_code__pr'
* from 'bom' and 'sorderdet_scheme'
* */
sql="select a.acc_code__item,a.acct_code__pr,a.cctr_code__pr from bom a,sorderdet_scheme b"
+ " where a.bom_code = b.scheme_code"
+ " and tran_id = ? and line_no_form = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceDetMap.get("sord_no"));
pstmt.setString(2, InvoiceDetMap.get("sord_line_no"));
rs=pstmt.executeQuery();
if(rs.next())
{
lsAcctSchemedet=checkNull(rs.getString("acc_code__item"));
lsAcctCodePr=checkNull(rs.getString("acct_code__pr"));
lsCctrCodePr=checkNull(rs.getString("cctr_code__pr"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
lsCctrCodeSal=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "SAL", InvoiceDetMap.get("inv_type"), conn));
// detCctrCode=lsCctrCodeSal;
System.out.println("@@@@@@@@@@@@@@ lsCctrCodeSal["+lsCctrCodeSal+"]");
String ls_acct_code__sal[]=lsCctrCodeSal.split(",");
if( ls_acct_code__sal.length > 0)
{
lsAcctCodeSal=ls_acct_code__sal[0];
}
if( ls_acct_code__sal.length > 1)
{
lsCctrCodeSal=ls_acct_code__sal[1];
}
// detAcctCode=lsAcctCodeSal;
System.out.println("@@@@@@@@@@@@@@lsAcctCodeSal["+lsAcctCodeSal+"]:::lsCctrCodeSal["+lsCctrCodeSal+"]");
sql="select invoice_id,amount from invacct where acct_code=? and cctr_code=? and anal_code=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeSal);
pstmt.setString(2, lsCctrCodeSal);
pstmt.setString(3, hdrAnalCode);
rs=pstmt.executeQuery();
if(rs.next())
{
/**
* Update record
* */
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
detAmount=detAmount+tempAmount;
updateAcctAmt(tempInvId,detAmount,conn);
}
else
{
/**
* Insert record
* */
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeSal,lsCctrCodeSal,hdrAnalCode,detAmount,analysis1__cr,analysis2__cr,analysis3__cr,conn);
}
lnAmountDis=(Double.parseDouble(InvoiceDetMap.get("rate__stduom"))*Double.parseDouble(InvoiceDetMap.get("quantity__stduom"))) * Double.parseDouble(InvoiceDetMap.get("rate__stduom"))/100;
if(lnAmountDis!=0)
{
/**
* find 'ls_cctr_code__dis'
* and 'ls_acct_code__dis'
* */
lsCctrCodeDis=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "DIS", InvoiceDetMap.get("inv_type"), conn));
String ls_acct_code__dis[]=lsCctrCodeDis.split(",");
if( ls_acct_code__dis.length > 0)
{
lsAcctCodeDis=ls_acct_code__dis[0];
}
if( ls_acct_code__dis.length > 1)
{
lsCctrCodeDis=ls_acct_code__dis[1];
}
// detAcctCode=lsAcctCodeDis;
if(lsCctrCodeDis==null || lsCctrCodeDis.trim().length()==0)
{
lsCctrCodeDis=InvoiceHrdMap.get("cctr_code__dis");
}
sql="select invoice_id,amount from invacct where acct_code=? and cctr_code=? and anal_code=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeDis);
pstmt.setString(2, lsCctrCodeDis);
pstmt.setString(3, hdrAnalCode);
rs=pstmt.executeQuery();
if(rs.next())
{
/**
* Update record
* */
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
/**
* Discount amount
* */
lnAmountDis=tempAmount-lnAmountDis;
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else
{
/**
* Insert record
* */
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeDis,lsCctrCodeDis,hdrAnalCode,lnAmountDis,"","","",conn);
}
}//lnAmountDis amount not 0 END
/**
* Find lc_scheme_discount
* */
lcSchemeDiscount=Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt"))+Double.parseDouble(InvoiceDetMap.get("disc_schem_offinv_amt"));
if(lcSchemeDiscount!=0)
{
sql="select invoice_id from invacct where acct_code=? and cctr_code=? and anal_code=?"
+ " and analysis1=? and analysis2=? and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodePr);
pstmt.setString(2, lsCctrCodePr);
pstmt.setString(3, hdrAnalCode);
pstmt.setString(4, analysis1__dr);
pstmt.setString(5, analysis2__dr);
pstmt.setString(6, analysis3__dr);
rs=pstmt.executeQuery();
if(rs.next())
{
/**
* Update record
* */
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountDis=tempAmount-lcSchemeDiscount;
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else
{
/**
* Insert record
* */
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodePr,lsCctrCodePr,hdrAnalCode,lnAmountDis,analysis1__dr,analysis2__dr,analysis3__dr,conn);
}
}// lc_scheme_discount>0 END
/**
* check lc_billback_amt>0
* */
if(Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt"))>0)
{
sql="select invoice_id from invacct where acct_code=? and cctr_code=? and anal_code=?"
+ " and analysis1=? and analysis2=? and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodePr);
pstmt.setString(2, lsCctrCodePr);
pstmt.setString(3, hdrAnalCode);
pstmt.setString(4, analysis1__dr);
pstmt.setString(5, analysis2__dr);
pstmt.setString(6, analysis3__dr);
rs=pstmt.executeQuery();
if(rs.next())
{
/**
* Update record
* */
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountDis=tempAmount+Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt"));
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else
{
/**
* Insert record
* */
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodePr,lsCctrCodePr,hdrAnalCode,Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt")),analysis1__dr,analysis2__dr,analysis3__dr,conn);
}
}// lc_billback_amt>0 END
/**
* Select 'taxtran'details
* */
sql="select acct_code,cctr_code,sum(tax_amt), case when sum(reco_amount) is null then 0 else sum(reco_amount) end"
+ " from taxtran where tran_code = 'S-INV' and tran_id = ? and line_no = ? "
+ " and effect <> 'N' group BY acct_code,cctr_code";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceDetMap.get("invoice_id"));
pstmt.setString(2, InvoiceDetMap.get("line_no"));
rs=pstmt.executeQuery();
while(rs.next())
{
lsAcctCodeTax=checkNull(rs.getString("acct_code")).trim();
lsCctrCodeTax=checkNull(rs.getString("cctr_code"));
lnAmountTax=rs.getDouble("tax_amt");
lcRecoAmt=rs.getDouble("reco_amount");
sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? and anal_code=?";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctCodeTax);
pstmt1.setString(2, lsCctrCodeTax);
pstmt1.setString(3, hdrAnalCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
/**
* Update record
* */
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountTax=lnAmountTax+tempAmount-lcRecoAmt;
updateAcctAmt(tempInvId,lnAmountTax,conn);
}
else
{
/**
* Insert record
* */
tempAmount=lnAmountTax-lcRecoAmt;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeTax,lsCctrCodeTax,hdrAnalCode,tempAmount,"","","",conn);
}
pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;
}//'taxtran'details while END
pstmt.close();
pstmt=null;
rs.close();
rs=null;
/**
* tax reco details
* from 'taxtran'
* */
lsTaxRecoCctr=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "TAXRECO", InvoiceDetMap.get("inv_type"), conn));
// detCctrCode=lsCctrCodeSal;
String ls_tax_reco_acct[]=lsTaxRecoCctr.split(",");
if( ls_tax_reco_acct.length > 0)
{
lsTaxRecoAcct=ls_tax_reco_acct[0];
}
if( ls_tax_reco_acct.length > 1)
{
lsTaxRecoCctr =ls_tax_reco_acct[1];
}
// detAcctCode=lsAcctCodeSal;
sql="select acct_code__reco, cctr_code__reco, case when sum(reco_amount) is null then 0 else sum(reco_amount) end"
+ " from taxtran"
+ " where tran_code = 'S-INV' and tran_id = ?"
+ " and line_no = ? and effect <> 'N'"
+ " and (case when reco_amount is null then 0 else reco_amount end) <> 0"
+ " group BY acct_code__reco, cctr_code__reco ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceDetMap.get("invoice_id"));
pstmt.setString(2, InvoiceDetMap.get("line_no"));
rs=pstmt.executeQuery();
while(rs.next())
{
lsAcctReco=checkNull(rs.getString("acct_code__reco"));
lsCctrReco=checkNull(rs.getString("cctr_code__reco"));
lcRecoAmt=rs.getDouble("reco_amount");
sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? and anal_code=?";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctReco);
pstmt1.setString(2, lsCctrReco);
pstmt1.setString(3, hdrAnalCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
/**
* Update record
* */
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lcRecoAmt=lcRecoAmt+tempAmount;
updateAcctAmt(tempInvId,lcRecoAmt,conn);
}
else
{
/**
* Insert record
* */
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctReco,lsCctrReco,hdrAnalCode,lcRecoAmt,"","","",conn);
}
}//tax reco details while END
}//invoiceDeapList FOR loop END
}
else// Invoice Trace is empty
{
/**
* If invoice trace is empty
* select from invoice det
* */
invoiceDetList=getInvoiceDet(invoiceId,conn);
System.out.println("Invoice det list size :- ["+invoiceDetList.size()+"]");
/**
* If invoice trace is empty
* invoiceDetList loop
* */
for(int itr=0;itr<invoiceDetList.size();itr++)
{
InvoiceDetMap=(HashMap<String, String>) invoiceDetList.get(itr);
detInvId=InvoiceDetMap.get("invoice_id");
detItemCd=InvoiceDetMap.get("item_code");
hdrAnalCode=InvoiceHrdMap.get("anal_code");
detLineNo=Integer.parseInt(InvoiceDetMap.get("line_no"));
lnAmountSal=Double.parseDouble(InvoiceDetMap.get("quantity__stduom")) * Double.parseDouble(InvoiceDetMap.get("rate__stduom"));
lnAmountDis=Double.parseDouble(InvoiceDetMap.get("disc_amt"));
lsAnalysis1=InvoiceDetMap.get("analysis1");
lsAnalysis2=InvoiceDetMap.get("analysis2");
lsAnalysis3 =InvoiceDetMap.get("analysis3");
sql="select item_ser from item where item_code=? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, detItemCd);
rs=pstmt.executeQuery();
if(rs.next())
{
itemSer=rs.getString("item_ser");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
lsCctrCodeSal=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "SAL", InvoiceDetMap.get("inv_type"), conn));
String ls_acct_code__sal[]=lsCctrCodeSal.split(",");
if( ls_acct_code__sal.length > 0)
{
lsAcctCodeSal=ls_acct_code__sal[0];
}
if( ls_acct_code__sal.length > 1)
{
lsCctrCodeSal=ls_acct_code__sal[1];
}
sql="select invoice_id from invacct where acct_code=? and cctr_code=? and anal_code=? and analysis1=? and analysis2=?"
+ " and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeSal);
pstmt.setString(2, lsCctrCodeSal);
pstmt.setString(3, hdrAnalCode);
pstmt.setString(4, lsAnalysis1);
pstmt.setString(5, lsAnalysis2);
pstmt.setString(6, lsAnalysis3);
rs=pstmt.executeQuery();
if(rs.next())
{
/**
* Update record
* */
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountSal=lnAmountSal+tempAmount;
uActCnt=updateAcctAmt(tempInvId,lnAmountSal,conn);
}
else
{
/**
* Insert record
* */
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeSal,lsCctrCodeSal,hdrAnalCode,lnAmountSal,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
if(lnAmountDis!=0)
{
/**
* find 'ls_cctr_code__dis'
* and 'ls_acct_code__dis'
* */
lsCctrCodeDis=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "DIS", InvoiceDetMap.get("inv_type"), conn));
String ls_acct_code__dis[]=lsCctrCodeDis.split(",");
if( ls_acct_code__dis.length > 0 )
{
lsAcctCodeDis=ls_acct_code__dis[0];
}
if( ls_acct_code__dis.length > 1 )
{
lsCctrCodeDis=ls_acct_code__dis[1];
}
sql="select invoice_id from invacct where acct_code=? and cctr_code=? and anal_code=? and analysis1=? and analysis2=?"
+ " and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeDis);
pstmt.setString(2, lsCctrCodeDis);
pstmt.setString(3, hdrAnalCode);
pstmt.setString(4, lsAnalysis1);
pstmt.setString(5, lsAnalysis2);
pstmt.setString(6, lsAnalysis3);
rs=pstmt.executeQuery();
if(rs.next())
{
/**
* Update record
* */
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountDis=tempAmount-lnAmountDis;
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else
{
/**
* Insert record
* */
lnAmountDis=0-lnAmountDis;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeDis,lsCctrCodeDis,hdrAnalCode,lnAmountDis,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
}// lnAmountDis!=0 END
/**
* select 'taxtran' details
* */
sql="select acct_code,cctr_code,sum(tax_amt), case when sum(reco_amount) is null then 0 else sum(reco_amount) end"
+ " from taxtran"
+ " where tran_code = 'S-INV' and tran_id = ?"
+ " and line_no = ? effect <> 'N'"
+ " group BY acct_code,cctr_code";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceDetMap.get("invoice_id"));
pstmt.setString(2, InvoiceDetMap.get("line_no"));
rs=pstmt.executeQuery();
while(rs.next())
{
lsAcctCodeTax=checkNull(rs.getString("acct_code"));
lsCctrCodeTax=checkNull(rs.getString("cctr_code"));
lnAmountTax=rs.getDouble("tax_amt");
lcRecoAmt=rs.getDouble("reco_amount");
sql1="select invoice_id from invacct where acct_code=? and cctr_code=? and anal_code=?";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctCodeTax);
pstmt1.setString(2, lsCctrCodeTax);
pstmt1.setString(3, hdrAnalCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
/**
* Update record
* */
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountTax=lnAmountTax+tempAmount-lcRecoAmt;
updateAcctAmt(tempInvId,lnAmountTax,conn);
}
else
{
/**
* Insert record
* */
lnAmountTax=lnAmountTax-lcRecoAmt;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeTax,lsCctrCodeTax,hdrAnalCode,lnAmountTax,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}
pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
/**
* tax_reco details from
* 'taxtran'
* */
lsTaxRecoCctr=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "TAXRECO", InvoiceDetMap.get("inv_type"), conn));
// detCctrCode=lsCctrCodeSal;
String ls_tax_reco_acct[]=lsTaxRecoCctr.split(",");
if( ls_tax_reco_acct.length > 0)
{
lsTaxRecoAcct=ls_tax_reco_acct[0];
}
if( ls_tax_reco_acct.length > 1)
{
lsTaxRecoCctr=ls_tax_reco_acct[1];
}
// detAcctCode=lsAcctCodeSal;
sql="select acct_code__reco, cctr_code__reco, case when sum(reco_amount) is null then 0 else sum(reco_amount) end"
+ " from taxtran"
+ " where tran_code = 'S-INV' and tran_id = ?"
+ " and line_no = ? and effect <> 'N'"
+ " and (case when reco_amount is null then 0 else reco_amount end) <> 0"
+ " group BY acct_code__reco, cctr_code__reco ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceDetMap.get("invoice_id"));
pstmt.setString(2, InvoiceDetMap.get("line_no"));
rs=pstmt.executeQuery();
while(rs.next())
{
lsAcctReco=checkNull(rs.getString("acct_code__reco")).trim();
lsCctrReco=checkNull(rs.getString("cctr_code__reco"));
lcRecoAmt=rs.getDouble("reco_amount");
sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? and anal_code=?";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctReco);
pstmt1.setString(2, lsCctrReco);
pstmt1.setString(3, hdrAnalCode);
rs1=pstmt1.executeQuery();
if(rs1.next())
{
/**
* Update record
* */
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lcRecoAmt=lcRecoAmt+tempAmount;
updateAcctAmt(tempInvId,lcRecoAmt,conn);
}
else
{
/**
* Insert record
* */
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctReco,lsCctrReco,hdrAnalCode,lcRecoAmt,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}
pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
}//invoiceDetList FOR loop END
}
/**
* Select from
* Invoice acct
* */
invoiceAcctList=getInvoiceAcct(invoiceId,conn);
System.out.println("Invoice Acct list size:- ["+invoiceAcctList.size()+"]");
/**
* Post Invoice
* */
retString=gbfPostInvoice(InvoiceHrdMap,invoiceAcctList,conn);
System.out.println("Invoice post return String :- ["+retString+"]");
/**
* Local connection commit
* */
if(connFlag)
{
conn.commit();
}
} catch (ITMException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (RemoteException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return retString;
}
private int updateAcctAmt(String tempInvId, double amount, Connection conn) throws ITMException
{
int uActCnt=0;
String sqlUpd="";
PreparedStatement pstmtU=null;
// TODO Auto-generated method stub
try
{
sqlUpd="update invacct set amount=? where invoice_id=?";
pstmtU=conn.prepareStatement(sqlUpd);
pstmtU.setDouble(1, amount);
pstmtU.setString(2, tempInvId);
uActCnt=pstmtU.executeUpdate();
pstmtU.close();
pstmtU=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return uActCnt;
}
private int insertInvAcct(String detInvId, int detLineNo, String detAcctCode, String detCctrCode, String hdrAnalCode,
double detAmount, String detAnalysis1, String detAnalysis2, String detAnalysis3, Connection conn) throws ITMException
{
// TODO Auto-generated method stub
int insertCnt=0;
String sql="";
PreparedStatement pstmt=null;
try
{
sql="insert into invacct (invoice_id,line_no,acct_code,cctr_code,anal_code,amount,analysis1,analysis2,analysis3)"
+ " values (?,?,?,?,?,?,?,?,?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, detInvId);
pstmt.setInt(2, detLineNo);
pstmt.setString(3, detAcctCode);
pstmt.setString(4, detCctrCode);
pstmt.setString(5, hdrAnalCode);
pstmt.setDouble(6, detAmount);
pstmt.setString(7, detAnalysis1);
pstmt.setString(8, detAnalysis2);
pstmt.setString(9, detAnalysis3);
insertCnt=pstmt.executeUpdate();
pstmt.close();
pstmt=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return insertCnt;
}
private ArrayList<Object> getInvoiceDet(String invoiceId, Connection conn) throws ITMException
{
// TODO Auto-generated method stub
ArrayList<Object> invoiceDetList=new ArrayList<Object>();
HashMap<String, String>InvoiceDetMap=null;
String sql="",chgDtStr="";
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
sql="SELECT invdet.invoice_id,invdet.line_no,invdet.sord_line_no,invdet.item_code,invdet.item_flg,"
+ "invdet.item_descr,invdet.quantity,invdet.unit,invdet.rate,invdet.unit__rate,invdet.discount,invdet.tax_class,"
+ "invdet.tax_chap,invdet.tax_env,invdet.tax_amt,invdet.net_amt,invdet.unit__std,"
+ "invdet.conv__qty_stduom,invdet.quantity__stduom,invdet.conv__rtuom_stduom,invdet.rate__stduom,invdet.chg_date,"
+ "invdet.chg_user,invdet.chg_term,invdet.comm_amt,invdet.sord_no,invdet.no_art,"
+ "invdet.disc_amt,invdet.item_code__ord,invdet.rate__clg,invdet.comm_amt__oc,invdet.analysis1,"
+ "invdet.analysis2,invdet.analysis3,' ' custitem_desc,"
+ "invdet.disc_schem_billback_amt,invdet.disc_schem_offinv_amt"
+ " FROM invdet"
+ " WHERE invdet.invoice_id =?"
+ " ORDER BY invdet.invoice_id ASC,invdet.line_no ASC,invdet.sord_line_no ASC";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, invoiceId);
rs=pstmt.executeQuery();
while(rs.next())
{
InvoiceDetMap=new HashMap<String, String>();
InvoiceDetMap.put("invoice_id", checkNull(rs.getString("invoice_id")));
InvoiceDetMap.put("line_no", checkNull(rs.getString("line_no")));
InvoiceDetMap.put("sord_line_no", checkNull(rs.getString("sord_line_no")));
InvoiceDetMap.put("item_code", checkNull(rs.getString("item_code")));
InvoiceDetMap.put("item_flg", checkNull(rs.getString("item_flg")));
InvoiceDetMap.put("item_descr", checkNull(rs.getString("item_descr")));
InvoiceDetMap.put("quantity", checkNull(rs.getString("quantity")==null?"0.0":rs.getString("quantity")));
InvoiceDetMap.put("unit", checkNull(rs.getString("unit")));
InvoiceDetMap.put("unit__rate", checkNull(rs.getString("unit__rate")));
InvoiceDetMap.put("discount", checkNull(rs.getString("discount")));
InvoiceDetMap.put("tax_class", checkNull(rs.getString("tax_class")));
InvoiceDetMap.put("tax_chap", checkNull(rs.getString("tax_chap")));
InvoiceDetMap.put("tax_env", checkNull(rs.getString("tax_env")));
InvoiceDetMap.put("tax_amt", checkNull(rs.getString("tax_amt")));
InvoiceDetMap.put("net_amt", checkNull(rs.getString("net_amt")));
InvoiceDetMap.put("unit__std", checkNull(rs.getString("unit__std")));
InvoiceDetMap.put("conv__qty_stduom", checkNull(rs.getString("conv__qty_stduom")==null?"0.0":rs.getString("conv__qty_stduom")));
InvoiceDetMap.put("quantity__stduom", checkNull(rs.getString("quantity__stduom")==null?"0.0":rs.getString("quantity__stduom")));
InvoiceDetMap.put("conv__rtuom_stduom", checkNull(rs.getString("conv__rtuom_stduom")));
InvoiceDetMap.put("rate__stduom", checkNull(rs.getString("rate__stduom")==null?"0.0":rs.getString("rate__stduom")));
chgDtStr=genericUtility.getValidDateString(rs.getString("chg_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
InvoiceDetMap.put("chg_date", chgDtStr);
InvoiceDetMap.put("chg_user", checkNull(rs.getString("chg_user")));
InvoiceDetMap.put("chg_term", checkNull(rs.getString("chg_term")));
InvoiceDetMap.put("comm_amt", checkNull(rs.getString("comm_amt")));
InvoiceDetMap.put("sord_no", checkNull(rs.getString("sord_no")));
InvoiceDetMap.put("no_art", checkNull(rs.getString("no_art")==null?"0":rs.getString("no_art")));
InvoiceDetMap.put("disc_amt", checkNull(rs.getString("disc_amt")==null?"0.0":rs.getString("disc_amt")));
InvoiceDetMap.put("item_code__ord", checkNull(rs.getString("item_code__ord")));
InvoiceDetMap.put("rate__clg", checkNull(rs.getString("rate__clg")));
InvoiceDetMap.put("comm_amt__oc", checkNull(rs.getString("comm_amt__oc")==null?"0.0":rs.getString("comm_amt__oc")));
InvoiceDetMap.put("analysis1", checkNull(rs.getString("analysis1")));
InvoiceDetMap.put("analysis2", checkNull(rs.getString("analysis2")));
InvoiceDetMap.put("analysis3", checkNull(rs.getString("analysis3")));
InvoiceDetMap.put("disc_schem_billback_amt", checkNull(rs.getString("disc_schem_billback_amt")==null?"0.0":rs.getString("disc_schem_billback_amt")));
InvoiceDetMap.put("disc_schem_offinv_amt", checkNull(rs.getString("disc_schem_offinv_amt")==null?"0.0":rs.getString("disc_schem_offinv_amt")));
invoiceDetList.add(InvoiceDetMap);
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (ITMException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return invoiceDetList;
}
private String gbfPostInvoice(HashMap<String, String> InvoiceHrdMap, ArrayList<Object> invoiceAcctList,Connection conn) throws ITMException
{
String retString="";
// TODO Auto-generated method stub
/**
* Posting Invoice header
* */
retString=gbfPostInvoiceHdr(InvoiceHrdMap,conn);
retString=gbfPostInvoiceDet(InvoiceHrdMap,invoiceAcctList,conn);
return retString;
}
private String gbfPostInvoiceDet(HashMap<String, String> InvoiceHrdMap, ArrayList<Object> invoiceAcctList, Connection conn) throws ITMException
{
// TODO Auto-generated method stub
String retString="",lsPostdate="",ldPostdate="",sql="",lsProjCode="",partyDocRef="";
PreparedStatement pstmt=null;
ResultSet rs=null;
HashMap glTraceMap = null;
HashMap<String, String>InvoiceAcctMap=null;
try
{
lsPostdate=checkNull(finCommon.getFinparams("999999", "POST_DATE_INV", conn));
if(lsPostdate==null || lsPostdate.equalsIgnoreCase("NULLFOUND") || lsPostdate.trim().length()==0)
{
ldPostdate=InvoiceHrdMap.get("tran_date");
}
if(lsPostdate.contains("TRAN"))
{
ldPostdate=InvoiceHrdMap.get("tran_date");
}
else if(lsPostdate.contains("EFF"))
{
ldPostdate=InvoiceHrdMap.get("eff_date");
}
else
{
ldPostdate=InvoiceHrdMap.get("tran_date");
}
sql="select b.proj_code from invoice a, sorder b where a.sale_order = b.sale_order and a.invoice_id =?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceHrdMap.get("invoice_id"));
rs=pstmt.executeQuery();
if(rs.next())
{
lsProjCode=checkNull(rs.getString("proj_code"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
for(int itr=0; itr<invoiceAcctList.size();itr++)
{
InvoiceAcctMap=new HashMap<String, String>();
InvoiceAcctMap=(HashMap<String, String>) invoiceAcctList.get(itr);
/**
* Generate gl_trace Map
* */
glTraceMap=new HashMap();
glTraceMap.put("ref_type", "D");
glTraceMap.put("ref_ser", "S-INV");
glTraceMap.put("ref_id", InvoiceHrdMap.get("invoice_id"));
glTraceMap.put("ref_id", InvoiceHrdMap.get("invoice_id"));
partyDocRef = finCommon.gfGetPartyDocRef((String)glTraceMap.get("ref_ser"), (String)glTraceMap.get("ref_id"),conn);
glTraceMap.put("party_doc_ref", partyDocRef);
glTraceMap.put("tran_date", ldPostdate);
glTraceMap.put("eff_date",new Timestamp(Timestamp.parse(InvoiceHrdMap.get("eff_date"))));
glTraceMap.put("fin_entity", InvoiceHrdMap.get("fin_entity"));
glTraceMap.put("site_code", InvoiceHrdMap.get("site_code"));
glTraceMap.put("sundry_type","O");
glTraceMap.put("sundry_code"," ");
glTraceMap.put("acct_code",InvoiceAcctMap.get("acct_code"));
glTraceMap.put("cctr_code",InvoiceAcctMap.get("cctr_code"));
glTraceMap.put("anal_code",InvoiceAcctMap.get("anal_code"));
glTraceMap.put("curr_code",InvoiceHrdMap.get("curr_code"));
glTraceMap.put("exch_rate",InvoiceHrdMap.get("exch_rate"));
if(Double.parseDouble(InvoiceAcctMap.get("amount"))>0)
{
glTraceMap.put("dr_amt",0);
glTraceMap.put("cr_amt",InvoiceAcctMap.get("amount"));
}
else
{
glTraceMap.put("dr_amt",(0-Double.parseDouble(InvoiceAcctMap.get("amount"))));
glTraceMap.put("cr_amt",0);
}
glTraceMap.put("remarks", InvoiceHrdMap.get("net_amt").substring(0, 60));
glTraceMap.put("proj_code", lsProjCode);
glTraceMap.put("ANALYSIS1", InvoiceAcctMap.get("analysis1"));
glTraceMap.put("ANALYSIS2", InvoiceAcctMap.get("analysis2"));
glTraceMap.put("ANALYSIS3", InvoiceAcctMap.get("analysis3"));
/**
* gl_trace update
* */
retString=finCommon.glTraceUpdate(glTraceMap,conn);
}
} catch (ITMException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return retString;
}
private String gbfPostInvoiceHdr(HashMap<String, String> InvoiceHrdMap,Connection conn) throws ITMException
{
// TODO Auto-generated method stub
String retSting="",sysDate="",lsPostdate="",sql="",lsProjCode="",partyDocRef="",lcCramt="",lsAnalysis="",lsTemp="",llRelAfter="",lsAmtType="";
String analysis1__dr="",analysis2__dr="",analysis3__dr="",analysis1__cr="",analysis2__cr="",analysis3__cr="",sql1="";
double lc_cramt=0.0,lc_dramt=0.0,lcSchemehdrAmt=0.0,lcRelAmt=0.0,lcTotAmt=0.0;
Timestamp ldDueDate=null;
PreparedStatement pstmt=null,pstmt1=null;
ResultSet rs=null,rs1=null;
HashMap sundryBalMap = null;
HashMap glTraceMap = null;
HashMap receivablesMap = null;
String[] analysisStr =null;
int cnt=0,lsNo=0;
UtilMethods utlMethods= new UtilMethods();
Timestamp ldDiscdt=null;
try
{
java.util.Date today = new java.util.Date();
Calendar cal = Calendar.getInstance();
cal.setTime(today);
today = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
sysDate = sdf.format(today);
System.out.println("System date :- [" + sysDate + "]");
lsPostdate=checkNull(finCommon.getFinparams("999999", "POST_DATE_INV", conn));
if(lsPostdate==null || lsPostdate.trim().length()==0)
{
lsPostdate=InvoiceHrdMap.get("tran_date");
}
else if(lsPostdate.contains("EFF"))
{
lsPostdate=InvoiceHrdMap.get("eff_date");
}
/**
* Generate sundry_bal Map
* */
sundryBalMap = new HashMap();
sundryBalMap.put("tran_date",new Timestamp(Timestamp.parse(InvoiceHrdMap.get("tran_date"))));
sundryBalMap.put("eff_date",new Timestamp(Timestamp.parse(InvoiceHrdMap.get("eff_date"))));
sundryBalMap.put("fin_entity", InvoiceHrdMap.get("fin_entity"));
sundryBalMap.put("site_code", InvoiceHrdMap.get("site_code"));
sundryBalMap.put("sundry_type", "C");
sundryBalMap.put("sundry_code", InvoiceHrdMap.get("cust_code__bil"));
sundryBalMap.put("acct_code", InvoiceHrdMap.get("acct_code__ar"));
sundryBalMap.put("cctr_code", InvoiceHrdMap.get("cctr_code__ar"));
sundryBalMap.put("curr_code", InvoiceHrdMap.get("curr_code"));
sundryBalMap.put("exch_rate", InvoiceHrdMap.get("exch_rate"));
sundryBalMap.put("dr_amt", InvoiceHrdMap.get("net_amt"));
sundryBalMap.put("cr_amt", 0);
sundryBalMap.put("adv_amt", 0.0);
sundryBalMap.put("contact_code", "");
/**
* sundry_bal update
* */
retSting = finCommon.gbf_sundrybal_upd(sundryBalMap,conn);
sql="select b.proj_code from invoice a, sorder b where a.sale_order = ? and a.invoice_id = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceHrdMap.get("sale_order"));
pstmt.setString(2, InvoiceHrdMap.get("invoice_id"));
rs=pstmt.executeQuery();
if(rs.next())
{
lsProjCode=checkNull(rs.getString("proj_code"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
/**
* Generate gl_trace Map
* */
glTraceMap.put("ref_type", "D");
glTraceMap.put("ref_ser", "S-INV");
glTraceMap.put("ref_id", InvoiceHrdMap.get("invoice_id"));
partyDocRef = finCommon.gfGetPartyDocRef((String)glTraceMap.get("ref_ser"), (String)glTraceMap.get("ref_id"),conn);
glTraceMap.put("party_doc_ref", partyDocRef);
glTraceMap.put("tran_date", lsPostdate);
glTraceMap.put("eff_date",new Timestamp(Timestamp.parse(InvoiceHrdMap.get("eff_date"))));
glTraceMap.put("fin_entity", InvoiceHrdMap.get("fin_entity"));
glTraceMap.put("site_code", InvoiceHrdMap.get("site_code"));
glTraceMap.put("sundry_type", "C");
glTraceMap.put("sundry_code", InvoiceHrdMap.get("cust_code__bil"));
glTraceMap.put("acct_code", InvoiceHrdMap.get("acct_code__ar"));
glTraceMap.put("anal_code", InvoiceHrdMap.get("anal_code"));
glTraceMap.put("curr_code", InvoiceHrdMap.get("curr_code"));
glTraceMap.put("exch_rate", InvoiceHrdMap.get("exch_rate"));
glTraceMap.put("dr_amt", InvoiceHrdMap.get("net_amt"));
glTraceMap.put("cr_amt", 0);
glTraceMap.put("remarks", InvoiceHrdMap.get("net_amt").substring(0, 60));
glTraceMap.put("proj_code", lsProjCode);
sql="select sum(case when tax_amt is null then 0 else tax_amt end) as lcCramt from taxtran where tran_code = 'S-INV'"
+ " and tran_id = ? and effect <> 'N' and pay_tax = 'Y' ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, glTraceMap.get("ref_id").toString());
rs=pstmt.executeQuery();
if(rs.next())
{
lcCramt=checkNull(rs.getString("lcCramt"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
if(lcCramt==null || lcCramt.trim().length()==0)
{
lc_cramt=0;
lc_dramt=(Double)glTraceMap.get("dr_amt")-lc_cramt;
glTraceMap.put("dr_amt",lc_dramt);
/**
* gl_trace update
* */
retSting=finCommon.glTraceUpdate(glTraceMap,conn);
}
if(Math.abs(Double.parseDouble(lcCramt))>0)
{
glTraceMap.put("dr_amt",0);
lc_cramt=(-1)*lc_cramt;
glTraceMap.put("cr_amt",lc_cramt);
/**
* gl_trace update
* */
retSting=finCommon.glTraceUpdate(glTraceMap,conn);
}
lcSchemehdrAmt=Double.parseDouble(InvoiceHrdMap.get("disc_offinv_amt_hdr"))+Double.parseDouble(InvoiceHrdMap.get("disc_billback_amt_hdr"));
if(lcSchemehdrAmt>0)
{
InvAcct invAcct=new InvAcct();
lsAnalysis=invAcct.AcctAnalysisType(" ","S-INV",InvoiceHrdMap.get("inv_type"),"DR",conn);
lsTemp="Invoice Header Posting"+lsAnalysis;
analysisStr = lsAnalysis.split("@");
int len = analysisStr.length-1;
//System.out.println("@@@cr len["+len+"]");
if( len > -1 )
{
analysis1__dr = analysisStr[0];
}
else
{
analysis1__dr = "";
}
if( len > 0 )
{
analysis2__dr = analysisStr[1];
}
else
{
analysis2__dr = "";
}
if( len > 1)
{
analysis3__dr = analysisStr[2];
}
else
{
analysis3__dr ="";
}
glTraceMap.put("sundry_code", ' ');
glTraceMap.put("acct_code", InvoiceHrdMap.get("acc_code__order"));
if(InvoiceHrdMap.get("cctr_code__sal")!=null && InvoiceHrdMap.get("cctr_code__sal").trim().length()>0)
{
glTraceMap.put("cctr_code", InvoiceHrdMap.get("cctr_code__sal"));
}
else
{
glTraceMap.put("cctr_code", InvoiceHrdMap.get("cctr_code__ar"));
}
glTraceMap.put("sundry_type", "O");
glTraceMap.put("dr_amt", lcSchemehdrAmt);
glTraceMap.put("cr_amt", 0);
glTraceMap.put("ANALYSIS1", analysis1__dr);
glTraceMap.put("ANALYSIS2", analysis2__dr);
glTraceMap.put("ANALYSIS3", analysis3__dr);
/**
* gl_trace update
* */
retSting=finCommon.glTraceUpdate(glTraceMap,conn);
}
if(Double.parseDouble(InvoiceHrdMap.get("disc_billback_amt_hdr"))>0)
{
glTraceMap.put("sundry_code", ' ');
glTraceMap.put("acct_code", InvoiceHrdMap.get("acct_code__pr"));
glTraceMap.put("cctr_code", InvoiceHrdMap.get("cctr_code__pr"));
glTraceMap.put("dr_amt", 0);
glTraceMap.put("cr_amt", InvoiceHrdMap.get("disc_billback_amt_hdr"));
/**
* gl_trace update
* */
retSting=finCommon.glTraceUpdate(glTraceMap,conn);
}
sql="select count(*) as cnt from sord_cr_terms where sale_order = ? and cr_type = '03'";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceHrdMap.get("sale_order"));
rs=pstmt.executeQuery();
if(rs.next())
{
cnt=rs.getInt("cnt");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
if(cnt>0)
{
sql="select line_no,rel_after,rel_amt,amt_type from sord_cr_terms where sale_order = ? and cr_type = '03'";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceHrdMap.get("sale_order"));
rs=pstmt.executeQuery();
while(rs.next())
{
lsNo=rs.getInt("line_no");
llRelAfter=checkNull(rs.getString("rel_after"));
lcRelAmt=rs.getDouble("rel_amt");
lsAmtType=checkNull(rs.getString("amt_type"));
if(lsAmtType.equalsIgnoreCase("01"))
{
lcRelAmt=(lcRelAmt/100)*(Double)glTraceMap.get("dr_amt");
}
else if(lsAmtType.equalsIgnoreCase("03"))
{
sql1="select sum(rel_amt) as lcTotAmt from sord_cr_terms where sale_order = ? and cr_type = '03' and amt_type = '02'";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, InvoiceHrdMap.get("sale_order"));
rs1=pstmt1.executeQuery();
if(rs1.next())
{
lcTotAmt=rs.getDouble("lcTotAmt");
}
pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;
lcRelAmt=(Double)glTraceMap.get("dr_amt")-lcTotAmt;
}
ldDueDate=Timestamp.valueOf(lsPostdate);
if(!llRelAfter.equalsIgnoreCase("0"))
{
ldDueDate=utlMethods.RelativeDate(ldDueDate,Integer.parseInt(llRelAfter));
}
receivablesMap=new HashMap();
receivablesMap.put("tran_ser", "S-INV");
receivablesMap.put("tran_date", Timestamp.valueOf(lsPostdate));
receivablesMap.put("fin_entity", InvoiceHrdMap.get("fin_entity"));
receivablesMap.put("site_code", InvoiceHrdMap.get("site_code"));
receivablesMap.put("ref_no", InvoiceHrdMap.get("invoice_id"));
receivablesMap.put("ref_date", Timestamp.valueOf(lsPostdate));
receivablesMap.put("due_date", ldDueDate);
receivablesMap.put("curr_code", InvoiceHrdMap.get("curr_code"));
receivablesMap.put("exch_rate", InvoiceHrdMap.get("exch_rate"));
receivablesMap.put("cust_code", InvoiceHrdMap.get("cust_code__bil"));
receivablesMap.put("acct_code", InvoiceHrdMap.get("acct_code__ar"));
receivablesMap.put("cctr_code", InvoiceHrdMap.get("cctr_code__ar"));
receivablesMap.put("tax_amt", InvoiceHrdMap.get("tax_amt"));
receivablesMap.put("discount", InvoiceHrdMap.get("disc_amt"));
receivablesMap.put("tot_amt",lcRelAmt);
receivablesMap.put("auto_rcp", "N");
receivablesMap.put("bank_code",InvoiceHrdMap.get("bank_code"));
receivablesMap.put("ref_type", InvoiceHrdMap.get("inv_type"));
receivablesMap.put("cr_term", InvoiceHrdMap.get("cr_term"));
receivablesMap.put("sales_pers", InvoiceHrdMap.get("sales_pers"));
receivablesMap.put("eff_date", InvoiceHrdMap.get("eff_date"));
receivablesMap.put("sales_pers__1", InvoiceHrdMap.get("sales_pers__1"));
receivablesMap.put("sales_pers__2", InvoiceHrdMap.get("sales_pers__2"));
receivablesMap.put("item_ser", InvoiceHrdMap.get("item_ser"));
receivablesMap.put("line_no__ref", lsNo);
receivablesMap.put("gp_no", InvoiceHrdMap.get("gp_no"));
receivablesMap.put("gp_date", InvoiceHrdMap.get("gp_date"));
ldDiscdt=gbf_calc_discountdate(InvoiceHrdMap.get("cr_term"), InvoiceHrdMap.get("tran_date"), InvoiceHrdMap.get("eff_date"),
InvoiceHrdMap.get("tran_date"),conn);
receivablesMap.put("discount_date", ldDiscdt);
/**
* receivable update
* */
retSting = finCommon.gbfReceivablesUpd(receivablesMap,conn);
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
}
else
{
receivablesMap=new HashMap();
receivablesMap.put("tran_ser", "S-INV");
receivablesMap.put("tran_date", Timestamp.valueOf(lsPostdate));
receivablesMap.put("fin_entity", InvoiceHrdMap.get("fin_entity"));
receivablesMap.put("site_code", InvoiceHrdMap.get("site_code"));
receivablesMap.put("ref_no", InvoiceHrdMap.get("invoice_id"));
receivablesMap.put("ref_date", Timestamp.valueOf(lsPostdate));
receivablesMap.put("due_date", InvoiceHrdMap.get("due_date"));
receivablesMap.put("curr_code", InvoiceHrdMap.get("curr_code"));
receivablesMap.put("exch_rate", InvoiceHrdMap.get("exch_rate"));
receivablesMap.put("cust_code", InvoiceHrdMap.get("cust_code__bil"));
receivablesMap.put("acct_code", InvoiceHrdMap.get("acct_code__ar"));
receivablesMap.put("cctr_code", InvoiceHrdMap.get("cctr_code__ar"));
receivablesMap.put("tax_amt", InvoiceHrdMap.get("tax_amt"));
receivablesMap.put("discount", InvoiceHrdMap.get("disc_amt"));
receivablesMap.put("tot_amt",lcRelAmt);
receivablesMap.put("auto_rcp", "N");
receivablesMap.put("bank_code",InvoiceHrdMap.get("bank_code"));
receivablesMap.put("ref_type", InvoiceHrdMap.get("inv_type"));
receivablesMap.put("cr_term", InvoiceHrdMap.get("cr_term"));
receivablesMap.put("sales_pers", InvoiceHrdMap.get("sales_pers"));
receivablesMap.put("eff_date", InvoiceHrdMap.get("eff_date"));
receivablesMap.put("sales_pers__1", InvoiceHrdMap.get("sales_pers__1"));
receivablesMap.put("sales_pers__2", InvoiceHrdMap.get("sales_pers__2"));
receivablesMap.put("item_ser", InvoiceHrdMap.get("item_ser"));
receivablesMap.put("gp_no", InvoiceHrdMap.get("gp_no"));
receivablesMap.put("gp_date", InvoiceHrdMap.get("gp_date"));
ldDiscdt=gbf_calc_discountdate(InvoiceHrdMap.get("cr_term"), InvoiceHrdMap.get("tran_date"), InvoiceHrdMap.get("eff_date"),
InvoiceHrdMap.get("tran_date"),conn);
receivablesMap.put("discount_date", ldDiscdt);
/**
* receivable update
* */
retSting = finCommon.gbfReceivablesUpd(receivablesMap,conn);
}
} catch (ITMException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return retSting;
}
private Timestamp gbf_calc_discountdate(String crTerm, String vouchDate, String effDate, String billDate,Connection conn) throws ITMException
{
String discountDate="",sql="",lsStart="",lsMonth="",lsOverridediscdt="";
PreparedStatement pstmt=null;
ResultSet rs=null;
Timestamp ldDuedate=null,ldTranDt=null;
long llCount,liMonth,liCrDays,liCurrDays,liDueDays;
int sqlCount=0,liDays=0;
UtilMethods utlMethods= new UtilMethods();
try
{
// TODO Auto-generated method stub
sql="select start_from from crterm where cr_term = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, crTerm);
rs=pstmt.executeQuery();
if(rs.next())
{
lsStart=checkNull(rs.getString("start_from"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
if(lsStart.equalsIgnoreCase("R"))
{
ldTranDt=Timestamp.valueOf(vouchDate);
}
else if(lsStart.equalsIgnoreCase("D")||lsStart.equalsIgnoreCase("Q"))
{
ldTranDt=Timestamp.valueOf(effDate);
}
else if(lsStart.equalsIgnoreCase("B"))
{
ldTranDt=Timestamp.valueOf(billDate);
}
liMonth=ldTranDt.getMonth();
if(liMonth==12)
{
liMonth=1;
lsMonth="01";
}
else
{
liMonth=liMonth+1;
if(liMonth>9)
{
lsMonth=String.valueOf(liMonth);
}
else
{
lsMonth="0"+String.valueOf(liMonth);
}
}
sql="select override_discount_date from crterm_disc where cr_term = ?"
+ " and cr_month= ? and override_discount_date is not null";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, crTerm);
pstmt.setString(2, lsMonth);
rs=pstmt.executeQuery();
if(rs.next())
{
sqlCount++;
lsOverridediscdt=checkNull(rs.getString("override_discount_date"));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
if(sqlCount>0)
{
if(lsOverridediscdt!=null && lsOverridediscdt.trim().length()>0)
{
liCrDays=Long.parseLong(lsOverridediscdt.substring(2));
}
}
else
{
sql="select crtermfc.max_day,crterm_disc.override_discount_date"
+ " from crterm_disc,crtermfc"
+ " where crterm_disc.cr_term = crtermfc.cr_term"
+ " and trim(crtermfc.line_no) = '1' and crterm_disc.cr_term =?"
+ " and crterm_disc.cr_month = '99' and crterm_disc.override_discount_date is not null";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, crTerm);
rs=pstmt.executeQuery();
if(rs.next())
{
sqlCount++;
lsOverridediscdt=checkNull(rs.getString("override_discount_date"));
liDays=rs.getInt("max_day");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
if(sqlCount>0)
{
liCrDays=Long.parseLong(lsOverridediscdt.substring(2));
}
else
{
sql="select max_day from crtermfc where cr_term = ? and crtermfc.line_no = '1'";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, crTerm);
rs=pstmt.executeQuery();
if(rs.next())
{
sqlCount++;
liDays=rs.getInt("max_day");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
if(sqlCount>0)
{
ldDuedate=null;
return ldDuedate;
}
}
}
ldDuedate=utlMethods.RelativeDate(ldTranDt,liDays);
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return ldDuedate;
}
private ArrayList<Object> getInvoiceDesp(String invoiceId, Connection conn) throws ITMException
{
HashMap<String, String> InvoiceDespMap=new HashMap<String, String>();
ArrayList<Object> invoiceDeapList=new ArrayList<Object>();
double ln_amount_dis=0.00,ln_amount_sal=0.00;
String rateStd="",qtyStd="",discount="",ls_cctr_code__sal="",mfgDtStr="",expDtStr="",excDtStr="";
// TODO Auto-generated method stub
String sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
sql="SELECT invoice_trace.invoice_id,invoice_trace.inv_line_no,invoice_trace.desp_id,invoice_trace.desp_line_no,invoice_trace.item_code,"
+ "invoice_trace.quantity,invoice_trace.unit,invoice_trace.rate,invoice_trace.unit__rate,invoice_trace.discount,"
+ "invoice_trace.tax_class,invoice_trace.tax_chap,invoice_trace.tax_env,invoice_trace.tax_amt,invoice_trace.net_amt,"
+ "invoice_trace.unit__std,invoice_trace.conv__qty_stduom,invoice_trace.quantity__stduom,invoice_trace.conv__rtuom_stduom,invoice_trace.rate__stduom,"
+ "invoice_trace.comm_amt,invoice_trace.sord_no,invoice_trace.sord_line_no,invoice_trace.item_code__ord,invoice_trace.no_art,"
+ "invoice_trace.lot_no,invoice_trace.lot_sl,invoice_trace.site_code__mfg,invoice_trace.mfg_date,invoice_trace.exp_date,"
+ "invoice_trace.exp_lev,item.descr,invoice_trace.fob_value,invoice_trace.rate__clg,invoice_trace.line_no,"
+ "invoice_trace.item_ser__prom,invoice_trace.curr_code,invoice_trace.exch_rate,invoice_trace.comm_amt__oc,invoice_trace.rate__std,"
+ "invoice_trace.cost_rate,invoice_trace.line_type,invoice_trace.cust_item__ref,"
+ "FN_INV_CUSTITM_DSC( INVOICE_TRACE.INVOICE_ID,INVOICE_TRACE.ITEM_CODE,INVOICE_TRACE.CUST_ITEM__REF) custitem_desc,"
+ "invoice_trace.disc_schem_billback_amt,invoice_trace.disc_schem_offinv_amt"
+ " FROM invoice_trace,item"
+ " WHERE ( invoice_trace.item_code = item.item_code )"
+ " and( ( invoice_trace.invoice_id = ?) )"
+ "ORDER BY invoice_trace.invoice_id ASC,invoice_trace.line_no ASC ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, invoiceId);
rs=pstmt.executeQuery();
while(rs.next())
{
InvoiceDespMap.put("invoice_id", checkNull(rs.getString("invoice_id")));
InvoiceDespMap.put("inv_line_no", checkNull(rs.getString("inv_line_no")));
InvoiceDespMap.put("desp_id", checkNull(rs.getString("desp_id")));
InvoiceDespMap.put("desp_line_no", checkNull(rs.getString("desp_line_no")));
InvoiceDespMap.put("item_code", checkNull(rs.getString("item_code")));
InvoiceDespMap.put("quantity", checkNull(rs.getString("quantity")==null?"0.00":rs.getString("quantity")));
InvoiceDespMap.put("unit", checkNull(rs.getString("unit")));
InvoiceDespMap.put("rate", checkNull(rs.getString("rate")));
InvoiceDespMap.put("unit__rate", checkNull(rs.getString("unit__rate")));
discount=checkNull(rs.getString("discount")==null?"0":rs.getString("discount"));
InvoiceDespMap.put("discount", checkNull(rs.getString("discount")==null?"0":rs.getString("discount")));
InvoiceDespMap.put("tax_class", checkNull(rs.getString("tax_class")));
InvoiceDespMap.put("tax_chap", checkNull(rs.getString("tax_chap")));
InvoiceDespMap.put("tax_amt", checkNull(rs.getString("tax_amt")));
InvoiceDespMap.put("net_amt", checkNull(rs.getString("net_amt")==null?"0":rs.getString("net_amt")));
InvoiceDespMap.put("unit__std", checkNull(rs.getString("unit__std")));
InvoiceDespMap.put("conv__qty_stduom", checkNull(rs.getString("conv__qty_stduom")));
qtyStd=checkNull(rs.getString("quantity__stduom")==null?"0":rs.getString("quantity__stduom"));
InvoiceDespMap.put("quantity__stduom", checkNull(rs.getString("quantity__stduom")==null?"0":rs.getString("quantity__stduom")));
InvoiceDespMap.put("conv__rtuom_stduom", checkNull(rs.getString("conv__rtuom_stduom")));
InvoiceDespMap.put("rate__stduom", checkNull(rs.getString("rate__stduom")));
InvoiceDespMap.put("comm_amt", checkNull(rs.getString("comm_amt")));
InvoiceDespMap.put("sord_no", checkNull(rs.getString("sord_no")));
InvoiceDespMap.put("sord_line_no", checkNull(rs.getString("sord_line_no")));
InvoiceDespMap.put("no_art", checkNull(rs.getString("no_art")));
InvoiceDespMap.put("lot_no", checkNull(rs.getString("lot_no")));
InvoiceDespMap.put("lot_sl", checkNull(rs.getString("lot_sl")));
InvoiceDespMap.put("site_code__mfg", checkNull(rs.getString("site_code__mfg")));
if( rs.getString("mfg_date") != null)
{
mfgDtStr=genericUtility.getValidDateString(rs.getString("mfg_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
}
InvoiceDespMap.put("mfg_date", mfgDtStr);
if( rs.getString("exp_date") != null)
{
expDtStr=genericUtility.getValidDateString(rs.getString("exp_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
}
InvoiceDespMap.put("exp_date", expDtStr);
InvoiceDespMap.put("exp_lev", checkNull(rs.getString("exp_lev")));
InvoiceDespMap.put("item_descr", checkNull(rs.getString("descr")));
InvoiceDespMap.put("fob_value", checkNull(rs.getString("fob_value")));
InvoiceDespMap.put("rate__clg", checkNull(rs.getString("rate__clg")));
InvoiceDespMap.put("line_no", checkNull(rs.getString("line_no")));
InvoiceDespMap.put("item_ser__prom", checkNull(rs.getString("item_ser__prom")));
InvoiceDespMap.put("curr_code", checkNull(rs.getString("curr_code")));
/*
excDtStr=genericUtility.getValidDateString(rs.getString("exch_rate"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
*/
InvoiceDespMap.put("exch_rate", rs.getString("exch_rate")==null?"0":rs.getString("exch_rate"));
InvoiceDespMap.put("comm_amt__oc", checkNull(rs.getString("comm_amt__oc")));
rateStd=checkNull(rs.getString("rate__std")==null?"0":rs.getString("rate__std"));
InvoiceDespMap.put("rate__std", checkNull(rs.getString("rate__std")==null?"0":rs.getString("rate__std")));
InvoiceDespMap.put("cost_rate", checkNull(rs.getString("cost_rate")));
InvoiceDespMap.put("line_type", checkNull(rs.getString("line_type")));
InvoiceDespMap.put("cust_item__ref", checkNull(rs.getString("cust_item__ref")));
InvoiceDespMap.put("custitem_desc", checkNull(rs.getString("custitem_desc")));
InvoiceDespMap.put("disc_schem_billback_amt", checkNull(rs.getString("disc_schem_billback_amt")==null?"0":rs.getString("disc_schem_billback_amt")));
InvoiceDespMap.put("disc_schem_offinv_amt", checkNull(rs.getString("disc_schem_offinv_amt")==null?"0":rs.getString("disc_schem_offinv_amt")));
ln_amount_dis=(Double.parseDouble(rateStd)*Double.parseDouble(qtyStd))*Double.parseDouble(discount)/100;
InvoiceDespMap.put("ln_amount_dis", String.valueOf(ln_amount_dis));
ln_amount_sal=Double.parseDouble(qtyStd) * Double.parseDouble(rateStd);
InvoiceDespMap.put("ln_amount_sal", String.valueOf(ln_amount_sal));
invoiceDeapList.add(InvoiceDespMap);
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (ITMException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return invoiceDeapList;
}
private ArrayList<Object> getInvoiceAcct(String invoiceId, Connection conn) throws ITMException
{
// HashMap<String, HashMap<String, String>> InvoiceAcctExpMap=new HashMap<String, HashMap<String,String>>();
HashMap<String, String>InvoiceAcctMap=new HashMap<String, String>();
ArrayList<Object> invoiceAcctList=new ArrayList<Object>();
String sql="",lineNo="";
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
sql="SELECT invacct.invoice_id,invacct.line_no,invacct.acct_code,invacct.cctr_code,invacct.emp_code,"
+ "invacct.anal_code,invacct.amount,invacct.analysis1,invacct.analysis2,invacct.analysis3"
+ " FROM invacct WHERE INVACCT.INVOICE_ID =?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, invoiceId);
rs=pstmt.executeQuery();
while(rs.next())
{
lineNo=checkNull(rs.getString("line_no"));
InvoiceAcctMap.put("invoice_id", checkNull(rs.getString("invoice_id")));
InvoiceAcctMap.put("line_no", checkNull(rs.getString("line_no")));
InvoiceAcctMap.put("acct_code", checkNull(rs.getString("acct_code")));
InvoiceAcctMap.put("cctr_code", checkNull(rs.getString("cctr_code")));
InvoiceAcctMap.put("emp_code", checkNull(rs.getString("emp_code")));
InvoiceAcctMap.put("anal_code", checkNull(rs.getString("anal_code")));
InvoiceAcctMap.put("amount", checkNull(rs.getString("amount")));
InvoiceAcctMap.put("analysis1", checkNull(rs.getString("analysis1")));
InvoiceAcctMap.put("analysis2", checkNull(rs.getString("analysis2")));
InvoiceAcctMap.put("analysis3", checkNull(rs.getString("analysis3")));
// InvoiceAcctExpMap.put(lineNo, InvoiceAcctMap);
invoiceAcctList.add(InvoiceAcctMap);
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
// TODO Auto-generated method stub
return invoiceAcctList;
}
private HashMap<String, String> getInvoiceHdr(String invoiceId,Connection conn) throws ITMException
{
// TODO Auto-generated method stub
HashMap<String, String> InvoiceHrdMap=new HashMap<String, String>();
String sql="",trnDtStr="",despDtStr="",dueDtStr="",effDtStr="",taxDtStr="",confDtStr="",chgDtStr="";
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
sql="SELECT invoice.invoice_id,invoice.tran_date,invoice.sale_order,invoice.desp_id,invoice.tran_mode,"
+ "invoice.desp_date,invoice.site_code,invoice.eff_date,invoice.fin_entity,invoice.item_ser,"
+ "invoice.cust_code,invoice.cust_code__bil,invoice.cr_term,invoice.cr_days,invoice.due_date,"
+ "invoice.tax_date,invoice.tax_class,invoice.tax_chap,invoice.tax_env,invoice.inv_amt,"
+ "invoice.tran_id__fb,invoice.inv_type,invoice.tax_amt,invoice.disc_amt,invoice.net_amt,"
+ "invoice.curr_code,invoice.anal_code,invoice.frt_type,invoice.frt_amt,invoice.curr_code__frt,"
+ "invoice.sales_pers,invoice.comm_amt,invoice.acct_code__sal,invoice.cctr_code__sal,invoice.acct_code__ar,"
+ "invoice.cctr_code__ar,invoice.acct_code__dis,invoice.cctr_code__dis,invoice.bank_code,invoice.adj_amount,"
+ "invoice.confirmed,invoice.conf_date,invoice.emp_code__aprv,invoice.remarks,invoice.chg_date,"
+ "invoice.chg_user,invoice.chg_term,finent.descr,site.descr,customer.cust_name,"
+ "site.city,sales_pers.sp_name,invoice.exch_rate,invoice.exch_rate__frt,invoice.agent_code,"
+ "ins_agent.sagent_name,invoice.round_adj,invoice.comm_amt__oc,invoice.sales_pers__1,invoice.sales_pers__2,"
+ "invoice.sales_pers_comm_1,invoice.sales_pers_comm_2,invoice.sales_pers_comm_3,invoice.posttype,invoice.stan_code__init,"
+ "' ' as advance,fn_sundry_name( 'P',invoice.sales_pers__1,'') as salespers1_descr,"
+ "fn_sundry_name( 'P',invoice.sales_pers__2,'') as salespers2_descr,invoice.doc_status,invoice.gp_no,invoice.gp_date,"
+ "invoice.sales_grp,customer.edi_addr,"
+ "case when adj_amount < 0 then abs(to_char(adj_amount,'9999999.99')) || ' Dr. ' else abs(to_char(adj_amount,'9999999.99')) || ' Cr. ' end as adjust_amount,"
+ "invoice.disc_schem_billback_amt,invoice.disc_schem_offinv_amt,invoice.acc_code__order,invoice.disc_offinv_amt_hdr,"
+ "invoice.disc_billback_amt_hdr,invoice.acct_code__pr,invoice.cctr_code__pr"
+ " FROM invoice,sales_pers,finent,site,customer,ins_agent"
+ " WHERE ( invoice.sales_pers = sales_pers.sales_pers (+))"
+ " and( invoice.agent_code = ins_agent.agent_code (+))"
+ " and( invoice.fin_entity = finent.fin_entity )"
+ " and( invoice.site_code = site.site_code )"
+ " and( invoice.cust_code = customer.cust_code )"
+ " and( ( invoice.invoice_id = ? ) )";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, invoiceId);
rs=pstmt.executeQuery();
if(rs.next())
{
InvoiceHrdMap.put("invoice_id", checkNull(rs.getString("invoice_id")));
trnDtStr=genericUtility.getValidDateString(rs.getString("tran_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
InvoiceHrdMap.put("tran_date", trnDtStr);
InvoiceHrdMap.put("sale_order", checkNull(rs.getString("sale_order")));
InvoiceHrdMap.put("desp_id", checkNull(rs.getString("desp_id")));
InvoiceHrdMap.put("tran_mode", checkNull(rs.getString("tran_mode")));
despDtStr=genericUtility.getValidDateString(rs.getString("desp_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
InvoiceHrdMap.put("desp_date", despDtStr);
InvoiceHrdMap.put("site_code", checkNull(rs.getString("site_code")));
effDtStr=genericUtility.getValidDateString(rs.getString("eff_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
InvoiceHrdMap.put("eff_date", effDtStr);
InvoiceHrdMap.put("fin_entity", checkNull(rs.getString("fin_entity")));
InvoiceHrdMap.put("item_ser", checkNull(rs.getString("item_ser")));
InvoiceHrdMap.put("cust_code", checkNull(rs.getString("cust_code")));
InvoiceHrdMap.put("cust_code__bil", checkNull(rs.getString("cust_code__bil")));
InvoiceHrdMap.put("cr_term", checkNull(rs.getString("cr_term")));
InvoiceHrdMap.put("cr_days", checkNull(rs.getString("cr_days")));
dueDtStr=genericUtility.getValidDateString(rs.getString("due_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
InvoiceHrdMap.put("due_date",dueDtStr);
taxDtStr=genericUtility.getValidDateString(rs.getString("tax_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
InvoiceHrdMap.put("tax_date", taxDtStr);
InvoiceHrdMap.put("tax_class", checkNull(rs.getString("tax_class")));
InvoiceHrdMap.put("tax_chap", checkNull(rs.getString("tax_chap")));
InvoiceHrdMap.put("tax_env", checkNull(rs.getString("tax_env")));
InvoiceHrdMap.put("inv_amt", checkNull(rs.getString("inv_amt")));
InvoiceHrdMap.put("tran_id__fb", checkNull(rs.getString("tran_id__fb")));
InvoiceHrdMap.put("inv_type", checkNull(rs.getString("inv_type")));
InvoiceHrdMap.put("tax_amt", checkNull(rs.getString("tax_amt")));
InvoiceHrdMap.put("disc_amt", checkNull(rs.getString("disc_amt")));
InvoiceHrdMap.put("net_amt", checkNull(rs.getString("net_amt")));
InvoiceHrdMap.put("curr_code", checkNull(rs.getString("curr_code")));
InvoiceHrdMap.put("anal_code", checkNull(rs.getString("anal_code")));
InvoiceHrdMap.put("frt_type", checkNull(rs.getString("frt_type")));
InvoiceHrdMap.put("frt_amt", checkNull(rs.getString("frt_amt")));
InvoiceHrdMap.put("curr_code__frt", checkNull(rs.getString("curr_code__frt")));
InvoiceHrdMap.put("sales_pers", checkNull(rs.getString("sales_pers")));
InvoiceHrdMap.put("comm_amt", checkNull(rs.getString("comm_amt")));
InvoiceHrdMap.put("acct_code__sal", checkNull(rs.getString("acct_code__sal")));
InvoiceHrdMap.put("cctr_code__sal", checkNull(rs.getString("cctr_code__sal")));
InvoiceHrdMap.put("acct_code__ar", checkNull(rs.getString("acct_code__ar")));
InvoiceHrdMap.put("cctr_code__ar", checkNull(rs.getString("cctr_code__ar")));
InvoiceHrdMap.put("acct_code__dis", checkNull(rs.getString("acct_code__dis")));
InvoiceHrdMap.put("cctr_code__dis", checkNull(rs.getString("cctr_code__dis")));
InvoiceHrdMap.put("bank_code", checkNull(rs.getString("bank_code")));
InvoiceHrdMap.put("adj_amount", checkNull(rs.getString("adj_amount")));
InvoiceHrdMap.put("confirmed", checkNull(rs.getString("confirmed")));
if( rs.getString("conf_date") != null )
{
confDtStr=genericUtility.getValidDateString(rs.getString("conf_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
}
InvoiceHrdMap.put("conf_date", confDtStr);
InvoiceHrdMap.put("emp_code__aprv", checkNull(rs.getString("emp_code__aprv")));
InvoiceHrdMap.put("remarks", checkNull(rs.getString("remarks")));
chgDtStr=genericUtility.getValidDateString(rs.getString("chg_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
InvoiceHrdMap.put("chg_date", chgDtStr);
InvoiceHrdMap.put("chg_user", checkNull(rs.getString("chg_user")));
InvoiceHrdMap.put("chg_term", checkNull(rs.getString("chg_term")));
InvoiceHrdMap.put("descr", checkNull(rs.getString("descr")));
InvoiceHrdMap.put("finent_descr", checkNull(rs.getString("descr")));
InvoiceHrdMap.put("site_descr", checkNull(rs.getString("descr")));
InvoiceHrdMap.put("cust_name", checkNull(rs.getString("cust_name")));
InvoiceHrdMap.put("city", checkNull(rs.getString("city")));
InvoiceHrdMap.put("sp_name", checkNull(rs.getString("sp_name")));
InvoiceHrdMap.put("exch_rate", checkNull(rs.getString("exch_rate")));
InvoiceHrdMap.put("exch_rate__frt", checkNull(rs.getString("exch_rate__frt")));
InvoiceHrdMap.put("agent_code", checkNull(rs.getString("agent_code")));
InvoiceHrdMap.put("sagent_name", checkNull(rs.getString("sagent_name")));
InvoiceHrdMap.put("round_adj", checkNull(rs.getString("round_adj")));
InvoiceHrdMap.put("comm_amt__oc", checkNull(rs.getString("comm_amt__oc")));
InvoiceHrdMap.put("sales_pers__1", checkNull(rs.getString("sales_pers__1")));
InvoiceHrdMap.put("sales_pers__2", checkNull(rs.getString("sales_pers__2")));
InvoiceHrdMap.put("sales_pers_comm_1", checkNull(rs.getString("sales_pers_comm_1")));
InvoiceHrdMap.put("sales_pers_comm_2", checkNull(rs.getString("sales_pers_comm_2")));
InvoiceHrdMap.put("sales_pers_comm_3", checkNull(rs.getString("sales_pers_comm_3")));
InvoiceHrdMap.put("posttype", checkNull(rs.getString("posttype")));
InvoiceHrdMap.put("stan_code__init", checkNull(rs.getString("stan_code__init")));
InvoiceHrdMap.put("advance", checkNull(rs.getString("advance")));
InvoiceHrdMap.put("salespers1_descr", checkNull(rs.getString("salespers1_descr")));
InvoiceHrdMap.put("salespers2_descr", checkNull(rs.getString("salespers2_descr")));
InvoiceHrdMap.put("doc_status", checkNull(rs.getString("doc_status")));
InvoiceHrdMap.put("gp_no", checkNull(rs.getString("gp_no")));
InvoiceHrdMap.put("gp_date", checkNull(rs.getString("gp_date")));
InvoiceHrdMap.put("sales_grp", checkNull(rs.getString("sales_grp")));
InvoiceHrdMap.put("edi_addr", checkNull(rs.getString("edi_addr")));
InvoiceHrdMap.put("adj_amount", checkNull(rs.getString("adj_amount")));
InvoiceHrdMap.put("disc_schem_billback_amt", checkNull(rs.getString("disc_schem_billback_amt")));
InvoiceHrdMap.put("disc_schem_offinv_amt", checkNull(rs.getString("disc_schem_offinv_amt")));
InvoiceHrdMap.put("acc_code__order", checkNull(rs.getString("acc_code__order")));
InvoiceHrdMap.put("disc_offinv_amt_hdr", checkNull(rs.getString("disc_offinv_amt_hdr")));
InvoiceHrdMap.put("disc_billback_amt_hdr", checkNull(rs.getString("disc_billback_amt_hdr")));
InvoiceHrdMap.put("acct_code__pr", checkNull(rs.getString("acct_code__pr")));
InvoiceHrdMap.put("cctr_code__pr", checkNull(rs.getString("cctr_code__pr")));
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (ITMException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return InvoiceHrdMap;
}
private String checkNull(String inputStr)
{
// TODO Auto-generated method stub
if(inputStr==null)
{
inputStr="";
}
return inputStr;
}
}
package ibase.webitm.ejb.dis;
import ibase.webitm.utility.ITMException;
import java.sql.Connection;
public interface PostOrdInvoicePostLocal
{
public String invoicePosting(String invoiceId,Connection conn)throws ITMException;
}
package ibase.webitm.ejb.dis;
import ibase.webitm.utility.ITMException;
import java.sql.Connection;
public interface PostOrdInvoicePostRemote
{
public String invoicePosting(String invoiceId,Connection conn)throws ITMException;
}
package ibase.webitm.ejb.dis;
import ibase.system.config.AppConnectParm;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ProcessEJB;
import ibase.webitm.ejb.fin.InvAcct;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.ejb.Stateless;
import javax.naming.InitialContext;
import org.apache.poi.hssf.record.formula.functions.Setname;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ibase.webitm.ejb.*;
import ibase.webitm.ejb.dis.DistStkUpdLocal;
import ibase.webitm.ejb.fin.*;
import ibase.webitm.utility.*;
import ibase.system.config.*;
import ibase.utility.CommonConstants;
//import ibase.utility.CommunicationComp;
import ibase.webitm.utility.ITMException;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ProcessEJB;
import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.ITMException;
@Stateless
public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLocal,PostOrderProcessRemote
......@@ -63,13 +51,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String strToWrite="",strToWriteHead="",logFileInit="",xmlString1="",chgTerm="",chgUser="";
String err = "";
boolean postLogYn=false;
Connection conn = null;
//Connection conn = null;
public String process(String xmlString, String xmlString2, String windowName, String xtraParams) throws RemoteException,ITMException
{
Document detailDom = null;
Document headerDom = null;
String retStr = "";
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
//ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
try
{
......@@ -85,9 +73,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("detailDom" + detailDom);
//writeLog(filePtr,"detailDom-->"+detailDom,true);
}
retStr = process(headerDom, detailDom, windowName, xtraParams);
System.out.println("xmlString*********"+xmlString);
System.out.println("xmlString2*********"+xmlString2);
retStr = process(headerDom, detailDom, windowName, xtraParams);
System.out.println("@@@@@@@@@@@ retStr["+retStr+"]");
}
catch(Exception e)
{
......@@ -105,7 +96,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
//writeLog(filePtr,"detailDom-->"+detailDom,true);
//writeLog(filePtr,"windowName-->"+windowName,true);
//writeLog(filePtr,"xtraParams-->"+xtraParams,true);
//Connection conn = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
ResultSet rs = null;
PreparedStatement pstmt = null;
......@@ -134,6 +125,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("process starts................");
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
sdf = new SimpleDateFormat(e12GenericUtility.getApplDateFormat());
timestamp = new Timestamp(System.currentTimeMillis());
currDate = (sdf.format(timestamp).toString()).trim();
......@@ -315,6 +307,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
//error to be display with codeCode on the message
System.out.println("Sales Orders for Customer are posted");
conn.commit();
}
else
{
......@@ -385,17 +379,20 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
retString = postOrder(headerDom, "",saleOrderList.get(sordIndex),xtraParams,conn);
System.out.println("postOrder return:::::::::::[["+retString+"]]......");
if(retString == null || retString.trim().length() <= 0)
{
//error to be display with codeCode on the message
System.out.println("Sales Orders for Customer are posted");
errString = itmDBAccessEJB.getErrorString("", "VTPOST03", "","", conn);
System.out.println("Sales Orders for Customer are posted..........conn.commit()..........");
conn.commit();
}
else
{
//error to be display with codeCode on the message
System.out.println("Sales Orders for Customer are not posted");
retString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
System.out.println("Sales Orders for Customer are not posted.........conn.rollback().........");
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
conn.rollback();
}
}
......@@ -403,9 +400,21 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
catch(Exception e)
{
try
{
System.out.println("@@@@@@@@@ Exception.........conn.rollback().........");
conn.rollback();
}
catch (SQLException e1)
{
e1.printStackTrace();
System.out.println("Exception ::"+ e1.getMessage());
throw new ITMException(e1);
}
e.printStackTrace();
System.out.println("Exception ::"+e.getMessage());
throw new ITMException(e);
}
finally
{
......@@ -432,22 +441,17 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
throw new ITMException(e);
}
}
if ( errString.trim().length() > 0 )
{
return err;
}
else
{
return retString;
}
return errString;
}
public String postOrder(Document headerDom,String custCode, String SaleOrder,String xtraParams,Connection conn)
public String postOrder(Document headerDom,String custCode, String SaleOrder,String xtraParams,Connection conn) throws ITMException
{
String fromCustCode="",toCustCode="",fromSaleOrder="",toSaleOrder="",lotSl="",toDateStr="",fromDateStr="";
String refreshDb="",allocStk="",clubPendingOrd="",adjDrcr="",adjCustAdv="",clubOrder="",siteCodeShip="";
String advAdjMode="",postUptoInvoice="",adjNewProdInv="",loginSiteCode="",errString="",retString="",orderType="";
String sql="",varValue ="";
String sql="",varValue ="",errStringConf = "",invoiceId="",applyTime="I",crPolicy="";
// String[] custCode;
int cnt = 0,liCtr = 0,liCc = 0;
//Connection conn = null;
......@@ -455,10 +459,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
ResultSet rs = null;
PreparedStatement pstmt = null;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
String tranIdDespatch="",lsStatus="";
Timestamp toDate=null, fromDate=null;
int sordItemAllocCnt = 0;
String errCode="";
InitialContext ctx = null;
try
{
......@@ -592,38 +598,239 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
errCode = postOrder(SaleOrder,SaleOrder,fromCustCode,toCustCode, fromDate, toDate,lotSl,siteCodeShip,xtraParams,conn);
}
}
System.out.println("errCode.trim().length()!!!! :"+errCode.trim().length());
if(errCode.trim().length() > 0)
{
// conn.rollback();
conn.rollback();
//RETURN;
}
else if("Y".equalsIgnoreCase(allocStk))
//else if("Y".equalsIgnoreCase(allocStk))
else
{
//conn.commit();
//errCode="VTALLOC03";
System.out.println("Checking all process of post order!!!!");
System.out.println("Despatch creation Test@@@@@@@@@");
//dispact coding starts
//added by priyanka
PostOrdDespatchGen postOrdDespatchGen=new PostOrdDespatchGen();
errCode=postOrdDespatchGen.createDespatch(fromSaleOrder, toSaleOrder, fromCustCode, toCustCode, fromDate, toDate, siteCodeShip, conn);
System.out.println("ErrCode from Despatch creation===="+errCode);
if(errCode != null && errCode.trim().length() > 0)
{
if(errCode.indexOf("VTCONPARM") > -1)
{
//conn.commit();
errCode="VTALLOC03";
String[] arrayForTranId = errCode.split("<TranID>");
System.out.println("Tran ID :::::in conf:::::::"+arrayForTranId);
System.out.println("Tran ID :::::in conf:::::::"+arrayForTranId[1]);
int endIndex = arrayForTranId[1].indexOf("</TranID>");
System.out.println("endIndex:::::::"+endIndex);
tranIdDespatch = arrayForTranId[1].substring(0, endIndex);
System.out.println("tranIdDespatch====="+tranIdDespatch);
System.out.println("Calling Despatch Confirmation");
DespatchConfirmLocal despatchConfirm = null;
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
despatchConfirm = (DespatchConfirmLocal) ctx.lookup("ibase/DespatchConfirm/local");
System.out.println("-----------despatchConfirm------- " + despatchConfirm);
String forcedFlag="N";
errStringConf=despatchConfirm.confirm(tranIdDespatch, xtraParams, forcedFlag,conn);
System.out.println("errCode in despatch confirmation===="+errStringConf);
}
}
if(errStringConf != null && errStringConf.trim().length() > 0)
{
if(errStringConf.indexOf("VTPOSTDES") > -1)
{
//conn.commit();
String[] arrayForTranId = errStringConf.split("<TranID>");
System.out.println("Tran ID :::::in conf:::::::"+arrayForTranId);
System.out.println("Tran ID :::::in conf:::::::"+arrayForTranId[1]);
int endIndex = arrayForTranId[1].indexOf("</TranID>");
System.out.println("endIndex:::::::"+endIndex);
tranIdDespatch = arrayForTranId[1].substring(0, endIndex);
System.out.println("tranIdDespatch====="+tranIdDespatch);
System.out.println("Calling Despatch Posting");
InvAcct inv = new InvAcct();
errString = inv.despatchPost(tranIdDespatch,"S-DSP",conn);
System.out.println("errCode in despatch posting===="+errString);
if(errString.trim().length() == 0 || errString == null)
{
//conn.commit(); // added testing purpose
PostOrdInvoiceGen invgen = new PostOrdInvoiceGen();
System.out.println("from date ::::::::"+fromDate);
// SimpleDateFormat dateFormat = new SimpleDateFormat(genericUtility.getDBDateFormat());
//String frmDate = dateFormat.format(fromDate);
System.out.println("Date parsedd:::::::::::"+fromDate);
System.out.println("Posting fromSaleOrder :::::::"+fromSaleOrder);
System.out.println("Posting toSaleOrder :::::::"+toSaleOrder);
System.out.println("Posting fromCustCode :::::::"+fromCustCode);
System.out.println("Posting toCustCode :::::::"+toCustCode);
System.out.println("Posting tranIdDespatch :::::::"+tranIdDespatch);
System.out.println("Posting orderType :::::::"+orderType);
System.out.println("Posting frmDate :::::::"+fromDate);
System.out.println("Posting clubOrder :::::::"+clubOrder);
System.out.println("Posting clubPendingOrd :::::::"+clubPendingOrd);
System.out.println("Posting adjDrcr :::::::"+adjDrcr);
System.out.println("Posting adjCustAdv :::::::"+adjCustAdv);
System.out.println("Posting advAdjMode :::::::"+advAdjMode);
System.out.println("Posting adjNewProdInv :::::::"+adjNewProdInv);
errString = invgen.invoiceProcess(fromSaleOrder, toSaleOrder, fromCustCode, toCustCode, tranIdDespatch, orderType, fromDate, clubOrder, clubPendingOrd, adjDrcr, adjCustAdv, advAdjMode, adjNewProdInv, conn);
System.out.println("@@@@@@@@@695::::invgen.invoiceProcess():::errString["+errString+"]");
//if(errString != null && errString.trim().length()>0 )
//{
// System.out.println("Invoice not Generated !!!!!!!!!!!!!!!!!!!!!!!!!!!");
// conn.rollback();
//}
if( errString != null && errString.trim().length() > 0 && errString.contains("Success"))
{
String[] arrayForTranId1 = errString.split("<TranID>");
System.out.println("Tran ID :::::in conf:::::::"+arrayForTranId1);
System.out.println("Tran ID :::::in conf:::::::"+arrayForTranId1[1]);
int endIndex1 = arrayForTranId1[1].indexOf("</TranID>");
System.out.println("endIndex1:::::::"+endIndex1);
invoiceId = arrayForTranId1[1].substring(0, endIndex1);
System.out.println("invoiceId=====["+invoiceId+"]");
String itemSer="";
double netAmt=0;
sql = " select item_ser,net_amt from invoice where invoice_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, invoiceId);
rs = pstmt.executeQuery();
if(rs.next())
{
itemSer = rs.getString("item_ser");
netAmt = rs.getDouble("net_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
HashMap paramMap = new HashMap();
paramMap.put("as_cust_code_bil",fromCustCode);
paramMap.put("as_item_ser",itemSer);
paramMap.put("ad_net_amt",""+netAmt);
paramMap.put("as_sorder",fromSaleOrder);
paramMap.put("adt_tran_date",fromDate); //fromDate fromDateStr
paramMap.put("as_site_code",siteCodeShip);
paramMap.put("as_apply_time", applyTime);
paramMap.put("as_despid",tranIdDespatch);
System.out.println("@@@@@@@@@@ paramMap["+paramMap+"]");
PostOrdCreditChk postOrdCreditChk = new PostOrdCreditChk();
errString = postOrdCreditChk.CreditCheck(paramMap, conn);
System.out.println("@@@@@@@@@2 postOrdCreditChk errString["+errString+"]");
if( errString == null || errString.trim().length() == 0 )
{
// i_nvo_sales.gbf_credit_check_update(ls_sale_order,ls_cr_policy,mnet_amt,'S',lc_check_amt,'C',ls_status) //Added Ruchira 29/08/2k6, to pass invoice amt.
postOrdCreditChk.credit_check_update(fromSaleOrder, crPolicy, netAmt, "S", netAmt, "C", lsStatus, conn);
//InvoiceDrcrAdj invoiceDrCrAdj1 = new InvoiceDrcrAdj();
//retString = invoiceDrCrAdj1.invoiceDrcrAdj(siteCodeShip, invoiceId, toCustCode, itemSer, netAmt, adjDrcrFlag, adjAdv, advAdj, adjNewProdInvFlag, frtDrnArr, conn);
//retString = invoiceDrCrAdj1.invoiceDrcrAdj(siteCodeShip, invoiceId, toCustCode, itemSer, netAmt, adjDrcrFlag, adjCustAdvFlag, advAdj, adjNewProdInvFlag, frtDrnArr, conn);
System.out.println("@@@@@@@@@3 invoiceDrCrAdj1.invoiceDrcrAdj() retString["+retString+"]");
if( errString == null || errString.trim().length() == 0 )
{
//CreteCommCrNote creteCommCrNote = new CreteCommCrNote();
// retString = creteCommCrNote.creteCommCrNote(invoiceId, conn);
System.out.println("@@@@@@@@@4 CreteCommCrNote() errString["+errString+"]");
if( errString == null || errString.trim().length() == 0 )
{
// AutoExciseDrNote autoExciseDrNote = new AutoExciseDrNote();
// retString = autoExciseDrNote.autoExciseDrNote(invoiceId, conn);
System.out.println("@@@@@@@@@5 autoExciseDrNote() errString["+errString+"]");
}
else
{
//dispact coding starts
System.out.println("@@@@@@@@@ error in autoExciseDrNote.autoExciseDrNote.....");
return errString;
}
}
else
{
System.out.println("@@@@@@@@@ error in invoiceDrCrAdj1.invoiceDrcrAdj.....");
return errString;
}
}
else
{
System.out.println("@@@@@@@@@ error in postOrdCreditChk.CreditCheck(paramMap, conn)......");
return errString;
//conn.rollback();
}
}
else
{
System.out.println("Invoice not Generated !!!!!!!!!!!!!!!!!!!!!!!!!!!");
conn.rollback();
}
}
}
/*------------------------------------------------------------------------------*/
}
}
/*------------------------------------------------------------------------------*/
}
}
catch(Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
System.out.println("Exception ::"+e.getMessage());
//throw new ITMException(e);
throw new ITMException(e);
}
return errCode;
return errString;
}
......@@ -632,7 +839,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
private String postOrder(String fromSaleOrder, String toSaleOrder,String custCodeFrom, String custCodeTo, Timestamp fromDate,Timestamp toDate, String lotSl, String siteCodeShip, String xtraParams,
private String postOrder(String fromSaleOrder, String toSaleOrder,String custCodeFrom, String custCodeTo, Timestamp fromDate,Timestamp toDate, String lotSldom, String siteCodeShip, String xtraParams,
Connection conn) throws ITMException, IOException
{
String errStrng="",sqlstatement="",sql1="",sql2="",sql3="",sql="",logMsg="",postLog="",itemCodeParent="",schemeCode="";
......@@ -653,7 +860,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String userId="",termId="";
double qtyAlloc=0.0, qtyDesp=0.0,batQty=0.0,modQuantity=0.0,quantityStduom=0.0,bomQtyPer=0.0,orderQty=0.0,siteQty=0.0,siteItmQty=0.0,rate = 0.0,rateClg = 0.0;
ArrayList quantityList = null;
String unitStd="",ratio="",ratioOld="",orderUnit="",locGroup="",stkOpt="",salesGrp="",lotNo="",locCode="",grade="",siteCodeMfg="";
String unitStd="",ratio="",ratioOld="",orderUnit="",locGroup="",stkOpt="",salesGrp="",lotNo="",lotSl="",locCode="",grade="",siteCodeMfg="";
Timestamp expDate=null,mfgDate=null,chkDate = null,chkDate1 = null ,chkDate2 = null;
String invStat="",skiplot="",siteCodeSupp="",skipline="",postUpto="",custCode="",applyCust="";
String applyCustList ="",noapplyCustList="",noApplyCust="",trackShelfLife="",rateFailed="",allocDateStr="",itemCodeScheme="",lineScheme="";
......@@ -663,9 +870,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
int stockOpt=0 ,graceDays =0 ,schemeCnt = 0,schemeNo=0,priceListCnt=0,loghandle=0;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
DistCommon discommon = new DistCommon();
List<SorderBean> sorderList = new ArrayList<SorderBean>();
List<SordItemBean> sordItemList = new ArrayList<SordItemBean>();
List<StockBean> stockList = new ArrayList<StockBean>();
ArrayList<SorderBean> sorderList = new ArrayList<SorderBean>();
ArrayList<SordItemBean> sordItemList = null;;
ArrayList<StockBean> stockList = null;
Date currentDate = new Date();
Timestamp allocDate = null,orderDate=null,plDate=null;
int totRecords=0,records=0;
......@@ -794,8 +1001,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
while(sordIterator.hasNext())
{*/
System.out.println("sorderList :"+sorderList.size());
sordItemList= new ArrayList<SordItemBean>();
for(SorderBean sorderBean : sorderList)
{
/* SorderBean sorderBean = new SorderBean();
sorderBean = (SorderBean) sordIterator.next();*/
System.out.println("sale order :"+sorderBean.getSaleOrder());
......@@ -852,6 +1062,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = pstmt.executeQuery();
while(rs.next())
{
SordItemBean sordItemBean = new SordItemBean();
//SorderBean sorderBean2 = new SorderBean();
totLines++;
......@@ -980,6 +1191,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sordItemList.add(sordItemBean);
}
sorderBean.setSorditemList(sordItemList);
//sordItemList.clear();
rs.close();
rs = null;
pstmt.close();
......@@ -1004,7 +1217,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
System.out.println("sale order :"+sordItemBean.getSorderBean().getSaleOrder());
forTestCnt++;
stockList=new ArrayList<StockBean>();
itemCode = sordItemBean.getItemCode();
System.out.println("itemCode :"+itemCode);
siteCode = sordItemBean.getSiteCode();
......@@ -1065,9 +1278,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sql = sql + " and a.quantity > 0 ";
sql = sql + " and b.available = 'Y' ";
if(lotSl.trim().length() > 0)
if(lotSldom.trim().length() > 0)
{
sql = sql + " and a.lot_sl = '"+lotSl.trim()+"'";
sql = sql + " and a.lot_sl = '"+lotSldom.trim()+"'";
}
if(locGroup.trim().length() > 0)
......@@ -1102,9 +1315,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sql = sql + " and a.quantity > 0 ";
sql = sql + " and b.available = 'Y' ";
if(lotSl.trim().length() > 0)
if(lotSldom.trim().length() > 0)
{
sql = sql + " and a.lot_sl = '"+lotSl.trim()+"'";
sql = sql + " and a.lot_sl = '"+lotSldom.trim()+"'";
}
if(locGroup.trim().length() > 0)
......@@ -1608,7 +1821,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}//end of if("B".equalsIgnoreCase(priceListType))
}//end of if(priceList != null && priceList.trim().length() > 0)
if(priceListDisc == null && priceListDisc.trim().length() == 0)
if(priceListDisc == null || priceListDisc.trim().length() == 0)
{
if(priceList != null && priceList.trim().length() > 0)
{
......@@ -2259,14 +2472,14 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs5 = null;
pstmt5.close();
pstmt5 = null;
System.out.println("@@@@@@@@@@ forTestCnt["+forTestCnt+"]:::stockList.size()>>>>"+stockList.size());
sordItemBean.setStockList(stockList);
//stockList.clear();
}// end of sordItemList
System.out.println("stockTestCnt :"+stockTestCnt);
System.out.println("forTestCnt :"+forTestCnt);
System.out.println("stockList.size()>>>>"+stockList.size());
int vaildateData=0;
......@@ -2276,6 +2489,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sordItmQty = sordItemBean.getSordItmQty();
netQuantity=sordItmQty;
System.out.println("netQuantity>>>"+netQuantity);
stockList=sordItemBean.getStockList();
System.out.println("stockList.size()>>>"+stockList.size());
totInputQty=0;
for(StockBean stockBean :stockList)
{
System.out.println("stockList iterator starts...........");
......@@ -2587,6 +2803,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
if(totAlloc > 0)
{
sql = "update sorditem set status = 'A', date_alloc = ? , " +
" status_date = ? , qty_alloc = qty_alloc + ? " +
" where sale_order = ? and line_no = ? " +
......@@ -2600,6 +2817,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(5,lineNo);
pstmt.setString(6,expLev);
updSorditemCnt = pstmt.executeUpdate();
}
}
......@@ -2607,7 +2825,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
totAlloc = 0;
ratio = "0";
System.out.println("@@@@@@@@ update sorder commented..........");
/*int updSordCnt=0;
if(records > 0 || stockOpt == 0)
{
......@@ -2684,6 +2902,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
strToWrite=strToWrite + errorString+"\r\n\r\n";
fos1.write(strToWrite.getBytes());
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
catch(SQLException e)
{
......@@ -2699,6 +2922,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
strToWrite=strToWrite + errorString+"\r\n\r\n";
fos1.write(strToWrite.getBytes());
errorLog("Error","SQLException : Cannot read allocation detail record for sale order : "+saleOrder + " Line No : "+lineNo ,"sorditem",saleOrder, " ", "" , "", "", saleOrder, "S-DSP","REAS_CODE","W_POST_ORDER",conn);
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
catch(Exception e)
{
......@@ -2738,6 +2967,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
fos1.write(strToWrite.getBytes());
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
}
......@@ -2749,7 +2982,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
private String intializingLog(String fileName,String saleOrder)
private String intializingLog(String fileName,String saleOrder) throws ITMException
{
String log="";
String strToWrite = "";
......@@ -2773,8 +3006,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
catch(Exception e)
{
System.out.println("Exception []::"+e.getMessage());
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
startDate = new java.util.Date(System.currentTimeMillis());
calendar.setTime(new java.sql.Timestamp(System.currentTimeMillis()));
......@@ -2786,6 +3020,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("Exception []::"+e.getMessage());
log="IntializingLog_Failed";
e.printStackTrace();
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
return log;
}
......@@ -2811,7 +3052,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pw.close();
}
}
catch(Exception exWm){exWm.printStackTrace();}
catch(Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
}
private String checkNull(String input)
......@@ -2823,7 +3069,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
return input;
}
public double getDiscount(String plistDisc,Timestamp orderDate,String custCode,String siteCode,String itemCode,String unit,double discMerge,Timestamp plDate,double sordItmQty,Connection conn) throws SQLException
public double getDiscount(String plistDisc,Timestamp orderDate,String custCode,String siteCode,String itemCode,String unit,double discMerge,Timestamp plDate,double sordItmQty,Connection conn) throws SQLException, ITMException
{
String ls_listtype = "", itemSer = "",sql="";
double lc_rate=0.0, lc_disc=0.0,rate=0.0,discPerc=0.0;
......@@ -2950,12 +3196,16 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
catch(Exception e)
{
discPerc=0;
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
return discPerc;
}
public double calcRate(double rate,double plistDisc)
public double calcRate(double rate,double plistDisc) throws ITMException
{
try
{
......@@ -2968,7 +3218,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
catch(Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
......@@ -2976,7 +3228,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
public double convertBox(String itemCode,String unitPack,String unit,double convQtyStduom,Connection conn)
public double convertBox(String itemCode,String unitPack,String unit,double convQtyStduom,Connection conn) throws ITMException
{
double convQty = 0.0;
try
......@@ -2986,7 +3238,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
catch(Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
......@@ -2999,7 +3253,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
//('P02', ls_postlog ,'sorditem',msaleorder, mline_no, mexp_lev, ' ', ' ', msaleorder, 'S-DSP','REAS_CODE','W_POST_ORDER')
public String errorLog( String as_reas_code, String as_reas_detail, String as_table_name,
String keyfld1, String keyfld2, String keyfld3, String keyfld4, String keyfld5,
String as_tran_id, String as_tran_code, String gencode_fldname, String mod_name,Connection conn )
String as_tran_id, String as_tran_code, String gencode_fldname, String mod_name,Connection conn ) throws ITMException
{
String errorString = "",reasDetail="",sql="",reasDetailDom="";
//String gencodeFldname = "",reasCode="",modName="";
......@@ -3036,8 +3290,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
ls_reas_detail="Error";
}
as_reas_detail = ls_reas_detail;
}
System.out.println("ls_reas_detail :"+ls_reas_detail);
System.out.println("as_reas_detail :"+as_reas_detail);
System.out.println("as_table_name["+as_table_name+"]"+"keyfld1["+keyfld1+"]"+"keyfld2["+keyfld2+"]");
System.out.println("keyfld3["+keyfld3+"]"+"keyfld4["+keyfld4+"]"+"keyfld5["+keyfld5+"]");
System.out.println("as_tran_id["+as_tran_id+"]"+"as_tran_code["+as_tran_code+"]"+"gencode_fldname["+gencode_fldname+"]");
......@@ -3045,7 +3300,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
Log log = new Log();
log.setReasCode(as_reas_code);
log.setReasDetail(ls_reas_detail);
log.setReasDetail(as_reas_detail);
log.setTableName(as_table_name);
log.setKeyfld1(keyfld1);
log.setKeyfld2(keyfld2);
......@@ -3065,7 +3320,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
catch(Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
......@@ -3075,7 +3332,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
/*-----------------------------------------------------------------------------------*/
public String postLog(Log log,Connection conn) throws SQLException
public String postLog(Log log,Connection conn) throws SQLException, ITMException
{
String msg="";
String ls_table = "", ls_reas_code = "" , ls_reas_detail = "" , ls_errcode = "";
......@@ -3157,7 +3414,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if(merrcode.trim().length() ==0)
{
merrcode = "";
conn.commit();
//conn.commit();
}
else
{
......@@ -3167,16 +3424,20 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
catch(Exception e)
{
merrcode = "DS000" + "/t" + e.getMessage();
conn.rollback();
return merrcode;
//return merrcode;
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
return merrcode;
}
public String checkScheme(String itemCode, String as_order_type, String as_cust_code, String siteCode,
String stateCode, String countCode, Timestamp tranDate,Connection conn)
String stateCode, String countCode, Timestamp tranDate,Connection conn) throws ITMException
{
String ls_token = "",sql="" ,sql1="" ,ls_scheme_code = "" , ls_curscheme = "" , ls_sql = "", ls_cust_scheme_code = "", ls_apply_cust_list = "", ls_noapply_cust_list ="";
String ls_applicableordtypes = "" , ls_prevscheme = "", curscheme = "",curschemeCode="",prevscheme="",schemeCode="",ls_apply_cust = "", ls_noapply_cust = "";
......@@ -3297,14 +3558,16 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
catch(Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
return schemeCode;
}
public String sorderStatusLog(String as_sale_order, String as_log_date,
int ai_event_type, String as_line_no, String as_exp_lev, String as_reas_code,
String as_ref_descr,Connection conn) throws SQLException
String as_ref_descr,Connection conn) throws SQLException, ITMException
{
// Connection conn = null;
......@@ -3451,6 +3714,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
merrcode = "DS000" + "/t" + e.getMessage();
conn.rollback();
//return ls_errcode;
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
System.out.println("merrcode>>>>"+merrcode);
return merrcode;
......@@ -3490,7 +3758,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
public boolean invRetstr(String refSer,String invStat,Connection conn)
public boolean invRetstr(String refSer,String invStat,Connection conn) throws ITMException
{
long cnt=0;
boolean isSkip=false;
......@@ -3530,8 +3798,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
catch(Exception e)
{
System.out.println("");
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
......
package ibase.webitm.ejb.dis;
import java.io.Serializable;
import java.util.ArrayList;
/*
* Request Id:D15JSUN018
......@@ -47,11 +48,21 @@ public class SordItemBean implements Serializable
private double rateClg = 0.0;
private int stockOpt=0;
private ArrayList<StockBean> stockList=new ArrayList<StockBean>();
private SorderBean sorderBean;
public void setStockList(ArrayList stockList)
{
this.stockList=stockList;
}
public ArrayList<StockBean> getStockList()
{
return this.stockList;
}
public String getUnitStd() {
return unitStd;
......
......@@ -2,6 +2,7 @@ package ibase.webitm.ejb.dis;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.ArrayList;
/*
* Request Id:D15JSUN018
* Developer : Mahendra Jadhav
......@@ -31,7 +32,16 @@ public class SorderBean implements Serializable {
private String countCodeDlv=null;
boolean isRejected=false;
private ArrayList<SordItemBean> sorditemList=new ArrayList<SordItemBean>();
public void setSorditemList(ArrayList sorditemList)
{
this.sorditemList=sorditemList;
}
public ArrayList<SordItemBean> getSorditemList()
{
return this.sorditemList;
}
public String getSaleOrder() {
......
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