Commit e0c79f5d authored by caluka's avatar caluka

Post order Process issues resolved for QC testing


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@103573 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 35b3b581
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -5,7 +5,9 @@ import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.webitm.ejb.dis.adv.SorderConf;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.sys.UtilMethods;
//import ibase.webitm.utility.GenericUtility;
......@@ -14,6 +16,7 @@ import ibase.webitm.utility.ITMException;
import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
......@@ -50,7 +53,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
*/
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 adjDrCr,String adjCustAdv,String advAdjMode,String adjNewPrdInv,String xtraParams,Connection conn) throws ITMException, Exception
{
String retString="",frmDate="",frmCustCode="",currCode="",lrNo="",lrDate="",remarks="",sysDate="",toDateStr="";
String toCustCode="",stanCodeInit="",descpIdTo="";
......@@ -59,7 +62,8 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
String sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
double exchangeRate=0.0;
double exchangeRate=0.0;
Timestamp tranDatetTStmp=null;
HashMap<String, String> ldsInvHdrMp=new HashMap<String, String>();
/**
* Select postUpto from table 'disparam'
......@@ -132,10 +136,11 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
frmCustCode=checknull(rs.getString("cust_code"));
currCode=checknull(rs.getString("curr_code"));
lrNo=checknull(rs.getString("lr_no"));
lrDate=checknull(rs.getString("lr_date"));
//lrDate=checknull(rs.getString("lr_date"));
remarks=checknull(rs.getString("remarks"));
remarks=checknull(rs.getString("remarks"));
exchangeRate=rs.getDouble("exch_rate");
tranDatetTStmp=rs.getTimestamp("lr_date");
}
pstmt.close();
pstmt=null;
......@@ -144,6 +149,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
toDateStr=frmDate;
toCustCode=frmCustCode;
if(tranDatetTStmp != null)
{
lrDate=sdf.format(tranDatetTStmp).toString();
}else
{
lrDate="";
}
System.out.println("lrDate>>>"+lrDate);
/**
* Check lrDate is not null
* */
......@@ -160,7 +173,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
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.setTimestamp(1, tranDatetTStmp);
pstmt.setString(2, currCode);
rs=pstmt.executeQuery();
if(rs.next())
......@@ -260,7 +273,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
System.out.println("@@@@@@@@@@260:::::ldsInvHdrMp["+ldsInvHdrMp+"]");
retString=createInvoice(ldsInvHdrMp,lbClub,lbDrCr,lbAdv,tempflag,runOpt,lbCustomer,lbNewPrdInv,conn); // Missing 'lds_credit_check'
retString=createInvoice(ldsInvHdrMp,lbClub,lbDrCr,lbAdv,tempflag,runOpt,lbCustomer,lbNewPrdInv,xtraParams,conn); // Missing 'lds_credit_check'
fos1.write(("\n \n Final Return String :- [" + retString +"]\r\n").getBytes());
......@@ -309,7 +322,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
* @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
String runOpt, boolean lbCustomer, boolean lbNewPrdInv,String xtraParams, Connection conn) throws ITMException
{
// TODO Auto-generated method stub
StringBuffer xmlBuff=new StringBuffer();
......@@ -326,33 +339,41 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
HashMap<String, String> arCustomerMap=null;
String sql="";
PreparedStatement pstmt=null, pstmt1=null;
ResultSet rs=null;
PreparedStatement pstmt=null, pstmt1=null,pstmt2=null;
ResultSet rs=null,rs2=null;
String xtraParams = null;
String loginEmpCode = null,itemDescr="";
String lc_ratestd="0",lc_cstrate="0";
String round="",roundInvTo="";
double roundTo=0.0,netamt=0.0;
double lc_disc_amt=0.00,ld_discount=0.00;
double totalCommSp1=0.0,totalCommSp2=0.0,totalCommSp3=0.0,totalCommAmt=0.0;
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;
Timestamp dueDate=null,sysDateTs=null;
String acctCodeDis="",cctrCodeDis="",acctCodeAr="",cctrCodeAr = "",acctCodePr="",cctrCodePr="",marketReg = "",mfgDateStr="",expDateStr="";
double netAmt=0,taxAmt=0,commAmt=0,discAmt=0,invAmt=0;
double ld_tot_amt=0.0,ld_disc_amt=0.0,ld_net_amt=0.0;
HashMap commissionMap = null;
/**
* Generate Bean object
* */
InvoiceDetBean invoiceDetBean= null;
InitialContext ctx = null;
try
{
UserInfoBean userInfo=new UserInfoBean();
/*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();
*/
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
loginEmpCode =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode"));
termId =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId"));
SorderConf sordcnf=new SorderConf();
java.util.Date today = new java.util.Date();
Calendar cal = Calendar.getInstance();
cal.setTime(today);
......@@ -521,6 +542,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
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("<print_status><![CDATA["+"N"+"]]></print_status>");
xmlBuff.append("<confirmed><![CDATA["+"N"+"]]></confirmed>");
xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
......@@ -554,7 +576,13 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
// 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>");
if(!Double.isNaN(lcCommAmtOc))
{
xmlBuff.append("<comm_amt__oc><![CDATA["+lcCommAmtOc+"]]></comm_amt__oc>");
}else
{
xmlBuff.append("<comm_amt__oc><![CDATA["+0+"]]></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>");
......@@ -562,9 +590,52 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
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[0]]></net_amt>"); // Set net_amt
xmlBuff.append("<sales_pers_comm_3><![CDATA["+invDespMap.get("sales_pers_comm_3")+"]]></sales_pers_comm_3>");
sql="select round, case when round_to is null then 0.001 else round_to end as round_to " +
" from customer where cust_code = ?";
pstmt2= conn.prepareStatement(sql);
pstmt2.setString(1, invDespMap.get("cust_code") );
rs2=pstmt2.executeQuery();
if(rs2.next())
{
round =rs2.getString("round");
roundTo =rs2.getDouble("round_to");
}
rs2.close();
rs2 = null;
pstmt2.close();
pstmt2 = null;
if(round ==null || round.trim().length()==0)
{
sql="select round_inv_to from itemser where item_ser = ?" ;
pstmt2= conn.prepareStatement(sql);
pstmt2.setString(1, invDespMap.get("item_ser") );
rs2=pstmt2.executeQuery();
if(rs2.next())
{
roundInvTo =rs2.getString("round_inv_to");
}
rs2.close();
rs2 = null;
pstmt2.close();
pstmt2 = null;
if(roundInvTo ==null)
{
retString = "VTRND";
return retString;
}else
{
//netamt= round(netamt,roundTo);
netamt= Math.round(netamt);
xmlBuff.append("<round_adj><![CDATA["+(netamt-netAmt)+"]]></round_adj>");
xmlBuff.append("<net_amt><![CDATA["+netamt+"]]></net_amt>");
}
}else
{
netamt=geRndamt(netAmt,round,roundTo);
xmlBuff.append("<round_adj><![CDATA["+(netamt-netAmt)+"]]></round_adj>");
xmlBuff.append("<net_amt><![CDATA["+netamt+"]]></net_amt>");
}
xmlBuff.append("</Detail1>");
......@@ -587,7 +658,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
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/>");
......@@ -604,20 +675,20 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
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[0]]></tax_amt>"); //tax_amt missing
xmlBuff.append("<net_amt><![CDATA[0]]></net_amt>"); //net_amt missing
//xmlBuff.append("<net_amt><![CDATA[0]]></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("<comm_amt__oc><![CDATA[0]]></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("<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>");
......@@ -697,14 +768,19 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
if(lc_disc_amt > 0)
{
ld_discount=(lc_disc_amt * 100)/(Double.parseDouble(invTraceDetMap.get("desp_quantity__stduom")==null?"0.00":invTraceDetMap.get("desp_quantity__stduom")) * Double.parseDouble(invTraceDetMap.get("desp_rate__stduom")==null?"0.00":invTraceDetMap.get("desp_rate__stduom")));
xmlBuff.append("<discount><![CDATA["+ld_discount+"]]></discount>");
}
xmlBuff.append("<discount><![CDATA["+ld_discount+"]]></discount>");
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>");
ld_tot_amt = (Double.parseDouble(invTraceDetMap.get("desp_quantity__stduom")==null?"0.00":invTraceDetMap.get("desp_quantity__stduom")) * Double.parseDouble(invTraceDetMap.get("desp_rate__stduom")==null?"0.00":invTraceDetMap.get("desp_rate__stduom")));
ld_disc_amt = (ld_tot_amt * Double.parseDouble(invTraceDetMap.get("discount")==null?"0.00":invTraceDetMap.get("discount"))) / 100;
ld_net_amt = (ld_tot_amt + 0 - ld_disc_amt) - (Double.parseDouble(invTraceDetMap.get("disc_schem_offinv_amt")==null?"0.00":invTraceDetMap.get("disc_schem_offinv_amt"))) ;
xmlBuff.append("<net_amt><![CDATA[" +ld_net_amt+ "]]></net_amt>");
xmlBuff.append("</Detail2>");
// }
......@@ -723,21 +799,49 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
* */
// invDetBeanMap=mainInvDespDetMap.get(keyStr);
invDetBeanMap=(HashMap<String, Object>) dataList.get(1);
System.out.println("@@@@@@@@@@@ invDetBeanMap["+invDetBeanMap+"]");
System.out.println("@@@@@@@@@@@ invDetBeanMap["+invDetBeanMap.toString()+"]");
for(String keyStr:invDetBeanMap.keySet())
{
System.out.println("Detail 3:::::::::::");
lineNoDet++;
invoiceDetBean=(InvoiceDetBean) invDetBeanMap.get(keyStr);
sql="select descr from item where item_code = ?";
pstmt2= conn.prepareStatement(sql);
pstmt2.setString(1, invoiceDetBean.getItem_code() );
rs2=pstmt2.executeQuery();
if(rs2.next())
{
itemDescr =rs2.getString("descr");
}
rs2.close();
rs2 = null;
pstmt2.close();
pstmt2 = null;
/*String lineStr=String.valueOf(lineNoDet);
lineStr=" "+lineStr;
lineStr=lineStr.substring(lineStr.length()-3, lineStr.length());
commissionMap=sordcnf.calcCommission(invDespMap.get("sord_no"),lineStr , conn);
retString= checknull((String)commissionMap.get("errorStr"));
if(retString.trim().length() > 0)
{
return retString;
}
totalCommSp1= checkDouble((Double)commissionMap.get("sp1Comm"));
totalCommSp2= checkDouble((Double)commissionMap.get("sp2Comm"));
totalCommSp3= checkDouble((Double)commissionMap.get("sp3Comm"));
totalCommAmt = checkDouble((Double)commissionMap.get("netComm"));*/
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><![CDATA[" + invoiceDetBean.getItem_code() + "]]></item_code>");
xmlBuff.append("<item_descr><![CDATA[" + itemDescr + "]]></item_descr>");
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>");
......@@ -751,15 +855,25 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
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>");
ld_disc_amt=0;
ld_disc_amt =(invoiceDetBean.getmTotStdQty() * (Double.parseDouble(invoiceDetBean.getDesp_rate__stduom()==null?"0.00":invoiceDetBean.getDesp_rate__stduom()))*(Double.parseDouble(invoiceDetBean.getDiscount()==null?"0.00":invoiceDetBean.getDiscount())))/100;
xmlBuff.append("<disc_amt><![CDATA[" + ld_disc_amt + "]]></disc_amt>");
//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("<acc_code__item><![CDATA[" + invoiceDetBean.getAcc_code__item() + "]]></acc_code__item>");
//Start added by chandrashekar on 01-09-2016
xmlBuff.append("<comm_amt><![CDATA["+invoiceDetBean.getNetComm()+"]]></comm_amt>"); //comm_amt missing
xmlBuff.append("<sales_pers_comm_1><![CDATA["+invoiceDetBean.getSp1Comm()+"]]></sales_pers_comm_1>");
xmlBuff.append("<sales_pers_comm_2><![CDATA["+invoiceDetBean.getSp2Comm()+"]]></sales_pers_comm_2>");
xmlBuff.append("<sales_pers_comm_3><![CDATA["+invoiceDetBean.getSp3Comm()+"]]></sales_pers_comm_3>");
//End added by chandrashekar on 01-09-2016
/*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("<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>");
......@@ -771,20 +885,18 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("<cust_item__ref><![CDATA["+invoiceDetBean.getCust_item__ref()+"]]></cust_item__ref>");
xmlBuff.append("<tax_amt><![CDATA[0]]></tax_amt>"); //tax_amt missing
xmlBuff.append("<net_amt><![CDATA[0]]></net_amt>"); //net_amt missing
xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
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
......@@ -807,6 +919,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
tranId = arrayForTranIdIssue[1].substring(0, endIndexIssue);
System.out.println("@V@ Tran id :- [" + tranId + "]");
sql="update invdet set net_amt=(quantity__stduom*rate__stduom)- ( case when disc_amt is null then 0 else disc_amt end ) +tax_amt where invoice_id=?";
//sql="update invdet set net_amt=(quantity__stduom*rate__stduom)-disc_amt+tax_amt where invoice_id=?";
pstmt=conn.prepareStatement(sql);
......@@ -835,7 +948,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt.setDouble(2,taxAmt);
pstmt.setDouble(3,commAmt);
pstmt.setDouble(4,discAmt);
pstmt.setDouble(5,netAmt-taxAmt);
pstmt.setDouble(5,(netAmt+discAmt)-taxAmt);
pstmt.setString(6,tranId);
pstmt.executeUpdate();
pstmt.close();
......@@ -861,11 +974,11 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
double totTaxAmt=0,totNetAmt=0;
fos1.write(("Invoice successful for Dispatch id :- ["+despIdKey+"] TranId generated is:- [" + tranId +"]\n END \r\n\n").getBytes());
pstmt=conn.prepareStatement("update invoice_trace set net_amt=(quantity__stduom*rate__stduom) where invoice_id=? ");
/*pstmt=conn.prepareStatement("update invoice_trace set net_amt=(quantity__stduom*rate__stduom) where invoice_id=? ");
pstmt.setString(1, tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
pstmt=null;*/
sql="update invdet set tax_class=?,tax_chap=?,tax_env=?,tax_amt=0,net_amt=0 where invoice_id=?";
pstmt1=conn.prepareStatement(sql);
......@@ -877,10 +990,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt1.close();
pstmt1=null;
pstmt=conn.prepareStatement("select sord_no,sord_line_no,tax_class,tax_chap,tax_env,sum(tax_amt),sum(net_amt)"
/*pstmt=conn.prepareStatement("select sord_no,sord_line_no,tax_class,tax_chap,tax_env,sum(tax_amt),sum(net_amt)"
+ " from invoice_trace"
+ " where invoice_id=? "
+ " group by sord_no,sord_line_no,tax_class,tax_chap,tax_env");*/
pstmt=conn.prepareStatement("select sord_no,line_no,tax_class,tax_chap,tax_env,sum(tax_amt),sum(net_amt)"
+ " from invoice_trace"
+ " where invoice_id=? "
+ " group by sord_no,sord_line_no,tax_class,tax_chap,tax_env");
+ " group by sord_no,line_no,tax_class,tax_chap,tax_env");
pstmt.setString(1,tranId);
rs=pstmt.executeQuery();
while(rs.next())
......@@ -898,7 +1015,8 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
sql="update invdet set tax_class=?,tax_chap=?,tax_env=?,tax_amt=tax_amt+?,net_amt=net_amt+?+?"
+ " where invoice_id=? "
+ " and sord_no=? "
+ " and sord_line_no=?";
//+ " and sord_line_no=?";
+ " and line_no=?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,taxClass);
pstmt1.setString(2,taxChap);
......@@ -910,15 +1028,6 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt1.setString(8,sordNo);
pstmt1.setString(9,soLineNo);
pstmt1.executeUpdate();
// Changed by Sneha on 09-09-2016, for Closing the Open Cursor [Start]
if( pstmt1 != null )
{
pstmt1.close();
pstmt1 = null;
}
// Changed by Sneha on 09-09-2016, for Closing the Open Cursor [End]
}
rs.close();
rs=null;
......@@ -935,7 +1044,45 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt.close();
pstmt=null;
sql="update despatchdet set invoice_id = ?,quantity_inv=? where desp_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.setDouble(2,Double.parseDouble(invTraceDetMap.get("quantity")));
pstmt.setString(3,invTraceDetMap.get("desp_id"));
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
if(sysDate != null)
{
sysDateTs = java.sql.Timestamp.valueOf(genericUtility.getValidDateString(sysDate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0");
}
sql="update invoice_trace set chg_term = ?,chg_user=? ,chg_date=? where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,termId);
pstmt.setString(2,userId);
pstmt.setTimestamp(3, sysDateTs);
pstmt.setString(4,tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
sql="update invdet set chg_term = ?,chg_user=? ,chg_date=? where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,termId);
pstmt.setString(2,userId);
pstmt.setTimestamp(3, sysDateTs);
pstmt.setString(4,tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
sql="update invoice set chg_term = ?,chg_user=? ,chg_date=? where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,termId);
pstmt.setString(2,userId);
pstmt.setTimestamp(3, sysDateTs);
pstmt.setString(4,tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
/**
* Call Credit check component
* PostOrdCreditChk.java
......@@ -946,18 +1093,37 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
// 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);
// temp cpatil
/**
* Invoice Posting
* */
// temp cpatil
// PostOrdInvoicePost invPost=new PostOrdInvoicePost();
// retString=invPost.invoicePosting(tranId, conn);
System.out.println("Invoice posting ret string :- ["+retString+"]");
/*System.out.println("@@@@@@@@@@@cpatil Invoice posting start....................");
PostOrdInvoicePostLocal PostOrdInvoicePost = null;
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
PostOrdInvoicePost = (PostOrdInvoicePostLocal) ctx.lookup("ibase/PostOrdInvoicePost/local");
String forcedFlag="N";
String retString1=PostOrdInvoicePost.invoicePosting(tranId, xtraParams, forcedFlag,conn);
System.out.println("PostOrdInvoicePost return string >>>>"+retString1);
PostOrdInvoicePost invPost=new PostOrdInvoicePost();
String retString1=invPost.invoicePosting(tranId, conn);
System.out.println("Invoice posting ret string :- ["+retString1+"]");
if( retString1 != null && retString1.trim().length() > 0 )
{
return retString1;
}
sql="update invoice set confirmed = 'Y' where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;*/
}
else
......@@ -1415,12 +1581,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
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="";
String disc_schem_billback_amt="",disc_schem_offinv_amt="",retString="";
double totalCommSp1=0.0,totalCommSp2=0.0,totalCommSp3=0.0,totalCommAmt=0.0;
double lc_desp_std_rate=0.0;
PreparedStatement pstmt=null;
ResultSet rs=null;
String beanMapKey="",lsLineType="";
ArrayList<Object> mainArrayList= new ArrayList<Object>();
HashMap commissionMap = null;
/**
* Generate Bean object
* */
......@@ -1430,24 +1598,24 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
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,"
+ "despatchdet.unit,despatchdet.quantity__stduom as dquantity__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,"
+ "sorddet.quantity__stduom as squantity__stduom,sorddet.rate__stduom as srate__stduom,sorddet.rate,despatchdet.quantity_real,despatchdet.quantity_inv,"
+ "despatchdet.invoice_id,despatchdet.no_art,despatchdet.rate__clg,despatchdet.rate__stduom as drate__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.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(2,sordNo);
pstmt.setString(2,despId);
pstmt.setString(3,despId);
pstmt.setString(4,despId);
rs=pstmt.executeQuery();
while(rs.next())
{
......@@ -1469,7 +1637,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
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"));
desp_quantity__stduom=checknull(rs.getString("dquantity__stduom"));
tax_class=checknull(rs.getString("tax_class"));
tax_chap=checknull(rs.getString("tax_chap"));
tax_env=checknull(rs.getString("tax_env"));
......@@ -1478,21 +1646,32 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
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"));
sord_quantity__stduom=checknull(rs.getString("squantity__stduom"));
sord_rate__stduom=checknull(rs.getString("srate__stduom"));
//rate=checknull(rs.getString("rate"));
lc_desp_std_rate=Double.parseDouble(checkNullDouble(rs.getString("drate__stduom")));
if(lc_desp_std_rate>0)
{
rate =""+(lc_desp_std_rate/Double.parseDouble(checkNullDouble(conv__rtuom_stduom)));
}else
{
rate =""+(lc_desp_std_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"));
desp_rate__stduom=checknull(rs.getString("drate__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"));
if(disc_schem_offinv_amt == null || disc_schem_offinv_amt.trim().length()==0)
{
disc_schem_offinv_amt="0";
}
invTraceMap.put("desp_id", desp_id);
invTraceMap.put("line_no", line_no);
......@@ -1566,6 +1745,31 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
// invDespDetMap.put("cust_item__ref", lsCustitemRef);
// mainInvDespDetMap.put(rs.getString("desp_id"), invDespDetMap);
//Start Added by chandrashekar on 01-09-2016
double ld_tot_amt=0.0,ld_net_amt=0.0,ld_tax_amt=0.0,ld_disc_amt=0.0;
ld_tot_amt = (Double.parseDouble(desp_quantity__stduom) * Double.parseDouble(desp_rate__stduom));
ld_disc_amt = (ld_tot_amt * Double.parseDouble(discount)) / 100;
ld_net_amt = (ld_tot_amt + ld_tax_amt - ld_disc_amt) - (Double.parseDouble(disc_schem_offinv_amt));
invTraceMap.put("tax_amt",String.valueOf(ld_tax_amt));
invTraceMap.put("net_amt",String.valueOf(ld_net_amt));
System.out.println("line_no["+line_no+"]");
String lineStr="";
lineStr=" "+checknull(line_no).trim();
lineStr=lineStr.substring(lineStr.length()-3, lineStr.length());
System.out.println("lineStr>>>["+lineStr+"]");
commissionMap=calcCommission(invTraceMap,lineStr,conn);
retString= checknull((String)commissionMap.get("errorStr"));
totalCommSp1= checkDouble((Double)commissionMap.get("sp1Comm"));
totalCommSp2= checkDouble((Double)commissionMap.get("sp2Comm"));
totalCommSp3= checkDouble((Double)commissionMap.get("sp3Comm"));
totalCommAmt = checkDouble((Double)commissionMap.get("netComm"));
invTraceMap.put("sp1Comm", commissionMap.get("sp1Comm").toString());
invTraceMap.put("sp2Comm", commissionMap.get("sp2Comm").toString());
invTraceMap.put("sp3Comm", commissionMap.get("sp3Comm").toString());
invTraceMap.put("netComm", commissionMap.get("netComm").toString());
//End Added by chandrashekar on 01-09-2016
System.out.println("@@@@@@@@@@@@@@@@@ invTraceMap["+invTraceMap+"]");
mainInvDespDetMap.put(rs.getString("line_no"), invTraceMap);
......@@ -1573,7 +1777,9 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
System.out.println("@@@@@@@@@@@@@@@@@ mainInvDespDetMap["+mainInvDespDetMap+"]");
beanMapKey=rs.getString("sord_no").trim()+"@".trim()+rs.getString("line_no__sord").trim();
//beanMapKey=rs.getString("sord_no").trim()+"@".trim()+rs.getString("line_no__sord").trim();
beanMapKey=rs.getString("sord_no").trim()+"@".trim()+rs.getString("line_no").trim();
System.out.println("beanMapKey>>>>["+beanMapKey+"]");
/**
* Check generated key is exist in
* Bean map
......@@ -1627,8 +1833,13 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
invoiceDetBean.setDisc_schem_offinv_amt(checknull(disc_schem_offinv_amt));
invoiceDetBean.setAcc_code__item(lsAcctSchemedet);
invoiceDetBean.setFin_scheme(lsFinscheme);
invoiceDetBean.setSp1Comm(commissionMap.get("sp1Comm").toString());//Start Added by chandrashekar on 01-09-2016
invoiceDetBean.setSp2Comm(commissionMap.get("sp2Comm").toString());//Start Added by chandrashekar on 01-09-2016
invoiceDetBean.setSp3Comm(commissionMap.get("sp3Comm").toString());//Start Added by chandrashekar on 01-09-2016
invoiceDetBean.setNetComm(commissionMap.get("netComm").toString());//Start Added by chandrashekar on 01-09-2016
invDetBeanMap.put(beanMapKey, invoiceDetBean);
System.out.println("@@@@@1634 invoiceDetBean added into invDetBeanMap........");
}
else
{
......@@ -1819,7 +2030,20 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
private String fin_scheme;
private String conv__rtuom_stduom;
private String sord_unit__std;
private String sp1Comm;
private String sp2Comm;
private String sp3Comm;
private String netComm;
public String getNetComm()
{
return netComm;
}
public void setNetComm(String netComm)
{
this.netComm = netComm;
}
public double getmTotDespQty()
{
return mTotDespQty;
......@@ -2188,7 +2412,30 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
{
this.sord_unit__std = sord_unit__std;
}
public String getSp1Comm()
{
return sp1Comm;
}
public void setSp1Comm(String sp1Comm)
{
this.sp1Comm = sp1Comm;
}
public String getSp2Comm()
{
return sp2Comm;
}
public void setSp2Comm(String sp2Comm)
{
this.sp2Comm = sp2Comm;
}
public String getSp3Comm()
{
return sp3Comm;
}
public void setSp3Comm(String sp3Comm)
{
this.sp3Comm = sp3Comm;
}
}
/**
*
......@@ -2604,4 +2851,1235 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
}
private double geRndamt(double netAmt, String round, double roundTo)
{
// TODO Auto-generated method stub
double rndAmt=0.0,multiply=1,unrAmt=0;
try
{
if(netAmt<0)
{
netAmt=abs(netAmt);
}else if(netAmt==0)
{
return netAmt;
}else if("N".equalsIgnoreCase(round))
{
return netAmt;
}else if(roundTo==0)
{
return netAmt;
}
if("X".equalsIgnoreCase(round))
{
if(netAmt%roundTo>0)
{
rndAmt=netAmt-(netAmt%roundTo)+roundTo;
}else
{
rndAmt=netAmt;
}
}else if("P".equalsIgnoreCase(round))
{
rndAmt=netAmt-(netAmt%roundTo);
}else if("R".equalsIgnoreCase(round))
{
if(netAmt%roundTo<roundTo/2)
{
rndAmt=netAmt-(netAmt%roundTo);
}else
{
rndAmt=netAmt-(netAmt%roundTo)+roundTo;
}
}else
{
rndAmt=netAmt;
}
} catch (Exception e)
{
// TODO: handle exception
}
return rndAmt;
}
private double abs(double netAmt)
{
// TODO Auto-generated method stub
return 0;
}
private double checkDouble(Double double1)
{
if (double1 == null)
{
double1 = 0.0;
}
return double1;
}
public HashMap calcCommission(HashMap calcCommission,String lineNo ,Connection conn) throws ITMException
{
String sql="" ,currCode = "",baseCurrency = "",errorCode="",errString="";
String commPercOn="",currCodeComm="",commPercOn1="",currCodeComm1="",commPercOn2="",currCodeComm2="",dlvTerm="";
String commHdr = "N",commPercOnDet1="",commPercOnDet2="",commPercOnDet3="",itemCode="",siteCode="",finEntity="",insReqd="",frtReqd="";
String custCode="",itemSer="",salesPers="",salesPers1="",salesPers2="",priceListDate="";
String saleOrder="";
String despId="";
double exchRate=0,commPerc=0,exchRateComm=0,commPerc1=0,exchRateComm1=0,commPerc2=0,exchRateComm2=0,commPercDet1=0,commPercDet2=0,commPercDet3=0;
double taxAmt=0,netAmt=0,qtyStduom=0,rateStduom=0,frtAmt=0,exchFrtRate=0,insAmt=0,exchInsRate=0,fobAmt=0,netComm=0,ordPrice=0;
double commPerUnit=0,commBl1=0,commBl2=0,commBl3=0,commPerUnit1=0.0,commPerUnit2=0.0,commPerUnit3=0.0,qtyComm=0.0,qtyComm1=0.0,qtyComm2=0.0,qtyComm3=0.0;
double sp1Comm=0.0,sp2Comm=0.0,sp3Comm=0.0,totalCommBl=0.0,commAmt=0.0,commAmt1=0.0,commAmt2=0.0,commAmt3=0.0;
double baseAmtComm=0.0,baseAmtComm1=0.0,baseAmtComm2=0.0,baseAmtComm3=0.0,assessAmt=0.0,asesAmtComm=0.0,asesAmtComm1=0.0,asesAmtComm2=0.0,asesAmtComm3=0.0;
double salesAmt=0.0,taxAmtComm=0.0,taxAmtComm1=0.0,taxAmtComm2=0.0,taxAmtComm3=0.0,fobComm=0.0,fobComm1=0.0,fobComm2=0.0,fobComm3=0.0;
double fobQtyComm=0.0,fobQtyComm1=0.0,fobQtyComm2=0.0,fobQtyComm3=0.0,amtQtyComm=0.0,amtQtyComm1=0.0,amtQtyComm2=0.0,amtQtyComm3=0.0;
double taxAmtHdr=0.0,taxAmtDet=0.0,netAmtHdr=0.0,netAmtDet=0.0;
String ls_sitecd_d="",ls_currcd_d="",ls_currcd_frt_d="",ls_currcd_ins_d="",ls_curr_code__base="";
double lc_exchrt_d=0.0,lc_exchrt_frt_d=0.0,lc_exchrt_ins_d=0.0,lc_exch_rate=0.0;
double lc_exchrt=0.0;
String ldt_despdt="";
Date plDate=null;
PreparedStatement pstmt = null ;
ResultSet rs = null;
HashMap commissionMap = null;
HashMap commPercMap = null;
HashMap commPercSalesMap=null;
ITMDBAccessEJB itmDBAccessLocal = new ITMDBAccessEJB();
try
{
commissionMap = new HashMap();
saleOrder=(String) calcCommission.get("sord_no");
//Get data from sale order...
sql ="SELECT dlv_term,curr_code,exch_rate,exch_rate__frt,exch_rate__ins," +
"ins_amt,frt_amt,comm_perc,comm_perc__on,curr_code__comm," +
"exch_rate__comm,comm_perc_1,comm_perc_on_1,curr_code__comm_1," +
"exch_rate__comm_1,comm_perc_2,comm_perc_on_2,curr_code__comm_2," +
"exch_rate__comm_2,pl_date,cust_code,item_ser,sales_pers," +
"sales_pers__1,sales_pers__2,tot_amt, tax_amt FROM sorder WHERE sale_order =?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
rs = pstmt.executeQuery();
if(rs.next())
{
dlvTerm = rs.getString("dlv_term");
currCode = rs.getString("curr_code");
exchRate = rs.getDouble("exch_rate");
exchFrtRate =rs.getDouble("exch_rate__frt");
exchInsRate =rs.getDouble("exch_rate__ins");
insAmt = rs.getDouble("ins_amt");
frtAmt = rs.getDouble("frt_amt");
commPerc = rs.getDouble("comm_perc");
commPercOn = rs.getString("comm_perc__on");
currCodeComm = rs.getString("curr_code__comm");
exchRateComm = rs.getDouble("exch_rate__comm");
commPerc1 = rs.getDouble("comm_perc_1");
commPercOn1 = rs.getString("comm_perc_on_1");
currCodeComm1 = rs.getString("curr_code__comm_1");
exchRateComm1 = rs.getDouble("exch_rate__comm_1");
commPerc2 = rs.getDouble("comm_perc_2");
commPercOn2 = rs.getString("comm_perc_on_2");
commPercOn2 = rs.getString("comm_perc_on_2");
currCodeComm2 = rs.getString("curr_code__comm_2");
exchRateComm2 = rs.getDouble("exch_rate__comm_2");
priceListDate = rs.getString("pl_date");
custCode= rs.getString("cust_code");
itemSer= rs.getString("item_ser");
salesPers= rs.getString("sales_pers");
salesPers1= rs.getString("sales_pers__1");
salesPers2= rs.getString("sales_pers__2");
taxAmtHdr =rs.getDouble("tax_amt");
netAmtHdr =rs.getDouble("tot_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
commHdr = "N";
baseCurrency=currCode;
if( (commPerc > 0) || (commPerc1 > 0) || (commPerc2 > 0))
{
commHdr = "Y";
}
if("N".equalsIgnoreCase(commHdr) && lineNo.trim().length() > 0)
{
sql="SELECT comm_perc_on_1, comm_perc_on_2, comm_perc_on_3, comm_perc_1, comm_perc_2, comm_perc_3, " +
"tax_amt,net_amt FROM sorddet WHERE sale_order = ? AND line_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNo);
rs = pstmt.executeQuery();
if(rs.next())
{
commPercOnDet1 =rs.getString("comm_perc_on_1");
commPercOnDet2 =rs.getString("comm_perc_on_2");
commPercOnDet3 =rs.getString("comm_perc_on_3");
commPercDet1 =rs.getDouble("comm_perc_1");
commPercDet2 =rs.getDouble("comm_perc_2");
commPercDet3 =rs.getDouble("comm_perc_3");
taxAmtDet =rs.getDouble("tax_amt");
netAmtDet =rs.getDouble("net_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(commPercOnDet1 != null && commPercOnDet1.trim().length() > 0)
{
commPercOn = commPercOnDet1;
}
if(commPercOnDet2 != null && commPercOnDet2.trim().length() > 0)
{
commPercOn1 = commPercOnDet2;
}
if(commPercOnDet3 != null && commPercOnDet3.trim().length() > 0)
{
commPercOn2 = commPercOnDet3;
}
if(commPercDet1 > 0)
{
commPerc = commPercDet1;
}
if(commPercDet2 > 0)
{
commPerc1 = commPercDet2;
}
if(commPercDet3 > 0)
{
commPerc2 = commPercDet3;
}
System.out.println(">>>>>> in detail commPercOn:"+commPercOn+" "+commPercOn1+" "+commPercOn2);
System.out.println(">>>>>> in detail commPerc:"+commPerc+" "+commPerc1+" "+commPerc2);
}
despId=(String) calcCommission.get("desp_id");
if(despId !=null && despId.trim().length()>0)
{
sql="select desp_date,site_code,curr_code,curr_code__frt,curr_code__ins,"+
"exch_rate,exch_rate__frt,exch_rate__ins" +
" from despatch where desp_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,despId);
rs = pstmt.executeQuery();
if(rs.next())
{
ldt_despdt =rs.getString("desp_date");
ls_sitecd_d =rs.getString("site_code");
ls_currcd_d =rs.getString("curr_code");
ls_currcd_frt_d =rs.getString("curr_code__frt");
ls_currcd_ins_d =rs.getString("curr_code__ins");
lc_exchrt_d =rs.getDouble("exch_rate");
lc_exchrt_frt_d = rs.getDouble("exch_rate__frt");
lc_exchrt_ins_d = rs.getDouble("exch_rate__ins");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql="select curr_code from finent f, site s" +
" where f.fin_entity = s.fin_entity and s.site_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,ls_sitecd_d);
rs = pstmt.executeQuery();
if(rs.next())
{
ls_curr_code__base = rs.getString(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(calcCommission.get("exch_rate")!= null)
{
lc_exchrt_d=checkDouble((Double) calcCommission.get("exch_rate"));
}
if(lc_exchrt_d>0)
{
lc_exchrt_d=lc_exchrt_d;
}
if(lc_exchrt_d==0)//// For Order Exch rate
{
lc_exchrt_d=finCommon.getDailyExchRateSellBuy(ls_currcd_d, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if(lc_exchrt_d>0)
{
lc_exch_rate = lc_exchrt_d;
}
}else
{
lc_exch_rate = lc_exchrt_d;
}
if(ls_currcd_frt_d.equalsIgnoreCase(ls_currcd_d))// For Frt Exch rate
{
exchFrtRate = lc_exch_rate;
}else if (lc_exchrt_frt_d==0)
{
lc_exchrt_frt_d=finCommon.getDailyExchRateSellBuy(ls_currcd_frt_d, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if(lc_exchrt_frt_d>0)
{
exchFrtRate = lc_exchrt_frt_d;
}
}else
{
exchFrtRate = lc_exchrt_frt_d;
}
if(ls_currcd_ins_d.equalsIgnoreCase(ls_currcd_d)) // For Ins Exch rate
{
exchInsRate = lc_exch_rate;
}else if(lc_exchrt_ins_d==0)
{
lc_exchrt_ins_d = finCommon.getDailyExchRateSellBuy(ls_currcd_ins_d, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if (lc_exchrt_ins_d > 0)
{
exchInsRate = lc_exchrt_ins_d;
}
}else
{
exchInsRate = lc_exchrt_ins_d;
}
if (currCodeComm != null && currCodeComm.trim().length()>0 ) // For Comm_1 Exch rate
{
if (currCodeComm.equalsIgnoreCase(ls_currcd_d))
{
exchRateComm = lc_exch_rate;
} else
{
lc_exchrt = finCommon.getDailyExchRateSellBuy(currCodeComm, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if (lc_exchrt > 0)
{
exchRateComm = lc_exchrt;
}
}
}
lc_exch_rate=0;
if (currCodeComm1 != null && currCodeComm1.trim().length()>0 ) // For Comm_2 Exch rate
{
if (currCodeComm1.equalsIgnoreCase(ls_currcd_d))
{
exchRateComm1 = lc_exch_rate;
} else
{
lc_exchrt = finCommon.getDailyExchRateSellBuy(currCodeComm1, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if (lc_exchrt > 0)
{
exchRateComm1 = lc_exchrt;
}
}
}
lc_exch_rate=0;
if (currCodeComm2 != null && currCodeComm2.trim().length()>0 ) // For Comm_2 Exch rate
{
if (currCodeComm2.equalsIgnoreCase(ls_currcd_d))
{
exchRateComm2 = lc_exch_rate;
} else
{
lc_exchrt = finCommon.getDailyExchRateSellBuy(currCodeComm2, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if (lc_exchrt > 0)
{
exchRateComm2 = lc_exchrt;
}
}
}
currCode = ls_currcd_d;
}
ls_curr_code__base = currCode;
if (lc_exch_rate==0)
{
lc_exch_rate = 1;
}
if (exchRate==0)
{
exchRate = 1;
}
if (exchFrtRate==0)
{
exchFrtRate = 1;
}
if (exchInsRate==0)
{
exchInsRate = 1;
}
currCode=checknull(currCode);
commPercOn=checknull(commPercOn);
commPercOn1=checknull(commPercOn1);
commPercOn2=checknull(commPercOn2);
currCodeComm=checknull(currCodeComm);
currCodeComm1=checknull(currCodeComm1);
currCodeComm2=checknull(currCodeComm2);
exchRateComm=(exchRateComm==0)?1:exchRateComm;
exchRateComm1=(exchRateComm1==0)?1:exchRateComm1;
exchRateComm2=(exchRateComm2==0)?1:exchRateComm2;
salesPers=checknull(salesPers);
salesPers1=checknull(salesPers1);
salesPers2=checknull(salesPers2);
//lineNo=checknull(lineNo);
if(despId== null || despId.trim().length()==0)
{
if ("Y".equalsIgnoreCase(commHdr))
{
netAmt = netAmtHdr;
taxAmt = taxAmtHdr;
} else
{
netAmt = netAmtDet;
taxAmt = taxAmtDet;
}
}else
{
netAmt = Double.parseDouble(calcCommission.get("net_amt").toString());
taxAmt = Double.parseDouble(calcCommission.get("tax_amt").toString());
}
if(lineNo.trim().length()>0)
{
if(despId==null || despId.trim().length()==0)
{
}else
{
if(netAmt<=0 && Double.parseDouble(calcCommission.get("desp_rate__stduom").toString()) >0)
{
errString = itmDBAccessLocal.getErrorString("","''VTCOMMERR''","");
commPercMap.put("errorStr", errString);
return commPercMap;
}
}
}else
{
if(netAmt <= 0)
{
errString = itmDBAccessLocal.getErrorString("","''VTCOMMERR''","");
commPercMap.put("errorStr", errString);
return commPercMap;
}
}
sql="SELECT ins_reqd,frt_reqd FROM delivery_term WHERE dlv_term = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, dlvTerm);
rs = pstmt.executeQuery();
if(rs.next())
{
insReqd = rs.getString("ins_reqd");
frtReqd = rs.getString("frt_reqd");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("netAmt>>>"+netAmt);
System.out.println("exchRate>>>"+exchRate);
netAmt =netAmt * exchRate;
taxAmt =taxAmt * exchRate;
frtAmt =frtAmt * exchFrtRate;
insAmt =insAmt * exchInsRate;
if("Y".equalsIgnoreCase(insReqd) && "Y".equalsIgnoreCase(frtReqd)) //CIF
{
fobAmt = netAmt - frtAmt - insAmt;
}
else if("N".equalsIgnoreCase(insReqd) && "Y".equalsIgnoreCase(frtReqd)) //C&F
{
fobAmt = netAmt - frtAmt;
}
else if("Y".equalsIgnoreCase(insReqd) && "N".equalsIgnoreCase(frtReqd)) //CIP
{
fobAmt = netAmt - insAmt;
}
else if("N".equalsIgnoreCase(insReqd) && "N".equalsIgnoreCase(frtReqd)) //FOB
{
fobAmt = netAmt;
}
fobAmt = fobAmt - taxAmt;
if(lineNo.trim().length() > 0)
{
System.out.println(">>>>>>qty for detail");
sql="SELECT quantity__stduom, rate__stduom, item_code FROM despatchdet where desp_id =? and line_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,despId);
pstmt.setString(2,lineNo.trim());
rs = pstmt.executeQuery();
if(rs.next())
{
qtyStduom = rs.getDouble(1);
rateStduom = rs.getDouble(2);
itemCode = rs.getString(3);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if("B".equalsIgnoreCase(commPercOn) || "B".equalsIgnoreCase(commPercOn1) || "B".equalsIgnoreCase(commPercOn2))
{
netComm=0;
ordPrice= rateStduom;
//Calling function for picking base comm perc for business logic
commPercMap=commPercBase(custCode,itemCode,itemSer,ordPrice,priceListDate,conn);
errString= checkNull((String) commPercMap.get("errorStr"));
commPerUnit= checkDouble((Double)commPercMap.get("commPerc"));
if(errString.trim().length() > 0)
{
commissionMap.put("errorStr", errString);
return commissionMap;
//goto exit_now
}
if(commPerUnit == 0 && commPerc == 0 && commPerc1 == 0 && commPerc2 == 0)
{
errString = itmDBAccessLocal.getErrorString("","VTNOPERC","");
netComm=0;
commissionMap.put("errorStr", errString);
return commissionMap;
}
}
//Option: Business Logic 1
if("B".equalsIgnoreCase(commPercOn) && commPerc==0)
{
//commision % not entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
commBl1= qtyStduom * commPerUnit * exchRateComm;
}
else
{
commBl1= qtyStduom * commPerUnit * exchRate;
}
}
else if("B".equalsIgnoreCase(commPercOn) && commPerc > 0)
{
//commission % entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
commBl1= qtyStduom * commPerc * exchRateComm;
}
else
{
commBl1= qtyStduom * commPerc * exchRate;
}
}
//Option: Business Logic 2
if("B".equalsIgnoreCase(commPercOn1) && commPerc1==0)
{
//commision % not entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
commBl2= qtyStduom * commPerUnit * exchRateComm1;
}
else
{
commBl2= qtyStduom * commPerUnit * exchRate;
}
}
else if("B".equalsIgnoreCase(commPercOn1) && commPerc1 > 0)
{
//commission % entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
commBl2= qtyStduom * commPerc1 * exchRateComm1;
}
else
{
commBl2= qtyStduom * commPerc1 * exchRate;
}
}
//Option: Business Logic 3
if("B".equalsIgnoreCase(commPercOn2) && commPerc2==0)
{
//commision % not entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
commBl3= qtyStduom * commPerUnit * exchRateComm2;
}
else
{
commBl3= qtyStduom * commPerUnit * exchRate;
}
}
else if("B".equalsIgnoreCase(commPercOn2) && commPerc2 > 0)
{
//commission % entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
commBl3= qtyStduom * commPerc2 * exchRateComm2;
}
else
{
commBl3= qtyStduom * commPerc2 * exchRate;
}
}
//Business Logic Sales Person
netComm=0;
ordPrice= rateStduom;
if("S".equalsIgnoreCase(commPercOn) || "S".equalsIgnoreCase(commPercOn1) || "S".equalsIgnoreCase(commPercOn2))
{
if("S".equalsIgnoreCase(commPercOn))
{
commPercSalesMap=commPercSalesPers(salesPers,ordPrice,priceListDate,itemCode,conn);
errString= checkNull((String) commPercSalesMap.get("errorStr"));
if(errString.trim().length() > 0)
{
commissionMap.put("errorStr", errString);
return commissionMap;
//goto exit_now
}
commPerUnit1= checkDouble((Double)commPercSalesMap.get("commPercSales"));
}
if("S".equalsIgnoreCase(commPercOn1))
{
commPercSalesMap= commPercSalesPers(salesPers1,ordPrice,priceListDate,itemCode,conn);
errString= checkNull((String) commPercSalesMap.get("errorStr"));
if(errString.trim().length() > 0)
{
commissionMap.put("errorStr", errString);
return commissionMap;
//goto exit_now
}
commPerUnit2= checkDouble((Double)commPercSalesMap.get("commPercSales"));
}
if("S".equalsIgnoreCase(commPercOn2))
{
commPercSalesMap= commPercSalesPers(salesPers2,ordPrice,priceListDate,itemCode,conn);
errString= checkNull((String) commPercSalesMap.get("errorStr"));
if(errString.trim().length() > 0)
{
commissionMap.put("errorStr", errString);
return commissionMap;
//goto exit_now
}
commPerUnit3= checkDouble((Double)commPercSalesMap.get("commPercSales"));
}
if(commPerUnit1 == 0 && commPerUnit2 == 0 && commPerUnit3 == 0 && commPerc==0 && commPerc1==0 && commPerc2==0)
{
errString = itmDBAccessLocal.getErrorString("","VTNOPERC","");
netComm=0;
commissionMap.put("errorStr", errString);
return commissionMap;
}
}
//Option: 1
if("S".equalsIgnoreCase(commPercOn) && commPerc==0)
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
commBl1= qtyStduom * commPerUnit1 * exchRateComm;
}
else
{
commBl1= qtyStduom * commPerUnit1 * exchRate;
}
}
else if("S".equalsIgnoreCase(commPercOn) && commPerc > 0)
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
commBl1= qtyStduom * commPerc * exchRateComm;
}
else
{
commBl1= qtyStduom * commPerc * exchRate;
}
}
//Option: 2
if("S".equalsIgnoreCase(commPercOn1) && commPerc1==0)
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
commBl2= qtyStduom * commPerUnit2 * exchRateComm1;
}
else
{
commBl2= qtyStduom * commPerUnit2 * exchRate;
}
}
else if("S".equalsIgnoreCase(commPercOn1) && commPerc1 > 0)
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
commBl2= qtyStduom * commPerc1 * exchRateComm1;
}
else
{
commBl2= qtyStduom * commPerc1 * exchRate;
}
}
//Option: 3
if("S".equalsIgnoreCase(commPercOn2) && commPerc2==0)
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
commBl3= qtyStduom * commPerUnit3 * exchRateComm2;
}
else
{
commBl3= qtyStduom * commPerUnit3 * exchRate;
}
}
else if("S".equalsIgnoreCase(commPercOn2) && commPerc2 > 0)
{
//commission % entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
commBl3= qtyStduom * commPerc2 * exchRateComm2;
}
else
{
commBl3= qtyStduom * commPerc2 * exchRate;
}
}
//end.. Option : Business Logic Sales Person
if("Q".equalsIgnoreCase(commPercOn)) //commPercOn for Q
{
//comm calc in base currency
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
qtyComm1= qtyStduom * commPerc * exchRateComm;
}
else
{
qtyComm1= qtyStduom * commPerc * exchRate;
}
}
if("Q".equalsIgnoreCase(commPercOn1)) //commPercOn1 for Q
{
//comm calc in base currency
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
qtyComm2= qtyStduom * commPerc1 * exchRateComm1;
}
else
{
qtyComm2= qtyStduom * commPerc1 * exchRate;
}
}
if("Q".equalsIgnoreCase(commPercOn2)) //commPercOn2 for Q
{
//comm calc in base currency
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
qtyComm3= qtyStduom * commPerc2 * exchRateComm2;
}
else
{
qtyComm3= qtyStduom * commPerc2 * exchRate;
}
}
qtyComm=qtyComm + qtyComm1 + qtyComm2 + qtyComm3 + commBl1 + commBl2 + commBl3;
sp1Comm = sp1Comm + commBl1 + qtyComm1;
sp2Comm = sp2Comm + commBl2 + qtyComm2;
sp3Comm = sp3Comm + commBl3 + qtyComm3;
qtyComm1=0;
qtyComm2=0;
qtyComm3=0;
qtyStduom=0;
commBl1=0;
commBl2=0;
commBl3=0;
}
if("B".equalsIgnoreCase(commPercOn) || "B".equalsIgnoreCase(commPercOn1) || "B".equalsIgnoreCase(commPercOn2) )
{
totalCommBl= qtyComm;
}
//To calculate commission on AMOUNT
if("A".equalsIgnoreCase(commPercOn))
{
commAmt1= (netAmt * commPerc) / 100;
}
if("A".equalsIgnoreCase(commPercOn1))
{
commAmt2= (netAmt * commPerc1) / 100;
}
if("A".equalsIgnoreCase(commPercOn2))
{
commAmt3= (netAmt * commPerc2) / 100;
}
commAmt= commAmt1 + commAmt2 + commAmt3;
sp1Comm= sp1Comm + commAmt1;
sp2Comm= sp2Comm + commAmt2;
sp3Comm= sp3Comm + commAmt3;
//if line no is not available
if(lineNo.trim().length() == 0)
{
System.out.println(">>>>>");
sql="SELECT SUM(quantity__stduom) AS quantity__stduom FROM FROM despatchdet where desp_id =? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,despId);
rs = pstmt.executeQuery();
if(rs.next())
{
qtyStduom = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//To calculate commission on Quantity...
if("Q".equalsIgnoreCase(commPercOn))
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
qtyComm1 = qtyStduom * commPerc * exchRateComm;
}
else
{
qtyComm1 = qtyStduom * commPerc * exchRate;
}
}
if("Q".equalsIgnoreCase(commPercOn1))
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
qtyComm2 = qtyStduom * commPerc1 * exchRateComm1;
}
else
{
qtyComm2 = qtyStduom * commPerc1 * exchRate;
}
}
if("Q".equalsIgnoreCase(commPercOn2))
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
qtyComm3 = qtyStduom * commPerc2 * exchRateComm2;
}
else
{
qtyComm3 = qtyStduom * commPerc2 * exchRate;
}
}
qtyComm = qtyComm + qtyComm1 + qtyComm2 + qtyComm3 + commBl1 + commBl2 + commBl3;
sp1Comm= sp1Comm + commBl1 + qtyComm1;
sp2Comm= sp2Comm + commBl2 + qtyComm2 ;
sp3Comm= sp3Comm + commBl3 + qtyComm3 ;
qtyStduom = 0;
//System.out.println("If line is o =" +commissionQty+" "+salesPersComm+" "+salesPersComm1+"
}
//To calculate commission on BASE AMOUNT
if("E".equalsIgnoreCase(commPercOn))
{
baseAmtComm1= (( netAmt - taxAmt) * commPerc) / 100;
}
if("E".equalsIgnoreCase(commPercOn1))
{
baseAmtComm2= (( netAmt - taxAmt) * commPerc1) / 100;
}
if("E".equalsIgnoreCase(commPercOn2))
{
baseAmtComm3= (( netAmt - taxAmt) * commPerc2) / 100;
}
baseAmtComm = baseAmtComm1 + baseAmtComm2 + baseAmtComm3;
sp1Comm = sp1Comm + baseAmtComm1;
sp2Comm = sp2Comm + baseAmtComm2;
sp3Comm = sp3Comm + baseAmtComm3;
//To calculate commission on ASSESSABLE AMOUNT
if("M".equalsIgnoreCase(commPercOn) || "M".equalsIgnoreCase(commPercOn1) || "M".equalsIgnoreCase(commPercOn2) )
{
sql="SELECT ddf_get_tax_detail('S-ORD',sale_order,line_no,'EXC_TAX_CODE','A') AS asses_amt FROM sorddet WHERE sale_order = ? AND line_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNo);
rs = pstmt.executeQuery();
if(rs.next())
{
assessAmt = rs.getDouble("asses_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
if("M".equalsIgnoreCase(commPercOn))
{
asesAmtComm1= (assessAmt * commPerc) / 100;
asesAmtComm1= asesAmtComm1 * exchRate;
}
if("M".equalsIgnoreCase(commPercOn1))
{
asesAmtComm2= (assessAmt * commPerc1) / 100;
asesAmtComm2= asesAmtComm2 * exchRate;
}
if("M".equalsIgnoreCase(commPercOn2))
{
asesAmtComm3= (assessAmt * commPerc2) / 100;
asesAmtComm3= asesAmtComm3 * exchRate;
}
asesAmtComm= asesAmtComm1 + asesAmtComm2 + asesAmtComm3;
sp1Comm = sp1Comm + asesAmtComm1;
sp2Comm = sp2Comm + asesAmtComm2;
sp3Comm = sp3Comm + asesAmtComm3;
//To calculate commission on Taxable Amount
if("T".equalsIgnoreCase(commPercOn) || "T".equalsIgnoreCase(commPercOn1) || "T".equalsIgnoreCase(commPercOn2))
{
sql="SELECT ddf_get_tax_detail('S-ORD',sale_order,line_no,'SALE_TAX_CODE','A') as sales_amt FROM sorddet WHERE sale_order = ? AND line_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNo);
rs = pstmt.executeQuery();
if(rs.next())
{
salesAmt = rs.getDouble("sales_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
if("T".equalsIgnoreCase(commPercOn))
{
taxAmtComm1= (salesAmt * commPerc) / 100;
taxAmtComm1= taxAmtComm1 * exchRate;
}
if("T".equalsIgnoreCase(commPercOn1))
{
taxAmtComm2= (salesAmt * commPerc1) / 100;
taxAmtComm2= taxAmtComm2 * exchRate;
}
if("T".equalsIgnoreCase(commPercOn2))
{
taxAmtComm3= (salesAmt * commPerc2) / 100;
taxAmtComm3= taxAmtComm3 * exchRate;
}
taxAmtComm = taxAmtComm1 + taxAmtComm2 + taxAmtComm3;
sp1Comm = sp1Comm + taxAmtComm1;
sp2Comm = sp2Comm + taxAmtComm2;
sp3Comm = sp3Comm + taxAmtComm3;
//To calculate commission on FOB
if("F".equalsIgnoreCase(commPercOn))
{
fobComm1= (fobAmt * commPerc) / 100;
}
if("F".equalsIgnoreCase(commPercOn1))
{
fobComm2= (fobAmt * commPerc1) / 100;
}
if("F".equalsIgnoreCase(commPercOn2))
{
fobComm3= (fobAmt * commPerc2) / 100;
}
fobComm= fobComm1 + fobComm2 + fobComm3;
sp1Comm = sp1Comm + fobComm1;
sp2Comm = sp2Comm + fobComm2;
sp3Comm = sp3Comm + fobComm3;
//To calculate commission on FOB LESS QUANTITY
if("Y".equalsIgnoreCase(commPercOn))
{
fobQtyComm1= ((fobAmt - qtyComm) * commPerc) / 100;
}
if("Y".equalsIgnoreCase(commPercOn))
{
fobQtyComm2= ((fobAmt - qtyComm) * commPerc1) / 100;
}
if("Y".equalsIgnoreCase(commPercOn))
{
fobQtyComm3= ((fobAmt - qtyComm) * commPerc2) / 100;
}
fobQtyComm= fobQtyComm1 + fobQtyComm2 + fobQtyComm3;
sp1Comm = sp1Comm + fobQtyComm1;
sp2Comm = sp2Comm + fobQtyComm2;
sp3Comm = sp3Comm + fobQtyComm3;
//To calculate commission on AMOUNT LESS QUANTITY
if("Z".equalsIgnoreCase(commPercOn))
{
amtQtyComm1= ((netAmt - qtyComm) * commPerc) / 100;
}
if("Z".equalsIgnoreCase(commPercOn))
{
amtQtyComm2= ((netAmt - qtyComm) * commPerc1) / 100;
}
if("Z".equalsIgnoreCase(commPercOn))
{
amtQtyComm3= ((netAmt - qtyComm) * commPerc2) / 100;
}
amtQtyComm= amtQtyComm1 + amtQtyComm2 + amtQtyComm3;
sp1Comm = sp1Comm + amtQtyComm1;
sp2Comm = sp2Comm + amtQtyComm2;
sp3Comm = sp3Comm + amtQtyComm3;
netComm = commAmt + qtyComm + fobComm + fobQtyComm + amtQtyComm + baseAmtComm + asesAmtComm + taxAmtComm ;
if(netComm < 0)
{
netComm=0;
}
if(exchRateComm > 0)
{
sp1Comm = sp1Comm / exchRateComm;
}
if(exchRateComm1 > 0)
{
sp2Comm = sp2Comm / exchRateComm1;
}
if(exchRateComm2 > 0)
{
sp3Comm = sp2Comm / exchRateComm2;
}
commissionMap.put("errorStr", errString);
commissionMap.put("sp1Comm", sp1Comm);
commissionMap.put("sp2Comm", sp2Comm);
commissionMap.put("sp3Comm", sp3Comm);
commissionMap.put("netComm", netComm);
System.out.println("commissionMap:::"+commissionMap.toString());
}
catch(Exception e)
{
System.out.println("Exception ::calcCommission:"+e);
throw new ITMException(e);
}
return commissionMap;
}
private String checkNull(String str)
{
if(str == null)
{
return "";
}
else
{
return str ;
}
}
private HashMap commPercBase(String custCode, String itemCode,String itemSer, double ordPrice, String priceListDate, Connection conn) throws ITMException
{
//This function calculates the commission perc required for Business Logic
//First check comm perc from customeritem then from customer series then
//from customer then pick price list code from disparm and based on price
//list pick the rate for case 'L'....
ITMDBAccessEJB itmDBAccessLocal = new ITMDBAccessEJB();
String sql="",defaultPriceList="",errString="";
double commPerc=0.0,priceListVal=0.0;
PreparedStatement pstmt = null ;
ResultSet rs = null;
DistCommon distCommon= new DistCommon();
HashMap commPercMap = null;
try
{
commPercMap = new HashMap();
sql="SELECT comm_perc__base FROM customeritem WHERE cust_code = ? AND item_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,custCode);
pstmt.setString(2,itemCode);
rs = pstmt.executeQuery();
if(rs.next())
{
commPerc = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(commPerc == 0)
{
sql="SELECT comm_perc__base 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())
{
commPerc = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(commPerc == 0)
{
sql="SELECT comm_perc__base FROM customer WHERE cust_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
rs = pstmt.executeQuery();
if(rs.next())
{
commPerc = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(commPerc == 0)
{
defaultPriceList=distCommon.getDisparams("999999", "BASE_PRICE_LIST", conn);
System.out.println(">>>>>>>>>>>>>>>defaultPriceList:"+defaultPriceList);
if("NULLFOUND".equalsIgnoreCase(defaultPriceList) || defaultPriceList == null || defaultPriceList.trim().length()==0)
{
errString = itmDBAccessLocal.getErrorString("","VTNOPL","Missing DISPARM Environment Variable: BASE_PRICE_LIST");
commPercMap.put("errorStr", errString);
return commPercMap;
}
else
{
priceListVal=distCommon.pickRate(defaultPriceList, priceListDate, itemCode, "", "L", conn);
commPerc= ordPrice - priceListVal;
}
}
else if(commPerc > 0)
{
defaultPriceList=distCommon.getDisparams("999999", "DEFAULT_PRICE_LIST", conn);
System.out.println(">>>>>>>>>>>>>>>defaultPriceList:"+defaultPriceList);
if("NULLFOUND".equalsIgnoreCase(defaultPriceList) || defaultPriceList == null || defaultPriceList.trim().length()==0)
{
errString = itmDBAccessLocal.getErrorString("","VTNOPL","");
commPercMap.put("errorStr", errString);
return commPercMap;
}
else
{
priceListVal=distCommon.pickRate(defaultPriceList, priceListDate, itemCode, "", "L", conn);
commPerc = (priceListVal * commPerc) / 100;
commPerc = ordPrice - commPerc;
}
}
}
else if(commPerc > 0)
{
defaultPriceList=distCommon.getDisparams("999999", "DEFAULT_PRICE_LIST", conn);
System.out.println(">>>>>>>>>>>>>>>defaultPriceList:"+defaultPriceList);
if(defaultPriceList.equals("NULLFOUND") || defaultPriceList==null || defaultPriceList.trim().length()==0 )
{
// = 'VTNOPL' + "~t" + " Missing DISPARM Environment Variable: BASE_PRICE_LIST ";
errString = itmDBAccessLocal.getErrorString("","VTNOPL","");
commPercMap.put("errorStr", errString);
return commPercMap;
}
else
{
priceListVal=distCommon.pickRate(defaultPriceList, priceListDate, itemCode, "", "L", conn);
commPerc = (priceListVal * commPerc) / 100;
commPerc = ordPrice - commPerc;
}
}
}
else if(commPerc > 0)
{
defaultPriceList=distCommon.getDisparams("999999", "DEFAULT_PRICE_LIST", conn);
System.out.println(">>>>>>>>>>>>>>>defaultPriceList:"+defaultPriceList);
if(defaultPriceList.equals("NULLFOUND") || defaultPriceList == null || defaultPriceList.trim().length()==0 )
{
errString = itmDBAccessLocal.getErrorString("","VTNOPL","");
commPercMap.put("errorStr", errString);
return commPercMap;
}
else
{
priceListVal=distCommon.pickRate(defaultPriceList, priceListDate, itemCode, "", "L", conn);
commPerc = (priceListVal * commPerc) / 100;
commPerc = ordPrice - commPerc;
commPercMap.put("commPerc", commPerc);
}
}
}
catch(Exception e)
{
System.out.println("Exception :"+e);
throw new ITMException(e);
}
//need to return error code..
return commPercMap;
}
private HashMap commPercSalesPers(String salesPers, double ordPrice,String priceListDate, String itemCode, Connection conn) throws ITMException
{
String sql="",salesPersCode="",priceList ="",errString="";
double priceListVal=0.0,commPerc=0.0;
PreparedStatement pstmt = null ;
ResultSet rs = null;
DistCommon distCommon= new DistCommon();
HashMap commPercSalesMap = null;
ITMDBAccessEJB itmDBAccessLocal = new ITMDBAccessEJB();
//New Function Added, Used By Business Logic For Sales Person Commission Type...
try
{
commPercSalesMap =new HashMap();
sql="SELECT price_list FROM sales_pers WHERE sales_pers = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,salesPers);
rs = pstmt.executeQuery();
if(rs.next())
{
priceList = rs.getString(1) == null ?"":rs.getString(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(priceList.trim().length()==0)
{
errString = itmDBAccessLocal.getErrorString("","VTNOPL","");
commPercSalesMap.put("errorStr", errString);
}
else
{
priceListVal=distCommon.pickRate(priceList, priceListDate, itemCode, "", "L", conn);
commPerc= ordPrice - priceListVal;
commPercSalesMap.put("commPercSales", commPerc);
}
}
catch(Exception e)
{
System.out.println("Exception :"+e);
throw new ITMException(e);
}
//need to return error code....
return commPercSalesMap;
}
private String checkNullDouble(String input)
{
if (input == null || input.trim().length()==0 )
{
input="0";
}
return input;
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -921,7 +921,8 @@ public class PostOrderActivity {
sitelocCode=locCode;
}
stkOpt = mfgCommon.chkStkOpt(itemCode,siteCodeCh,conn);
//stkOpt = mfgCommon.chkStkOpt(itemCode,siteCodeCh,conn);
stkOpt = mfgCommon.chkStkOpt(siteCodeCh,itemCode,conn);
lnno++;
lineNo=String.valueOf(lnno);
......@@ -2814,7 +2815,7 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
String rndStr="",rndOff="",rndToStr="",acct="",cctr="";
String tempSplitCode="";
String splitCode="";
String drcrTranid="",insertsql="";
String drcrTranid="",insertsql="",exciseDrAcct="",exciseDrAcctcd="",exciseDrCctrCd="";
double rndto=0.0;
double exchRate=0.0;
double taxAmt=0.0,totAmount=0.0;
......@@ -2895,6 +2896,23 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
excise=checkNull(distCommon.getDisparams("999999", "EXC_TAX_CODE_MODVAT", conn)).trim();
cess=checkNull(distCommon.getDisparams("999999", "CESS_TAX_CODE_MODVAT", conn)).trim();
hsEdu=checkNull(distCommon.getDisparams("999999", "HS_EDU_CESS_TAXCODE", conn)).trim();
// below finparm define for excise act code req id -F16FUNI001 - dt- 27-sep-2016
exciseDrAcct=checkNull(finCommon.getFinparams("999999", "EXCISE_DR_ACCT", conn)).trim();
if ((!"NULLFOUND".equalsIgnoreCase(exciseDrAcct) && exciseDrAcct != null && exciseDrAcct.trim().length() > 0) )
{
if(exciseDrAcct.trim().length() >0)
{
String[] arrStr1 =exciseDrAcct.split(";");
if(arrStr1.length>0)
{
exciseDrAcctcd =arrStr1[0];
}
if(arrStr1.length>1)
{
exciseDrCctrCd =arrStr1[1];
}
}
}
//Excise Tax Code, selected from despatch
if ((!"NULLFOUND".equalsIgnoreCase(excise) && excise != null && excise.trim().length() > 0) )
{
......@@ -3074,6 +3092,15 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
isHeaderPrepared=true;
drcrTranid=generateTranId("w_drcrrcp_dr",siteCode,conn);
// below finparm define for excise act code req id -F16FUNI001 - dt- 27-sep-2016
if(exciseDrAcctcd !=null && checkNull(exciseDrAcctcd).trim().length()>0)
{
acctCodeAr=exciseDrAcctcd;
}
if(exciseDrAcctcd !=null && checkNull(exciseDrAcctcd).trim().length()>0)
{
cctrCodeAr=exciseDrCctrCd;
}
insertsql = " INSERT INTO DRCR_RCP ( tran_id, tran_date, site_code, fin_entity, tran_type," +
" tran_ser, drcr_flag, cust_code, item_ser, invoice_id ,acct_code ,cctr_code ,eff_date ," +
"due_date ,curr_code ,exch_rate ,anal_code ,cr_term ,emp_code__aprv ,chg_date ,chg_user," +
......@@ -3841,7 +3868,8 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
}
}// FOR LOOP [2] --END--
lsDocValue = lsDocValue.substring(2, lsDocValue.length());
System.out.println("lsDocValue>>>>>>["+lsDocValue+"]");
lsDocValue = lsDocValue.substring(1, lsDocValue.length());
if ("I".equalsIgnoreCase(tranType))
{
......
......@@ -4,9 +4,13 @@ import ibase.system.config.AppConnectParm;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.E12CreateBatchLoadEjb;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ProcessEJB;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.fin.InvAcct;
import ibase.webitm.ejb.fin.adv.CalculateCommission;
import ibase.webitm.ejb.sys.CreateRCPXML;
import ibase.webitm.ejb.sys.UtilMethods;
//import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
......@@ -46,6 +50,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
UtilMethods utilMethod = new UtilMethods();
Calendar calendar = Calendar.getInstance();
ibase.webitm.ejb.dis.DistCommon dist = new ibase.webitm.ejb.dis.DistCommon();
FinCommon fnComm=new FinCommon();
E12GenericUtility genericUtility = new E12GenericUtility();
UtilMethods utilmethod = new UtilMethods();
SimpleDateFormat sdf =null;
......@@ -53,8 +58,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String strToWrite="",strToWriteHead="",logFileInit="",xmlString1="",chgTerm="",chgUser="";
String err = "";
boolean postLogYn=false;
PostOrderActivity postordact=new PostOrderActivity();
String xtraparam="";
//Connection conn = null;
ArrayList<String> salesOrderListAll=new ArrayList<String>();
ArrayList<String> postSalOder=new ArrayList<String>();
public String process(String xmlString, String xmlString2, String windowName, String xtraParams) throws RemoteException,ITMException
{
......@@ -79,7 +87,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
System.out.println("xmlString*********"+xmlString);
System.out.println("xmlString2*********"+xmlString2);
xtraparam=xtraParams;
retStr = process(headerDom, detailDom, windowName, xtraParams);
System.out.println("@@@@@@@@@@@ retStr["+retStr+"]");
......@@ -105,7 +113,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
ResultSet rs = null;
PreparedStatement pstmt = null;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
String postSal="";
String saleOrder="";
//PostOrder
......@@ -118,7 +127,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String sql="",custCode="";
// String[] custCode;
int cnt = 0,liCtr = 0,custCdIndex = 0,sordIndex=0;
boolean isPostDone=false;
ArrayList<String> custCodeList = new ArrayList<String>();
//custCodeList = null;
......@@ -127,10 +136,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
try
{
System.out.println("process starts................");
//Changes and Commented By Bhushan on 09-06-2016 :START
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
//Changes and Commented By Bhushan on 09-06-2016 :END
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
sdf = new SimpleDateFormat(e12GenericUtility.getApplDateFormat());
......@@ -160,7 +166,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("fromDateStr :"+fromDateStr);
toDateStr=e12GenericUtility.getColumnValue("desp_date__to",headerDom);
System.out.println("toDateStr :"+toDateStr);
//SETTING OF FROM SO TO 0 IF IT IS NULL
if( fromSaleOrder == null || fromSaleOrder.trim().length() == 0 )
{
......@@ -279,8 +285,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(2, toSaleOrder);
pstmt.setString(3, fromCustCode);
pstmt.setString(4, toCustCode);
pstmt.setString(5, fromDateStr);
pstmt.setString(6, toDateStr);
//pstmt.setString(5, fromDateStr);
//pstmt.setString(6, toDateStr);
pstmt.setTimestamp(5, fromDate);
pstmt.setTimestamp(6, toDate);
pstmt.setString(7, siteCodeShip);
if(orderType != null && orderType.trim().length() > 0)
{
......@@ -309,13 +317,45 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
for(custCdIndex = 0 ; custCdIndex < custCodeList.size() ;custCdIndex++)
{
retString = postOrder( headerDom, custCodeList.get(custCdIndex),"",xtraParams,conn);
System.out.println("retString :"+retString);
if(retString == null || retString.trim().length() <= 0)
System.out.println("cust post ord retString :"+retString);
if(retString== null || retString.trim().length()==0)
{
isPostDone=true;
}else
{
conn.rollback();
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
}
/*if(retString== null || retString.trim().length()==0)
{
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
conn.rollback();
}else
{
isPostDone=true;
errString = itmDBAccessEJB.getErrorString("","VTPOST03","","",conn);
System.out.println("errString@@@>>>"+errString);
String begPart = errString.substring( 0, errString.indexOf("<trace>") + 7 );
String endPart = errString.substring( errString.indexOf("</trace>"));
String mainStr = "For Following Sales orders Posting Successful :" ;
mainStr=begPart+mainStr+retString;
if(mainStr.trim().length()==0)
{
mainStr = begPart;
}
mainStr = mainStr + endPart;
errString = mainStr;
System.out.println("errString>>>>>"+errString);
}*/
/*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");
conn.commit();
//conn.commit();changed by chandrashekar on 07-june-2016
}
else
{
......@@ -323,7 +363,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("Sales Orders for Customer are not posted");
retString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
return retString;
}
}*/
}
}
else
......@@ -347,8 +387,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(2, toSaleOrder);
pstmt.setString(3, fromCustCode);
pstmt.setString(4, toCustCode);
pstmt.setString(5, fromDateStr);
pstmt.setString(6, toDateStr);
//pstmt.setString(5, fromDateStr);
//pstmt.setString(6, toDateStr);//change by chandrashekar on jun 02
pstmt.setTimestamp(5, fromDate);
pstmt.setTimestamp(6, toDate);
pstmt.setString(7, siteCodeShip);
if(orderType != null && orderType.trim().length() > 0)
{
......@@ -384,15 +426,40 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
//System.out.println("liCtr>>>> : "+liCtr);
for(sordIndex=0; sordIndex < saleOrderList.size() ;sordIndex++)
{
retString = postOrder(headerDom, "",saleOrderList.get(sordIndex),xtraParams,conn);
System.out.println("postOrder return:::::::::::[["+retString+"]]......");
if(retString == null || retString.trim().length() <= 0 )
if(retString== null || retString.trim().length()==0)
{
if(postSalOder.size()>0)
{
isPostDone=true;
}
}else
{
conn.rollback();
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
}
/*
if(retString== null || retString.trim().length()==0)
{
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
//conn.rollback();
}else
{
isPostDone=true;
}*/
/*if(retString == null || retString.trim().length() <= 0 )
{
//error to be display with codeCode on the message
errString = itmDBAccessEJB.getErrorString("", "VTPOST03", "","", conn);
System.out.println("Sales Orders for Customer are posted..........conn.commit()..........");
conn.commit();
//conn.commit();
}
else
{
......@@ -400,10 +467,57 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("Sales Orders for Customer are not posted.........conn.rollback().........");
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
conn.rollback();
}*/
}
}
if(isPostDone)
{
System.out.println("salesOrderListAll>>>>"+salesOrderListAll);
System.out.println("postSalOder>>>>"+postSalOder);
for(int i=0;i<salesOrderListAll.size();i++)
{
saleOrder=salesOrderListAll.get(i);
for(int j=0;j<postSalOder.size();j++)
{
postSal=postSalOder.get(j);
if(postSal.trim().equalsIgnoreCase(saleOrder.trim()));
{
salesOrderListAll.remove(postSal);
}
}
}
System.out.println("salesOrderListAll>>> After Remove>>>"+salesOrderListAll);
retString="";
String mainStr="";
for(int i=0;i<salesOrderListAll.size();i++)
{
retString=retString+salesOrderListAll.get(i)+",";
}
if(retString !=null && retString.trim().length()>0)
{
retString = retString.substring(0, retString.length() - 1);
mainStr = "For Following Sales orders Not posted :" ;
}else
{
mainStr = "All Order Posted Successfully ." ;
}
errString = itmDBAccessEJB.getErrorString("","VTPOST03","","",conn);
System.out.println("errString@@@>>>"+errString);
String begPart = errString.substring( 0, errString.indexOf("<trace>") + 7 );
String endPart = errString.substring( errString.indexOf("</trace>"));
mainStr=begPart+mainStr+retString;
if(mainStr.trim().length()==0)
{
mainStr = begPart;
}
mainStr = mainStr + endPart;
errString = mainStr;
}
}
catch(Exception e)
{
......@@ -427,7 +541,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
try
{
{
salesOrderListAll.clear();
postSalOder.clear();
if(rs != null)
{
......@@ -439,7 +555,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.close();
pstmt = null;
}
conn.close();
if(conn !=null)
{
conn.close();
conn=null;
}
}
catch(Exception e)
{
......@@ -472,7 +594,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String errCode="";
InitialContext ctx = null;
String postUpto="",confDespOnPost="",autoInvOnDesp="";
Connection connCP=null;
ArrayList showSordrList=new ArrayList<String>();
try
{
//conn = connDriver.getConnectDB("DriverITM");
......@@ -599,7 +722,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if("Y".equalsIgnoreCase(clubOrder))
{
errCode = postOrder(fromSaleOrder,toSaleOrder,custCode,custCode, fromDate, toDate,lotSl,siteCodeShip,xtraParams,conn);
}
else
......@@ -609,11 +732,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
}
System.out.println("errCode.trim().length()!!!! :"+errCode.trim().length());
System.out.println("errCode.trim().length()!!!! :"+errCode);
if(errCode.trim().length() > 0)
if(errCode != null && errCode.trim().length() > 0)
{
conn.rollback();
return errCode;
//RETURN;
}
//else if("Y".equalsIgnoreCase(allocStk))
......@@ -627,10 +751,37 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
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);
//showSordrList= postOrdDespatchGen.createDespatch(fromSaleOrder, toSaleOrder, fromCustCode, toCustCode, fromDate, toDate, siteCodeShip,clubOrder, conn);
//showSordrList= postOrdDespatchGen.createDespatch(SaleOrder, SaleOrder, custCode, custCode, fromDate, toDate, siteCodeShip,clubOrder, conn);
if("Y".equalsIgnoreCase(clubOrder))
{
errString= postOrdDespatchGen.createDespatch(fromSaleOrder, toSaleOrder, custCode, custCode, fromDate, toDate, siteCodeShip,clubOrder, xtraParams, conn);
}else
{
errString= postOrdDespatchGen.createDespatch(SaleOrder, SaleOrder, fromCustCode, toCustCode, fromDate, toDate, siteCodeShip,clubOrder, xtraParams, conn);
}
System.out.println("ErrCode from Despatch creation===="+errCode);
if(errCode != null && errCode.trim().length() > 0)
if (errCode == null || errCode.trim().length()==0)
{
postSalOder.add(SaleOrder);
}
/*for(int i=0;i<showSordrList.size();i++)
{
errString=errString+showSordrList.get(i)+",";
}
if(errString !=null && errString.trim().length()>0)
{
errString = errString.substring(0, errString.length() - 1);
postSalOder.add(errString);
}*/
System.out.println(" postSalOder list>>>"+postSalOder);
/*if(errCode != null && errCode.trim().length() > 0)
{
if(errCode.indexOf("VTCONPARM") > -1)
{
......@@ -653,23 +804,59 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
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";
errString=despatchConfirm.confirm(tranIdDespatch, xtraParams, forcedFlag,conn);
System.out.println("Calling Despatch Confirmation");
String despIdArr[]=tranIdDespatch.split(",");
if(despIdArr.length>0)
{
DespatchConfirmLocal despatchConfirm = null;
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
despatchConfirm = (DespatchConfirmLocal) ctx.lookup("ibase/DespatchConfirm/local");
String forcedFlag="N";
String desTranId="",desSOrder="";
for(int ctr=0;ctr<despIdArr.length;ctr++)
{
String[] arrStr =despIdArr[ctr].split("@");
if(arrStr.length>0)
{
desTranId =arrStr[0];
System.out.println("desTranId>>>>"+desTranId);
}
if(arrStr.length>1)
{
desSOrder =arrStr[1];
System.out.println("desSOrder>>>>"+desSOrder);
}
connCP=chaneParnerExist(desTranId,xtraParams,conn);
errString=despatchConfirm.confirm(desTranId, xtraParams, forcedFlag,conn,connCP);
System.out.println("despatchConfirm return string >>>>"+errString);
//errString=despatchConfirm.confirm(despIdArr[ctr], xtraParams, forcedFlag,conn);
if(errString == null || errString.trim().length()==0 || "".equalsIgnoreCase(errString) || errString.contains("CONFSUCC")|| errString.contains("VTPOSTDES") )
{
errString = "";
connCP.commit();
conn.commit();
}
else
{
connCP.rollback();
conn.rollback();
break;
}
}
}
System.out.println("errCode in despatch confirmation===="+errString);
}
}
}
if(errString == null || errString.trim().length()==0 || "".equalsIgnoreCase(errString) || errString.contains("CONFSUCC")|| errString.contains("VTPOSTDES") )
{
errString = "";
}
}*/
/* //commented same code repeate in despatchconfirm...
if(errStringConf != null && errStringConf.trim().length() > 0)
{
......@@ -723,25 +910,37 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
public String invPosting(String fromSaleOrder,String toSaleOrder,String fromCustCode,String toCustCode,String tranIdDespatch, String orderType,Timestamp fromDate,String clubOrder,String clubPendingOrd,String adjDrcr,String adjCustAdv,String advAdjMode,String adjNewProdInv,String siteCodeShip,Connection conn) throws ITMException
public String invPosting(String fromSaleOrder,String toSaleOrder,String fromCustCode,String toCustCode,String tranIdDespatch, String orderType,Timestamp fromDate,String clubOrder,String clubPendingOrd,String adjDrcr,String adjCustAdv,String advAdjMode,String adjNewProdInv,String siteCodeShip,String xtraParams,Connection conn) throws ITMException
{
System.out.println("@@@@@@@@@@@@ invPosting() called.........");
Boolean adjDrcrFlag= false, adjAdv=false, adjNewProdInvFlag=false;
String advAdj="";
String commDrcrConf="",commJvConf="";
DistCommon dis=new DistCommon();
String errString="",invoiceId="",sql="",ls_drnid="";
String errString="",invoiceId="",sql="",ls_drnid="",loginEmpCode;
PreparedStatement pstmt=null;
ResultSet rs=null;
String applyTime="I",crPolicy="",lsStatus="";
String applyTime="I",crPolicy="",lsStatus="",finScheme="";
double finAdjAmt=0;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
String autoInvOnDesp = dis.getDisparams("999999", "AUTO_INV_ON_DESPATCH", conn);
InitialContext ctx = null;
Timestamp sysDate = null;
if("Y".equalsIgnoreCase(autoInvOnDesp))
{
//conn.commit(); // added testing purpose
try
{
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
String sysDateStr = sdf.format(currentDate.getTime());
System.out.println("Now the date is :=> " + sysDateStr);
sysDate = Timestamp.valueOf(genericUtility.getValidDateString(sysDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()) + " 00:00:00.0");
System.out.println("xtraParams>>>"+xtraParams);
loginEmpCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode");
PostOrdInvoiceGen invgen = new PostOrdInvoiceGen();
System.out.println("from date ::::::::"+fromDate);
// SimpleDateFormat dateFormat = new SimpleDateFormat(genericUtility.getDBDateFormat());
......@@ -775,8 +974,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
adjNewProdInvFlag = true;
}
advAdj = advAdjMode;
errString = invgen.invoiceProcess(fromSaleOrder, toSaleOrder, fromCustCode, toCustCode, tranIdDespatch, orderType, fromDate, clubOrder, clubPendingOrd, adjDrcr, adjCustAdv, advAdjMode, adjNewProdInv, conn);
errString = invgen.invoiceProcess(fromSaleOrder, toSaleOrder, fromCustCode, toCustCode, tranIdDespatch, orderType, fromDate, clubOrder, clubPendingOrd, adjDrcr, adjCustAdv, advAdjMode, adjNewProdInv,xtraParams, conn);
System.out.println("@@@@@@@@@695::::invgen.invoiceProcess():::errString["+errString+"]");
//if(errString != null && errString.trim().length()>0 )
//{
......@@ -797,7 +996,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
invoiceId = arrayForTranId1[1].substring(0, endIndex1);
System.out.println("invoiceId=====["+invoiceId+"]");
String itemSer="";
double netAmt=0,lc_check_amt=0;
......@@ -868,47 +1067,124 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
System.out.println("@@@@@ crPolicy["+crPolicy+"]lc_check_amt["+lc_check_amt+"]lsStatus["+lsStatus+"]");
*/
System.out.println("@@@@@@@@@@@@ postOrdCreditChk()...........finish.........");
System.out.println("@@@@@@@@@@@@ InvoiceDrcrAdj()...........calling..........");
sql = " select tran_id from misc_drcr_rcp where sreturn_no in (select desp_id " +
" from despatch where desp_id in ( ? ) " +
" and case when FREIGHT_AMT_ADD is null then 0 else FREIGHT_AMT_ADD end > 0) ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranIdDespatch);
rs = pstmt.executeQuery();
while(rs.next())
errString=postordact.prdSchemeTraceUpd(invoiceId,xtraParams,conn);
if( errString == null || errString.trim().length() == 0 )
{
ls_drnid = ls_drnid +","+ checkNull(rs.getString("tran_id"));
//gbf_scheme_history
errString=postordact.schemeHistoryUpd(invoiceId,siteCodeShip,"I", conn);
}
if( errString == null || errString.trim().length() == 0 )
{
errString=postordact.schemeDiscTrace(invoiceId,xtraParams,conn);
}
if( errString == null || errString.trim().length() == 0 )
{
sql="select fin_scheme from sorder where sale_order = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, fromSaleOrder);
rs=pstmt.executeQuery();
if(rs.next())
{
finScheme=rs.getString(1);
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
sql="select abs(sum(tot_amt - adj_amt) ) from receivables "
+ " where cust_code = ? and fin_scheme = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, fromCustCode);
pstmt.setString(2, finScheme);
rs=pstmt.executeQuery();
if(rs.next())
{
finAdjAmt=rs.getDouble(1);
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
if(finAdjAmt>=netAmt)
{
errString=postordact.finSchemeInvAdj(siteCodeShip,itemSer,fromCustCode,invoiceId,netAmt,adjDrcrFlag, adjAdv,conn);
}
}
if( errString == null || errString.trim().length() == 0 )
{
System.out.println("@@@@@@@@@@@@ postOrdCreditChk()...........finish.........");
System.out.println("@@@@@@@@@@@@ InvoiceDrcrAdj()...........calling..........");
sql = " select tran_id from misc_drcr_rcp where sreturn_no in (select desp_id " +
" from despatch where desp_id in ( ? ) " +
" and case when FREIGHT_AMT_ADD is null then 0 else FREIGHT_AMT_ADD end > 0) ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranIdDespatch);
rs = pstmt.executeQuery();
while(rs.next())
{
ls_drnid = ls_drnid +","+ checkNull(rs.getString("tran_id"));
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("@@@@@@@@@@@ ls_drnid["+ls_drnid+"]");
String frtDrnArr[]=ls_drnid.split(",");
System.out.println("@@@@@ frtDrnArr.length["+frtDrnArr.length+"]");
InvoiceDrcrAdj invoiceDrCrAdj1 = new InvoiceDrcrAdj();
errString = 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() errString["+errString+"]");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("@@@@@@@@@@@ ls_drnid["+ls_drnid+"]");
String frtDrnArr[]=ls_drnid.split(",");
System.out.println("@@@@@ frtDrnArr.length["+frtDrnArr.length+"]");
InvoiceDrcrAdj invoiceDrCrAdj1 = new InvoiceDrcrAdj();
errString = 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() errString["+errString+"]");
if( errString == null || errString.trim().length() == 0 )
{
PostOrdInvoicePostLocal PostOrdInvoicePost = null;
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
PostOrdInvoicePost = (PostOrdInvoicePostLocal) ctx.lookup("ibase/PostOrdInvoicePost/local");
String forcedFlag="N";
String retString1=PostOrdInvoicePost.invoicePosting(invoiceId, xtraParams, forcedFlag,conn);
System.out.println("PostOrdInvoicePost return string >>>>"+retString1);
if( retString1 != null && retString1.trim().length() > 0 )
{
return retString1;
}
sql="update invoice set confirmed = 'Y',conf_date=?, emp_code__aprv = ? where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setTimestamp(1,sysDate);
pstmt.setString(2,loginEmpCode);
pstmt.setString(3,invoiceId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
//CreteCommCrNote creteCommCrNote = new CreteCommCrNote();
// retString = creteCommCrNote.creteCommCrNote(invoiceId, conn);
CalculateCommission calCom=new CalculateCommission();
commDrcrConf = checkNull(fnComm.getFinparams("999999", "COMM_DRCR_CONF", conn));
commJvConf = checkNull(fnComm.getFinparams("999999", "COMM_JV_CONF", conn));
errString = calCom.CalCommission(invoiceId,"I","",commDrcrConf,commJvConf,xtraParams, conn);
//errString = postordact.createCommCrNote(invoiceId, conn);
System.out.println("@@@@@@@@@4 CreteCommCrNote() errString["+errString+"]");
if( errString != null && errString.trim().length() > 0 )
{
return errString;
}
if( errString == null || errString.trim().length() == 0 )
{
// AutoExciseDrNote autoExciseDrNote = new AutoExciseDrNote();
// retString = autoExciseDrNote.autoExciseDrNote(invoiceId, conn);
errString = postordact.autoExciseDrNote(invoiceId,xtraParams, conn);
System.out.println("@@@@@@@@@5 autoExciseDrNote() errString["+errString+"]");
}
......@@ -1200,13 +1476,15 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
DistCommon discommon = new DistCommon();
ArrayList<SorderBean> sorderList = new ArrayList<SorderBean>();
ArrayList<SordItemBean> sordItemList = null;;
ArrayList<SordItemBean> sordItemList = null;
ArrayList<StockBean> stockList = null;
Date currentDate = new Date();
Timestamp allocDate = null,orderDate=null,plDate=null;
int totRecords=0,records=0;
int saleOrderCnt=0,skiplineCnt=0;
String tranidSoalloc="",linenoSoalloc="";
String itemOld="",lsItem="";
int countItem=0;
double pendingDeallocQty=0.0,stockTot=0.0;
int updSordAllDetCnt=0;
......@@ -1298,7 +1576,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
stateCodeDlv = checkNull(rs.getString("state_code__dlv"));
countCodeDlv = checkNull(rs.getString("count_code__dlv"));
SorderBean sorderBean = new SorderBean();
sorderBean.setSaleOrder(saleOrder);
......@@ -1342,7 +1620,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
status = sorderBean.getStatus();
locGroup=sorderBean.getLocGroup();
System.out.println("status :"+status);
if(!salesOrderListAll.contains(saleOrder))
{
salesOrderListAll.add(saleOrder);
}
varValue = itmDBAccessEJB.getEnvDis("999999", "CREATE_POST_LOG_FILE", conn);
System.out.println("varValue :"+varValue);
//ls_varvalue = gf_getenv_dis('999999','CREATE_POST_LOG_FILE')
......@@ -1421,6 +1702,30 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
//qtyDesp = rs.getDouble("qty_desp");
nature = checkNull(rs.getString("nature"));
//Start Added by chandrashekar on 26-sep-2016
if("B".equalsIgnoreCase(itemFlag) && "F".equalsIgnoreCase(nature))
{
sql = "select item_code__parent , unit from item where item_code = ?";
pstmt3 = conn.prepareStatement(sql);
pstmt3.setString(1,itemCode);
rs3 = pstmt3.executeQuery();
if(rs3.next())
{
itemCodeParent = rs3.getString("item_code__parent");
unitStd = rs3.getString("unit");
}
rs3.close();
rs3 = null;
pstmt3.close();
pstmt3 = null;
sordItemBean.setUnitStd(unitStd);
sordItemBean.setUnit(unitStd);
}else
{
sordItemBean.setUnitStd(unitStd);
sordItemBean.setUnit(unit);
}
//End Added by chandrashekar on 26-sep-2016
sordItemBean.setSaleOrder(saleOrder);
sordItemBean.setLineNo(lineNo);
sordItemBean.setConvQtyStduom(convQtyStduom);
......@@ -1434,13 +1739,20 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sordItemBean.setQtyAlloc(rs.getDouble("qty_alloc"));
sordItemBean.setSiteCode(siteCode);
//sordItemBean.setQtyDesp(qtyDesp);
sordItemBean.setUnitStd(unitStd);
sordItemBean.setItemCodeOrd(itemCodeOrd);
sordItemBean.setQuantity(sordItmQty);
sordItemBean.setSordItmQty(sordItmQty);
if(!(unit.equalsIgnoreCase(unitStd)))//Added by chandrashekar on 21-sep-2016
{
sordItmQty=sordItmQty*convQtyStduom;
sordItemBean.setQuantity(sordItmQty);
sordItemBean.setSordItmQty(sordItmQty);
}else
{
sordItemBean.setQuantity(sordItmQty);
sordItemBean.setSordItmQty(sordItmQty);
}
sordItemBean.setQuantityStduom(quantityStduom);
sordItemBean.setStatus(status);
sordItemBean.setUnit(unit);
sordItemBean.setRate(rateClg);
sordItemBean.setRateClg(rateClg);
sordItemBean.setNature(nature);
......@@ -1448,12 +1760,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
// sordItemList.add(sordItemBean);
if(!(unit.equalsIgnoreCase(unitStd)))
{
System.out.println("unit and unitStd are not equals!!");
sordItmQty=dist.convQtyFactor(unit,unitStd,itemCode, convQtyStduom, conn);
System.out.println("sordItmQty :"+sordItmQty);
System.out.println("sordItmQty@@@@ :"+sordItmQty);
//if(sordItmQty == -999999999)
if(sordItmQty == 0)
{
......@@ -1469,6 +1780,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
orderUnit = unit;
unit = unitStd;
sordItemBean.setUnit(unit);
}
......@@ -1476,7 +1788,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
else
{
orderUnit = unit;
sordItemBean.setUnit(unit);
}
System.out.println("sordItmQty>>"+sordItmQty);
sql = " select sum(quantity - case when qty_desp is null then 0 else qty_desp end) " +
"as siteItmQty from sorditem where sale_order = ? and " +
......@@ -1541,7 +1856,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
int stockTestCnt=0,forTestCnt=0;
System.out.println("sordItemList :"+sordItemList.size());
System.out.println("sordItemList size :"+sordItemList.size());
for(SordItemBean sordItemBean :sordItemList )
{
System.out.println("sale order :"+sordItemBean.getSorderBean().getSaleOrder());
......@@ -1594,9 +1909,14 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("orderType "+orderType);
partQty = sordItemBean.getSorderBean().getPartQty();
System.out.println("partQty "+partQty);
nature = sordItemBean.getNature();
System.out.println("nature::: "+nature);
itemCodeParent=sordItemBean.getItemCodeParent();
System.out.println("itemCodeParent:::["+itemCodeParent+"]");
unit = sordItemBean.getUnit();
unitStd = sordItemBean.getUnitStd();
System.out.println("@@@unit["+unit+"]");
System.out.println("@@@unitStd["+unitStd+"]");
sql = " select sum(a.quantity - case when a.alloc_qty is null then 0 else a.alloc_qty end - case when a.hold_qty is null then 0 else a.hold_qty end ) as quantity ";
sql = sql + "from stock a, invstat b, location c ";
......@@ -1807,6 +2127,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if("B".equalsIgnoreCase(itemFlag.trim()))
{
System.out.println("itemCodeOrd>>>>@@@["+itemCodeOrd+"]");
sql = " select grace_days from scheme_applicability " +
" where scheme_code = ? and app_from <= ? ";
pstmt = conn.prepareStatement(sql);
......@@ -1840,7 +2162,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = pstmt.executeQuery();
if(rs.next())
{
schemeCnt = rs.getInt("grace_days");
schemeCnt = rs.getInt(1);
}
rs.close();
rs = null;
......@@ -1891,7 +2213,54 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
}
//Start added by chandrashekar on 03-aug-2016
countItem=0;
if(isScheme)
{
sql = " select count(*) as count from SORDITEM where SALE_ORDER = ? " +
" and LINE_TYPE = 'I' AND line_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNo);
rs = pstmt.executeQuery();
if(rs.next())
{
countItem = rs.getInt(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(countItem>1)
{
itemOld="";
sql = " select item_code from sorditem where sale_order = ? " +
"and line_type = 'I' and line_no = ? order by item_code ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNo);
rs = pstmt.executeQuery();
while(rs.next())
{
lsItem = checkNull(rs.getString("item_code"));
if (lsItem.trim().length()>0)
{
if(!itemOld.trim().equalsIgnoreCase(lsItem))
{
isScheme = false;
break;
}
}
itemOld=lsItem;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
}
//End added by chandrashekar on 03-aug-2016
//CHECKING CUSTOMER FOR WHICH ORDER IS BOOKED IS APPLICABLE OR NOT IN SCHEME.
......@@ -2182,6 +2551,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
if(priceList != null && priceList.trim().length() > 0)
{
allocDateStr=sdf.format(allocDate);
rate = dist.pickRate(priceList, allocDateStr,itemCode,lotNo,"D", quantityStduom, conn);
}
}
......@@ -2404,10 +2774,16 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if(schemeCnt > 0)
{
System.out.println("lineNo>>>>"+lineNo);
System.out.println("lineNoOld>>>>"+lineNoOld);
System.out.println("saleOrder>>>>"+saleOrder);
System.out.println("saleOrderOld>>>>"+saleOrderOld);
System.out.println("itemCodeOld>>>>"+itemCodeOld);
System.out.println("itemCode>>>>"+itemCode);
if(lineNo != lineNoOld || saleOrder != saleOrderOld || itemCodeOld != itemCode )
{
//ratio = i_nvo_post_order.gbf_scheme(msaleorder,integer(mline_no),as_lot_sl,ls_loc_group)
ratio=gbfScheme(saleOrder,lineNo,lotSl,locGroup,itemCode,conn);
ratioOld = ratio;
}
else if("0".equalsIgnoreCase(ratio) && lineNo.equalsIgnoreCase(lineNoOld)
......@@ -2416,10 +2792,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
ratio = ratioOld;
}
else
{
{
ratio = "10000";
}
if(ratio==null || ratio.trim().length()==0)
{
ratio="0";
}
if("0".equalsIgnoreCase(ratio))
{
System.out.println("Short Quantity for scheme item");
......@@ -2439,7 +2818,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
/*elseif not isnumber(lc_ratio) then
merrcode = lc_ratio
goto exit_now*/
else if(!("1000".equalsIgnoreCase(ratio)))
else if(Double.parseDouble(ratio) !=10000)
//else if(!("1000".equalsIgnoreCase(ratio)))
{
sql = "SELECT bomdet.qty_per FROM bomdet WHERE " +
" ( bomdet.bom_code = ? ) AND ( bomdet.item_code = ? )" +
......@@ -2457,8 +2837,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = null;
pstmt.close();
pstmt = null;
netQuantity = bomQtyPer * Integer.parseInt(ratio);
if(ratio != null && ratio.trim().length()>0)
{
netQuantity = bomQtyPer * Double.parseDouble(ratio);
}
qtyStk = netQuantity;
}
......@@ -2469,10 +2851,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if((qtyStk - allocQty - holdQty) <= netQuantity)
{
inputQty = qtyStk - allocQty - holdQty;
sordItemBean.setSordItmQty(inputQty);//Added by chandrashekar on 03-oct-2016
}
else
{
inputQty = netQuantity;
sordItemBean.setSordItmQty(inputQty);//Added by chandrashekar on 03-oct-2016
}
System.out.println("inputQty>>"+inputQty);
if(inputQty > 0)
......@@ -2480,6 +2864,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
//if isnull(as_tranid) or len(trim(as_tranid)) = 0
//{
orgQty = inputQty;
unitPack="";
sql = "select unit__pack from" +
" item_lot_packsize where item_code = ? and" +
" lot_no__from <= ?and lot_no__to >= ? ";
......@@ -2496,12 +2881,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = null;
pstmt.close();
pstmt = null;
if(unitPack == null || "B".equalsIgnoreCase(itemFlag))
System.out.println("unitPack>>@@@@>>["+unitPack+"]");
if(unitPack == null || unitPack.trim().length()==0 || "B".equalsIgnoreCase(itemFlag))
{
unitPack = unit;
}
System.out.println("unitPack>>>>["+unitPack+"]");
System.out.println("unit>>>>"+unit+"]");
if(!(unitPack.equalsIgnoreCase(unit)))
{
......@@ -2585,9 +2971,23 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
if("F".equalsIgnoreCase(nature))
{
sql = "select item_code__parent from item where item_code = ?" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
rs = pstmt.executeQuery();
while(rs.next())
{
itemCodeParent = rs.getString("item_code__parent");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(itemCodeParent != null && itemCodeParent.trim().length() > 0 )
{
schemeCode = checkScheme(itemCode, orderType,custCode,siteCode,stateCodeDlv,countCodeDlv,allocDate,conn);
schemeCode = checkScheme(itemCodeParent, orderType,custCode,siteCode,stateCodeDlv,countCodeDlv,allocDate,conn);
if(schemeCode != null && schemeCode.trim().length() > 0)
......@@ -2651,8 +3051,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sql = " select bom.batch_qty,bomdet.qty_per,bomdet.app_min_qty, " +
" bomdet.app_max_qty " +
sql = " select bom.batch_qty as lc_batqty,bomdet.qty_per as lc_qtyper,bomdet.app_min_qty as lc_app_min_qty , " +
" bomdet.app_max_qty as lc_app_max_qty " +
" from bom, bomdet where " +
" bom.bom_code = bomdet.bom_code and bomdet.bom_code " +
" = ? and bomdet.nature= 'F' and ? " +
......@@ -2673,16 +3073,23 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = null;
pstmt.close();
pstmt = null;
System.out.println("chargeQty>>>"+chargeQty);
System.out.println("appMinQty>>>"+appMinQty);
System.out.println("appMaxQty>>>"+appMaxQty);
if(chargeQty >= appMinQty && chargeQty <= appMaxQty)
{
//freeQty = truncate(chargeQty / batqty,0) * qtyper
freeQty = (chargeQty / batqty) * qtyper;
}
else
{
freeQty=0;
}
System.out.println("inputQty>>>"+inputQty);
System.out.println("totFreeQty>>>"+totFreeQty);
System.out.println("allocFreeQty>>>"+allocFreeQty);
System.out.println("freeQty>>>"+freeQty);
if((inputQty + totFreeQty + allocFreeQty) > freeQty )
{
System.out.println("Chargeable quantity of group of items not eligible for the free quantity");
......@@ -2787,6 +3194,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("lotNO>>"+lotNo+"lotSl >>"+lotSl);
System.out.println("allocQty["+allocQty+"]"+"holdQty["+holdQty+"]"+"qtyStk - allocQty - holdQty["+(qtyStk - allocQty - holdQty)+"");
System.out.println("stockTot["+stockTot+"]"+"qtyStk["+qtyStk+"]"+"sordItmQty["+sordItmQty+"");
stockTot=0.0;
stockTot = stockTot + (qtyStk - allocQty - holdQty);
System.out.println("stockTot >>>>"+stockTot);
if(stockTot > sordItmQty)
......@@ -2814,14 +3222,17 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
int vaildateData=0;
double totInputQty=0.0;
System.out.println("sordItemList lenth@@@"+sordItemList.size());
for(SordItemBean sordItemBean :sordItemList )//required for update sorditem accordingly line no and sale order
{
sordItmQty = sordItemBean.getSordItmQty();
netQuantity=sordItmQty;
System.out.println("netQuantity>>>"+netQuantity);
stockList=sordItemBean.getStockList();
System.out.println("stockList.size()>>>"+stockList.size());
System.out.println("stockList>>>"+stockList);
System.out.println("expLev>@@@@@@@@@>"+expLev);
totInputQty=0;
System.out.println("stockList lenth@@@"+stockList.size());
for(StockBean stockBean :stockList)
{
System.out.println("stockList iterator starts...........");
......@@ -2870,10 +3281,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
isRejected = stockBean.isRejected();
System.out.println("isRejected>>"+isRejected);
//inputQty=sordItmQty;
quantityStduom=sordItmQty;
//quantityStduom=sordItmQty;
expLev=stockBean.getSordItemBean().getExpLev();
System.out.println("expLev>>>"+expLev);
skipline = skipline == null ? "" : skipline;
skiplot = skiplot == null ? "" : skiplot;
System.out.println("saleOrder["+saleOrder+"]"+"itemCode["+itemCode+"]"+"lineNo["+lineNo+"]");
......@@ -2883,6 +3294,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("sordItmQty :"+sordItmQty);
System.out.println("skipline:"+skipline);
System.out.println("skiplot:"+skiplot);
System.out.println("itemCode@@@@["+itemCode+"]unit@@@["+unit+"]unitsTD"+unitStd);
System.out.println("skiplot.trim() :"+skiplot.trim());
System.out.println("'"+lineNo.trim());
......@@ -2978,7 +3390,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setDouble(4, quantityStduom);//quantity
pstmt.setString(5, itemCodeOrd);
pstmt.setString(6, siteCode);
pstmt.setString(7, orderUnit);
pstmt.setString(7, unit);
//pstmt.setString(7, orderUnit);
pstmt.setString(8, status);
pstmt.setString(9, expLev);
pstmt.setString(10, itemRef);
......@@ -2998,6 +3411,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
insCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
System.out.println(">>>>>>>>insCnt:"+insCnt);
if(insCnt > 0)
{
......@@ -3011,6 +3425,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}//end of if(sordallocCnt == 0)
else
{
inputQty = sordItmQty;
sql = "update sordalloc set qty_alloc = qty_alloc + ?," +
" status = 'D' where sale_order = ? " +
" and line_no = ? and exp_lev = ? " +
......@@ -3030,6 +3445,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(8,lotSl );
pstmt.setString(9,locCode);
updSordAllCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
if(updSordAllCnt > 0)
{
logMsg= saleOrder + "\t" + itemCode + "\t"+locCode + "\t" +lotNo+"\t"+ lineNo + "\tUpdated data in sordalloc";
......@@ -3082,7 +3499,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(2,tranidSoalloc);
pstmt.setString(3,linenoSoalloc);
updSordAllDetCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
}
......@@ -3147,7 +3565,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(5,lineNo);
pstmt.setString(6,expLev);
updSorditemCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
}
......@@ -3169,10 +3588,28 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
strToWrite=strToWrite+logMsg+"\t\r\n";
}
}*/
//Start Added by chandrashekar on 13-sep-2016
System.out.println("********************************************************");
System.out.println("records["+records+"]"+"stockOpt["+stockOpt+"]"+"saleOrder["+saleOrder+"]");
int updSordCnt=0;
if(records > 0 || stockOpt == 0 && !isRejected)
{
sql = " update sorder set alloc_flag = 'Y' where sale_order = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
updSordCnt = pstmt.executeUpdate();
if(updSordCnt > 0)
{
logMsg= saleOrder + "\t" + "\tupdate sorder alloc_flag 'Y'";
strToWrite=strToWrite+logMsg+"\t\r\n";
}
pstmt.close();
pstmt = null;
}
//End Added by chandrashekar on 13-sep-2016
}//end of for(SordItemBean sordItemBean :sordItemList )...2nd
System.out.println("********************************************************");
/*System.out.println("********************************************************");
System.out.println("records["+records+"]"+"stockOpt["+stockOpt+"]"+"saleOrder["+saleOrder+"]");
int updSordCnt=0;
if(records > 0 || stockOpt == 0)
......@@ -3186,7 +3623,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
logMsg= saleOrder + "\t" + "\tupdate sorder alloc_flag 'Y'";
strToWrite=strToWrite+logMsg+"\t\r\n";
}
}
pstmt.close();
pstmt = null;
}*/
if(totLines - skiplineCnt == 0)
{
merrcode = "VTPOSTSKIP";
......@@ -3312,6 +3751,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
private String intializingLog(String fileName,String saleOrder) throws ITMException
{
String log="";
......@@ -3561,10 +4001,16 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
public double convertBox(String itemCode,String unitPack,String unit,double convQtyStduom,Connection conn) throws ITMException
{
double convQty = 0.0;
double convFact=0.0;
ArrayList convAr = null;
try
{
convQty = dist.convQtyFactor(unit,unitPack,itemCode, convQtyStduom, conn);
//convQty = dist.convQtyFactor(unit,unitPack,itemCode, convQtyStduom, conn);
convAr = dist.getConvQuantityFact(unit, unitPack, itemCode, convQtyStduom, convFact, conn);
convFact = Double.parseDouble( convAr.get(0).toString() );
System.out.println("convFact>>>>"+convFact);
convQty = Double.parseDouble( convAr.get(1).toString() );
System.out.println("convQty>>>>"+convQty);
}
catch(Exception e)
{
......@@ -3784,7 +4230,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sql = " select a.scheme_code from scheme_applicability a, scheme_applicability_det b" +
" where a.scheme_code = b.scheme_code and a.item_code = ? " +
" and a.app_from <= ? and a.valid_upto >= ? and " +
" (b.site_code = ? or b.state_code = ? or b.count_code = ? ";
" (b.site_code = ? or b.state_code = ? or b.count_code = ? )";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
pstmt.setTimestamp(2,tranDate);
......@@ -3808,9 +4254,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
while(rs1.next())
{
applyCustList = rs.getString("apply_cust_list");
noApplyCustList = rs.getString("noapply_cust_list");
applicableordtypes = rs.getString("order_type");
applyCustList = rs1.getString("apply_cust_list");
noApplyCustList = rs1.getString("noapply_cust_list");
applicableordtypes = rs1.getString("order_type");
if("NE".equalsIgnoreCase(as_order_type) && applicableordtypes==null)
{
......@@ -3914,10 +4360,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("xmlString1>>"+xmlString1);
System.out.println("chgUser["+chgUser+"]"+"chgTerm["+chgTerm+"]");
/*ConnDriver connDriver = new ConnDriver();
//Changes and Commented By Bhushan on 09-06-2016 :START
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
//Changes and Commented By Bhushan on 09-06-2016 :END
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);*/
sql = " select site_code " +
......@@ -4066,10 +4509,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
ConnDriver connDriver = new ConnDriver();
//Changes and Commented By Bhushan on 09-06-2016 :START
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
//Changes and Commented By Bhushan on 09-06-2016 :END
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
if(conn != null)
......@@ -4146,13 +4586,189 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
private String gbfScheme(String saleOrder, String lineNo, String lotSl, String locGroup, String itemCode,Connection conn) throws ITMException
{
Timestamp sysDate=null;
String sql="",sql1="",sql2="",mitemCode="",mitemCodeOrd="",msiteCode="",lineNoStr="",trackShelfLife="";
String mchkDateStr="";
PreparedStatement pstmt1=null,pstmt=null,pstmt2=null;
ResultSet rs1=null,rs=null,rs2=null;
Double mquantity=0.0,mminShelfLife=0.0;
double mmin_shelf_life=0.0,stkQty=0.0,mqty=0.0,mmodqty=0.0;
double lc_ratio=10000.0,li_ratio=0.0;
Timestamp mchkDate=null;
DistCommon discmn=new DistCommon();
try
{
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
String sysDateStr = sdf.format(currentDate.getTime());
System.out.println("Now the date is :=> " + sysDateStr);
sysDate = Timestamp.valueOf(genericUtility.getValidDateString(sysDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()) + " 00:00:00.0");
String DB = CommonConstants.DB_NAME;
System.out.println("DB ==========>>>>>"+DB);
lineNo=" "+lineNo;
System.out.println("---"+lineNo+"---");
lineNo = lineNo.substring(lineNo.length() - 3);
sql1="select distinct(item_code) as item_code , sum(quantity - qty_desp) as qty, " +
"item_code__ord, site_code " +
" from sorditem where sale_order = ? and" +
" line_no = ? and (quantity - qty_desp) >0 and" +
" line_type = 'I' and item_code = ? " +
" group by item_code, item_code__ord, site_code " +
"order by item_code, item_code__ord, site_code";
pstmt1= conn.prepareStatement(sql1);
pstmt1.setString(1, saleOrder);
pstmt1.setString(2, lineNo);
pstmt1.setString(3, itemCode);
rs1 = pstmt1.executeQuery();
while (rs1.next())
{
mitemCode = rs1.getString("item_code");
mquantity = rs1.getDouble("qty");
mitemCodeOrd = rs1.getString("item_code__ord");
msiteCode = rs1.getString("site_code");
mminShelfLife = 0.0;
sql2=" select sum(a.quantity - a.alloc_qty - case when a.hold_qty is null then 0 else a.hold_qty end ) as qty " +
" from stock a, invstat b, location c where c.inv_stat = b.inv_stat and c.loc_code = a.loc_code " +
"and a.item_code = '"+mitemCode+"' and a.site_code = '"+msiteCode+"' " +
"and a.quantity > 0 and b.available = 'Y' ";
if(lotSl != null && checkNull(lotSl).trim().length()>0)
{
sql2=sql2+" and a.lot_sl = '"+lotSl+"' ";
}
if(locGroup != null && checkNull(locGroup).trim().length()>0)
{
sql2=sql2+" and c.loc_group = '"+locGroup+"' ";
}
sql="select track_shelf_life from item where item_code =?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mitemCode);
rs = pstmt.executeQuery();
if (rs.next())
{
trackShelfLife = rs.getString("track_shelf_life");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql="select min_shelf_life from sorditem where sale_order = ? " +
"and line_no = ? and line_type = 'I' and item_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, saleOrder);
pstmt.setString(2, lineNo);
pstmt.setString(3, mitemCode);
rs = pstmt.executeQuery();
if (rs.next())
{
mminShelfLife = rs.getDouble("min_shelf_life");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
mchkDate=discmn.CalcExpiry(sysDate,mminShelfLife+1);
System.out.println("mchkDate>>>>"+mchkDate);
if("Y".equalsIgnoreCase(trackShelfLife) && mminShelfLife >0)
{
if("db2".equalsIgnoreCase(DB))
{
SimpleDateFormat sdt = new SimpleDateFormat("yyyy-mm-dd");
if(mchkDate !=null)
{
mchkDateStr = sdt.format(mchkDate.getTime());
}
sql2=sql2+" and ( a.exp_date > TIMESTAMP('"+mchkDateStr+" 00:00:00.000"+"') or a.exp_date is null) ";
}else
{
SimpleDateFormat sdt = new SimpleDateFormat("dd-MMM-yyyy");
if(mchkDate !=null)
{
mchkDateStr = sdt.format(mchkDate.getTime());
}
sql2=sql2+" and ( a.exp_date > '"+mchkDateStr+"' or a.exp_date is null) ";
}
}
pstmt2=conn.prepareStatement(sql2);
rs2=pstmt2.executeQuery();
while(rs2.next())
{
stkQty=rs2.getDouble("qty");
sql="SELECT SUM(qty_per) as mqty FROM bomdet WHERE ( bom_code = ? ) AND ( item_code = ? )";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mitemCodeOrd);
pstmt.setString(2, mitemCode);
rs = pstmt.executeQuery();
if (rs.next())
{
mqty = rs.getDouble("mqty");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(stkQty<mqty)
{
break;
}
if(stkQty < mquantity)
{
if(mqty>0)
{
sql="Select mod(?,?) as mmodqty from dual";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, stkQty);
pstmt.setDouble(2, mqty);
rs = pstmt.executeQuery();
if (rs.next())
{
mmodqty = rs.getDouble("mmodqty");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
li_ratio = ((stkQty - mmodqty) / mqty);
if (lc_ratio > li_ratio)
{
lc_ratio = li_ratio ;
}
}
}
}
rs2.close();
rs2=null;
pstmt2.close();
pstmt2=null;
}
rs1.close();
rs1= null;
pstmt1.close();
pstmt1= null;
}catch(Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
return Double.toString(lc_ratio);
}
}
......@@ -4251,11 +4867,4 @@ class Log
}
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