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; ...@@ -5,7 +5,9 @@ import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility; import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean; import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.ActionHandlerEJB; import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.MasterStatefulLocal; import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.webitm.ejb.dis.adv.SorderConf;
import ibase.webitm.ejb.fin.FinCommon; import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.sys.UtilMethods; import ibase.webitm.ejb.sys.UtilMethods;
//import ibase.webitm.utility.GenericUtility; //import ibase.webitm.utility.GenericUtility;
...@@ -14,6 +16,7 @@ import ibase.webitm.utility.ITMException; ...@@ -14,6 +16,7 @@ import ibase.webitm.utility.ITMException;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.sql.Connection; import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
...@@ -50,7 +53,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -50,7 +53,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
*/ */
public String invoiceProcess(String salesOrdFrm,String salesOrdTo,String custCodeFrm,String custCodeTo, public String invoiceProcess(String salesOrdFrm,String salesOrdTo,String custCodeFrm,String custCodeTo,
String descpIdFrm,String orderType,Timestamp frmDateStr,String clubOrder,String clubPendOrder, 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 retString="",frmDate="",frmCustCode="",currCode="",lrNo="",lrDate="",remarks="",sysDate="",toDateStr="";
String toCustCode="",stanCodeInit="",descpIdTo=""; String toCustCode="",stanCodeInit="",descpIdTo="";
...@@ -59,7 +62,8 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -59,7 +62,8 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
String sql=""; String sql="";
PreparedStatement pstmt=null; PreparedStatement pstmt=null;
ResultSet rs=null; ResultSet rs=null;
double exchangeRate=0.0; double exchangeRate=0.0;
Timestamp tranDatetTStmp=null;
HashMap<String, String> ldsInvHdrMp=new HashMap<String, String>(); HashMap<String, String> ldsInvHdrMp=new HashMap<String, String>();
/** /**
* Select postUpto from table 'disparam' * Select postUpto from table 'disparam'
...@@ -132,10 +136,11 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -132,10 +136,11 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
frmCustCode=checknull(rs.getString("cust_code")); frmCustCode=checknull(rs.getString("cust_code"));
currCode=checknull(rs.getString("curr_code")); currCode=checknull(rs.getString("curr_code"));
lrNo=checknull(rs.getString("lr_no")); 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"));
remarks=checknull(rs.getString("remarks")); remarks=checknull(rs.getString("remarks"));
exchangeRate=rs.getDouble("exch_rate"); exchangeRate=rs.getDouble("exch_rate");
tranDatetTStmp=rs.getTimestamp("lr_date");
} }
pstmt.close(); pstmt.close();
pstmt=null; pstmt=null;
...@@ -144,6 +149,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -144,6 +149,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
toDateStr=frmDate; toDateStr=frmDate;
toCustCode=frmCustCode; toCustCode=frmCustCode;
if(tranDatetTStmp != null)
{
lrDate=sdf.format(tranDatetTStmp).toString();
}else
{
lrDate="";
}
System.out.println("lrDate>>>"+lrDate);
/** /**
* Check lrDate is not null * Check lrDate is not null
* */ * */
...@@ -160,7 +173,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -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" 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'"; + " and curr_code = ? and curr_code__to = 'RS'";
pstmt=conn.prepareStatement(sql); pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lrDate); pstmt.setTimestamp(1, tranDatetTStmp);
pstmt.setString(2, currCode); pstmt.setString(2, currCode);
rs=pstmt.executeQuery(); rs=pstmt.executeQuery();
if(rs.next()) if(rs.next())
...@@ -260,7 +273,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -260,7 +273,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
System.out.println("@@@@@@@@@@260:::::ldsInvHdrMp["+ldsInvHdrMp+"]"); 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()); fos1.write(("\n \n Final Return String :- [" + retString +"]\r\n").getBytes());
...@@ -309,7 +322,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -309,7 +322,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
* @throws ITMException * @throws ITMException
*/ */
private String createInvoice(HashMap<String, String> ldsInvHdrMp, boolean lbClub, boolean lbDrCr, boolean lbAdv, boolean tempflag, 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 // TODO Auto-generated method stub
StringBuffer xmlBuff=new StringBuffer(); StringBuffer xmlBuff=new StringBuffer();
...@@ -326,33 +339,41 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -326,33 +339,41 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
HashMap<String, String> arCustomerMap=null; HashMap<String, String> arCustomerMap=null;
String sql=""; String sql="";
PreparedStatement pstmt=null, pstmt1=null; PreparedStatement pstmt=null, pstmt1=null,pstmt2=null;
ResultSet rs=null; ResultSet rs=null,rs2=null;
String xtraParams = null; String loginEmpCode = null,itemDescr="";
String lc_ratestd="0",lc_cstrate="0"; 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 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 despIdKey="",despId="",sysDate="",salesInvPstHdr="",despLineNo="",userId="",termId="",loginSite="",tranId="";
String xmlInvString="",retString=""; String xmlInvString="",retString="";
double lcCommAmtOc=0.0,tcommAmt=0.0,lcExchRate=0.0; double lcCommAmtOc=0.0,tcommAmt=0.0,lcExchRate=0.0;
int lineNo=0,lineNoDet=0; int lineNo=0,lineNoDet=0;
Timestamp dueDate=null; Timestamp dueDate=null,sysDateTs=null;
String acctCodeDis="",cctrCodeDis="",acctCodeAr="",cctrCodeAr = "",acctCodePr="",cctrCodePr="",marketReg = "",mfgDateStr="",expDateStr=""; String acctCodeDis="",cctrCodeDis="",acctCodeAr="",cctrCodeAr = "",acctCodePr="",cctrCodePr="",marketReg = "",mfgDateStr="",expDateStr="";
double netAmt=0,taxAmt=0,commAmt=0,discAmt=0,invAmt=0; 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 * Generate Bean object
* */ * */
InvoiceDetBean invoiceDetBean= null; InvoiceDetBean invoiceDetBean= null;
InitialContext ctx = null;
try try
{ {
UserInfoBean userInfo=new UserInfoBean(); /*UserInfoBean userInfo=new UserInfoBean();
userId=userInfo.getLoginCode(); userId=userInfo.getLoginCode();
termId=userInfo.getRemoteHost(); termId=userInfo.getRemoteHost();
loginSite=userInfo.getSiteCode(); loginSite=userInfo.getSiteCode();
xtraParams = "loginCode="+userInfo.getLoginCode()+"~~termId="+userInfo.getRemoteHost()+"~~loginSiteCode="+userInfo.getSiteCode()+"~~loginEmpCode="+userInfo.getEmpCode(); 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(); java.util.Date today = new java.util.Date();
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.setTime(today); cal.setTime(today);
...@@ -521,6 +542,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -521,6 +542,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("<sales_pers><![CDATA["+invDespMap.get("sales_pers")+"]]></sales_pers>"); 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("<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("<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("<confirmed><![CDATA["+"N"+"]]></confirmed>");
xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>"); xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>"); xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
...@@ -554,7 +576,13 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -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() // 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")); 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__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__2><![CDATA["+invDespMap.get("sales_pers__2")+"]]></sales_pers__2>");
xmlBuff.append("<sales_pers_comm_1><![CDATA["+invDespMap.get("sales_pers_comm_1")+"]]></sales_pers_comm_1>"); xmlBuff.append("<sales_pers_comm_1><![CDATA["+invDespMap.get("sales_pers_comm_1")+"]]></sales_pers_comm_1>");
...@@ -562,9 +590,52 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -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_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_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_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("<round_adj><![CDATA[]]></round_adj>"); // Set round_adj sql="select round, case when round_to is null then 0.001 else round_to end as round_to " +
xmlBuff.append("<net_amt><![CDATA[0]]></net_amt>"); // Set net_amt " 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>"); xmlBuff.append("</Detail1>");
...@@ -587,7 +658,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -587,7 +658,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
invTraceDetMap=mainInvDespDetMap.get(keyStr); invTraceDetMap=mainInvDespDetMap.get(keyStr);
System.out.println("Inner InvDespDetMap size:-["+invTraceDetMap.size()+"]"); System.out.println("Inner InvDespDetMap size:-["+invTraceDetMap.size()+"]");
lineNo++; lineNo++;
xmlBuff.append("<Detail2 dbID=\"\" domID=\""+lineNo+"\" objContext=\"2\" objName=\"invoice_po\">"); xmlBuff.append("<Detail2 dbID=\"\" domID=\""+lineNo+"\" objContext=\"2\" objName=\"invoice_po\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" status=\"N\" updateFlag=\"A\"/>"); xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" status=\"N\" updateFlag=\"A\"/>");
xmlBuff.append("<invoice_id/>"); xmlBuff.append("<invoice_id/>");
...@@ -604,20 +675,20 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -604,20 +675,20 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("<tax_chap><![CDATA["+invTraceDetMap.get("tax_chap")+"]]></tax_chap>"); 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_env><![CDATA["+invTraceDetMap.get("tax_env")+"]]></tax_env>");
xmlBuff.append("<tax_amt><![CDATA[0]]></tax_amt>"); //tax_amt missing 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("<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("<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("<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("<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("<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_no><![CDATA[" + invTraceDetMap.get("sord_no") + "]]></sord_no>");
xmlBuff.append("<sord_line_no><![CDATA[" + invTraceDetMap.get("line_no__sord") + "]]></sord_line_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("<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("<no_art><![CDATA[" + invTraceDetMap.get("no_art") + "]]></no_art>");
xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>"); xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>"); xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
xmlBuff.append("<chg_term><![CDATA["+termId+"]]></chg_term>"); xmlBuff.append("<chg_term><![CDATA["+termId+"]]></chg_term>");
xmlBuff.append("<lot_no><![CDATA["+invTraceDetMap.get("lot_no")+"]]></lot_no>"); xmlBuff.append("<lot_no><![CDATA["+invTraceDetMap.get("lot_no")+"]]></lot_no>");
xmlBuff.append("<lot_sl><![CDATA["+invTraceDetMap.get("lot_sl")+"]]></lot_sl>"); xmlBuff.append("<lot_sl><![CDATA["+invTraceDetMap.get("lot_sl")+"]]></lot_sl>");
xmlBuff.append("<site_code__mfg><![CDATA["+invTraceDetMap.get("site_code__mfg")+"]]></site_code__mfg>"); xmlBuff.append("<site_code__mfg><![CDATA["+invTraceDetMap.get("site_code__mfg")+"]]></site_code__mfg>");
...@@ -697,14 +768,19 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -697,14 +768,19 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
if(lc_disc_amt > 0) 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"))); 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("<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("<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_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("<disc_schem_offinv_amt><![CDATA[" + invTraceDetMap.get("disc_schem_offinv_amt") + "]]></disc_schem_offinv_amt>");
xmlBuff.append("<item_flg><![CDATA[I]]></item_flg>"); xmlBuff.append("<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>"); xmlBuff.append("</Detail2>");
// } // }
...@@ -723,21 +799,49 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -723,21 +799,49 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
* */ * */
// invDetBeanMap=mainInvDespDetMap.get(keyStr); // invDetBeanMap=mainInvDespDetMap.get(keyStr);
invDetBeanMap=(HashMap<String, Object>) dataList.get(1); invDetBeanMap=(HashMap<String, Object>) dataList.get(1);
System.out.println("@@@@@@@@@@@ invDetBeanMap["+invDetBeanMap+"]"); System.out.println("@@@@@@@@@@@ invDetBeanMap["+invDetBeanMap.toString()+"]");
for(String keyStr:invDetBeanMap.keySet()) for(String keyStr:invDetBeanMap.keySet())
{ {
System.out.println("Detail 3:::::::::::"); System.out.println("Detail 3:::::::::::");
lineNoDet++; lineNoDet++;
invoiceDetBean=(InvoiceDetBean) invDetBeanMap.get(keyStr); 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("<Detail3 dbID=\"\" domID=\""+lineNoDet+"\" objContext=\"3\" objName=\"invoice_po\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" status=\"N\" updateFlag=\"A\"/>"); xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" status=\"N\" updateFlag=\"A\"/>");
xmlBuff.append("<invoice_id/>"); xmlBuff.append("<invoice_id/>");
xmlBuff.append("<line_no><![CDATA[" + lineNoDet + "]]></line_no>"); xmlBuff.append("<line_no><![CDATA[" + lineNoDet + "]]></line_no>");
xmlBuff.append("<sord_no><![CDATA[" + invoiceDetBean.getSord_no()+ "]]></sord_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("<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_code__ord><![CDATA[" + invoiceDetBean.getItem_code__ord() + "]]></item_code__ord>");
xmlBuff.append("<item_flg><![CDATA[I]]></item_flg>"); //item_flag missing xmlBuff.append("<item_flg><![CDATA[I]]></item_flg>"); //item_flag missing
xmlBuff.append("<quantity><![CDATA[" + invoiceDetBean.getmTotDespQty()+ "]]></quantity>"); xmlBuff.append("<quantity><![CDATA[" + invoiceDetBean.getmTotDespQty()+ "]]></quantity>");
...@@ -751,15 +855,25 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -751,15 +855,25 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("<conv__rtuom_stduom><![CDATA[" + invoiceDetBean.getConv__rtuom_stduom() + "]]></conv__rtuom_stduom>"); 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("<rate__stduom><![CDATA[" + invoiceDetBean.getDesp_rate__stduom() + "]]></rate__stduom>");
xmlBuff.append("<discount><![CDATA[" + invoiceDetBean.getDiscount() + "]]></discount>"); 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_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("<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("<acc_code__item><![CDATA[" + invoiceDetBean.getAcc_code__item() + "]]></acc_code__item>");
xmlBuff.append("<comm_amt><![CDATA[]]></comm_amt>"); //comm_amt missing //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_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_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("<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("<comm_amt__oc><![CDATA[]]></comm_amt__oc>"); //comm_amt__oc missing
// xmlBuff.append("<tax_class><![CDATA["+invoiceDetBean.getTax_class()+"]]></tax_class>"); // xmlBuff.append("<tax_class><![CDATA["+invoiceDetBean.getTax_class()+"]]></tax_class>");
// xmlBuff.append("<tax_chap><![CDATA["+invoiceDetBean.getTax_chap()+"]]></tax_chap>"); // xmlBuff.append("<tax_chap><![CDATA["+invoiceDetBean.getTax_chap()+"]]></tax_chap>");
...@@ -771,20 +885,18 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -771,20 +885,18 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("<cust_item__ref><![CDATA["+invoiceDetBean.getCust_item__ref()+"]]></cust_item__ref>"); 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("<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("<chg_date><![CDATA["+sysDate+"]]></chg_date>"); xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>"); xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
xmlBuff.append("<chg_term><![CDATA["+termId+"]]></chg_term>"); xmlBuff.append("<chg_term><![CDATA["+termId+"]]></chg_term>");
xmlBuff.append("</Detail3>"); xmlBuff.append("</Detail3>");
} }
xmlBuff.append("</Header0>"); xmlBuff.append("</Header0>");
xmlBuff.append("</group0>"); xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>"); xmlBuff.append("</DocumentRoot>");
xmlInvString=xmlBuff.toString(); xmlInvString=xmlBuff.toString();
System.out.println("XML generated :- ["+xmlInvString+"]"); System.out.println("XML generated :- ["+xmlInvString+"]");
/** /**
* Master statefull * Master statefull
* Save data * Save data
...@@ -807,6 +919,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -807,6 +919,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
tranId = arrayForTranIdIssue[1].substring(0, endIndexIssue); tranId = arrayForTranIdIssue[1].substring(0, endIndexIssue);
System.out.println("@V@ Tran id :- [" + tranId + "]"); 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)- ( 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=?"; //sql="update invdet set net_amt=(quantity__stduom*rate__stduom)-disc_amt+tax_amt where invoice_id=?";
pstmt=conn.prepareStatement(sql); pstmt=conn.prepareStatement(sql);
...@@ -835,7 +948,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -835,7 +948,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt.setDouble(2,taxAmt); pstmt.setDouble(2,taxAmt);
pstmt.setDouble(3,commAmt); pstmt.setDouble(3,commAmt);
pstmt.setDouble(4,discAmt); pstmt.setDouble(4,discAmt);
pstmt.setDouble(5,netAmt-taxAmt); pstmt.setDouble(5,(netAmt+discAmt)-taxAmt);
pstmt.setString(6,tranId); pstmt.setString(6,tranId);
pstmt.executeUpdate(); pstmt.executeUpdate();
pstmt.close(); pstmt.close();
...@@ -861,11 +974,11 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -861,11 +974,11 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
double totTaxAmt=0,totNetAmt=0; double totTaxAmt=0,totNetAmt=0;
fos1.write(("Invoice successful for Dispatch id :- ["+despIdKey+"] TranId generated is:- [" + tranId +"]\n END \r\n\n").getBytes()); 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.setString(1, tranId);
pstmt.executeUpdate(); pstmt.executeUpdate();
pstmt.close(); 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=?"; sql="update invdet set tax_class=?,tax_chap=?,tax_env=?,tax_amt=0,net_amt=0 where invoice_id=?";
pstmt1=conn.prepareStatement(sql); pstmt1=conn.prepareStatement(sql);
...@@ -877,10 +990,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -877,10 +990,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt1.close(); pstmt1.close();
pstmt1=null; 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" + " from invoice_trace"
+ " where invoice_id=? " + " 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); pstmt.setString(1,tranId);
rs=pstmt.executeQuery(); rs=pstmt.executeQuery();
while(rs.next()) while(rs.next())
...@@ -898,7 +1015,8 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -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+?+?" sql="update invdet set tax_class=?,tax_chap=?,tax_env=?,tax_amt=tax_amt+?,net_amt=net_amt+?+?"
+ " where invoice_id=? " + " where invoice_id=? "
+ " and sord_no=? " + " and sord_no=? "
+ " and sord_line_no=?"; //+ " and sord_line_no=?";
+ " and line_no=?";
pstmt1=conn.prepareStatement(sql); pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,taxClass); pstmt1.setString(1,taxClass);
pstmt1.setString(2,taxChap); pstmt1.setString(2,taxChap);
...@@ -910,15 +1028,6 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -910,15 +1028,6 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt1.setString(8,sordNo); pstmt1.setString(8,sordNo);
pstmt1.setString(9,soLineNo); pstmt1.setString(9,soLineNo);
pstmt1.executeUpdate(); 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.close();
rs=null; rs=null;
...@@ -935,7 +1044,45 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -935,7 +1044,45 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt.close(); pstmt.close();
pstmt=null; 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 * Call Credit check component
* PostOrdCreditChk.java * PostOrdCreditChk.java
...@@ -946,18 +1093,37 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -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 // 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); // invDespMap.get("sord_no"), ldsInvHdrMp.get("invoice__date"), invDespMap.get("desp_site_code"), "I", despId,conn);
// temp cpatil
/** /**
* Invoice Posting * Invoice Posting
* */ * */
// temp cpatil /*System.out.println("@@@@@@@@@@@cpatil Invoice posting start....................");
// PostOrdInvoicePost invPost=new PostOrdInvoicePost();
// retString=invPost.invoicePosting(tranId, conn); PostOrdInvoicePostLocal PostOrdInvoicePost = null;
System.out.println("Invoice posting ret string :- ["+retString+"]"); 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 else
...@@ -1415,12 +1581,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -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 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 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 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; PreparedStatement pstmt=null;
ResultSet rs=null; ResultSet rs=null;
String beanMapKey="",lsLineType=""; String beanMapKey="",lsLineType="";
ArrayList<Object> mainArrayList= new ArrayList<Object>(); ArrayList<Object> mainArrayList= new ArrayList<Object>();
HashMap commissionMap = null;
/** /**
* Generate Bean object * Generate Bean object
* */ * */
...@@ -1430,24 +1598,24 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -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," 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.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.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.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," + "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,despatchdet.disc_amt," + "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" + "despatchdet.cust_item__ref,despatchdet.disc_schem_billback_amt,despatchdet.disc_schem_offinv_amt"
+ " FROM despatchdet,sorddet" + " FROM despatchdet,sorddet"
+ " WHERE ( despatchdet.sord_no = sorddet.sale_order )" + " WHERE ( despatchdet.sord_no = sorddet.sale_order )"
+ " and( despatchdet.line_no__sord = sorddet.line_no )" + " and( despatchdet.line_no__sord = sorddet.line_no )"
+ " and( ( case when DESPATCHDET.STATUS is null then ' ' else despatchdet.STATUS end = ? )" + " 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 >= ?)"
+ " AND( DESPATCHDET.DESP_ID <= ? ) )" + " AND( DESPATCHDET.DESP_ID <= ? ) )"
+ " ORDER BY despatchdet.sord_no ASC,despatchdet.line_no__sord ASC,despatchdet.exp_lev ASC"; + " ORDER BY despatchdet.sord_no ASC,despatchdet.line_no__sord ASC,despatchdet.exp_lev ASC";
pstmt=conn.prepareStatement(invDespDetSql); pstmt=conn.prepareStatement(invDespDetSql);
pstmt.setString(1,status); pstmt.setString(1,status);
pstmt.setString(2,sordNo); //pstmt.setString(2,sordNo);
pstmt.setString(2,despId);
pstmt.setString(3,despId); pstmt.setString(3,despId);
pstmt.setString(4,despId);
rs=pstmt.executeQuery(); rs=pstmt.executeQuery();
while(rs.next()) while(rs.next())
{ {
...@@ -1469,7 +1637,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -1469,7 +1637,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
desp_conv__qty_stduom=checknull(rs.getString("conv__qty_stduom")); desp_conv__qty_stduom=checknull(rs.getString("conv__qty_stduom"));
desp_unit__std=checknull(rs.getString("unit__std")); desp_unit__std=checknull(rs.getString("unit__std"));
unit=checknull(rs.getString("unit")); 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_class=checknull(rs.getString("tax_class"));
tax_chap=checknull(rs.getString("tax_chap")); tax_chap=checknull(rs.getString("tax_chap"));
tax_env=checknull(rs.getString("tax_env")); tax_env=checknull(rs.getString("tax_env"));
...@@ -1478,21 +1646,32 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -1478,21 +1646,32 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
sord_conv__qty_stduom=checknull(rs.getString("conv__qty_stduom")); sord_conv__qty_stduom=checknull(rs.getString("conv__qty_stduom"));
conv__rtuom_stduom=checknull(rs.getString("conv__rtuom_stduom")); conv__rtuom_stduom=checknull(rs.getString("conv__rtuom_stduom"));
sord_unit__std=checknull(rs.getString("unit__std")); sord_unit__std=checknull(rs.getString("unit__std"));
sord_quantity__stduom=checknull(rs.getString("quantity__stduom")); sord_quantity__stduom=checknull(rs.getString("squantity__stduom"));
sord_rate__stduom=checknull(rs.getString("rate__stduom")); sord_rate__stduom=checknull(rs.getString("srate__stduom"));
rate=checknull(rs.getString("rate")); //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_real=checknull(rs.getString("quantity_real"));
quantity_inv=checknull(rs.getString("quantity_inv")); quantity_inv=checknull(rs.getString("quantity_inv"));
invoice_id=checknull(rs.getString("invoice_id")); invoice_id=checknull(rs.getString("invoice_id"));
no_art=checknull(rs.getString("no_art")); no_art=checknull(rs.getString("no_art"));
rate__clg=checknull(rs.getString("rate__clg")); 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")); disc_amt=checknull(rs.getString("disc_amt"));
cust_item__ref=checknull(rs.getString("cust_item__ref")); cust_item__ref=checknull(rs.getString("cust_item__ref"));
disc_schem_billback_amt=checknull(rs.getString("disc_schem_billback_amt")); disc_schem_billback_amt=checknull(rs.getString("disc_schem_billback_amt"));
disc_schem_offinv_amt=checknull(rs.getString("disc_schem_offinv_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("desp_id", desp_id);
invTraceMap.put("line_no", line_no); invTraceMap.put("line_no", line_no);
...@@ -1566,6 +1745,31 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -1566,6 +1745,31 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
// invDespDetMap.put("cust_item__ref", lsCustitemRef); // invDespDetMap.put("cust_item__ref", lsCustitemRef);
// mainInvDespDetMap.put(rs.getString("desp_id"), invDespDetMap); // 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+"]"); System.out.println("@@@@@@@@@@@@@@@@@ invTraceMap["+invTraceMap+"]");
mainInvDespDetMap.put(rs.getString("line_no"), invTraceMap); mainInvDespDetMap.put(rs.getString("line_no"), invTraceMap);
...@@ -1573,7 +1777,9 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -1573,7 +1777,9 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
System.out.println("@@@@@@@@@@@@@@@@@ mainInvDespDetMap["+mainInvDespDetMap+"]"); 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 * Check generated key is exist in
* Bean map * Bean map
...@@ -1627,8 +1833,13 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -1627,8 +1833,13 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
invoiceDetBean.setDisc_schem_offinv_amt(checknull(disc_schem_offinv_amt)); invoiceDetBean.setDisc_schem_offinv_amt(checknull(disc_schem_offinv_amt));
invoiceDetBean.setAcc_code__item(lsAcctSchemedet); invoiceDetBean.setAcc_code__item(lsAcctSchemedet);
invoiceDetBean.setFin_scheme(lsFinscheme); 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); invDetBeanMap.put(beanMapKey, invoiceDetBean);
System.out.println("@@@@@1634 invoiceDetBean added into invDetBeanMap........");
} }
else else
{ {
...@@ -1819,7 +2030,20 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -1819,7 +2030,20 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
private String fin_scheme; private String fin_scheme;
private String conv__rtuom_stduom; private String conv__rtuom_stduom;
private String sord_unit__std; 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() public double getmTotDespQty()
{ {
return mTotDespQty; return mTotDespQty;
...@@ -2188,7 +2412,30 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB ...@@ -2188,7 +2412,30 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
{ {
this.sord_unit__std = sord_unit__std; 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 ...@@ -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 { ...@@ -921,7 +921,8 @@ public class PostOrderActivity {
sitelocCode=locCode; sitelocCode=locCode;
} }
stkOpt = mfgCommon.chkStkOpt(itemCode,siteCodeCh,conn); //stkOpt = mfgCommon.chkStkOpt(itemCode,siteCodeCh,conn);
stkOpt = mfgCommon.chkStkOpt(siteCodeCh,itemCode,conn);
lnno++; lnno++;
lineNo=String.valueOf(lnno); lineNo=String.valueOf(lnno);
...@@ -2814,7 +2815,7 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt))); ...@@ -2814,7 +2815,7 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
String rndStr="",rndOff="",rndToStr="",acct="",cctr=""; String rndStr="",rndOff="",rndToStr="",acct="",cctr="";
String tempSplitCode=""; String tempSplitCode="";
String splitCode=""; String splitCode="";
String drcrTranid="",insertsql=""; String drcrTranid="",insertsql="",exciseDrAcct="",exciseDrAcctcd="",exciseDrCctrCd="";
double rndto=0.0; double rndto=0.0;
double exchRate=0.0; double exchRate=0.0;
double taxAmt=0.0,totAmount=0.0; double taxAmt=0.0,totAmount=0.0;
...@@ -2895,6 +2896,23 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt))); ...@@ -2895,6 +2896,23 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
excise=checkNull(distCommon.getDisparams("999999", "EXC_TAX_CODE_MODVAT", conn)).trim(); excise=checkNull(distCommon.getDisparams("999999", "EXC_TAX_CODE_MODVAT", conn)).trim();
cess=checkNull(distCommon.getDisparams("999999", "CESS_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(); 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 //Excise Tax Code, selected from despatch
if ((!"NULLFOUND".equalsIgnoreCase(excise) && excise != null && excise.trim().length() > 0) ) if ((!"NULLFOUND".equalsIgnoreCase(excise) && excise != null && excise.trim().length() > 0) )
{ {
...@@ -3074,6 +3092,15 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt))); ...@@ -3074,6 +3092,15 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
isHeaderPrepared=true; isHeaderPrepared=true;
drcrTranid=generateTranId("w_drcrrcp_dr",siteCode,conn); 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," + 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 ," + " 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," + "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))); ...@@ -3841,7 +3868,8 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
} }
}// FOR LOOP [2] --END-- }// 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)) if ("I".equalsIgnoreCase(tranType))
{ {
......
...@@ -4,9 +4,13 @@ import ibase.system.config.AppConnectParm; ...@@ -4,9 +4,13 @@ import ibase.system.config.AppConnectParm;
import ibase.system.config.ConnDriver; import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants; import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility; import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.E12CreateBatchLoadEjb;
import ibase.webitm.ejb.ITMDBAccessEJB; import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ProcessEJB; import ibase.webitm.ejb.ProcessEJB;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.fin.InvAcct; 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.ejb.sys.UtilMethods;
//import ibase.webitm.utility.GenericUtility; //import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException; import ibase.webitm.utility.ITMException;
...@@ -46,6 +50,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -46,6 +50,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
UtilMethods utilMethod = new UtilMethods(); UtilMethods utilMethod = new UtilMethods();
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
ibase.webitm.ejb.dis.DistCommon dist = new ibase.webitm.ejb.dis.DistCommon(); ibase.webitm.ejb.dis.DistCommon dist = new ibase.webitm.ejb.dis.DistCommon();
FinCommon fnComm=new FinCommon();
E12GenericUtility genericUtility = new E12GenericUtility(); E12GenericUtility genericUtility = new E12GenericUtility();
UtilMethods utilmethod = new UtilMethods(); UtilMethods utilmethod = new UtilMethods();
SimpleDateFormat sdf =null; SimpleDateFormat sdf =null;
...@@ -53,8 +58,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -53,8 +58,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String strToWrite="",strToWriteHead="",logFileInit="",xmlString1="",chgTerm="",chgUser=""; String strToWrite="",strToWriteHead="",logFileInit="",xmlString1="",chgTerm="",chgUser="";
String err = ""; String err = "";
boolean postLogYn=false; boolean postLogYn=false;
PostOrderActivity postordact=new PostOrderActivity();
String xtraparam="";
//Connection conn = null; //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 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 ...@@ -79,7 +87,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
} }
System.out.println("xmlString*********"+xmlString); System.out.println("xmlString*********"+xmlString);
System.out.println("xmlString2*********"+xmlString2); System.out.println("xmlString2*********"+xmlString2);
xtraparam=xtraParams;
retStr = process(headerDom, detailDom, windowName, xtraParams); retStr = process(headerDom, detailDom, windowName, xtraParams);
System.out.println("@@@@@@@@@@@ retStr["+retStr+"]"); System.out.println("@@@@@@@@@@@ retStr["+retStr+"]");
...@@ -105,7 +113,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -105,7 +113,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
ResultSet rs = null; ResultSet rs = null;
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB(); ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
String postSal="";
String saleOrder="";
//PostOrder //PostOrder
...@@ -118,7 +127,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -118,7 +127,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String sql="",custCode=""; String sql="",custCode="";
// String[] custCode; // String[] custCode;
int cnt = 0,liCtr = 0,custCdIndex = 0,sordIndex=0; int cnt = 0,liCtr = 0,custCdIndex = 0,sordIndex=0;
boolean isPostDone=false;
ArrayList<String> custCodeList = new ArrayList<String>(); ArrayList<String> custCodeList = new ArrayList<String>();
//custCodeList = null; //custCodeList = null;
...@@ -127,10 +136,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -127,10 +136,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
try try
{ {
System.out.println("process starts................"); System.out.println("process starts................");
//Changes and Commented By Bhushan on 09-06-2016 :START conn = connDriver.getConnectDB("DriverITM");
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
//Changes and Commented By Bhushan on 09-06-2016 :END
conn.setAutoCommit(false); conn.setAutoCommit(false);
sdf = new SimpleDateFormat(e12GenericUtility.getApplDateFormat()); sdf = new SimpleDateFormat(e12GenericUtility.getApplDateFormat());
...@@ -160,7 +166,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -160,7 +166,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("fromDateStr :"+fromDateStr); System.out.println("fromDateStr :"+fromDateStr);
toDateStr=e12GenericUtility.getColumnValue("desp_date__to",headerDom); toDateStr=e12GenericUtility.getColumnValue("desp_date__to",headerDom);
System.out.println("toDateStr :"+toDateStr); System.out.println("toDateStr :"+toDateStr);
//SETTING OF FROM SO TO 0 IF IT IS NULL //SETTING OF FROM SO TO 0 IF IT IS NULL
if( fromSaleOrder == null || fromSaleOrder.trim().length() == 0 ) if( fromSaleOrder == null || fromSaleOrder.trim().length() == 0 )
{ {
...@@ -279,8 +285,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -279,8 +285,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(2, toSaleOrder); pstmt.setString(2, toSaleOrder);
pstmt.setString(3, fromCustCode); pstmt.setString(3, fromCustCode);
pstmt.setString(4, toCustCode); pstmt.setString(4, toCustCode);
pstmt.setString(5, fromDateStr); //pstmt.setString(5, fromDateStr);
pstmt.setString(6, toDateStr); //pstmt.setString(6, toDateStr);
pstmt.setTimestamp(5, fromDate);
pstmt.setTimestamp(6, toDate);
pstmt.setString(7, siteCodeShip); pstmt.setString(7, siteCodeShip);
if(orderType != null && orderType.trim().length() > 0) if(orderType != null && orderType.trim().length() > 0)
{ {
...@@ -309,13 +317,45 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -309,13 +317,45 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
for(custCdIndex = 0 ; custCdIndex < custCodeList.size() ;custCdIndex++) for(custCdIndex = 0 ; custCdIndex < custCodeList.size() ;custCdIndex++)
{ {
retString = postOrder( headerDom, custCodeList.get(custCdIndex),"",xtraParams,conn); retString = postOrder( headerDom, custCodeList.get(custCdIndex),"",xtraParams,conn);
System.out.println("retString :"+retString); System.out.println("cust post ord retString :"+retString);
if(retString == null || retString.trim().length() <= 0) 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 //error to be display with codeCode on the message
System.out.println("Sales Orders for Customer are posted"); System.out.println("Sales Orders for Customer are posted");
conn.commit(); //conn.commit();changed by chandrashekar on 07-june-2016
} }
else else
{ {
...@@ -323,7 +363,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -323,7 +363,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("Sales Orders for Customer are not posted"); System.out.println("Sales Orders for Customer are not posted");
retString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn); retString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
return retString; return retString;
} }*/
} }
} }
else else
...@@ -347,8 +387,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -347,8 +387,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(2, toSaleOrder); pstmt.setString(2, toSaleOrder);
pstmt.setString(3, fromCustCode); pstmt.setString(3, fromCustCode);
pstmt.setString(4, toCustCode); pstmt.setString(4, toCustCode);
pstmt.setString(5, fromDateStr); //pstmt.setString(5, fromDateStr);
pstmt.setString(6, toDateStr); //pstmt.setString(6, toDateStr);//change by chandrashekar on jun 02
pstmt.setTimestamp(5, fromDate);
pstmt.setTimestamp(6, toDate);
pstmt.setString(7, siteCodeShip); pstmt.setString(7, siteCodeShip);
if(orderType != null && orderType.trim().length() > 0) if(orderType != null && orderType.trim().length() > 0)
{ {
...@@ -384,15 +426,40 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -384,15 +426,40 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
//System.out.println("liCtr>>>> : "+liCtr); //System.out.println("liCtr>>>> : "+liCtr);
for(sordIndex=0; sordIndex < saleOrderList.size() ;sordIndex++) for(sordIndex=0; sordIndex < saleOrderList.size() ;sordIndex++)
{ {
retString = postOrder(headerDom, "",saleOrderList.get(sordIndex),xtraParams,conn); retString = postOrder(headerDom, "",saleOrderList.get(sordIndex),xtraParams,conn);
System.out.println("postOrder return:::::::::::[["+retString+"]]......"); 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 //error to be display with codeCode on the message
errString = itmDBAccessEJB.getErrorString("", "VTPOST03", "","", conn); errString = itmDBAccessEJB.getErrorString("", "VTPOST03", "","", conn);
System.out.println("Sales Orders for Customer are posted..........conn.commit().........."); System.out.println("Sales Orders for Customer are posted..........conn.commit()..........");
conn.commit(); //conn.commit();
} }
else else
{ {
...@@ -400,10 +467,57 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -400,10 +467,57 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("Sales Orders for Customer are not posted.........conn.rollback()........."); System.out.println("Sales Orders for Customer are not posted.........conn.rollback().........");
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn); errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
conn.rollback(); 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) catch(Exception e)
{ {
...@@ -427,7 +541,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -427,7 +541,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{ {
try try
{ {
salesOrderListAll.clear();
postSalOder.clear();
if(rs != null) if(rs != null)
{ {
...@@ -439,7 +555,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -439,7 +555,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
conn.close(); if(conn !=null)
{
conn.close();
conn=null;
}
} }
catch(Exception e) catch(Exception e)
{ {
...@@ -472,7 +594,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -472,7 +594,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String errCode=""; String errCode="";
InitialContext ctx = null; InitialContext ctx = null;
String postUpto="",confDespOnPost="",autoInvOnDesp=""; String postUpto="",confDespOnPost="",autoInvOnDesp="";
Connection connCP=null;
ArrayList showSordrList=new ArrayList<String>();
try try
{ {
//conn = connDriver.getConnectDB("DriverITM"); //conn = connDriver.getConnectDB("DriverITM");
...@@ -599,7 +722,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -599,7 +722,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if("Y".equalsIgnoreCase(clubOrder)) if("Y".equalsIgnoreCase(clubOrder))
{ {
errCode = postOrder(fromSaleOrder,toSaleOrder,custCode,custCode, fromDate, toDate,lotSl,siteCodeShip,xtraParams,conn); errCode = postOrder(fromSaleOrder,toSaleOrder,custCode,custCode, fromDate, toDate,lotSl,siteCodeShip,xtraParams,conn);
} }
else else
...@@ -609,11 +732,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -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(); conn.rollback();
return errCode;
//RETURN; //RETURN;
} }
//else if("Y".equalsIgnoreCase(allocStk)) //else if("Y".equalsIgnoreCase(allocStk))
...@@ -627,10 +751,37 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -627,10 +751,37 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("Despatch creation Test@@@@@@@@@"); System.out.println("Despatch creation Test@@@@@@@@@");
//dispact coding starts //dispact coding starts
//added by priyanka //added by priyanka
PostOrdDespatchGen postOrdDespatchGen=new PostOrdDespatchGen(); 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); 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) if(errCode.indexOf("VTCONPARM") > -1)
{ {
...@@ -653,23 +804,59 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -653,23 +804,59 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
tranIdDespatch = arrayForTranId[1].substring(0, endIndex); tranIdDespatch = arrayForTranId[1].substring(0, endIndex);
System.out.println("tranIdDespatch====="+tranIdDespatch); System.out.println("tranIdDespatch====="+tranIdDespatch);
System.out.println("Calling Despatch Confirmation"); System.out.println("Calling Despatch Confirmation");
String despIdArr[]=tranIdDespatch.split(",");
DespatchConfirmLocal despatchConfirm = null;
AppConnectParm appConnect = new AppConnectParm(); if(despIdArr.length>0)
ctx = new InitialContext(appConnect.getProperty()); {
despatchConfirm = (DespatchConfirmLocal) ctx.lookup("ibase/DespatchConfirm/local"); DespatchConfirmLocal despatchConfirm = null;
System.out.println("-----------despatchConfirm------- " + despatchConfirm); AppConnectParm appConnect = new AppConnectParm();
String forcedFlag="N"; ctx = new InitialContext(appConnect.getProperty());
errString=despatchConfirm.confirm(tranIdDespatch, xtraParams, forcedFlag,conn); 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); 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... /* //commented same code repeate in despatchconfirm...
if(errStringConf != null && errStringConf.trim().length() > 0) if(errStringConf != null && errStringConf.trim().length() > 0)
{ {
...@@ -723,25 +910,37 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -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........."); System.out.println("@@@@@@@@@@@@ invPosting() called.........");
Boolean adjDrcrFlag= false, adjAdv=false, adjNewProdInvFlag=false; Boolean adjDrcrFlag= false, adjAdv=false, adjNewProdInvFlag=false;
String advAdj=""; String advAdj="";
String commDrcrConf="",commJvConf="";
DistCommon dis=new DistCommon(); DistCommon dis=new DistCommon();
String errString="",invoiceId="",sql="",ls_drnid=""; String errString="",invoiceId="",sql="",ls_drnid="",loginEmpCode;
PreparedStatement pstmt=null; PreparedStatement pstmt=null;
ResultSet rs=null; ResultSet rs=null;
String applyTime="I",crPolicy="",lsStatus=""; String applyTime="I",crPolicy="",lsStatus="",finScheme="";
double finAdjAmt=0;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB(); ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
String autoInvOnDesp = dis.getDisparams("999999", "AUTO_INV_ON_DESPATCH", conn); String autoInvOnDesp = dis.getDisparams("999999", "AUTO_INV_ON_DESPATCH", conn);
InitialContext ctx = null;
Timestamp sysDate = null;
if("Y".equalsIgnoreCase(autoInvOnDesp)) if("Y".equalsIgnoreCase(autoInvOnDesp))
{ {
//conn.commit(); // added testing purpose //conn.commit(); // added testing purpose
try 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(); PostOrdInvoiceGen invgen = new PostOrdInvoiceGen();
System.out.println("from date ::::::::"+fromDate); System.out.println("from date ::::::::"+fromDate);
// SimpleDateFormat dateFormat = new SimpleDateFormat(genericUtility.getDBDateFormat()); // SimpleDateFormat dateFormat = new SimpleDateFormat(genericUtility.getDBDateFormat());
...@@ -775,8 +974,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -775,8 +974,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
adjNewProdInvFlag = true; adjNewProdInvFlag = true;
} }
advAdj = advAdjMode; 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+"]"); System.out.println("@@@@@@@@@695::::invgen.invoiceProcess():::errString["+errString+"]");
//if(errString != null && errString.trim().length()>0 ) //if(errString != null && errString.trim().length()>0 )
//{ //{
...@@ -797,7 +996,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -797,7 +996,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
invoiceId = arrayForTranId1[1].substring(0, endIndex1); invoiceId = arrayForTranId1[1].substring(0, endIndex1);
System.out.println("invoiceId=====["+invoiceId+"]"); System.out.println("invoiceId=====["+invoiceId+"]");
String itemSer=""; String itemSer="";
double netAmt=0,lc_check_amt=0; double netAmt=0,lc_check_amt=0;
...@@ -868,47 +1067,124 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -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("@@@@@ crPolicy["+crPolicy+"]lc_check_amt["+lc_check_amt+"]lsStatus["+lsStatus+"]");
*/ */
errString=postordact.prdSchemeTraceUpd(invoiceId,xtraParams,conn);
System.out.println("@@@@@@@@@@@@ postOrdCreditChk()...........finish........."); if( errString == null || errString.trim().length() == 0 )
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")); //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 ) 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(); //CreteCommCrNote creteCommCrNote = new CreteCommCrNote();
CalculateCommission calCom=new CalculateCommission();
// retString = creteCommCrNote.creteCommCrNote(invoiceId, conn); 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+"]"); System.out.println("@@@@@@@@@4 CreteCommCrNote() errString["+errString+"]");
if( errString != null && errString.trim().length() > 0 )
{
return errString;
}
if( errString == null || errString.trim().length() == 0 ) if( errString == null || errString.trim().length() == 0 )
{ {
// AutoExciseDrNote autoExciseDrNote = new AutoExciseDrNote(); // AutoExciseDrNote autoExciseDrNote = new AutoExciseDrNote();
// retString = autoExciseDrNote.autoExciseDrNote(invoiceId, conn); errString = postordact.autoExciseDrNote(invoiceId,xtraParams, conn);
System.out.println("@@@@@@@@@5 autoExciseDrNote() errString["+errString+"]"); System.out.println("@@@@@@@@@5 autoExciseDrNote() errString["+errString+"]");
} }
...@@ -1200,13 +1476,15 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1200,13 +1476,15 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB(); ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
DistCommon discommon = new DistCommon(); DistCommon discommon = new DistCommon();
ArrayList<SorderBean> sorderList = new ArrayList<SorderBean>(); ArrayList<SorderBean> sorderList = new ArrayList<SorderBean>();
ArrayList<SordItemBean> sordItemList = null;; ArrayList<SordItemBean> sordItemList = null;
ArrayList<StockBean> stockList = null; ArrayList<StockBean> stockList = null;
Date currentDate = new Date(); Date currentDate = new Date();
Timestamp allocDate = null,orderDate=null,plDate=null; Timestamp allocDate = null,orderDate=null,plDate=null;
int totRecords=0,records=0; int totRecords=0,records=0;
int saleOrderCnt=0,skiplineCnt=0; int saleOrderCnt=0,skiplineCnt=0;
String tranidSoalloc="",linenoSoalloc=""; String tranidSoalloc="",linenoSoalloc="";
String itemOld="",lsItem="";
int countItem=0;
double pendingDeallocQty=0.0,stockTot=0.0; double pendingDeallocQty=0.0,stockTot=0.0;
int updSordAllDetCnt=0; int updSordAllDetCnt=0;
...@@ -1298,7 +1576,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1298,7 +1576,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
stateCodeDlv = checkNull(rs.getString("state_code__dlv")); stateCodeDlv = checkNull(rs.getString("state_code__dlv"));
countCodeDlv = checkNull(rs.getString("count_code__dlv")); countCodeDlv = checkNull(rs.getString("count_code__dlv"));
SorderBean sorderBean = new SorderBean(); SorderBean sorderBean = new SorderBean();
sorderBean.setSaleOrder(saleOrder); sorderBean.setSaleOrder(saleOrder);
...@@ -1342,7 +1620,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1342,7 +1620,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
status = sorderBean.getStatus(); status = sorderBean.getStatus();
locGroup=sorderBean.getLocGroup(); locGroup=sorderBean.getLocGroup();
System.out.println("status :"+status); System.out.println("status :"+status);
if(!salesOrderListAll.contains(saleOrder))
{
salesOrderListAll.add(saleOrder);
}
varValue = itmDBAccessEJB.getEnvDis("999999", "CREATE_POST_LOG_FILE", conn); varValue = itmDBAccessEJB.getEnvDis("999999", "CREATE_POST_LOG_FILE", conn);
System.out.println("varValue :"+varValue); System.out.println("varValue :"+varValue);
//ls_varvalue = gf_getenv_dis('999999','CREATE_POST_LOG_FILE') //ls_varvalue = gf_getenv_dis('999999','CREATE_POST_LOG_FILE')
...@@ -1421,6 +1702,30 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1421,6 +1702,30 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
//qtyDesp = rs.getDouble("qty_desp"); //qtyDesp = rs.getDouble("qty_desp");
nature = checkNull(rs.getString("nature")); 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.setSaleOrder(saleOrder);
sordItemBean.setLineNo(lineNo); sordItemBean.setLineNo(lineNo);
sordItemBean.setConvQtyStduom(convQtyStduom); sordItemBean.setConvQtyStduom(convQtyStduom);
...@@ -1434,13 +1739,20 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1434,13 +1739,20 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sordItemBean.setQtyAlloc(rs.getDouble("qty_alloc")); sordItemBean.setQtyAlloc(rs.getDouble("qty_alloc"));
sordItemBean.setSiteCode(siteCode); sordItemBean.setSiteCode(siteCode);
//sordItemBean.setQtyDesp(qtyDesp); //sordItemBean.setQtyDesp(qtyDesp);
sordItemBean.setUnitStd(unitStd);
sordItemBean.setItemCodeOrd(itemCodeOrd); sordItemBean.setItemCodeOrd(itemCodeOrd);
sordItemBean.setQuantity(sordItmQty); if(!(unit.equalsIgnoreCase(unitStd)))//Added by chandrashekar on 21-sep-2016
sordItemBean.setSordItmQty(sordItmQty); {
sordItmQty=sordItmQty*convQtyStduom;
sordItemBean.setQuantity(sordItmQty);
sordItemBean.setSordItmQty(sordItmQty);
}else
{
sordItemBean.setQuantity(sordItmQty);
sordItemBean.setSordItmQty(sordItmQty);
}
sordItemBean.setQuantityStduom(quantityStduom); sordItemBean.setQuantityStduom(quantityStduom);
sordItemBean.setStatus(status); sordItemBean.setStatus(status);
sordItemBean.setUnit(unit);
sordItemBean.setRate(rateClg); sordItemBean.setRate(rateClg);
sordItemBean.setRateClg(rateClg); sordItemBean.setRateClg(rateClg);
sordItemBean.setNature(nature); sordItemBean.setNature(nature);
...@@ -1448,12 +1760,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1448,12 +1760,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
// sordItemList.add(sordItemBean); // sordItemList.add(sordItemBean);
if(!(unit.equalsIgnoreCase(unitStd))) if(!(unit.equalsIgnoreCase(unitStd)))
{ {
System.out.println("unit and unitStd are not equals!!"); System.out.println("unit and unitStd are not equals!!");
sordItmQty=dist.convQtyFactor(unit,unitStd,itemCode, convQtyStduom, conn); sordItmQty=dist.convQtyFactor(unit,unitStd,itemCode, convQtyStduom, conn);
System.out.println("sordItmQty :"+sordItmQty); System.out.println("sordItmQty@@@@ :"+sordItmQty);
//if(sordItmQty == -999999999) //if(sordItmQty == -999999999)
if(sordItmQty == 0) if(sordItmQty == 0)
{ {
...@@ -1469,6 +1780,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1469,6 +1780,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{ {
orderUnit = unit; orderUnit = unit;
unit = unitStd; unit = unitStd;
sordItemBean.setUnit(unit);
} }
...@@ -1476,7 +1788,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1476,7 +1788,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
else else
{ {
orderUnit = unit; orderUnit = unit;
sordItemBean.setUnit(unit);
} }
System.out.println("sordItmQty>>"+sordItmQty); System.out.println("sordItmQty>>"+sordItmQty);
sql = " select sum(quantity - case when qty_desp is null then 0 else qty_desp end) " + sql = " select sum(quantity - case when qty_desp is null then 0 else qty_desp end) " +
"as siteItmQty from sorditem where sale_order = ? and " + "as siteItmQty from sorditem where sale_order = ? and " +
...@@ -1541,7 +1856,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1541,7 +1856,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
int stockTestCnt=0,forTestCnt=0; int stockTestCnt=0,forTestCnt=0;
System.out.println("sordItemList :"+sordItemList.size()); System.out.println("sordItemList size :"+sordItemList.size());
for(SordItemBean sordItemBean :sordItemList ) for(SordItemBean sordItemBean :sordItemList )
{ {
System.out.println("sale order :"+sordItemBean.getSorderBean().getSaleOrder()); System.out.println("sale order :"+sordItemBean.getSorderBean().getSaleOrder());
...@@ -1594,9 +1909,14 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1594,9 +1909,14 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("orderType "+orderType); System.out.println("orderType "+orderType);
partQty = sordItemBean.getSorderBean().getPartQty(); partQty = sordItemBean.getSorderBean().getPartQty();
System.out.println("partQty "+partQty); 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 = " 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 "; sql = sql + "from stock a, invstat b, location c ";
...@@ -1807,6 +2127,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1807,6 +2127,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if("B".equalsIgnoreCase(itemFlag.trim())) if("B".equalsIgnoreCase(itemFlag.trim()))
{ {
System.out.println("itemCodeOrd>>>>@@@["+itemCodeOrd+"]");
sql = " select grace_days from scheme_applicability " + sql = " select grace_days from scheme_applicability " +
" where scheme_code = ? and app_from <= ? "; " where scheme_code = ? and app_from <= ? ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
...@@ -1840,7 +2162,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -1840,7 +2162,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if(rs.next()) if(rs.next())
{ {
schemeCnt = rs.getInt("grace_days"); schemeCnt = rs.getInt(1);
} }
rs.close(); rs.close();
rs = null; rs = null;
...@@ -1891,7 +2213,54 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -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. //CHECKING CUSTOMER FOR WHICH ORDER IS BOOKED IS APPLICABLE OR NOT IN SCHEME.
...@@ -2182,6 +2551,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2182,6 +2551,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{ {
if(priceList != null && priceList.trim().length() > 0) if(priceList != null && priceList.trim().length() > 0)
{ {
allocDateStr=sdf.format(allocDate);
rate = dist.pickRate(priceList, allocDateStr,itemCode,lotNo,"D", quantityStduom, conn); rate = dist.pickRate(priceList, allocDateStr,itemCode,lotNo,"D", quantityStduom, conn);
} }
} }
...@@ -2404,10 +2774,16 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2404,10 +2774,16 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if(schemeCnt > 0) 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 ) 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 = 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; ratioOld = ratio;
} }
else if("0".equalsIgnoreCase(ratio) && lineNo.equalsIgnoreCase(lineNoOld) else if("0".equalsIgnoreCase(ratio) && lineNo.equalsIgnoreCase(lineNoOld)
...@@ -2416,10 +2792,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2416,10 +2792,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
ratio = ratioOld; ratio = ratioOld;
} }
else else
{ {
ratio = "10000"; ratio = "10000";
} }
if(ratio==null || ratio.trim().length()==0)
{
ratio="0";
}
if("0".equalsIgnoreCase(ratio)) if("0".equalsIgnoreCase(ratio))
{ {
System.out.println("Short Quantity for scheme item"); System.out.println("Short Quantity for scheme item");
...@@ -2439,7 +2818,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2439,7 +2818,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
/*elseif not isnumber(lc_ratio) then /*elseif not isnumber(lc_ratio) then
merrcode = lc_ratio merrcode = lc_ratio
goto exit_now*/ 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 " + sql = "SELECT bomdet.qty_per FROM bomdet WHERE " +
" ( bomdet.bom_code = ? ) AND ( bomdet.item_code = ? )" + " ( bomdet.bom_code = ? ) AND ( bomdet.item_code = ? )" +
...@@ -2457,8 +2837,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2457,8 +2837,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = null; rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
if(ratio != null && ratio.trim().length()>0)
netQuantity = bomQtyPer * Integer.parseInt(ratio); {
netQuantity = bomQtyPer * Double.parseDouble(ratio);
}
qtyStk = netQuantity; qtyStk = netQuantity;
} }
...@@ -2469,10 +2851,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2469,10 +2851,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if((qtyStk - allocQty - holdQty) <= netQuantity) if((qtyStk - allocQty - holdQty) <= netQuantity)
{ {
inputQty = qtyStk - allocQty - holdQty; inputQty = qtyStk - allocQty - holdQty;
sordItemBean.setSordItmQty(inputQty);//Added by chandrashekar on 03-oct-2016
} }
else else
{ {
inputQty = netQuantity; inputQty = netQuantity;
sordItemBean.setSordItmQty(inputQty);//Added by chandrashekar on 03-oct-2016
} }
System.out.println("inputQty>>"+inputQty); System.out.println("inputQty>>"+inputQty);
if(inputQty > 0) if(inputQty > 0)
...@@ -2480,6 +2864,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2480,6 +2864,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
//if isnull(as_tranid) or len(trim(as_tranid)) = 0 //if isnull(as_tranid) or len(trim(as_tranid)) = 0
//{ //{
orgQty = inputQty; orgQty = inputQty;
unitPack="";
sql = "select unit__pack from" + sql = "select unit__pack from" +
" item_lot_packsize where item_code = ? and" + " item_lot_packsize where item_code = ? and" +
" lot_no__from <= ?and lot_no__to >= ? "; " lot_no__from <= ?and lot_no__to >= ? ";
...@@ -2496,12 +2881,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2496,12 +2881,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = null; rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
System.out.println("unitPack>>@@@@>>["+unitPack+"]");
if(unitPack == null || "B".equalsIgnoreCase(itemFlag)) if(unitPack == null || unitPack.trim().length()==0 || "B".equalsIgnoreCase(itemFlag))
{ {
unitPack = unit; unitPack = unit;
} }
System.out.println("unitPack>>>>["+unitPack+"]");
System.out.println("unit>>>>"+unit+"]");
if(!(unitPack.equalsIgnoreCase(unit))) if(!(unitPack.equalsIgnoreCase(unit)))
{ {
...@@ -2585,9 +2971,23 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2585,9 +2971,23 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{ {
if("F".equalsIgnoreCase(nature)) 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 ) 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) if(schemeCode != null && schemeCode.trim().length() > 0)
...@@ -2651,8 +3051,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2651,8 +3051,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sql = " select bom.batch_qty,bomdet.qty_per,bomdet.app_min_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 " + " bomdet.app_max_qty as lc_app_max_qty " +
" from bom, bomdet where " + " from bom, bomdet where " +
" bom.bom_code = bomdet.bom_code and bomdet.bom_code " + " bom.bom_code = bomdet.bom_code and bomdet.bom_code " +
" = ? and bomdet.nature= 'F' and ? " + " = ? and bomdet.nature= 'F' and ? " +
...@@ -2673,16 +3073,23 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2673,16 +3073,23 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = null; rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
System.out.println("chargeQty>>>"+chargeQty);
System.out.println("appMinQty>>>"+appMinQty);
System.out.println("appMaxQty>>>"+appMaxQty);
if(chargeQty >= appMinQty && chargeQty <= appMaxQty) if(chargeQty >= appMinQty && chargeQty <= appMaxQty)
{ {
//freeQty = truncate(chargeQty / batqty,0) * qtyper //freeQty = truncate(chargeQty / batqty,0) * qtyper
freeQty = (chargeQty / batqty) * qtyper;
} }
else else
{ {
freeQty=0; 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 ) if((inputQty + totFreeQty + allocFreeQty) > freeQty )
{ {
System.out.println("Chargeable quantity of group of items not eligible for the free quantity"); 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 ...@@ -2787,6 +3194,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("lotNO>>"+lotNo+"lotSl >>"+lotSl); System.out.println("lotNO>>"+lotNo+"lotSl >>"+lotSl);
System.out.println("allocQty["+allocQty+"]"+"holdQty["+holdQty+"]"+"qtyStk - allocQty - holdQty["+(qtyStk - allocQty - holdQty)+""); System.out.println("allocQty["+allocQty+"]"+"holdQty["+holdQty+"]"+"qtyStk - allocQty - holdQty["+(qtyStk - allocQty - holdQty)+"");
System.out.println("stockTot["+stockTot+"]"+"qtyStk["+qtyStk+"]"+"sordItmQty["+sordItmQty+""); System.out.println("stockTot["+stockTot+"]"+"qtyStk["+qtyStk+"]"+"sordItmQty["+sordItmQty+"");
stockTot=0.0;
stockTot = stockTot + (qtyStk - allocQty - holdQty); stockTot = stockTot + (qtyStk - allocQty - holdQty);
System.out.println("stockTot >>>>"+stockTot); System.out.println("stockTot >>>>"+stockTot);
if(stockTot > sordItmQty) if(stockTot > sordItmQty)
...@@ -2814,14 +3222,17 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2814,14 +3222,17 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
int vaildateData=0; int vaildateData=0;
double totInputQty=0.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 for(SordItemBean sordItemBean :sordItemList )//required for update sorditem accordingly line no and sale order
{ {
sordItmQty = sordItemBean.getSordItmQty(); sordItmQty = sordItemBean.getSordItmQty();
netQuantity=sordItmQty; netQuantity=sordItmQty;
System.out.println("netQuantity>>>"+netQuantity); System.out.println("netQuantity>>>"+netQuantity);
stockList=sordItemBean.getStockList(); stockList=sordItemBean.getStockList();
System.out.println("stockList.size()>>>"+stockList.size()); System.out.println("stockList>>>"+stockList);
System.out.println("expLev>@@@@@@@@@>"+expLev);
totInputQty=0; totInputQty=0;
System.out.println("stockList lenth@@@"+stockList.size());
for(StockBean stockBean :stockList) for(StockBean stockBean :stockList)
{ {
System.out.println("stockList iterator starts..........."); System.out.println("stockList iterator starts...........");
...@@ -2870,10 +3281,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2870,10 +3281,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
isRejected = stockBean.isRejected(); isRejected = stockBean.isRejected();
System.out.println("isRejected>>"+isRejected); System.out.println("isRejected>>"+isRejected);
//inputQty=sordItmQty; //inputQty=sordItmQty;
quantityStduom=sordItmQty; //quantityStduom=sordItmQty;
expLev=stockBean.getSordItemBean().getExpLev();
System.out.println("expLev>>>"+expLev);
skipline = skipline == null ? "" : skipline; skipline = skipline == null ? "" : skipline;
skiplot = skiplot == null ? "" : skiplot; skiplot = skiplot == null ? "" : skiplot;
System.out.println("saleOrder["+saleOrder+"]"+"itemCode["+itemCode+"]"+"lineNo["+lineNo+"]"); System.out.println("saleOrder["+saleOrder+"]"+"itemCode["+itemCode+"]"+"lineNo["+lineNo+"]");
...@@ -2883,6 +3294,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2883,6 +3294,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("sordItmQty :"+sordItmQty); System.out.println("sordItmQty :"+sordItmQty);
System.out.println("skipline:"+skipline); System.out.println("skipline:"+skipline);
System.out.println("skiplot:"+skiplot); System.out.println("skiplot:"+skiplot);
System.out.println("itemCode@@@@["+itemCode+"]unit@@@["+unit+"]unitsTD"+unitStd);
System.out.println("skiplot.trim() :"+skiplot.trim()); System.out.println("skiplot.trim() :"+skiplot.trim());
System.out.println("'"+lineNo.trim()); System.out.println("'"+lineNo.trim());
...@@ -2978,7 +3390,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2978,7 +3390,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setDouble(4, quantityStduom);//quantity pstmt.setDouble(4, quantityStduom);//quantity
pstmt.setString(5, itemCodeOrd); pstmt.setString(5, itemCodeOrd);
pstmt.setString(6, siteCode); pstmt.setString(6, siteCode);
pstmt.setString(7, orderUnit); pstmt.setString(7, unit);
//pstmt.setString(7, orderUnit);
pstmt.setString(8, status); pstmt.setString(8, status);
pstmt.setString(9, expLev); pstmt.setString(9, expLev);
pstmt.setString(10, itemRef); pstmt.setString(10, itemRef);
...@@ -2998,6 +3411,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -2998,6 +3411,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
insCnt = pstmt.executeUpdate(); insCnt = pstmt.executeUpdate();
pstmt.close(); pstmt.close();
pstmt = null;
System.out.println(">>>>>>>>insCnt:"+insCnt); System.out.println(">>>>>>>>insCnt:"+insCnt);
if(insCnt > 0) if(insCnt > 0)
{ {
...@@ -3011,6 +3425,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -3011,6 +3425,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}//end of if(sordallocCnt == 0) }//end of if(sordallocCnt == 0)
else else
{ {
inputQty = sordItmQty;
sql = "update sordalloc set qty_alloc = qty_alloc + ?," + sql = "update sordalloc set qty_alloc = qty_alloc + ?," +
" status = 'D' where sale_order = ? " + " status = 'D' where sale_order = ? " +
" and line_no = ? and exp_lev = ? " + " and line_no = ? and exp_lev = ? " +
...@@ -3030,6 +3445,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -3030,6 +3445,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(8,lotSl ); pstmt.setString(8,lotSl );
pstmt.setString(9,locCode); pstmt.setString(9,locCode);
updSordAllCnt = pstmt.executeUpdate(); updSordAllCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
if(updSordAllCnt > 0) if(updSordAllCnt > 0)
{ {
logMsg= saleOrder + "\t" + itemCode + "\t"+locCode + "\t" +lotNo+"\t"+ lineNo + "\tUpdated data in sordalloc"; 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 ...@@ -3082,7 +3499,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(2,tranidSoalloc); pstmt.setString(2,tranidSoalloc);
pstmt.setString(3,linenoSoalloc); pstmt.setString(3,linenoSoalloc);
updSordAllDetCnt = pstmt.executeUpdate(); updSordAllDetCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
} }
} }
...@@ -3147,7 +3565,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -3147,7 +3565,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(5,lineNo); pstmt.setString(5,lineNo);
pstmt.setString(6,expLev); pstmt.setString(6,expLev);
updSorditemCnt = pstmt.executeUpdate(); updSorditemCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
} }
} }
...@@ -3169,10 +3588,28 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -3169,10 +3588,28 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
strToWrite=strToWrite+logMsg+"\t\r\n"; 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 }//end of for(SordItemBean sordItemBean :sordItemList )...2nd
System.out.println("********************************************************"); /*System.out.println("********************************************************");
System.out.println("records["+records+"]"+"stockOpt["+stockOpt+"]"+"saleOrder["+saleOrder+"]"); System.out.println("records["+records+"]"+"stockOpt["+stockOpt+"]"+"saleOrder["+saleOrder+"]");
int updSordCnt=0; int updSordCnt=0;
if(records > 0 || stockOpt == 0) if(records > 0 || stockOpt == 0)
...@@ -3186,7 +3623,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -3186,7 +3623,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
logMsg= saleOrder + "\t" + "\tupdate sorder alloc_flag 'Y'"; logMsg= saleOrder + "\t" + "\tupdate sorder alloc_flag 'Y'";
strToWrite=strToWrite+logMsg+"\t\r\n"; strToWrite=strToWrite+logMsg+"\t\r\n";
} }
} pstmt.close();
pstmt = null;
}*/
if(totLines - skiplineCnt == 0) if(totLines - skiplineCnt == 0)
{ {
merrcode = "VTPOSTSKIP"; merrcode = "VTPOSTSKIP";
...@@ -3312,6 +3751,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -3312,6 +3751,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
private String intializingLog(String fileName,String saleOrder) throws ITMException private String intializingLog(String fileName,String saleOrder) throws ITMException
{ {
String log=""; String log="";
...@@ -3561,10 +4001,16 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -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 public double convertBox(String itemCode,String unitPack,String unit,double convQtyStduom,Connection conn) throws ITMException
{ {
double convQty = 0.0; double convQty = 0.0;
double convFact=0.0;
ArrayList convAr = null;
try 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) catch(Exception e)
{ {
...@@ -3784,7 +4230,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -3784,7 +4230,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sql = " select a.scheme_code from scheme_applicability a, scheme_applicability_det b" + sql = " select a.scheme_code from scheme_applicability a, scheme_applicability_det b" +
" where a.scheme_code = b.scheme_code and a.item_code = ? " + " where a.scheme_code = b.scheme_code and a.item_code = ? " +
" and a.app_from <= ? and a.valid_upto >= ? and " + " 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 = conn.prepareStatement(sql);
pstmt.setString(1,itemCode); pstmt.setString(1,itemCode);
pstmt.setTimestamp(2,tranDate); pstmt.setTimestamp(2,tranDate);
...@@ -3808,9 +4254,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -3808,9 +4254,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
while(rs1.next()) while(rs1.next())
{ {
applyCustList = rs.getString("apply_cust_list"); applyCustList = rs1.getString("apply_cust_list");
noApplyCustList = rs.getString("noapply_cust_list"); noApplyCustList = rs1.getString("noapply_cust_list");
applicableordtypes = rs.getString("order_type"); applicableordtypes = rs1.getString("order_type");
if("NE".equalsIgnoreCase(as_order_type) && applicableordtypes==null) if("NE".equalsIgnoreCase(as_order_type) && applicableordtypes==null)
{ {
...@@ -3914,10 +4360,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -3914,10 +4360,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("xmlString1>>"+xmlString1); System.out.println("xmlString1>>"+xmlString1);
System.out.println("chgUser["+chgUser+"]"+"chgTerm["+chgTerm+"]"); System.out.println("chgUser["+chgUser+"]"+"chgTerm["+chgTerm+"]");
/*ConnDriver connDriver = new ConnDriver(); /*ConnDriver connDriver = new ConnDriver();
//Changes and Commented By Bhushan on 09-06-2016 :START conn = connDriver.getConnectDB("DriverITM");
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
//Changes and Commented By Bhushan on 09-06-2016 :END
conn.setAutoCommit(false);*/ conn.setAutoCommit(false);*/
sql = " select site_code " + sql = " select site_code " +
...@@ -4066,10 +4509,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -4066,10 +4509,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{ {
ConnDriver connDriver = new ConnDriver(); ConnDriver connDriver = new ConnDriver();
//Changes and Commented By Bhushan on 09-06-2016 :START conn = connDriver.getConnectDB("DriverITM");
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
//Changes and Commented By Bhushan on 09-06-2016 :END
conn.setAutoCommit(false); conn.setAutoCommit(false);
if(conn != null) if(conn != null)
...@@ -4146,13 +4586,189 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca ...@@ -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 ...@@ -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