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
package ibase.webitm.ejb.dis;
import java.io.File;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.Date;
......@@ -11,6 +12,9 @@ import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import javax.naming.InitialContext;
import org.w3c.dom.Document;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
......@@ -23,14 +27,17 @@ import java.util.Set;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.E12CreateBatchLoadEjb;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.sys.CreateRCPXML;
//import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
import ibase.system.config.AppConnectParm;
import ibase.system.config.ConnDriver;
import ibase.webitm.ejb.MasterStatefulLocal;
......@@ -38,9 +45,9 @@ public class PostOrdDespatchGen
{
E12GenericUtility genericUtility=new E12GenericUtility();
FinCommon finCommon=new FinCommon();
ArrayList<String> sordDisList=new ArrayList<String>();
public String createDespatch(String saleOrderfr, String saleOrderTo,String custCodeFr, String custCodeTo, Timestamp frDate,
Timestamp toDate, String siteCodeShip, Connection conn) throws RemoteException, ITMException, SQLException
Timestamp toDate, String siteCodeShip, String clubOrder,String xtraParams,Connection conn) throws RemoteException, ITMException, SQLException
{
ibase.utility.UserInfoBean userInfo = new UserInfoBean();
System.out.println("CREATING DESPATCH !!!!!!!!!!!!");
......@@ -49,7 +56,7 @@ public class PostOrdDespatchGen
ibase.utility.E12GenericUtility genericUtility = null;
genericUtility = new ibase.utility.E12GenericUtility();
java.util.Date today = new java.util.Date();
PreparedStatement pstmt = null, pstmt1 = null,pstmt2=null,pstmt3=null;
PreparedStatement pstmt = null, pstmt1 = null,pstmt2=null,pstmt3=null,pstmtdDet=null;
ResultSet rs = null, rs1 = null,rs2=null,rs3=null;;
String saleOrder = "", custCode = "", custCodeDlv = "", custCodeBill = "", itemSer = "", priceList = "", crTerm = "";
String custName="",custNameDlv="",listType="";
......@@ -66,6 +73,8 @@ public class PostOrdDespatchGen
Date plDate=null,ordDate=null;
int count = 0;
HashMap splitCodeWiseMap = new HashMap();
int splitCodeSize=0, generatedDesp=0;
String generatedId="";
HashMap tempMap = null;
HashMap tempMapSord = null;
HashMap sordDetMap=null;
......@@ -80,7 +89,7 @@ public class PostOrdDespatchGen
Timestamp despDateTs=null,effDate=null;
String tranId="";
int insertCntHdr=0,insertCntDet=0;
String xtraParams = null;
//String xtraParams = null;
//Details
String errString = "";
String orderDtStr ="",plDateStr="";
......@@ -93,17 +102,22 @@ public class PostOrdDespatchGen
String siteCodeMfg="",itemCodeOrd="",lotNo="",lotSl="",siteCde="",unitStd="",unit="",custCodeSal="";
double mZero=0,allocQty=0,qtyOrduom=0,mrate=0,discMerge=0,plistDisc=0,rateStdum=0;
int cnt=0,lineNum=0;
boolean lbCheck=false;
boolean lbCheck=false,isDetailExist=false;
Date expDate=null,mfgDate=null;
double quantityStd=0,qtyAllocStd=0,convQtyStduom=0,costRate=0,noArt=0,confDiffAmt=0;
double rate=0,rateClg=0,qtyDesp=0,pendingQty=0,shipperQty=0,intQty=0,convRtuomStduom=0,rateStduom=0,rateStd=0;
String taxClass="",taxChap="",taxEnv="",packCode="",custItemRef="",unitRateSord="",unitSord="";
String postUpto="",confDespOnPost="";
DistCommon distCommon=new DistCommon();
Connection connCP=null;
InitialContext ctx = null;
int[] insCnt = null;
try {
System.out.println("process starts---------");
itmDBAccessEJB = new ITMDBAccessEJB();
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();
java.util.Date currentDate = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat(this.genericUtility.getApplDateFormat());
Calendar c = Calendar.getInstance();
......@@ -118,10 +132,10 @@ public class PostOrdDespatchGen
System.out.println("Despatch Date-========="+despDate);
effDate=despDateTs;
System.out.println("Effective date====="+effDate);
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
chgUser =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode"));
chgTerm =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "chgTerm"));
chgUser = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
userId =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode"));
chgTerm =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId"));
ArrayList quantityList = null;
userId=userInfo.getLoginCode();
System.out.println("User Id :- ["+userId+"]");
System.out.println("saleOrderfr=====" + saleOrderfr);
......@@ -131,12 +145,18 @@ public class PostOrdDespatchGen
System.out.println("frDate=====" + frDate);
System.out.println("toDate=====" + toDate);
System.out.println("siteCodeShip=====" + siteCodeShip);
postUpto = distCommon.getDisparams("999999", "POST_SORDER_UPTO", conn);
confDespOnPost = distCommon.getDisparams("999999", "CONFIRM_DESPATCH_ONPOST", conn);
java.util.Date date= new java.util.Date();
Timestamp gpDate =new Timestamp(date.getTime());
System.out.println("Now the gpDate with time :=> [" + gpDate+"]");
sql = "SELECT SORDER.SALE_ORDER, SORDER.ORDER_DATE,SORDER.CUST_CODE,SORDER.CUST_CODE__DLV,SORDER.CUST_CODE__BIL , "
+ " SORDER.ITEM_SER , SORDER.PRICE_LIST,SORDER.PRICE_LIST__DISC,SORDER.PRICE_LIST__CLG,SORDER.PL_DATE,SORDER.CR_TERM,SORDER.SITE_CODE, SORDER.CONFIRMED,"
+ "SORDER.CONF_DATE , SORDER.CURR_CODE , SORDER.DLV_ADD1 ,SORDER.DLV_ADD2,SORDER.DLV_CITY ,"
+ " SORDER.ITEM_SER , SORDER.PRICE_LIST,SORDER.PRICE_LIST__DISC,SORDER.PRICE_LIST__CLG,SORDER.PL_DATE,SORDER.CR_TERM,"
//"SORDER.SITE_CODE, " +
+"SORDER.CONFIRMED,SORDER.CONF_DATE , SORDER.CURR_CODE , SORDER.DLV_ADD1 ,SORDER.DLV_ADD2,SORDER.DLV_CITY ,"
+ "SORDER.COUNT_CODE__DLV,SORDER.DLV_PIN,SORDER.STAN_CODE,SORDER.TRAN_CODE,SORDER.STATE_CODE__DLV,"
+ "SORDER.DLV_ADD3,SORDER.ALLOC_FLAG,SORDER.DLV_TERM,SORDDET.SITE_CODE,SORDDET.QUANTITY,"
+ "SORDDET.UNIT, SORDDET.RATE,SORDDET.DISCOUNT,SORDDET.TAX_AMT,SORDDET.TAX_CLASS,SORDDET.TAX_CHAP,"
......@@ -165,6 +185,16 @@ public class PostOrdDespatchGen
pstmt = conn.prepareStatement(sql);
/*if(clubOrder != null && "Y".equalsIgnoreCase(clubOrder) )
{
pstmt.setString(1, saleOrderfr);
pstmt.setString(2, saleOrderTo);
}
else
{
pstmt.setString(1, SaleOrder);
pstmt.setString(2, SaleOrder);
}*/
pstmt.setString(1, saleOrderfr);
pstmt.setString(2, saleOrderTo);
pstmt.setString(3, custCodeFr);
......@@ -339,7 +369,7 @@ public class PostOrdDespatchGen
rs1 = null;
pstmt1.close();
pstmt1 = null;
stkOpt="";
if (count > 0)
{
......@@ -444,7 +474,7 @@ public class PostOrdDespatchGen
pstmt1.setString(1,saleOrder);
pstmt1.setString(2,lineNo);
rs1=pstmt.executeQuery();
rs1=pstmt1.executeQuery();
if(rs1.next())
{
itemCode =rs1.getString("item_code");
......@@ -473,6 +503,7 @@ public class PostOrdDespatchGen
pstmt1 = null;
if("0".equals(stkOpt))
{
System.out.println("0.equals(stkOpt)");
......@@ -501,15 +532,16 @@ public class PostOrdDespatchGen
" exp_date, site_code, mfg_date, site_code__mfg " +
"from sordalloc " +
"where sale_order =? " +
"and line_no = ? " +
"and site_code = ? " +
"and (status <> 'I' or status is null) order by item_code, exp_lev,exp_date";
}
pstmt2=conn.prepareStatement(sql);
pstmt2.setString(1,saleOrder);
// pstmt2.setString(2,lineNo);
pstmt2.setString(2,siteCode);
pstmt2.setString(2,lineNo);
pstmt2.setString(3,siteCode);
sordList=new ArrayList();
rs2=pstmt2.executeQuery();
while(rs2.next())
{
......@@ -524,9 +556,9 @@ public class PostOrdDespatchGen
lotNo =rs2.getString("lot_no");
lotSl =rs2.getString("lot_sl");
locCode =rs2.getString("loc_code");
unitStd =rs2.getString("unit__std");
unitStd =checkNull(rs2.getString("unit__std")).trim();
convQtyStduom =rs2.getDouble("conv__qty_stduom");
unit =rs2.getString("unit");
unit =checkNull(rs2.getString("unit")).trim();
expDate =rs2.getDate("exp_date");
siteCde =rs2.getString("site_code");
mfgDate =rs2.getDate("mfg_date");
......@@ -613,27 +645,39 @@ public class PostOrdDespatchGen
{
System.out.println(">>The selected transaction is confirmed");
errString = itmDBAccessEJB.getErrorString("","VTDESP6","","",conn);
return errString;
}
if(unitStd!=unit)
//if(unitStd!=unit)
System.out.println("unitStd>>["+unitStd+"]");
System.out.println("unit>>["+unit+"]");
if(!unitStd.equalsIgnoreCase(unit))
{
mZero=0;
allocQty=distCommon.convQtyFactor(unitStd, unit, itemCode, qtyAllocStd, conn);
//allocQty=distCommon.convQtyFactor(unitStd, unit, itemCode, qtyAllocStd, conn);
quantityList= new ArrayList();
quantityList = distCommon.getConvQuantityFact(unitStd, unit, itemCode, qtyAllocStd,0, conn);
allocQty = Double.parseDouble(quantityList.get(1).toString());
if(allocQty==-999999999)
{
// errcode = "Unable to convert quantity";
System.out.println("Unable to convert quantity");
errString = itmDBAccessEJB.getErrorString("","VTQTY01","","",conn);
return errString;
}
quantityList= new ArrayList();
//doubt
qtyOrduom=distCommon.convQtyFactor(unitStd, unit, itemCode, quantityStd ,conn);
//qtyOrduom=distCommon.convQtyFactor(unitStd, unit, itemCode, quantityStd ,conn);
quantityList = distCommon.getConvQuantityFact(unitStd, unit, itemCode, quantityStd,0, conn);
qtyOrduom = Double.parseDouble(quantityList.get(1).toString());
if(qtyOrduom==-999999999)
{
//errcode = "Unable to convert quantity";
System.out.println("Unable to convert quantity");
errString = itmDBAccessEJB.getErrorString("","VTQTY01","","",conn);
return errString;
}
}
else
......@@ -665,6 +709,7 @@ public class PostOrdDespatchGen
tempMapSord.put("item_code__ord", itemCodeOrd);
tempMapSord.put("quantity__ord", qtyOrduom);
tempMapSord.put("item_code", itemCode);
// tempMap.put("item_descr", dlvCity);
tempMapSord.put("quantity", allocQty);
tempMapSord.put("lot_no", lotNo);
......@@ -675,7 +720,8 @@ public class PostOrdDespatchGen
tempMapSord.put("conv__qty_stduom", convQtyStduom);
tempMapSord.put("unit", unit);
tempMapSord.put("quantity__stduom", allocQty);
//tempMapSord.put("quantity__stduom", allocQty);//Change by chandrashekar on 21-sep-2016
tempMapSord.put("quantity__stduom", qtyAllocStd);
tempMapSord.put("quantity_real", allocQty);
if(expDate!=null)
......@@ -827,7 +873,7 @@ public class PostOrdDespatchGen
{
priceListType= distCommon.getPriceListType(priceList, conn);
System.out.println("priceListType====="+priceListType);
if("L".equals(priceListType))
if(!"L".equals(priceListType))
{
sql=" select count(*) from pricelist where price_list =? and list_type = 'I'";
pstmt1= conn.prepareStatement(sql);
......@@ -851,7 +897,8 @@ public class PostOrdDespatchGen
}
else
{
String listTyp= siteCode + "@" + locCode + "@" + lotNo;
//String listTyp= siteCode + "@" + locCode + "@" + lotNo;
String listTyp= siteCode + "~t" + locCode + "~t" + lotNo;
mrate=distCommon.pickRate(priceList, despDate, itemCode, listTyp, "I", sordQty, conn);//changes required
......@@ -862,6 +909,7 @@ public class PostOrdDespatchGen
// errcode = 'VTRATE1'
System.out.println(">Rate is not proper for "+ itemCode + "@" + lotNo);
errString = itmDBAccessEJB.getErrorString("","VTRATE1","","",conn);
return errString;
}
}
......@@ -907,10 +955,14 @@ public class PostOrdDespatchGen
System.out.println("cnt is zero======");
priceListType= distCommon.getPriceListType(priceList, conn);
System.out.println("priceListType====="+priceListType);
if(!"L".equalsIgnoreCase(priceListType))
if("L".equalsIgnoreCase(priceListType))
{
mrate=distCommon.pickRate(priceList, despDate, itemCode, lotNo, "D", sordQty, conn);
}else
{
mrate=distCommon.pickRate(priceList, despDate, itemCode, lotNo, "D", sordQty, conn);
}
}
else
{
......@@ -920,6 +972,7 @@ public class PostOrdDespatchGen
{
System.out.println(">Rate is not proper for !!! "+ itemCode + "@" + lotNo);
errString = itmDBAccessEJB.getErrorString("","VTRATE1","","",conn);
return errString;
}
}
......@@ -989,9 +1042,24 @@ public class PostOrdDespatchGen
}
}
tempMapSord.put("conv__rtuom_stduom", convRtuomStduom);
if(rateStduom !=0)
{
rateStdum=convRtuomStduom*rateStduom;
}else
{
rateStdum=convRtuomStduom*mrate;
}
if("F".equalsIgnoreCase(nature))
{
rateStdum=0.0;
}
System.out.println("convRtuomStduom>>>>"+convRtuomStduom);
System.out.println("rateStdum==="+rateStdum);
if(rateStdum<=0 && ( "C".equalsIgnoreCase(nature) || "I".equalsIgnoreCase(nature)))//Added by chandrashekar on 10-aug-2016
{
//errString = itmDBAccessEJB.getErrorString("","VTRATE1","","",conn);
continue;
}
tempMapSord.put("rate__stduom", rateStdum);
tempMapSord.put("rate__std", rateStdum);
......@@ -1043,7 +1111,8 @@ public class PostOrdDespatchGen
if((unitSord!=null && unitSord.trim().length()>0) &&(unitRateSord!=null && unitRateSord.trim().length()>0))
{
if(unitSord!=unitRateSord)
//if(unitSord!=unitRateSord)
if(!unitSord.equalsIgnoreCase(unitRateSord))
{
sql="select gross_wt_per_art, tare_wt_per_art from stock " +
"where item_code = ? " +
......@@ -1129,6 +1198,9 @@ public class PostOrdDespatchGen
if("L".equalsIgnoreCase(priceListClgType))
{
rateClg=distCommon.pickRate(priceListClg, despDate, itemCode, lotNo, "L", quantityStd, conn);
}else if("B".equalsIgnoreCase(priceListClgType))
{
rateClg=distCommon.pickRate(priceListClg, despDate, itemCode, lotNo, "B", quantityStd, conn);
}
}
......@@ -1214,7 +1286,7 @@ public class PostOrdDespatchGen
}
// sordList=new ArrayList();
tempMapSord.put("sord_no", saleOrder);
sordList.add(tempMapSord);
System.out.println("Sord item list====="+sordList);
......@@ -1348,6 +1420,7 @@ public class PostOrdDespatchGen
//iterating Map
Set setItem = splitCodeWiseMap.entrySet();
splitCodeSize=splitCodeWiseMap.size();
System.out.println("1327getting set item=====" + setItem);
tempList = null;
Iterator itrItem = setItem.iterator();
......@@ -1445,13 +1518,14 @@ public class PostOrdDespatchGen
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
tranId = tg.generateTranSeqID(tranSer1, keyCol, keyString, conn);
System.out.println("@@@@ generated tranId :["+tranId+"]");
gpNo=generateGpNo("gpno",siteCde,tempMap.get("sord_no").toString(),conn);
confirmed="N";
sql="Insert into despatch(desp_id,desp_date,sord_no,sord_date,cust_code,cust_code__dlv," +
"site_code,dlv_add1,dlv_add2,dlv_add3,dlv_city,dlv_pin,count_code__dlv,state_code__dlv," +
"tran_code,stan_code,trans_mode,curr_code,exch_rate," +
"curr_code__frt,exch_rate__frt,curr_code__ins,exch_rate__ins,freight," +
"insurance,eff_date,confirmed,status)" +
"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
"insurance,eff_date,confirmed,status,chg_user,chg_date,chg_term,lr_date,gp_date,gp_ser,gp_no,benefit_type)" +
"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
//tranId = generateTranId("w_despatch",userId,conn);
pstmt.setString(1,tranId);
......@@ -1472,9 +1546,14 @@ public class PostOrdDespatchGen
pstmt.setString(14,stateCodeDlv);
//pstmt.setString(11,tempMap.get("count_code__dlv").toString());
//pstmt.setString(12,tempMap.get("state_code__dlv").toString());
if(tempMap.get("tran_code")!= null)
{
pstmt.setString(15,tempMap.get("tran_code").toString());
}else
{
pstmt.setString(15,"");
}
//pstmt.setString(15,tempMap.get("tran_code").toString());
pstmt.setString(16,tempMap.get("stan_code").toString());
pstmt.setString(17,transMode);
......@@ -1491,8 +1570,18 @@ public class PostOrdDespatchGen
pstmt.setTimestamp(26,effDate );
pstmt.setString(27,confirmed);
pstmt.setString(28,"I");
pstmt.setString(29,chgUser);
pstmt.setTimestamp(30,despDateTs);
pstmt.setString(31,chgTerm);
pstmt.setTimestamp(32,despDateTs);
//pstmt.setTimestamp(33,despDateTs);//gp_date
pstmt.setTimestamp(33,gpDate);//gp_date
pstmt.setString(34,gpSer);
pstmt.setString(35,gpNo);
pstmt.setString(36,"FS");
insertCntHdr = pstmt.executeUpdate();
pstmt.close();
pstmt=null;
System.out.println("Despatch Header Count===="+insertCntHdr);
lineNum = 0;
......@@ -1533,7 +1622,7 @@ public class PostOrdDespatchGen
System.out.println("Sum Amount 1 @@@===" + sumNetAmt);
sumNetAmt+=((Double)sordDetMap.get("quantity__stduom")*(Double)sordDetMap.get("rate__stduom"));
System.out.println("Sum Amount After 1 @@@===" + sumNetAmt);
System.out.println("Sum Amount After "+lineNumber+" @@@===" + sumNetAmt);
sql="insert into despatchdet(DESP_ID,LINE_NO,SORD_NO,LINE_NO__SORD,EXP_LEV,ITEM_CODE__ORD,ITEM_CODE," +
"LOT_NO ,LOT_SL,QUANTITY__ORD,QUANTITY,LOC_CODE ,STATUS," +
......@@ -1541,61 +1630,135 @@ public class PostOrdDespatchGen
"RATE__STDUOM,NO_ART ,SITE_CODE,MFG_DATE,EXP_DATE,SITE_CODE__MFG," +
"RATE__CLG,DISC_AMT,COST_RATE,CUST_ITEM__REF,RETEST_DATE,CONF_DIFF_AMT,CONV__RTUOM_STDUOM,RATE__STD) " +
"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.setString(2,lineNumber);//
pstmtdDet = conn.prepareStatement(sql);
pstmtdDet.setString(1,tranId);
pstmtdDet.setString(2,lineNumber);//
//pstmt.setString(2,sordDetMap.get("line_no").toString());//
//pstmt.setString(3,sordDetMap.get("sord_no").toString());
pstmt.setString(3,checkNull(tempMap.get("sord_no").toString()));
pstmt.setString(4,checkNull(sordDetMap.get("line_no__sord").toString()));
pstmt.setString(5,checkNull(sordDetMap.get("exp_lev").toString()));//
pstmt.setString(6,checkNull(sordDetMap.get("item_code__ord").toString()));
pstmt.setString(7,checkNull(sordDetMap.get("item_code").toString()));
pstmt.setString(8,checkNull(sordDetMap.get("lot_no").toString()));
pstmt.setString(9,checkNull(sordDetMap.get("lot_sl").toString()));
pstmt.setDouble(10,(Double)sordDetMap.get("quantity__ord"));
pstmt.setDouble(11,(Double)sordDetMap.get("quantity"));
pstmt.setString(12,sordDetMap.get("loc_code").toString());
pstmt.setString(13,sordDetMap.get("status").toString());
pstmt.setDouble(14,(Double)sordDetMap.get("conv__qty_stduom"));
pstmt.setString(15,sordDetMap.get("unit__std").toString());
pstmt.setString(16,sordDetMap.get("unit").toString());
pstmt.setDouble(17,(Double)sordDetMap.get("quantity__stduom"));
pstmt.setDouble(18,(Double)sordDetMap.get("quantity_real"));
pstmt.setDouble(19,(Double)sordDetMap.get("rate__stduom"));
pstmt.setDouble(20,(Double)sordDetMap.get("no_art"));//
pstmt.setString(21,sordDetMap.get("site_code").toString());
pstmt.setDate(22,(Date) sordDetMap.get("mfg_date"));
pstmt.setDate(23,(Date) sordDetMap.get("exp_date"));//
pstmt.setString(24,sordDetMap.get("site_code__mfg").toString());
pstmt.setDouble(25,(Double)sordDetMap.get("rate__clg"));
pstmtdDet.setString(3,checkNull(sordDetMap.get("sord_no").toString()));
//pstmtdDet.setString(3,checkNull(tempMap.get("sord_no").toString()));
pstmtdDet.setString(4,checkNull(sordDetMap.get("line_no__sord").toString()));
pstmtdDet.setString(5,checkNull(sordDetMap.get("exp_lev").toString()));//
pstmtdDet.setString(6,checkNull(sordDetMap.get("item_code__ord").toString()));
pstmtdDet.setString(7,checkNull(sordDetMap.get("item_code").toString()));
pstmtdDet.setString(8,checkNull(sordDetMap.get("lot_no").toString()));
pstmtdDet.setString(9,checkNull(sordDetMap.get("lot_sl").toString()));
pstmtdDet.setDouble(10,(Double)sordDetMap.get("quantity__ord"));
pstmtdDet.setDouble(11,(Double)sordDetMap.get("quantity"));
pstmtdDet.setString(12,sordDetMap.get("loc_code").toString());
pstmtdDet.setString(13,sordDetMap.get("status").toString());
pstmtdDet.setDouble(14,(Double)sordDetMap.get("conv__qty_stduom"));
pstmtdDet.setString(15,sordDetMap.get("unit__std").toString());
pstmtdDet.setString(16,sordDetMap.get("unit").toString());
pstmtdDet.setDouble(17,(Double)sordDetMap.get("quantity__stduom"));
pstmtdDet.setDouble(18,(Double)sordDetMap.get("quantity_real"));
pstmtdDet.setDouble(19,(Double)sordDetMap.get("rate__stduom"));
pstmtdDet.setDouble(20,(Double)sordDetMap.get("no_art"));//
pstmtdDet.setString(21,sordDetMap.get("site_code").toString());
pstmtdDet.setDate(22,(Date) sordDetMap.get("mfg_date"));
pstmtdDet.setDate(23,(Date) sordDetMap.get("exp_date"));//
pstmtdDet.setString(24,sordDetMap.get("site_code__mfg").toString());
pstmtdDet.setDouble(25,(Double)sordDetMap.get("rate__clg"));
//pstmt.setDouble(26, checkDoubleNullVal((Double) sordDetMap.get("disc_amt")));
pstmt.setDouble(26,((Double)sordDetMap.get("disc_amt")));
pstmt.setDouble(27,(Double)sordDetMap.get("cost_rate"));
pstmt.setString(28,sordDetMap.get("cust_item__ref").toString());
pstmt.setDate(29,(Date)sordDetMap.get("retest_date"));//
pstmt.setDouble(30,(Double)sordDetMap.get("conf_diff_amt"));
pstmt.setDouble(31,(Double)sordDetMap.get("conv__rtuom_stduom"));
pstmt.setDouble(32,(Double)sordDetMap.get("rate__std"));
pstmtdDet.setDouble(26,((Double)sordDetMap.get("disc_amt")));
pstmtdDet.setDouble(27,(Double)sordDetMap.get("cost_rate"));
pstmtdDet.setString(28,sordDetMap.get("cust_item__ref").toString());
pstmtdDet.setDate(29,(Date)sordDetMap.get("retest_date"));//
pstmtdDet.setDouble(30,(Double)sordDetMap.get("conf_diff_amt"));
pstmtdDet.setDouble(31,(Double)sordDetMap.get("conv__rtuom_stduom"));
pstmtdDet.setDouble(32,(Double)sordDetMap.get("rate__std"));
pstmtdDet.addBatch();
pstmtdDet.executeBatch();
pstmtdDet.clearParameters();
isDetailExist=true;
/*insertCntDet = pstmt.executeUpdate();
pstmt.close();
pstmt=null;
System.out.println("Despatch Detail Count===="+insertCntDet);*/
}
sql = "UPDATE DESPATCH SET TOT_VALUE= ? WHERE DESP_ID= ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, sumNetAmt);
pstmt.setString(2, tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
/*if(isDetailExist)
{
pstmtdDet.executeBatch();
}*/
//if(insertCntHdr>0 && insertCntDet>0 )
if(insertCntHdr>0 && isDetailExist )
{
//generatedDesp++;
//generatedId+=tranId+"@"+tempMap.get("sord_no").toString()+",";
if("D".equalsIgnoreCase(postUpto) && "N".equalsIgnoreCase(confDespOnPost))
{
sordDisList.add(tempMap.get("sord_no").toString());
errString="";
conn.commit();
}
else
{
DespatchConfirmLocal despatchConfirm = null;
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
despatchConfirm = (DespatchConfirmLocal) ctx.lookup("ibase/DespatchConfirm/local");
String forcedFlag="N";
connCP=chaneParnerExist(tranId,xtraParams,conn);
if(connCP!=null )
{
errString=despatchConfirm.confirm(tranId, xtraParams, forcedFlag,conn,connCP);
}
else
{
errString=despatchConfirm.confirm(tranId, xtraParams, forcedFlag,conn,conn);
}
System.out.println("despatchConfirm return string >>>>"+errString);
if(errString == null || errString.trim().length()==0 || "".equalsIgnoreCase(errString) || errString.contains("CONFSUCC")|| errString.contains("VTPOSTDES") )
{
errString = "";
sordDisList.add(tempMap.get("sord_no").toString());
if(connCP!=null )
{
connCP.commit();
}
conn.commit();
}
else
{
if(connCP!=null )
{
connCP.rollback();
}
conn.rollback();
}
}
insertCntDet = pstmt.executeUpdate();
System.out.println("Despatch Detail Count===="+insertCntDet);
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTDTNTEXST","","",conn);
conn.rollback();
}
}
System.out.println("insertCntHdr==="+insertCntHdr+"@=====@"+"insertCntDet=="+insertCntDet);
if(insertCntHdr>0 && insertCntDet>0)
//if(insertCntHdr>0 && insertCntDet>0)
/*if(splitCodeSize==generatedDesp)
{
//VTCONSUCF
System.out.println(">>The selected transaction is getting saved!!!!");
errString= "<?xml version='1.0'?><Root><message>VTCONPARM</message><TranID>"+tranId+"</TranID></errors></Root>";
errString= "<?xml version='1.0'?><Root><message>VTCONPARM</message><TranID>"+generatedId+"</TranID></errors></Root>";
System.out.println("@@@@@2: retString:" + errString);
if (errString.indexOf("VTCONPARM") > -1)
{
......@@ -1632,7 +1795,7 @@ public class PostOrdDespatchGen
else
{
System.out.println("Record not found!!!!!!!");
}
}*/
// }
......@@ -1679,6 +1842,17 @@ public class PostOrdDespatchGen
pstmt.close();
pstmt = null;
}
if(pstmtdDet !=null)
{
pstmtdDet.close();
pstmtdDet=null;
}
if(connCP!=null)
{
connCP.close();
connCP=null;
}
//conn.close();
}
catch(Exception e)
......@@ -1690,9 +1864,9 @@ public class PostOrdDespatchGen
}
return errString;
//return sordDisList;
return errString;
}
......@@ -2022,4 +2196,232 @@ public class PostOrdDespatchGen
}
return s;
}
private Connection chaneParnerExist(String despId,String xtraParams,Connection conn)
{
PreparedStatement pstmt=null;
ResultSet rs=null;
String sql="",retString="";
String purIntegrate="",siteCode="",custCode="";
String chPartner="",disLink="",dataStr="";
String filename="",jbossHome="",chanelPartnerFile="";
int ediOption=0;
Connection connCP=null;
ConnDriver connDriver = new ConnDriver();
DistCommon distCommon = new DistCommon();
try
{
purIntegrate=distCommon.getDisparams("999999", "PUR_INTEGRATED", conn);
sql="select edi_option from transetup where tran_window = 'w_despatch'";
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next())
{
ediOption=rs.getInt(1);
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
if("Y".equalsIgnoreCase(purIntegrate) || ediOption > 0)
{
sql="select cust_code,site_code from despatch where desp_id=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,despId);
rs=pstmt.executeQuery();
if(rs.next())
{
siteCode=rs.getString("site_code");
custCode=rs.getString("cust_code");
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
sql="select channel_partner, dis_link "
+ " from site_customer "
+ " where cust_code = ? "
+ " and site_code = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,custCode);
pstmt.setString(2,siteCode);
rs=pstmt.executeQuery();
if(rs.next())
{
chPartner=checkNull(rs.getString("channel_partner"));
disLink=checkNull(rs.getString("dis_link"));
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
if(chPartner.trim().length()==0)
{
sql="select channel_partner, dis_link from customer "
+ " where cust_code = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,custCode);
rs=pstmt.executeQuery();
if(rs.next())
{
chPartner=checkNull(rs.getString("channel_partner"));
disLink=checkNull(rs.getString("dis_link"));
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
}
if("Y".equalsIgnoreCase(chPartner)|| ediOption > 0)
{
if (("A".equalsIgnoreCase(disLink)|| "S".equalsIgnoreCase(disLink) || "C".equalsIgnoreCase(disLink) ) && "Y".equalsIgnoreCase(purIntegrate))
{
String dirPath="";
if ( CommonConstants.APPLICATION_CONTEXT != null )
{
dirPath = CommonConstants.APPLICATION_CONTEXT + CommonConstants.SETTINGS;
System.out.println("dirPath1>>>>"+dirPath);
}
else
{
dirPath = CommonConstants.JBOSSHOME + File.separator + "server" + File.separator + "default" + File.separator + "deploy" + File.separator + "ibase.ear" + File.separator + "ibase.war" + File.separator + CommonConstants.SETTINGS;
System.out.println("dirPath2>>>>>>"+dirPath);
}
File xmlFile = new File( dirPath + File.separator + "DriverITMCP" + ".xml" );
System.out.println("xmlFile>>>>>"+xmlFile);
if(xmlFile.exists())
{
//if(connCP !=null)
{
System.out.println("file exist new connection is creating");
connCP=connDriver.getConnectDB("DriverITMCP");
return connCP;
}
}
}
}
}
}catch(Exception e)
{
e.printStackTrace();
}
return connCP;
}
private String generateGpNo( String windowName, String siteCode,String salOrder, Connection conn )throws ITMException
{
PreparedStatement pstmt = null;
ResultSet rs = null;
String selSql = "";
String tranId = "";
String tranSer = "";
String keyString = "",ordType="",ordTypes="",ordType1="";
String keyCol = "";
String xmlValues = "";
String paySiteCode = "";
String effectiveDate = "";
java.sql.Timestamp currDate = null;
java.sql.Date effDate = null;
E12GenericUtility genericUtility= new E12GenericUtility();
DistCommon distCommon = new DistCommon();
try
{
SimpleDateFormat sdfAppl = new SimpleDateFormat(genericUtility.getApplDateFormat());
currDate = new java.sql.Timestamp(System.currentTimeMillis());
String currDateStr = sdfAppl.format(currDate);
selSql = "select order_type from sorder where sale_order =? ";
pstmt = conn.prepareStatement(selSql);
pstmt.setString( 1, salOrder );
rs = pstmt.executeQuery();
if (rs.next())
{
ordType = rs.getString("order_type");
}
rs.close();rs = null;
pstmt.close();pstmt = null;
ordTypes=distCommon.getDisparams("999999", "GP_NO", conn);
if("NULLFOUND".equalsIgnoreCase(ordTypes))
{
ordTypes="";
}else
{
String[] arrStr =ordTypes.split(",");
int len =arrStr.length;
for(int i =0;i<len;i++)
{
ordType1 =arrStr[i];
if(ordType1.trim().equalsIgnoreCase(ordType.trim()))
{
return tranId;
}
}
}
selSql = "SELECT KEY_STRING, TRAN_ID_COL, REF_SER FROM TRANSETUP WHERE TRAN_WINDOW = ? ";
pstmt = conn.prepareStatement(selSql);
pstmt.setString( 1, windowName );
rs = pstmt.executeQuery();
if (rs.next())
{
keyString = rs.getString("KEY_STRING");
keyCol = rs.getString("TRAN_ID_COL");
tranSer = rs.getString("REF_SER");
}
rs.close();rs = null;
pstmt.close();pstmt = null;
System.out.println("keyString :"+keyString);
System.out.println("keyCol :"+keyCol);
System.out.println("tranSer :"+tranSer);
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<gp_no></gp_no>";
xmlValues = xmlValues + "<site_code>" + siteCode + "</site_code>";
xmlValues = xmlValues + "</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
tranId = tg.generateTranSeqID(tranSer, keyCol, keyString, conn);
System.out.println("tranId :"+tranId);
}
catch (SQLException ex)
{
System.out.println("Exception ::" +selSql+ ex.getMessage() + ":");
ex.printStackTrace();
throw new ITMException(ex);
}
catch (Exception e)
{
System.out.println("Exception ::" + e.getMessage() + ":");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if (rs != null)
{
rs.close();
rs = null;
}
if (pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e){}
}
return tranId;
}//generateTranTd()
}
......@@ -5,7 +5,9 @@ import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.webitm.ejb.dis.adv.SorderConf;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.sys.UtilMethods;
//import ibase.webitm.utility.GenericUtility;
......@@ -14,6 +16,7 @@ import ibase.webitm.utility.ITMException;
import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
......@@ -50,7 +53,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
*/
public String invoiceProcess(String salesOrdFrm,String salesOrdTo,String custCodeFrm,String custCodeTo,
String descpIdFrm,String orderType,Timestamp frmDateStr,String clubOrder,String clubPendOrder,
String adjDrCr,String adjCustAdv,String advAdjMode,String adjNewPrdInv,Connection conn) throws ITMException, Exception
String adjDrCr,String adjCustAdv,String advAdjMode,String adjNewPrdInv,String xtraParams,Connection conn) throws ITMException, Exception
{
String retString="",frmDate="",frmCustCode="",currCode="",lrNo="",lrDate="",remarks="",sysDate="",toDateStr="";
String toCustCode="",stanCodeInit="",descpIdTo="";
......@@ -60,6 +63,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
PreparedStatement pstmt=null;
ResultSet rs=null;
double exchangeRate=0.0;
Timestamp tranDatetTStmp=null;
HashMap<String, String> ldsInvHdrMp=new HashMap<String, String>();
/**
* Select postUpto from table 'disparam'
......@@ -132,10 +136,11 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
frmCustCode=checknull(rs.getString("cust_code"));
currCode=checknull(rs.getString("curr_code"));
lrNo=checknull(rs.getString("lr_no"));
lrDate=checknull(rs.getString("lr_date"));
//lrDate=checknull(rs.getString("lr_date"));
remarks=checknull(rs.getString("remarks"));
remarks=checknull(rs.getString("remarks"));
exchangeRate=rs.getDouble("exch_rate");
tranDatetTStmp=rs.getTimestamp("lr_date");
}
pstmt.close();
pstmt=null;
......@@ -144,6 +149,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
toDateStr=frmDate;
toCustCode=frmCustCode;
if(tranDatetTStmp != null)
{
lrDate=sdf.format(tranDatetTStmp).toString();
}else
{
lrDate="";
}
System.out.println("lrDate>>>"+lrDate);
/**
* Check lrDate is not null
* */
......@@ -160,7 +173,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
sql="select exch_rate__sell from daily_exch_rate_sell_buy where ? between from_date and to_date"
+ " and curr_code = ? and curr_code__to = 'RS'";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lrDate);
pstmt.setTimestamp(1, tranDatetTStmp);
pstmt.setString(2, currCode);
rs=pstmt.executeQuery();
if(rs.next())
......@@ -260,7 +273,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
System.out.println("@@@@@@@@@@260:::::ldsInvHdrMp["+ldsInvHdrMp+"]");
retString=createInvoice(ldsInvHdrMp,lbClub,lbDrCr,lbAdv,tempflag,runOpt,lbCustomer,lbNewPrdInv,conn); // Missing 'lds_credit_check'
retString=createInvoice(ldsInvHdrMp,lbClub,lbDrCr,lbAdv,tempflag,runOpt,lbCustomer,lbNewPrdInv,xtraParams,conn); // Missing 'lds_credit_check'
fos1.write(("\n \n Final Return String :- [" + retString +"]\r\n").getBytes());
......@@ -309,7 +322,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
* @throws ITMException
*/
private String createInvoice(HashMap<String, String> ldsInvHdrMp, boolean lbClub, boolean lbDrCr, boolean lbAdv, boolean tempflag,
String runOpt, boolean lbCustomer, boolean lbNewPrdInv, Connection conn) throws ITMException
String runOpt, boolean lbCustomer, boolean lbNewPrdInv,String xtraParams, Connection conn) throws ITMException
{
// TODO Auto-generated method stub
StringBuffer xmlBuff=new StringBuffer();
......@@ -326,33 +339,41 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
HashMap<String, String> arCustomerMap=null;
String sql="";
PreparedStatement pstmt=null, pstmt1=null;
ResultSet rs=null;
PreparedStatement pstmt=null, pstmt1=null,pstmt2=null;
ResultSet rs=null,rs2=null;
String xtraParams = null;
String loginEmpCode = null,itemDescr="";
String lc_ratestd="0",lc_cstrate="0";
String round="",roundInvTo="";
double roundTo=0.0,netamt=0.0;
double lc_disc_amt=0.00,ld_discount=0.00;
double totalCommSp1=0.0,totalCommSp2=0.0,totalCommSp3=0.0,totalCommAmt=0.0;
String despIdKey="",despId="",sysDate="",salesInvPstHdr="",despLineNo="",userId="",termId="",loginSite="",tranId="";
String xmlInvString="",retString="";
double lcCommAmtOc=0.0,tcommAmt=0.0,lcExchRate=0.0;
int lineNo=0,lineNoDet=0;
Timestamp dueDate=null;
Timestamp dueDate=null,sysDateTs=null;
String acctCodeDis="",cctrCodeDis="",acctCodeAr="",cctrCodeAr = "",acctCodePr="",cctrCodePr="",marketReg = "",mfgDateStr="",expDateStr="";
double netAmt=0,taxAmt=0,commAmt=0,discAmt=0,invAmt=0;
double ld_tot_amt=0.0,ld_disc_amt=0.0,ld_net_amt=0.0;
HashMap commissionMap = null;
/**
* Generate Bean object
* */
InvoiceDetBean invoiceDetBean= null;
InitialContext ctx = null;
try
{
UserInfoBean userInfo=new UserInfoBean();
/*UserInfoBean userInfo=new UserInfoBean();
userId=userInfo.getLoginCode();
termId=userInfo.getRemoteHost();
loginSite=userInfo.getSiteCode();
xtraParams = "loginCode="+userInfo.getLoginCode()+"~~termId="+userInfo.getRemoteHost()+"~~loginSiteCode="+userInfo.getSiteCode()+"~~loginEmpCode="+userInfo.getEmpCode();
*/
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
loginEmpCode =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode"));
termId =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId"));
SorderConf sordcnf=new SorderConf();
java.util.Date today = new java.util.Date();
Calendar cal = Calendar.getInstance();
cal.setTime(today);
......@@ -521,6 +542,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("<sales_pers><![CDATA["+invDespMap.get("sales_pers")+"]]></sales_pers>");
xmlBuff.append("<curr_code__frt><![CDATA["+invDespMap.get("curr_code__frt")+"]]></curr_code__frt>");
xmlBuff.append("<exch_rate__frt><![CDATA["+invDespMap.get("exch_rate__frt")+"]]></exch_rate__frt>");
xmlBuff.append("<print_status><![CDATA["+"N"+"]]></print_status>");
xmlBuff.append("<confirmed><![CDATA["+"N"+"]]></confirmed>");
xmlBuff.append("<chg_date><![CDATA["+sysDate+"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
......@@ -554,7 +576,13 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
// xmlBuff.append("<disc_billback_amt_hdr><![CDATA[]]></disc_billback_amt_hdr>"); // get by method gbf_calc_hdrdisc_amt()
lcCommAmtOc=Double.parseDouble(invDespMap.get("comm_amt"))/Double.parseDouble(ldsInvHdrMp.get("exch_rate"));
if(!Double.isNaN(lcCommAmtOc))
{
xmlBuff.append("<comm_amt__oc><![CDATA["+lcCommAmtOc+"]]></comm_amt__oc>");
}else
{
xmlBuff.append("<comm_amt__oc><![CDATA["+0+"]]></comm_amt__oc>");
}
xmlBuff.append("<sales_pers__1><![CDATA["+invDespMap.get("sales_pers__1")+"]]></sales_pers__1>");
xmlBuff.append("<sales_pers__2><![CDATA["+invDespMap.get("sales_pers__2")+"]]></sales_pers__2>");
xmlBuff.append("<sales_pers_comm_1><![CDATA["+invDespMap.get("sales_pers_comm_1")+"]]></sales_pers_comm_1>");
......@@ -563,8 +591,51 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("<sales_pers_comm_1><![CDATA["+invDespMap.get("sales_pers_comm_1")+"]]></sales_pers_comm_1>");
xmlBuff.append("<sales_pers_comm_2><![CDATA["+invDespMap.get("sales_pers_comm_2")+"]]></sales_pers_comm_2>");
xmlBuff.append("<sales_pers_comm_3><![CDATA["+invDespMap.get("sales_pers_comm_3")+"]]></sales_pers_comm_3>");
xmlBuff.append("<round_adj><![CDATA[]]></round_adj>"); // Set round_adj
xmlBuff.append("<net_amt><![CDATA[0]]></net_amt>"); // Set net_amt
sql="select round, case when round_to is null then 0.001 else round_to end as round_to " +
" from customer where cust_code = ?";
pstmt2= conn.prepareStatement(sql);
pstmt2.setString(1, invDespMap.get("cust_code") );
rs2=pstmt2.executeQuery();
if(rs2.next())
{
round =rs2.getString("round");
roundTo =rs2.getDouble("round_to");
}
rs2.close();
rs2 = null;
pstmt2.close();
pstmt2 = null;
if(round ==null || round.trim().length()==0)
{
sql="select round_inv_to from itemser where item_ser = ?" ;
pstmt2= conn.prepareStatement(sql);
pstmt2.setString(1, invDespMap.get("item_ser") );
rs2=pstmt2.executeQuery();
if(rs2.next())
{
roundInvTo =rs2.getString("round_inv_to");
}
rs2.close();
rs2 = null;
pstmt2.close();
pstmt2 = null;
if(roundInvTo ==null)
{
retString = "VTRND";
return retString;
}else
{
//netamt= round(netamt,roundTo);
netamt= Math.round(netamt);
xmlBuff.append("<round_adj><![CDATA["+(netamt-netAmt)+"]]></round_adj>");
xmlBuff.append("<net_amt><![CDATA["+netamt+"]]></net_amt>");
}
}else
{
netamt=geRndamt(netAmt,round,roundTo);
xmlBuff.append("<round_adj><![CDATA["+(netamt-netAmt)+"]]></round_adj>");
xmlBuff.append("<net_amt><![CDATA["+netamt+"]]></net_amt>");
}
xmlBuff.append("</Detail1>");
......@@ -604,13 +675,13 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("<tax_chap><![CDATA["+invTraceDetMap.get("tax_chap")+"]]></tax_chap>");
xmlBuff.append("<tax_env><![CDATA["+invTraceDetMap.get("tax_env")+"]]></tax_env>");
xmlBuff.append("<tax_amt><![CDATA[0]]></tax_amt>"); //tax_amt missing
xmlBuff.append("<net_amt><![CDATA[0]]></net_amt>"); //net_amt missing
//xmlBuff.append("<net_amt><![CDATA[0]]></net_amt>"); //net_amt missing
xmlBuff.append("<unit__std><![CDATA[" + invTraceDetMap.get("sord_unit__std") + "]]></unit__std>");
xmlBuff.append("<conv__qty_stduom><![CDATA[" + invTraceDetMap.get("sord_conv__qty_stduom") + "]]></conv__qty_stduom>");
xmlBuff.append("<quantity__stduom><![CDATA[" + invTraceDetMap.get("desp_quantity__stduom") + "]]></quantity__stduom>");
xmlBuff.append("<conv__rtuom_stduom><![CDATA[" + invTraceDetMap.get("conv__rtuom_stduom") + "]]></conv__rtuom_stduom>");
xmlBuff.append("<rate__stduom><![CDATA[" + invTraceDetMap.get("desp_rate__stduom") + "]]></rate__stduom>");
xmlBuff.append("<comm_amt__oc><![CDATA[]]></comm_amt__oc>"); //comm_amt__oc missing
xmlBuff.append("<comm_amt__oc><![CDATA[0]]></comm_amt__oc>"); //comm_amt__oc missing
xmlBuff.append("<sord_no><![CDATA[" + invTraceDetMap.get("sord_no") + "]]></sord_no>");
xmlBuff.append("<sord_line_no><![CDATA[" + invTraceDetMap.get("line_no__sord") + "]]></sord_line_no>");
xmlBuff.append("<item_code__ord><![CDATA[" + invTraceDetMap.get("item_code__ord") + "]]></item_code__ord>");
......@@ -697,14 +768,19 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
if(lc_disc_amt > 0)
{
ld_discount=(lc_disc_amt * 100)/(Double.parseDouble(invTraceDetMap.get("desp_quantity__stduom")==null?"0.00":invTraceDetMap.get("desp_quantity__stduom")) * Double.parseDouble(invTraceDetMap.get("desp_rate__stduom")==null?"0.00":invTraceDetMap.get("desp_rate__stduom")));
}
xmlBuff.append("<discount><![CDATA["+ld_discount+"]]></discount>");
}
xmlBuff.append("<line_type><![CDATA["+invTraceDetMap.get("line_type")+"]]></line_type>");
xmlBuff.append("<cust_item__ref><![CDATA["+invTraceDetMap.get("cust_item__ref")+"]]></cust_item__ref>");
xmlBuff.append("<disc_schem_billback_amt><![CDATA[" + invTraceDetMap.get("disc_schem_billback_amt") + "]]></disc_schem_billback_amt>");
xmlBuff.append("<disc_schem_offinv_amt><![CDATA[" + invTraceDetMap.get("disc_schem_offinv_amt") + "]]></disc_schem_offinv_amt>");
xmlBuff.append("<item_flg><![CDATA[I]]></item_flg>");
ld_tot_amt = (Double.parseDouble(invTraceDetMap.get("desp_quantity__stduom")==null?"0.00":invTraceDetMap.get("desp_quantity__stduom")) * Double.parseDouble(invTraceDetMap.get("desp_rate__stduom")==null?"0.00":invTraceDetMap.get("desp_rate__stduom")));
ld_disc_amt = (ld_tot_amt * Double.parseDouble(invTraceDetMap.get("discount")==null?"0.00":invTraceDetMap.get("discount"))) / 100;
ld_net_amt = (ld_tot_amt + 0 - ld_disc_amt) - (Double.parseDouble(invTraceDetMap.get("disc_schem_offinv_amt")==null?"0.00":invTraceDetMap.get("disc_schem_offinv_amt"))) ;
xmlBuff.append("<net_amt><![CDATA[" +ld_net_amt+ "]]></net_amt>");
xmlBuff.append("</Detail2>");
// }
......@@ -723,7 +799,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
* */
// invDetBeanMap=mainInvDespDetMap.get(keyStr);
invDetBeanMap=(HashMap<String, Object>) dataList.get(1);
System.out.println("@@@@@@@@@@@ invDetBeanMap["+invDetBeanMap+"]");
System.out.println("@@@@@@@@@@@ invDetBeanMap["+invDetBeanMap.toString()+"]");
for(String keyStr:invDetBeanMap.keySet())
{
System.out.println("Detail 3:::::::::::");
......@@ -731,6 +807,33 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
invoiceDetBean=(InvoiceDetBean) invDetBeanMap.get(keyStr);
sql="select descr from item where item_code = ?";
pstmt2= conn.prepareStatement(sql);
pstmt2.setString(1, invoiceDetBean.getItem_code() );
rs2=pstmt2.executeQuery();
if(rs2.next())
{
itemDescr =rs2.getString("descr");
}
rs2.close();
rs2 = null;
pstmt2.close();
pstmt2 = null;
/*String lineStr=String.valueOf(lineNoDet);
lineStr=" "+lineStr;
lineStr=lineStr.substring(lineStr.length()-3, lineStr.length());
commissionMap=sordcnf.calcCommission(invDespMap.get("sord_no"),lineStr , conn);
retString= checknull((String)commissionMap.get("errorStr"));
if(retString.trim().length() > 0)
{
return retString;
}
totalCommSp1= checkDouble((Double)commissionMap.get("sp1Comm"));
totalCommSp2= checkDouble((Double)commissionMap.get("sp2Comm"));
totalCommSp3= checkDouble((Double)commissionMap.get("sp3Comm"));
totalCommAmt = checkDouble((Double)commissionMap.get("netComm"));*/
xmlBuff.append("<Detail3 dbID=\"\" domID=\""+lineNoDet+"\" objContext=\"3\" objName=\"invoice_po\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" status=\"N\" updateFlag=\"A\"/>");
xmlBuff.append("<invoice_id/>");
......@@ -738,6 +841,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("<sord_no><![CDATA[" + invoiceDetBean.getSord_no()+ "]]></sord_no>");
xmlBuff.append("<sord_line_no><![CDATA[" + invoiceDetBean.getLine_no__sord() + "]]></sord_line_no>");
xmlBuff.append("<item_code><![CDATA[" + invoiceDetBean.getItem_code() + "]]></item_code>");
xmlBuff.append("<item_descr><![CDATA[" + itemDescr + "]]></item_descr>");
xmlBuff.append("<item_code__ord><![CDATA[" + invoiceDetBean.getItem_code__ord() + "]]></item_code__ord>");
xmlBuff.append("<item_flg><![CDATA[I]]></item_flg>"); //item_flag missing
xmlBuff.append("<quantity><![CDATA[" + invoiceDetBean.getmTotDespQty()+ "]]></quantity>");
......@@ -751,15 +855,25 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("<conv__rtuom_stduom><![CDATA[" + invoiceDetBean.getConv__rtuom_stduom() + "]]></conv__rtuom_stduom>");
xmlBuff.append("<rate__stduom><![CDATA[" + invoiceDetBean.getDesp_rate__stduom() + "]]></rate__stduom>");
xmlBuff.append("<discount><![CDATA[" + invoiceDetBean.getDiscount() + "]]></discount>");
xmlBuff.append("<disc_amt><![CDATA[" + invoiceDetBean.getDisc_amt() + "]]></disc_amt>");
ld_disc_amt=0;
ld_disc_amt =(invoiceDetBean.getmTotStdQty() * (Double.parseDouble(invoiceDetBean.getDesp_rate__stduom()==null?"0.00":invoiceDetBean.getDesp_rate__stduom()))*(Double.parseDouble(invoiceDetBean.getDiscount()==null?"0.00":invoiceDetBean.getDiscount())))/100;
xmlBuff.append("<disc_amt><![CDATA[" + ld_disc_amt + "]]></disc_amt>");
//xmlBuff.append("<disc_amt><![CDATA[" + invoiceDetBean.getDisc_amt() + "]]></disc_amt>");
xmlBuff.append("<disc_schem_billback_amt><![CDATA[" + invoiceDetBean.getDisc_schem_billback_amt()+ "]]></disc_schem_billback_amt>");
xmlBuff.append("<disc_schem_offinv_amt><![CDATA[" + invoiceDetBean.getDisc_schem_offinv_amt() + "]]></disc_schem_offinv_amt>");
xmlBuff.append("<acc_code__item><![CDATA[" + invoiceDetBean.getAcc_code__item() + "]]></acc_code__item>");
xmlBuff.append("<comm_amt><![CDATA[]]></comm_amt>"); //comm_amt missing
//Start added by chandrashekar on 01-09-2016
xmlBuff.append("<comm_amt><![CDATA["+invoiceDetBean.getNetComm()+"]]></comm_amt>"); //comm_amt missing
xmlBuff.append("<sales_pers_comm_1><![CDATA["+invoiceDetBean.getSp1Comm()+"]]></sales_pers_comm_1>");
xmlBuff.append("<sales_pers_comm_2><![CDATA["+invoiceDetBean.getSp2Comm()+"]]></sales_pers_comm_2>");
xmlBuff.append("<sales_pers_comm_3><![CDATA["+invoiceDetBean.getSp3Comm()+"]]></sales_pers_comm_3>");
//End added by chandrashekar on 01-09-2016
/*xmlBuff.append("<comm_amt><![CDATA[]]></comm_amt>"); //comm_amt missing
xmlBuff.append("<sales_pers_comm_1><![CDATA["+invDespMap.get("sales_pers_comm_1")+"]]></sales_pers_comm_1>");
xmlBuff.append("<sales_pers_comm_2><![CDATA["+invDespMap.get("sales_pers_comm_2")+"]]></sales_pers_comm_2>");
xmlBuff.append("<sales_pers_comm_3><![CDATA["+invDespMap.get("sales_pers_comm_3")+"]]></sales_pers_comm_3>");
xmlBuff.append("<sales_pers_comm_3><![CDATA["+invDespMap.get("sales_pers_comm_3")+"]]></sales_pers_comm_3>");
*/
//xmlBuff.append("<sales_pers_comm_3><![CDATA["+invDespMap.get("sales_pers_comm_3")+"]]></sales_pers_comm_3>");
xmlBuff.append("<comm_amt__oc><![CDATA[]]></comm_amt__oc>"); //comm_amt__oc missing
// xmlBuff.append("<tax_class><![CDATA["+invoiceDetBean.getTax_class()+"]]></tax_class>");
// xmlBuff.append("<tax_chap><![CDATA["+invoiceDetBean.getTax_chap()+"]]></tax_chap>");
......@@ -777,8 +891,6 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
xmlBuff.append("</Detail3>");
}
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
......@@ -807,6 +919,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
tranId = arrayForTranIdIssue[1].substring(0, endIndexIssue);
System.out.println("@V@ Tran id :- [" + tranId + "]");
sql="update invdet set net_amt=(quantity__stduom*rate__stduom)- ( case when disc_amt is null then 0 else disc_amt end ) +tax_amt where invoice_id=?";
//sql="update invdet set net_amt=(quantity__stduom*rate__stduom)-disc_amt+tax_amt where invoice_id=?";
pstmt=conn.prepareStatement(sql);
......@@ -835,7 +948,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt.setDouble(2,taxAmt);
pstmt.setDouble(3,commAmt);
pstmt.setDouble(4,discAmt);
pstmt.setDouble(5,netAmt-taxAmt);
pstmt.setDouble(5,(netAmt+discAmt)-taxAmt);
pstmt.setString(6,tranId);
pstmt.executeUpdate();
pstmt.close();
......@@ -861,11 +974,11 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
double totTaxAmt=0,totNetAmt=0;
fos1.write(("Invoice successful for Dispatch id :- ["+despIdKey+"] TranId generated is:- [" + tranId +"]\n END \r\n\n").getBytes());
pstmt=conn.prepareStatement("update invoice_trace set net_amt=(quantity__stduom*rate__stduom) where invoice_id=? ");
/*pstmt=conn.prepareStatement("update invoice_trace set net_amt=(quantity__stduom*rate__stduom) where invoice_id=? ");
pstmt.setString(1, tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
pstmt=null;*/
sql="update invdet set tax_class=?,tax_chap=?,tax_env=?,tax_amt=0,net_amt=0 where invoice_id=?";
pstmt1=conn.prepareStatement(sql);
......@@ -877,10 +990,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt1.close();
pstmt1=null;
pstmt=conn.prepareStatement("select sord_no,sord_line_no,tax_class,tax_chap,tax_env,sum(tax_amt),sum(net_amt)"
/*pstmt=conn.prepareStatement("select sord_no,sord_line_no,tax_class,tax_chap,tax_env,sum(tax_amt),sum(net_amt)"
+ " from invoice_trace"
+ " where invoice_id=? "
+ " group by sord_no,sord_line_no,tax_class,tax_chap,tax_env");*/
pstmt=conn.prepareStatement("select sord_no,line_no,tax_class,tax_chap,tax_env,sum(tax_amt),sum(net_amt)"
+ " from invoice_trace"
+ " where invoice_id=? "
+ " group by sord_no,sord_line_no,tax_class,tax_chap,tax_env");
+ " group by sord_no,line_no,tax_class,tax_chap,tax_env");
pstmt.setString(1,tranId);
rs=pstmt.executeQuery();
while(rs.next())
......@@ -898,7 +1015,8 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
sql="update invdet set tax_class=?,tax_chap=?,tax_env=?,tax_amt=tax_amt+?,net_amt=net_amt+?+?"
+ " where invoice_id=? "
+ " and sord_no=? "
+ " and sord_line_no=?";
//+ " and sord_line_no=?";
+ " and line_no=?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1,taxClass);
pstmt1.setString(2,taxChap);
......@@ -910,15 +1028,6 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt1.setString(8,sordNo);
pstmt1.setString(9,soLineNo);
pstmt1.executeUpdate();
// Changed by Sneha on 09-09-2016, for Closing the Open Cursor [Start]
if( pstmt1 != null )
{
pstmt1.close();
pstmt1 = null;
}
// Changed by Sneha on 09-09-2016, for Closing the Open Cursor [End]
}
rs.close();
rs=null;
......@@ -935,7 +1044,45 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
pstmt.close();
pstmt=null;
sql="update despatchdet set invoice_id = ?,quantity_inv=? where desp_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.setDouble(2,Double.parseDouble(invTraceDetMap.get("quantity")));
pstmt.setString(3,invTraceDetMap.get("desp_id"));
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
if(sysDate != null)
{
sysDateTs = java.sql.Timestamp.valueOf(genericUtility.getValidDateString(sysDate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0");
}
sql="update invoice_trace set chg_term = ?,chg_user=? ,chg_date=? where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,termId);
pstmt.setString(2,userId);
pstmt.setTimestamp(3, sysDateTs);
pstmt.setString(4,tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
sql="update invdet set chg_term = ?,chg_user=? ,chg_date=? where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,termId);
pstmt.setString(2,userId);
pstmt.setTimestamp(3, sysDateTs);
pstmt.setString(4,tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
sql="update invoice set chg_term = ?,chg_user=? ,chg_date=? where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,termId);
pstmt.setString(2,userId);
pstmt.setTimestamp(3, sysDateTs);
pstmt.setString(4,tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
/**
* Call Credit check component
* PostOrdCreditChk.java
......@@ -946,18 +1093,37 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
// retString=pCrdChk.creditCheck(invDespMap.get("cust_code"),invDespMap.get("cust_code__bil"), invDespMap.get("item_ser"), "0.00",runOpt,//Net amount missing
// invDespMap.get("sord_no"), ldsInvHdrMp.get("invoice__date"), invDespMap.get("desp_site_code"), "I", despId,conn);
// temp cpatil
/**
* Invoice Posting
* */
// temp cpatil
// PostOrdInvoicePost invPost=new PostOrdInvoicePost();
// retString=invPost.invoicePosting(tranId, conn);
System.out.println("Invoice posting ret string :- ["+retString+"]");
/*System.out.println("@@@@@@@@@@@cpatil Invoice posting start....................");
PostOrdInvoicePostLocal PostOrdInvoicePost = null;
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
PostOrdInvoicePost = (PostOrdInvoicePostLocal) ctx.lookup("ibase/PostOrdInvoicePost/local");
String forcedFlag="N";
String retString1=PostOrdInvoicePost.invoicePosting(tranId, xtraParams, forcedFlag,conn);
System.out.println("PostOrdInvoicePost return string >>>>"+retString1);
PostOrdInvoicePost invPost=new PostOrdInvoicePost();
String retString1=invPost.invoicePosting(tranId, conn);
System.out.println("Invoice posting ret string :- ["+retString1+"]");
if( retString1 != null && retString1.trim().length() > 0 )
{
return retString1;
}
sql="update invoice set confirmed = 'Y' where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;*/
}
else
......@@ -1415,12 +1581,14 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
String quantity="",loc_code="",desp_conv__qty_stduom="",desp_unit__std="",unit="",desp_quantity__stduom="",tax_class="",tax_chap="",tax_env="";
String discount="",unit__rate="",sord_conv__qty_stduom="",conv__rtuom_stduom="",sord_unit__std="",sord_quantity__stduom="",sord_rate__stduom="";
String rate="",quantity_real="",quantity_inv="",invoice_id="",no_art="",rate__clg="",desp_rate__stduom="",disc_amt="",cust_item__ref="";
String disc_schem_billback_amt="",disc_schem_offinv_amt="";
String disc_schem_billback_amt="",disc_schem_offinv_amt="",retString="";
double totalCommSp1=0.0,totalCommSp2=0.0,totalCommSp3=0.0,totalCommAmt=0.0;
double lc_desp_std_rate=0.0;
PreparedStatement pstmt=null;
ResultSet rs=null;
String beanMapKey="",lsLineType="";
ArrayList<Object> mainArrayList= new ArrayList<Object>();
HashMap commissionMap = null;
/**
* Generate Bean object
* */
......@@ -1430,24 +1598,24 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
invDespDetSql="SELECT despatchdet.desp_id,despatchdet.line_no,despatchdet.sord_no,despatchdet.line_no__sord,despatchdet.exp_lev,"
+ "despatchdet.item_code__ord,despatchdet.item_code,despatchdet.lot_no,despatchdet.lot_sl,despatchdet.quantity__ord,"
+ "despatchdet.quantity,despatchdet.loc_code,despatchdet.status,despatchdet.conv__qty_stduom,despatchdet.unit__std,"
+ "despatchdet.unit,despatchdet.quantity__stduom,sorddet.tax_class,sorddet.tax_chap,sorddet.tax_env,"
+ "despatchdet.unit,despatchdet.quantity__stduom as dquantity__stduom,sorddet.tax_class,sorddet.tax_chap,sorddet.tax_env,"
+ "sorddet.discount,sorddet.unit__rate,sorddet.conv__qty_stduom,sorddet.conv__rtuom_stduom,sorddet.unit__std,"
+ "sorddet.quantity__stduom,sorddet.rate__stduom,sorddet.rate,despatchdet.quantity_real,despatchdet.quantity_inv,"
+ "despatchdet.invoice_id,despatchdet.no_art,despatchdet.rate__clg,despatchdet.rate__stduom,despatchdet.disc_amt,"
+ "sorddet.quantity__stduom as squantity__stduom,sorddet.rate__stduom as srate__stduom,sorddet.rate,despatchdet.quantity_real,despatchdet.quantity_inv,"
+ "despatchdet.invoice_id,despatchdet.no_art,despatchdet.rate__clg,despatchdet.rate__stduom as drate__stduom ,despatchdet.disc_amt,"
+ "despatchdet.cust_item__ref,despatchdet.disc_schem_billback_amt,despatchdet.disc_schem_offinv_amt"
+ " FROM despatchdet,sorddet"
+ " WHERE ( despatchdet.sord_no = sorddet.sale_order )"
+ " and( despatchdet.line_no__sord = sorddet.line_no )"
+ " and( ( case when DESPATCHDET.STATUS is null then ' ' else despatchdet.STATUS end = ? )"
+ " AND( DESPATCHDET.SORD_NO = ?)"
//+ " AND( DESPATCHDET.SORD_NO = ?)"
+ " AND( DESPATCHDET.DESP_ID >= ?)"
+ " AND( DESPATCHDET.DESP_ID <= ? ) )"
+ " ORDER BY despatchdet.sord_no ASC,despatchdet.line_no__sord ASC,despatchdet.exp_lev ASC";
pstmt=conn.prepareStatement(invDespDetSql);
pstmt.setString(1,status);
pstmt.setString(2,sordNo);
//pstmt.setString(2,sordNo);
pstmt.setString(2,despId);
pstmt.setString(3,despId);
pstmt.setString(4,despId);
rs=pstmt.executeQuery();
while(rs.next())
{
......@@ -1469,7 +1637,7 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
desp_conv__qty_stduom=checknull(rs.getString("conv__qty_stduom"));
desp_unit__std=checknull(rs.getString("unit__std"));
unit=checknull(rs.getString("unit"));
desp_quantity__stduom=checknull(rs.getString("quantity__stduom"));
desp_quantity__stduom=checknull(rs.getString("dquantity__stduom"));
tax_class=checknull(rs.getString("tax_class"));
tax_chap=checknull(rs.getString("tax_chap"));
tax_env=checknull(rs.getString("tax_env"));
......@@ -1478,21 +1646,32 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
sord_conv__qty_stduom=checknull(rs.getString("conv__qty_stduom"));
conv__rtuom_stduom=checknull(rs.getString("conv__rtuom_stduom"));
sord_unit__std=checknull(rs.getString("unit__std"));
sord_quantity__stduom=checknull(rs.getString("quantity__stduom"));
sord_rate__stduom=checknull(rs.getString("rate__stduom"));
rate=checknull(rs.getString("rate"));
sord_quantity__stduom=checknull(rs.getString("squantity__stduom"));
sord_rate__stduom=checknull(rs.getString("srate__stduom"));
//rate=checknull(rs.getString("rate"));
lc_desp_std_rate=Double.parseDouble(checkNullDouble(rs.getString("drate__stduom")));
if(lc_desp_std_rate>0)
{
rate =""+(lc_desp_std_rate/Double.parseDouble(checkNullDouble(conv__rtuom_stduom)));
}else
{
rate =""+(lc_desp_std_rate);
}
quantity_real=checknull(rs.getString("quantity_real"));
quantity_inv=checknull(rs.getString("quantity_inv"));
invoice_id=checknull(rs.getString("invoice_id"));
no_art=checknull(rs.getString("no_art"));
rate__clg=checknull(rs.getString("rate__clg"));
desp_rate__stduom=checknull(rs.getString("rate__stduom"));
desp_rate__stduom=checknull(rs.getString("drate__stduom"));
disc_amt=checknull(rs.getString("disc_amt"));
cust_item__ref=checknull(rs.getString("cust_item__ref"));
disc_schem_billback_amt=checknull(rs.getString("disc_schem_billback_amt"));
disc_schem_offinv_amt=checknull(rs.getString("disc_schem_offinv_amt"));
if(disc_schem_offinv_amt == null || disc_schem_offinv_amt.trim().length()==0)
{
disc_schem_offinv_amt="0";
}
invTraceMap.put("desp_id", desp_id);
invTraceMap.put("line_no", line_no);
......@@ -1566,6 +1745,31 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
// invDespDetMap.put("cust_item__ref", lsCustitemRef);
// mainInvDespDetMap.put(rs.getString("desp_id"), invDespDetMap);
//Start Added by chandrashekar on 01-09-2016
double ld_tot_amt=0.0,ld_net_amt=0.0,ld_tax_amt=0.0,ld_disc_amt=0.0;
ld_tot_amt = (Double.parseDouble(desp_quantity__stduom) * Double.parseDouble(desp_rate__stduom));
ld_disc_amt = (ld_tot_amt * Double.parseDouble(discount)) / 100;
ld_net_amt = (ld_tot_amt + ld_tax_amt - ld_disc_amt) - (Double.parseDouble(disc_schem_offinv_amt));
invTraceMap.put("tax_amt",String.valueOf(ld_tax_amt));
invTraceMap.put("net_amt",String.valueOf(ld_net_amt));
System.out.println("line_no["+line_no+"]");
String lineStr="";
lineStr=" "+checknull(line_no).trim();
lineStr=lineStr.substring(lineStr.length()-3, lineStr.length());
System.out.println("lineStr>>>["+lineStr+"]");
commissionMap=calcCommission(invTraceMap,lineStr,conn);
retString= checknull((String)commissionMap.get("errorStr"));
totalCommSp1= checkDouble((Double)commissionMap.get("sp1Comm"));
totalCommSp2= checkDouble((Double)commissionMap.get("sp2Comm"));
totalCommSp3= checkDouble((Double)commissionMap.get("sp3Comm"));
totalCommAmt = checkDouble((Double)commissionMap.get("netComm"));
invTraceMap.put("sp1Comm", commissionMap.get("sp1Comm").toString());
invTraceMap.put("sp2Comm", commissionMap.get("sp2Comm").toString());
invTraceMap.put("sp3Comm", commissionMap.get("sp3Comm").toString());
invTraceMap.put("netComm", commissionMap.get("netComm").toString());
//End Added by chandrashekar on 01-09-2016
System.out.println("@@@@@@@@@@@@@@@@@ invTraceMap["+invTraceMap+"]");
mainInvDespDetMap.put(rs.getString("line_no"), invTraceMap);
......@@ -1573,7 +1777,9 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
System.out.println("@@@@@@@@@@@@@@@@@ mainInvDespDetMap["+mainInvDespDetMap+"]");
beanMapKey=rs.getString("sord_no").trim()+"@".trim()+rs.getString("line_no__sord").trim();
//beanMapKey=rs.getString("sord_no").trim()+"@".trim()+rs.getString("line_no__sord").trim();
beanMapKey=rs.getString("sord_no").trim()+"@".trim()+rs.getString("line_no").trim();
System.out.println("beanMapKey>>>>["+beanMapKey+"]");
/**
* Check generated key is exist in
* Bean map
......@@ -1627,8 +1833,13 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
invoiceDetBean.setDisc_schem_offinv_amt(checknull(disc_schem_offinv_amt));
invoiceDetBean.setAcc_code__item(lsAcctSchemedet);
invoiceDetBean.setFin_scheme(lsFinscheme);
invoiceDetBean.setSp1Comm(commissionMap.get("sp1Comm").toString());//Start Added by chandrashekar on 01-09-2016
invoiceDetBean.setSp2Comm(commissionMap.get("sp2Comm").toString());//Start Added by chandrashekar on 01-09-2016
invoiceDetBean.setSp3Comm(commissionMap.get("sp3Comm").toString());//Start Added by chandrashekar on 01-09-2016
invoiceDetBean.setNetComm(commissionMap.get("netComm").toString());//Start Added by chandrashekar on 01-09-2016
invDetBeanMap.put(beanMapKey, invoiceDetBean);
System.out.println("@@@@@1634 invoiceDetBean added into invDetBeanMap........");
}
else
{
......@@ -1820,6 +2031,19 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
private String conv__rtuom_stduom;
private String sord_unit__std;
private String sp1Comm;
private String sp2Comm;
private String sp3Comm;
private String netComm;
public String getNetComm()
{
return netComm;
}
public void setNetComm(String netComm)
{
this.netComm = netComm;
}
public double getmTotDespQty()
{
return mTotDespQty;
......@@ -2188,7 +2412,30 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
{
this.sord_unit__std = sord_unit__std;
}
public String getSp1Comm()
{
return sp1Comm;
}
public void setSp1Comm(String sp1Comm)
{
this.sp1Comm = sp1Comm;
}
public String getSp2Comm()
{
return sp2Comm;
}
public void setSp2Comm(String sp2Comm)
{
this.sp2Comm = sp2Comm;
}
public String getSp3Comm()
{
return sp3Comm;
}
public void setSp3Comm(String sp3Comm)
{
this.sp3Comm = sp3Comm;
}
}
/**
*
......@@ -2604,4 +2851,1235 @@ public class PostOrdInvoiceGen extends ActionHandlerEJB
}
private double geRndamt(double netAmt, String round, double roundTo)
{
// TODO Auto-generated method stub
double rndAmt=0.0,multiply=1,unrAmt=0;
try
{
if(netAmt<0)
{
netAmt=abs(netAmt);
}else if(netAmt==0)
{
return netAmt;
}else if("N".equalsIgnoreCase(round))
{
return netAmt;
}else if(roundTo==0)
{
return netAmt;
}
if("X".equalsIgnoreCase(round))
{
if(netAmt%roundTo>0)
{
rndAmt=netAmt-(netAmt%roundTo)+roundTo;
}else
{
rndAmt=netAmt;
}
}else if("P".equalsIgnoreCase(round))
{
rndAmt=netAmt-(netAmt%roundTo);
}else if("R".equalsIgnoreCase(round))
{
if(netAmt%roundTo<roundTo/2)
{
rndAmt=netAmt-(netAmt%roundTo);
}else
{
rndAmt=netAmt-(netAmt%roundTo)+roundTo;
}
}else
{
rndAmt=netAmt;
}
} catch (Exception e)
{
// TODO: handle exception
}
return rndAmt;
}
private double abs(double netAmt)
{
// TODO Auto-generated method stub
return 0;
}
private double checkDouble(Double double1)
{
if (double1 == null)
{
double1 = 0.0;
}
return double1;
}
public HashMap calcCommission(HashMap calcCommission,String lineNo ,Connection conn) throws ITMException
{
String sql="" ,currCode = "",baseCurrency = "",errorCode="",errString="";
String commPercOn="",currCodeComm="",commPercOn1="",currCodeComm1="",commPercOn2="",currCodeComm2="",dlvTerm="";
String commHdr = "N",commPercOnDet1="",commPercOnDet2="",commPercOnDet3="",itemCode="",siteCode="",finEntity="",insReqd="",frtReqd="";
String custCode="",itemSer="",salesPers="",salesPers1="",salesPers2="",priceListDate="";
String saleOrder="";
String despId="";
double exchRate=0,commPerc=0,exchRateComm=0,commPerc1=0,exchRateComm1=0,commPerc2=0,exchRateComm2=0,commPercDet1=0,commPercDet2=0,commPercDet3=0;
double taxAmt=0,netAmt=0,qtyStduom=0,rateStduom=0,frtAmt=0,exchFrtRate=0,insAmt=0,exchInsRate=0,fobAmt=0,netComm=0,ordPrice=0;
double commPerUnit=0,commBl1=0,commBl2=0,commBl3=0,commPerUnit1=0.0,commPerUnit2=0.0,commPerUnit3=0.0,qtyComm=0.0,qtyComm1=0.0,qtyComm2=0.0,qtyComm3=0.0;
double sp1Comm=0.0,sp2Comm=0.0,sp3Comm=0.0,totalCommBl=0.0,commAmt=0.0,commAmt1=0.0,commAmt2=0.0,commAmt3=0.0;
double baseAmtComm=0.0,baseAmtComm1=0.0,baseAmtComm2=0.0,baseAmtComm3=0.0,assessAmt=0.0,asesAmtComm=0.0,asesAmtComm1=0.0,asesAmtComm2=0.0,asesAmtComm3=0.0;
double salesAmt=0.0,taxAmtComm=0.0,taxAmtComm1=0.0,taxAmtComm2=0.0,taxAmtComm3=0.0,fobComm=0.0,fobComm1=0.0,fobComm2=0.0,fobComm3=0.0;
double fobQtyComm=0.0,fobQtyComm1=0.0,fobQtyComm2=0.0,fobQtyComm3=0.0,amtQtyComm=0.0,amtQtyComm1=0.0,amtQtyComm2=0.0,amtQtyComm3=0.0;
double taxAmtHdr=0.0,taxAmtDet=0.0,netAmtHdr=0.0,netAmtDet=0.0;
String ls_sitecd_d="",ls_currcd_d="",ls_currcd_frt_d="",ls_currcd_ins_d="",ls_curr_code__base="";
double lc_exchrt_d=0.0,lc_exchrt_frt_d=0.0,lc_exchrt_ins_d=0.0,lc_exch_rate=0.0;
double lc_exchrt=0.0;
String ldt_despdt="";
Date plDate=null;
PreparedStatement pstmt = null ;
ResultSet rs = null;
HashMap commissionMap = null;
HashMap commPercMap = null;
HashMap commPercSalesMap=null;
ITMDBAccessEJB itmDBAccessLocal = new ITMDBAccessEJB();
try
{
commissionMap = new HashMap();
saleOrder=(String) calcCommission.get("sord_no");
//Get data from sale order...
sql ="SELECT dlv_term,curr_code,exch_rate,exch_rate__frt,exch_rate__ins," +
"ins_amt,frt_amt,comm_perc,comm_perc__on,curr_code__comm," +
"exch_rate__comm,comm_perc_1,comm_perc_on_1,curr_code__comm_1," +
"exch_rate__comm_1,comm_perc_2,comm_perc_on_2,curr_code__comm_2," +
"exch_rate__comm_2,pl_date,cust_code,item_ser,sales_pers," +
"sales_pers__1,sales_pers__2,tot_amt, tax_amt FROM sorder WHERE sale_order =?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
rs = pstmt.executeQuery();
if(rs.next())
{
dlvTerm = rs.getString("dlv_term");
currCode = rs.getString("curr_code");
exchRate = rs.getDouble("exch_rate");
exchFrtRate =rs.getDouble("exch_rate__frt");
exchInsRate =rs.getDouble("exch_rate__ins");
insAmt = rs.getDouble("ins_amt");
frtAmt = rs.getDouble("frt_amt");
commPerc = rs.getDouble("comm_perc");
commPercOn = rs.getString("comm_perc__on");
currCodeComm = rs.getString("curr_code__comm");
exchRateComm = rs.getDouble("exch_rate__comm");
commPerc1 = rs.getDouble("comm_perc_1");
commPercOn1 = rs.getString("comm_perc_on_1");
currCodeComm1 = rs.getString("curr_code__comm_1");
exchRateComm1 = rs.getDouble("exch_rate__comm_1");
commPerc2 = rs.getDouble("comm_perc_2");
commPercOn2 = rs.getString("comm_perc_on_2");
commPercOn2 = rs.getString("comm_perc_on_2");
currCodeComm2 = rs.getString("curr_code__comm_2");
exchRateComm2 = rs.getDouble("exch_rate__comm_2");
priceListDate = rs.getString("pl_date");
custCode= rs.getString("cust_code");
itemSer= rs.getString("item_ser");
salesPers= rs.getString("sales_pers");
salesPers1= rs.getString("sales_pers__1");
salesPers2= rs.getString("sales_pers__2");
taxAmtHdr =rs.getDouble("tax_amt");
netAmtHdr =rs.getDouble("tot_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
commHdr = "N";
baseCurrency=currCode;
if( (commPerc > 0) || (commPerc1 > 0) || (commPerc2 > 0))
{
commHdr = "Y";
}
if("N".equalsIgnoreCase(commHdr) && lineNo.trim().length() > 0)
{
sql="SELECT comm_perc_on_1, comm_perc_on_2, comm_perc_on_3, comm_perc_1, comm_perc_2, comm_perc_3, " +
"tax_amt,net_amt FROM sorddet WHERE sale_order = ? AND line_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNo);
rs = pstmt.executeQuery();
if(rs.next())
{
commPercOnDet1 =rs.getString("comm_perc_on_1");
commPercOnDet2 =rs.getString("comm_perc_on_2");
commPercOnDet3 =rs.getString("comm_perc_on_3");
commPercDet1 =rs.getDouble("comm_perc_1");
commPercDet2 =rs.getDouble("comm_perc_2");
commPercDet3 =rs.getDouble("comm_perc_3");
taxAmtDet =rs.getDouble("tax_amt");
netAmtDet =rs.getDouble("net_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(commPercOnDet1 != null && commPercOnDet1.trim().length() > 0)
{
commPercOn = commPercOnDet1;
}
if(commPercOnDet2 != null && commPercOnDet2.trim().length() > 0)
{
commPercOn1 = commPercOnDet2;
}
if(commPercOnDet3 != null && commPercOnDet3.trim().length() > 0)
{
commPercOn2 = commPercOnDet3;
}
if(commPercDet1 > 0)
{
commPerc = commPercDet1;
}
if(commPercDet2 > 0)
{
commPerc1 = commPercDet2;
}
if(commPercDet3 > 0)
{
commPerc2 = commPercDet3;
}
System.out.println(">>>>>> in detail commPercOn:"+commPercOn+" "+commPercOn1+" "+commPercOn2);
System.out.println(">>>>>> in detail commPerc:"+commPerc+" "+commPerc1+" "+commPerc2);
}
despId=(String) calcCommission.get("desp_id");
if(despId !=null && despId.trim().length()>0)
{
sql="select desp_date,site_code,curr_code,curr_code__frt,curr_code__ins,"+
"exch_rate,exch_rate__frt,exch_rate__ins" +
" from despatch where desp_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,despId);
rs = pstmt.executeQuery();
if(rs.next())
{
ldt_despdt =rs.getString("desp_date");
ls_sitecd_d =rs.getString("site_code");
ls_currcd_d =rs.getString("curr_code");
ls_currcd_frt_d =rs.getString("curr_code__frt");
ls_currcd_ins_d =rs.getString("curr_code__ins");
lc_exchrt_d =rs.getDouble("exch_rate");
lc_exchrt_frt_d = rs.getDouble("exch_rate__frt");
lc_exchrt_ins_d = rs.getDouble("exch_rate__ins");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql="select curr_code from finent f, site s" +
" where f.fin_entity = s.fin_entity and s.site_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,ls_sitecd_d);
rs = pstmt.executeQuery();
if(rs.next())
{
ls_curr_code__base = rs.getString(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(calcCommission.get("exch_rate")!= null)
{
lc_exchrt_d=checkDouble((Double) calcCommission.get("exch_rate"));
}
if(lc_exchrt_d>0)
{
lc_exchrt_d=lc_exchrt_d;
}
if(lc_exchrt_d==0)//// For Order Exch rate
{
lc_exchrt_d=finCommon.getDailyExchRateSellBuy(ls_currcd_d, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if(lc_exchrt_d>0)
{
lc_exch_rate = lc_exchrt_d;
}
}else
{
lc_exch_rate = lc_exchrt_d;
}
if(ls_currcd_frt_d.equalsIgnoreCase(ls_currcd_d))// For Frt Exch rate
{
exchFrtRate = lc_exch_rate;
}else if (lc_exchrt_frt_d==0)
{
lc_exchrt_frt_d=finCommon.getDailyExchRateSellBuy(ls_currcd_frt_d, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if(lc_exchrt_frt_d>0)
{
exchFrtRate = lc_exchrt_frt_d;
}
}else
{
exchFrtRate = lc_exchrt_frt_d;
}
if(ls_currcd_ins_d.equalsIgnoreCase(ls_currcd_d)) // For Ins Exch rate
{
exchInsRate = lc_exch_rate;
}else if(lc_exchrt_ins_d==0)
{
lc_exchrt_ins_d = finCommon.getDailyExchRateSellBuy(ls_currcd_ins_d, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if (lc_exchrt_ins_d > 0)
{
exchInsRate = lc_exchrt_ins_d;
}
}else
{
exchInsRate = lc_exchrt_ins_d;
}
if (currCodeComm != null && currCodeComm.trim().length()>0 ) // For Comm_1 Exch rate
{
if (currCodeComm.equalsIgnoreCase(ls_currcd_d))
{
exchRateComm = lc_exch_rate;
} else
{
lc_exchrt = finCommon.getDailyExchRateSellBuy(currCodeComm, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if (lc_exchrt > 0)
{
exchRateComm = lc_exchrt;
}
}
}
lc_exch_rate=0;
if (currCodeComm1 != null && currCodeComm1.trim().length()>0 ) // For Comm_2 Exch rate
{
if (currCodeComm1.equalsIgnoreCase(ls_currcd_d))
{
exchRateComm1 = lc_exch_rate;
} else
{
lc_exchrt = finCommon.getDailyExchRateSellBuy(currCodeComm1, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if (lc_exchrt > 0)
{
exchRateComm1 = lc_exchrt;
}
}
}
lc_exch_rate=0;
if (currCodeComm2 != null && currCodeComm2.trim().length()>0 ) // For Comm_2 Exch rate
{
if (currCodeComm2.equalsIgnoreCase(ls_currcd_d))
{
exchRateComm2 = lc_exch_rate;
} else
{
lc_exchrt = finCommon.getDailyExchRateSellBuy(currCodeComm2, ls_curr_code__base, ls_sitecd_d, ldt_despdt, "S", conn);
if (lc_exchrt > 0)
{
exchRateComm2 = lc_exchrt;
}
}
}
currCode = ls_currcd_d;
}
ls_curr_code__base = currCode;
if (lc_exch_rate==0)
{
lc_exch_rate = 1;
}
if (exchRate==0)
{
exchRate = 1;
}
if (exchFrtRate==0)
{
exchFrtRate = 1;
}
if (exchInsRate==0)
{
exchInsRate = 1;
}
currCode=checknull(currCode);
commPercOn=checknull(commPercOn);
commPercOn1=checknull(commPercOn1);
commPercOn2=checknull(commPercOn2);
currCodeComm=checknull(currCodeComm);
currCodeComm1=checknull(currCodeComm1);
currCodeComm2=checknull(currCodeComm2);
exchRateComm=(exchRateComm==0)?1:exchRateComm;
exchRateComm1=(exchRateComm1==0)?1:exchRateComm1;
exchRateComm2=(exchRateComm2==0)?1:exchRateComm2;
salesPers=checknull(salesPers);
salesPers1=checknull(salesPers1);
salesPers2=checknull(salesPers2);
//lineNo=checknull(lineNo);
if(despId== null || despId.trim().length()==0)
{
if ("Y".equalsIgnoreCase(commHdr))
{
netAmt = netAmtHdr;
taxAmt = taxAmtHdr;
} else
{
netAmt = netAmtDet;
taxAmt = taxAmtDet;
}
}else
{
netAmt = Double.parseDouble(calcCommission.get("net_amt").toString());
taxAmt = Double.parseDouble(calcCommission.get("tax_amt").toString());
}
if(lineNo.trim().length()>0)
{
if(despId==null || despId.trim().length()==0)
{
}else
{
if(netAmt<=0 && Double.parseDouble(calcCommission.get("desp_rate__stduom").toString()) >0)
{
errString = itmDBAccessLocal.getErrorString("","''VTCOMMERR''","");
commPercMap.put("errorStr", errString);
return commPercMap;
}
}
}else
{
if(netAmt <= 0)
{
errString = itmDBAccessLocal.getErrorString("","''VTCOMMERR''","");
commPercMap.put("errorStr", errString);
return commPercMap;
}
}
sql="SELECT ins_reqd,frt_reqd FROM delivery_term WHERE dlv_term = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, dlvTerm);
rs = pstmt.executeQuery();
if(rs.next())
{
insReqd = rs.getString("ins_reqd");
frtReqd = rs.getString("frt_reqd");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("netAmt>>>"+netAmt);
System.out.println("exchRate>>>"+exchRate);
netAmt =netAmt * exchRate;
taxAmt =taxAmt * exchRate;
frtAmt =frtAmt * exchFrtRate;
insAmt =insAmt * exchInsRate;
if("Y".equalsIgnoreCase(insReqd) && "Y".equalsIgnoreCase(frtReqd)) //CIF
{
fobAmt = netAmt - frtAmt - insAmt;
}
else if("N".equalsIgnoreCase(insReqd) && "Y".equalsIgnoreCase(frtReqd)) //C&F
{
fobAmt = netAmt - frtAmt;
}
else if("Y".equalsIgnoreCase(insReqd) && "N".equalsIgnoreCase(frtReqd)) //CIP
{
fobAmt = netAmt - insAmt;
}
else if("N".equalsIgnoreCase(insReqd) && "N".equalsIgnoreCase(frtReqd)) //FOB
{
fobAmt = netAmt;
}
fobAmt = fobAmt - taxAmt;
if(lineNo.trim().length() > 0)
{
System.out.println(">>>>>>qty for detail");
sql="SELECT quantity__stduom, rate__stduom, item_code FROM despatchdet where desp_id =? and line_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,despId);
pstmt.setString(2,lineNo.trim());
rs = pstmt.executeQuery();
if(rs.next())
{
qtyStduom = rs.getDouble(1);
rateStduom = rs.getDouble(2);
itemCode = rs.getString(3);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if("B".equalsIgnoreCase(commPercOn) || "B".equalsIgnoreCase(commPercOn1) || "B".equalsIgnoreCase(commPercOn2))
{
netComm=0;
ordPrice= rateStduom;
//Calling function for picking base comm perc for business logic
commPercMap=commPercBase(custCode,itemCode,itemSer,ordPrice,priceListDate,conn);
errString= checkNull((String) commPercMap.get("errorStr"));
commPerUnit= checkDouble((Double)commPercMap.get("commPerc"));
if(errString.trim().length() > 0)
{
commissionMap.put("errorStr", errString);
return commissionMap;
//goto exit_now
}
if(commPerUnit == 0 && commPerc == 0 && commPerc1 == 0 && commPerc2 == 0)
{
errString = itmDBAccessLocal.getErrorString("","VTNOPERC","");
netComm=0;
commissionMap.put("errorStr", errString);
return commissionMap;
}
}
//Option: Business Logic 1
if("B".equalsIgnoreCase(commPercOn) && commPerc==0)
{
//commision % not entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
commBl1= qtyStduom * commPerUnit * exchRateComm;
}
else
{
commBl1= qtyStduom * commPerUnit * exchRate;
}
}
else if("B".equalsIgnoreCase(commPercOn) && commPerc > 0)
{
//commission % entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
commBl1= qtyStduom * commPerc * exchRateComm;
}
else
{
commBl1= qtyStduom * commPerc * exchRate;
}
}
//Option: Business Logic 2
if("B".equalsIgnoreCase(commPercOn1) && commPerc1==0)
{
//commision % not entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
commBl2= qtyStduom * commPerUnit * exchRateComm1;
}
else
{
commBl2= qtyStduom * commPerUnit * exchRate;
}
}
else if("B".equalsIgnoreCase(commPercOn1) && commPerc1 > 0)
{
//commission % entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
commBl2= qtyStduom * commPerc1 * exchRateComm1;
}
else
{
commBl2= qtyStduom * commPerc1 * exchRate;
}
}
//Option: Business Logic 3
if("B".equalsIgnoreCase(commPercOn2) && commPerc2==0)
{
//commision % not entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
commBl3= qtyStduom * commPerUnit * exchRateComm2;
}
else
{
commBl3= qtyStduom * commPerUnit * exchRate;
}
}
else if("B".equalsIgnoreCase(commPercOn2) && commPerc2 > 0)
{
//commission % entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
commBl3= qtyStduom * commPerc2 * exchRateComm2;
}
else
{
commBl3= qtyStduom * commPerc2 * exchRate;
}
}
//Business Logic Sales Person
netComm=0;
ordPrice= rateStduom;
if("S".equalsIgnoreCase(commPercOn) || "S".equalsIgnoreCase(commPercOn1) || "S".equalsIgnoreCase(commPercOn2))
{
if("S".equalsIgnoreCase(commPercOn))
{
commPercSalesMap=commPercSalesPers(salesPers,ordPrice,priceListDate,itemCode,conn);
errString= checkNull((String) commPercSalesMap.get("errorStr"));
if(errString.trim().length() > 0)
{
commissionMap.put("errorStr", errString);
return commissionMap;
//goto exit_now
}
commPerUnit1= checkDouble((Double)commPercSalesMap.get("commPercSales"));
}
if("S".equalsIgnoreCase(commPercOn1))
{
commPercSalesMap= commPercSalesPers(salesPers1,ordPrice,priceListDate,itemCode,conn);
errString= checkNull((String) commPercSalesMap.get("errorStr"));
if(errString.trim().length() > 0)
{
commissionMap.put("errorStr", errString);
return commissionMap;
//goto exit_now
}
commPerUnit2= checkDouble((Double)commPercSalesMap.get("commPercSales"));
}
if("S".equalsIgnoreCase(commPercOn2))
{
commPercSalesMap= commPercSalesPers(salesPers2,ordPrice,priceListDate,itemCode,conn);
errString= checkNull((String) commPercSalesMap.get("errorStr"));
if(errString.trim().length() > 0)
{
commissionMap.put("errorStr", errString);
return commissionMap;
//goto exit_now
}
commPerUnit3= checkDouble((Double)commPercSalesMap.get("commPercSales"));
}
if(commPerUnit1 == 0 && commPerUnit2 == 0 && commPerUnit3 == 0 && commPerc==0 && commPerc1==0 && commPerc2==0)
{
errString = itmDBAccessLocal.getErrorString("","VTNOPERC","");
netComm=0;
commissionMap.put("errorStr", errString);
return commissionMap;
}
}
//Option: 1
if("S".equalsIgnoreCase(commPercOn) && commPerc==0)
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
commBl1= qtyStduom * commPerUnit1 * exchRateComm;
}
else
{
commBl1= qtyStduom * commPerUnit1 * exchRate;
}
}
else if("S".equalsIgnoreCase(commPercOn) && commPerc > 0)
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
commBl1= qtyStduom * commPerc * exchRateComm;
}
else
{
commBl1= qtyStduom * commPerc * exchRate;
}
}
//Option: 2
if("S".equalsIgnoreCase(commPercOn1) && commPerc1==0)
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
commBl2= qtyStduom * commPerUnit2 * exchRateComm1;
}
else
{
commBl2= qtyStduom * commPerUnit2 * exchRate;
}
}
else if("S".equalsIgnoreCase(commPercOn1) && commPerc1 > 0)
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
commBl2= qtyStduom * commPerc1 * exchRateComm1;
}
else
{
commBl2= qtyStduom * commPerc1 * exchRate;
}
}
//Option: 3
if("S".equalsIgnoreCase(commPercOn2) && commPerc2==0)
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
commBl3= qtyStduom * commPerUnit3 * exchRateComm2;
}
else
{
commBl3= qtyStduom * commPerUnit3 * exchRate;
}
}
else if("S".equalsIgnoreCase(commPercOn2) && commPerc2 > 0)
{
//commission % entered
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
commBl3= qtyStduom * commPerc2 * exchRateComm2;
}
else
{
commBl3= qtyStduom * commPerc2 * exchRate;
}
}
//end.. Option : Business Logic Sales Person
if("Q".equalsIgnoreCase(commPercOn)) //commPercOn for Q
{
//comm calc in base currency
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
qtyComm1= qtyStduom * commPerc * exchRateComm;
}
else
{
qtyComm1= qtyStduom * commPerc * exchRate;
}
}
if("Q".equalsIgnoreCase(commPercOn1)) //commPercOn1 for Q
{
//comm calc in base currency
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
qtyComm2= qtyStduom * commPerc1 * exchRateComm1;
}
else
{
qtyComm2= qtyStduom * commPerc1 * exchRate;
}
}
if("Q".equalsIgnoreCase(commPercOn2)) //commPercOn2 for Q
{
//comm calc in base currency
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
qtyComm3= qtyStduom * commPerc2 * exchRateComm2;
}
else
{
qtyComm3= qtyStduom * commPerc2 * exchRate;
}
}
qtyComm=qtyComm + qtyComm1 + qtyComm2 + qtyComm3 + commBl1 + commBl2 + commBl3;
sp1Comm = sp1Comm + commBl1 + qtyComm1;
sp2Comm = sp2Comm + commBl2 + qtyComm2;
sp3Comm = sp3Comm + commBl3 + qtyComm3;
qtyComm1=0;
qtyComm2=0;
qtyComm3=0;
qtyStduom=0;
commBl1=0;
commBl2=0;
commBl3=0;
}
if("B".equalsIgnoreCase(commPercOn) || "B".equalsIgnoreCase(commPercOn1) || "B".equalsIgnoreCase(commPercOn2) )
{
totalCommBl= qtyComm;
}
//To calculate commission on AMOUNT
if("A".equalsIgnoreCase(commPercOn))
{
commAmt1= (netAmt * commPerc) / 100;
}
if("A".equalsIgnoreCase(commPercOn1))
{
commAmt2= (netAmt * commPerc1) / 100;
}
if("A".equalsIgnoreCase(commPercOn2))
{
commAmt3= (netAmt * commPerc2) / 100;
}
commAmt= commAmt1 + commAmt2 + commAmt3;
sp1Comm= sp1Comm + commAmt1;
sp2Comm= sp2Comm + commAmt2;
sp3Comm= sp3Comm + commAmt3;
//if line no is not available
if(lineNo.trim().length() == 0)
{
System.out.println(">>>>>");
sql="SELECT SUM(quantity__stduom) AS quantity__stduom FROM FROM despatchdet where desp_id =? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,despId);
rs = pstmt.executeQuery();
if(rs.next())
{
qtyStduom = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//To calculate commission on Quantity...
if("Q".equalsIgnoreCase(commPercOn))
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm))
{
qtyComm1 = qtyStduom * commPerc * exchRateComm;
}
else
{
qtyComm1 = qtyStduom * commPerc * exchRate;
}
}
if("Q".equalsIgnoreCase(commPercOn1))
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm1))
{
qtyComm2 = qtyStduom * commPerc1 * exchRateComm1;
}
else
{
qtyComm2 = qtyStduom * commPerc1 * exchRate;
}
}
if("Q".equalsIgnoreCase(commPercOn2))
{
if(!baseCurrency.equalsIgnoreCase(currCodeComm2))
{
qtyComm3 = qtyStduom * commPerc2 * exchRateComm2;
}
else
{
qtyComm3 = qtyStduom * commPerc2 * exchRate;
}
}
qtyComm = qtyComm + qtyComm1 + qtyComm2 + qtyComm3 + commBl1 + commBl2 + commBl3;
sp1Comm= sp1Comm + commBl1 + qtyComm1;
sp2Comm= sp2Comm + commBl2 + qtyComm2 ;
sp3Comm= sp3Comm + commBl3 + qtyComm3 ;
qtyStduom = 0;
//System.out.println("If line is o =" +commissionQty+" "+salesPersComm+" "+salesPersComm1+"
}
//To calculate commission on BASE AMOUNT
if("E".equalsIgnoreCase(commPercOn))
{
baseAmtComm1= (( netAmt - taxAmt) * commPerc) / 100;
}
if("E".equalsIgnoreCase(commPercOn1))
{
baseAmtComm2= (( netAmt - taxAmt) * commPerc1) / 100;
}
if("E".equalsIgnoreCase(commPercOn2))
{
baseAmtComm3= (( netAmt - taxAmt) * commPerc2) / 100;
}
baseAmtComm = baseAmtComm1 + baseAmtComm2 + baseAmtComm3;
sp1Comm = sp1Comm + baseAmtComm1;
sp2Comm = sp2Comm + baseAmtComm2;
sp3Comm = sp3Comm + baseAmtComm3;
//To calculate commission on ASSESSABLE AMOUNT
if("M".equalsIgnoreCase(commPercOn) || "M".equalsIgnoreCase(commPercOn1) || "M".equalsIgnoreCase(commPercOn2) )
{
sql="SELECT ddf_get_tax_detail('S-ORD',sale_order,line_no,'EXC_TAX_CODE','A') AS asses_amt FROM sorddet WHERE sale_order = ? AND line_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNo);
rs = pstmt.executeQuery();
if(rs.next())
{
assessAmt = rs.getDouble("asses_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
if("M".equalsIgnoreCase(commPercOn))
{
asesAmtComm1= (assessAmt * commPerc) / 100;
asesAmtComm1= asesAmtComm1 * exchRate;
}
if("M".equalsIgnoreCase(commPercOn1))
{
asesAmtComm2= (assessAmt * commPerc1) / 100;
asesAmtComm2= asesAmtComm2 * exchRate;
}
if("M".equalsIgnoreCase(commPercOn2))
{
asesAmtComm3= (assessAmt * commPerc2) / 100;
asesAmtComm3= asesAmtComm3 * exchRate;
}
asesAmtComm= asesAmtComm1 + asesAmtComm2 + asesAmtComm3;
sp1Comm = sp1Comm + asesAmtComm1;
sp2Comm = sp2Comm + asesAmtComm2;
sp3Comm = sp3Comm + asesAmtComm3;
//To calculate commission on Taxable Amount
if("T".equalsIgnoreCase(commPercOn) || "T".equalsIgnoreCase(commPercOn1) || "T".equalsIgnoreCase(commPercOn2))
{
sql="SELECT ddf_get_tax_detail('S-ORD',sale_order,line_no,'SALE_TAX_CODE','A') as sales_amt FROM sorddet WHERE sale_order = ? AND line_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNo);
rs = pstmt.executeQuery();
if(rs.next())
{
salesAmt = rs.getDouble("sales_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
if("T".equalsIgnoreCase(commPercOn))
{
taxAmtComm1= (salesAmt * commPerc) / 100;
taxAmtComm1= taxAmtComm1 * exchRate;
}
if("T".equalsIgnoreCase(commPercOn1))
{
taxAmtComm2= (salesAmt * commPerc1) / 100;
taxAmtComm2= taxAmtComm2 * exchRate;
}
if("T".equalsIgnoreCase(commPercOn2))
{
taxAmtComm3= (salesAmt * commPerc2) / 100;
taxAmtComm3= taxAmtComm3 * exchRate;
}
taxAmtComm = taxAmtComm1 + taxAmtComm2 + taxAmtComm3;
sp1Comm = sp1Comm + taxAmtComm1;
sp2Comm = sp2Comm + taxAmtComm2;
sp3Comm = sp3Comm + taxAmtComm3;
//To calculate commission on FOB
if("F".equalsIgnoreCase(commPercOn))
{
fobComm1= (fobAmt * commPerc) / 100;
}
if("F".equalsIgnoreCase(commPercOn1))
{
fobComm2= (fobAmt * commPerc1) / 100;
}
if("F".equalsIgnoreCase(commPercOn2))
{
fobComm3= (fobAmt * commPerc2) / 100;
}
fobComm= fobComm1 + fobComm2 + fobComm3;
sp1Comm = sp1Comm + fobComm1;
sp2Comm = sp2Comm + fobComm2;
sp3Comm = sp3Comm + fobComm3;
//To calculate commission on FOB LESS QUANTITY
if("Y".equalsIgnoreCase(commPercOn))
{
fobQtyComm1= ((fobAmt - qtyComm) * commPerc) / 100;
}
if("Y".equalsIgnoreCase(commPercOn))
{
fobQtyComm2= ((fobAmt - qtyComm) * commPerc1) / 100;
}
if("Y".equalsIgnoreCase(commPercOn))
{
fobQtyComm3= ((fobAmt - qtyComm) * commPerc2) / 100;
}
fobQtyComm= fobQtyComm1 + fobQtyComm2 + fobQtyComm3;
sp1Comm = sp1Comm + fobQtyComm1;
sp2Comm = sp2Comm + fobQtyComm2;
sp3Comm = sp3Comm + fobQtyComm3;
//To calculate commission on AMOUNT LESS QUANTITY
if("Z".equalsIgnoreCase(commPercOn))
{
amtQtyComm1= ((netAmt - qtyComm) * commPerc) / 100;
}
if("Z".equalsIgnoreCase(commPercOn))
{
amtQtyComm2= ((netAmt - qtyComm) * commPerc1) / 100;
}
if("Z".equalsIgnoreCase(commPercOn))
{
amtQtyComm3= ((netAmt - qtyComm) * commPerc2) / 100;
}
amtQtyComm= amtQtyComm1 + amtQtyComm2 + amtQtyComm3;
sp1Comm = sp1Comm + amtQtyComm1;
sp2Comm = sp2Comm + amtQtyComm2;
sp3Comm = sp3Comm + amtQtyComm3;
netComm = commAmt + qtyComm + fobComm + fobQtyComm + amtQtyComm + baseAmtComm + asesAmtComm + taxAmtComm ;
if(netComm < 0)
{
netComm=0;
}
if(exchRateComm > 0)
{
sp1Comm = sp1Comm / exchRateComm;
}
if(exchRateComm1 > 0)
{
sp2Comm = sp2Comm / exchRateComm1;
}
if(exchRateComm2 > 0)
{
sp3Comm = sp2Comm / exchRateComm2;
}
commissionMap.put("errorStr", errString);
commissionMap.put("sp1Comm", sp1Comm);
commissionMap.put("sp2Comm", sp2Comm);
commissionMap.put("sp3Comm", sp3Comm);
commissionMap.put("netComm", netComm);
System.out.println("commissionMap:::"+commissionMap.toString());
}
catch(Exception e)
{
System.out.println("Exception ::calcCommission:"+e);
throw new ITMException(e);
}
return commissionMap;
}
private String checkNull(String str)
{
if(str == null)
{
return "";
}
else
{
return str ;
}
}
private HashMap commPercBase(String custCode, String itemCode,String itemSer, double ordPrice, String priceListDate, Connection conn) throws ITMException
{
//This function calculates the commission perc required for Business Logic
//First check comm perc from customeritem then from customer series then
//from customer then pick price list code from disparm and based on price
//list pick the rate for case 'L'....
ITMDBAccessEJB itmDBAccessLocal = new ITMDBAccessEJB();
String sql="",defaultPriceList="",errString="";
double commPerc=0.0,priceListVal=0.0;
PreparedStatement pstmt = null ;
ResultSet rs = null;
DistCommon distCommon= new DistCommon();
HashMap commPercMap = null;
try
{
commPercMap = new HashMap();
sql="SELECT comm_perc__base FROM customeritem WHERE cust_code = ? AND item_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,custCode);
pstmt.setString(2,itemCode);
rs = pstmt.executeQuery();
if(rs.next())
{
commPerc = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(commPerc == 0)
{
sql="SELECT comm_perc__base FROM customer_series WHERE cust_code = ? AND item_ser = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
pstmt.setString(2, itemSer);
rs = pstmt.executeQuery();
if(rs.next())
{
commPerc = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(commPerc == 0)
{
sql="SELECT comm_perc__base FROM customer WHERE cust_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
rs = pstmt.executeQuery();
if(rs.next())
{
commPerc = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(commPerc == 0)
{
defaultPriceList=distCommon.getDisparams("999999", "BASE_PRICE_LIST", conn);
System.out.println(">>>>>>>>>>>>>>>defaultPriceList:"+defaultPriceList);
if("NULLFOUND".equalsIgnoreCase(defaultPriceList) || defaultPriceList == null || defaultPriceList.trim().length()==0)
{
errString = itmDBAccessLocal.getErrorString("","VTNOPL","Missing DISPARM Environment Variable: BASE_PRICE_LIST");
commPercMap.put("errorStr", errString);
return commPercMap;
}
else
{
priceListVal=distCommon.pickRate(defaultPriceList, priceListDate, itemCode, "", "L", conn);
commPerc= ordPrice - priceListVal;
}
}
else if(commPerc > 0)
{
defaultPriceList=distCommon.getDisparams("999999", "DEFAULT_PRICE_LIST", conn);
System.out.println(">>>>>>>>>>>>>>>defaultPriceList:"+defaultPriceList);
if("NULLFOUND".equalsIgnoreCase(defaultPriceList) || defaultPriceList == null || defaultPriceList.trim().length()==0)
{
errString = itmDBAccessLocal.getErrorString("","VTNOPL","");
commPercMap.put("errorStr", errString);
return commPercMap;
}
else
{
priceListVal=distCommon.pickRate(defaultPriceList, priceListDate, itemCode, "", "L", conn);
commPerc = (priceListVal * commPerc) / 100;
commPerc = ordPrice - commPerc;
}
}
}
else if(commPerc > 0)
{
defaultPriceList=distCommon.getDisparams("999999", "DEFAULT_PRICE_LIST", conn);
System.out.println(">>>>>>>>>>>>>>>defaultPriceList:"+defaultPriceList);
if(defaultPriceList.equals("NULLFOUND") || defaultPriceList==null || defaultPriceList.trim().length()==0 )
{
// = 'VTNOPL' + "~t" + " Missing DISPARM Environment Variable: BASE_PRICE_LIST ";
errString = itmDBAccessLocal.getErrorString("","VTNOPL","");
commPercMap.put("errorStr", errString);
return commPercMap;
}
else
{
priceListVal=distCommon.pickRate(defaultPriceList, priceListDate, itemCode, "", "L", conn);
commPerc = (priceListVal * commPerc) / 100;
commPerc = ordPrice - commPerc;
}
}
}
else if(commPerc > 0)
{
defaultPriceList=distCommon.getDisparams("999999", "DEFAULT_PRICE_LIST", conn);
System.out.println(">>>>>>>>>>>>>>>defaultPriceList:"+defaultPriceList);
if(defaultPriceList.equals("NULLFOUND") || defaultPriceList == null || defaultPriceList.trim().length()==0 )
{
errString = itmDBAccessLocal.getErrorString("","VTNOPL","");
commPercMap.put("errorStr", errString);
return commPercMap;
}
else
{
priceListVal=distCommon.pickRate(defaultPriceList, priceListDate, itemCode, "", "L", conn);
commPerc = (priceListVal * commPerc) / 100;
commPerc = ordPrice - commPerc;
commPercMap.put("commPerc", commPerc);
}
}
}
catch(Exception e)
{
System.out.println("Exception :"+e);
throw new ITMException(e);
}
//need to return error code..
return commPercMap;
}
private HashMap commPercSalesPers(String salesPers, double ordPrice,String priceListDate, String itemCode, Connection conn) throws ITMException
{
String sql="",salesPersCode="",priceList ="",errString="";
double priceListVal=0.0,commPerc=0.0;
PreparedStatement pstmt = null ;
ResultSet rs = null;
DistCommon distCommon= new DistCommon();
HashMap commPercSalesMap = null;
ITMDBAccessEJB itmDBAccessLocal = new ITMDBAccessEJB();
//New Function Added, Used By Business Logic For Sales Person Commission Type...
try
{
commPercSalesMap =new HashMap();
sql="SELECT price_list FROM sales_pers WHERE sales_pers = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,salesPers);
rs = pstmt.executeQuery();
if(rs.next())
{
priceList = rs.getString(1) == null ?"":rs.getString(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(priceList.trim().length()==0)
{
errString = itmDBAccessLocal.getErrorString("","VTNOPL","");
commPercSalesMap.put("errorStr", errString);
}
else
{
priceListVal=distCommon.pickRate(priceList, priceListDate, itemCode, "", "L", conn);
commPerc= ordPrice - priceListVal;
commPercSalesMap.put("commPercSales", commPerc);
}
}
catch(Exception e)
{
System.out.println("Exception :"+e);
throw new ITMException(e);
}
//need to return error code....
return commPercSalesMap;
}
private String checkNullDouble(String input)
{
if (input == null || input.trim().length()==0 )
{
input="0";
}
return input;
}
}
......@@ -11,14 +11,18 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import javax.ejb.Stateless;
import ibase.system.config.ConnDriver;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.fin.InvAcct;
import ibase.webitm.ejb.fin.adv.CalculateCommission;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.ITMException;
@Stateless
public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoicePostLocal,PostOrdInvoicePostRemote
{
E12GenericUtility genericUtility= new E12GenericUtility();
......@@ -26,7 +30,8 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
FinCommon finCommon=new FinCommon();
@Override
public String invoicePosting(String invoiceId, Connection conn) throws ITMException
//public String invoicePosting(String invoiceId, Connection conn) throws ITMException
public String invoicePosting(String invoiceId,String xtraParams,String forcedFlag,Connection conn) throws ITMException
{
String retString="",sql="",itemSer="",lsCctrCodeSal="",lsAcctCodeSal="",lsAnalysis="",lsTemp="",tempInvId="",sqlUpd="";
String detInvId="",detAcctCode="",detCctrCode="",hdrAnalCode="",detAnalysis1="",detAnalysis2="",detAnalysis3="",detItemCd="";
......@@ -43,21 +48,23 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
// TODO Auto-generated method stub
HashMap<String, String> InvoiceHrdMap=new HashMap<String, String>();
// HashMap<String, HashMap<String, String>> InvoiceAcctMap=new HashMap<String, HashMap<String,String>>();
// HashMap<String, HashMap<String, String>> InvoiceAcctMap=new HashMap<String, HashMap<String,String>>();
ArrayList<Object> invoiceAcctList=new ArrayList<Object>();
ArrayList<Object> invoiceDeapList=new ArrayList<Object>();
ArrayList<Object> invoiceDetList=new ArrayList<Object>();
HashMap<String, String>InvoiceDetMap=null;
String analysisStr []=null;
String lineNoTemp="";
HashMap<String, String> invAcctMap = null;
ArrayList<HashMap<String, String>> invAcctList = new ArrayList<HashMap<String,String>>();
try
{
if(conn==null)
{
ConnDriver connDriver = new ConnDriver();
//Changes and Commented By Bhushan on 09-06-2016 :START
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
//Changes and Commented By Bhushan on 09-06-2016 :END
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
connDriver = null;
connFlag=true;
......@@ -77,7 +84,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
invoiceDeapList=getInvoiceDesp(invoiceId,conn);
System.out.println("Invoice trace list size:- ["+invoiceDeapList.size()+"]");
// invoiceDetList=getInvoiceDet(invoiceId,conn);
// invoiceDetList=getInvoiceDet(invoiceId,conn);
/**
* Invoice trace list size
......@@ -91,7 +98,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
for(int itr=0;itr<invoiceDeapList.size();itr++)
{
InvoiceDetMap=(HashMap<String, String>) invoiceDeapList.get(itr);
System.out.println("@@@@@91 itr["+itr+"] InvoiceDetMap["+InvoiceDetMap+"]");
detInvId=InvoiceDetMap.get("invoice_id");
detItemCd=InvoiceDetMap.get("item_code");
......@@ -99,7 +106,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
detLineNo=Integer.parseInt(InvoiceDetMap.get("line_no"));
detAmount=Double.parseDouble(InvoiceDetMap.get("quantity__stduom")) * Double.parseDouble(InvoiceDetMap.get("rate__stduom"));
System.out.println("@@@@@@@99 detAmount["+detAmount+"]");
lsAnalysis=invAcct.AcctAnalysisType(" ","S-INV",InvoiceHrdMap.get("inv_type"),"CR",conn);
lsTemp="CR"+lsAnalysis;
......@@ -200,7 +207,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
rs=null;
lsCctrCodeSal=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "SAL", InvoiceDetMap.get("inv_type"), conn));
// detCctrCode=lsCctrCodeSal;
//detCctrCode=lsCctrCodeSal;
System.out.println("@@@@@@@@@@@@@@ lsCctrCodeSal["+lsCctrCodeSal+"]");
String ls_acct_code__sal[]=lsCctrCodeSal.split(",");
if( ls_acct_code__sal.length > 0)
......@@ -211,19 +218,24 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsCctrCodeSal=ls_acct_code__sal[1];
}
// detAcctCode=lsAcctCodeSal;
// detAcctCode=lsAcctCodeSal;
System.out.println("@@@@@@@@@@@@@@lsAcctCodeSal["+lsAcctCodeSal+"]:::lsCctrCodeSal["+lsCctrCodeSal+"]");
sql="select invoice_id,amount from invacct where acct_code=? and cctr_code=? and anal_code=?";
System.out.println("@@@@@@213 detAmount["+detAmount+"]");
/*
sql="select invoice_id,amount from invacct where acct_code=? and cctr_code=? " +
//" and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeSal);
pstmt.setString(2, lsCctrCodeSal);
pstmt.setString(3, hdrAnalCode);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
rs=pstmt.executeQuery();
if(rs.next())
{
/**
*//**
* Update record
* */
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
detAmount=detAmount+tempAmount;
......@@ -231,15 +243,36 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
updateAcctAmt(tempInvId,detAmount,conn);
}
else
{
/**
* Insert record
* */
else */
/*{
detLineNo++;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeSal,lsCctrCodeSal,hdrAnalCode,detAmount,analysis1__cr,analysis2__cr,analysis3__cr,conn);
}
}*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
//invAcctMap.put("line_no",detLineNo);
invAcctMap.put("acct_code", lsAcctCodeSal);
invAcctMap.put("cctr_code", lsCctrCodeSal);
invAcctMap.put("anal_code", hdrAnalCode);
invAcctMap.put("amount", ""+detAmount);
invAcctMap.put("analysis1", analysis1__cr);
invAcctMap.put("analysis2", analysis2__cr);
invAcctMap.put("analysis3", analysis3__cr);
System.out.println("@@@@@@@1 invAcctMap["+invAcctMap+"]");
//invAcctList.add(invAcctMap);
lnAmountDis=(Double.parseDouble(InvoiceDetMap.get("rate__stduom"))*Double.parseDouble(InvoiceDetMap.get("quantity__stduom"))) * Double.parseDouble(InvoiceDetMap.get("rate__stduom"))/100;
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodeSal,lsCctrCodeSal , detAmount, checkNullSpace(hdrAnalCode) );
//lnAmountDis=(Double.parseDouble(InvoiceDetMap.get("rate__stduom"))*Double.parseDouble(InvoiceDetMap.get("quantity__stduom"))) * Double.parseDouble(InvoiceDetMap.get("rate__stduom"))/100;
lnAmountDis=(Double.parseDouble(InvoiceDetMap.get("rate__stduom"))*Double.parseDouble(InvoiceDetMap.get("quantity__stduom"))) * Double.parseDouble(InvoiceDetMap.get("discount"))/100;
System.out.println("@@@@@@243 lnAmountDis["+lnAmountDis+"]");
if(lnAmountDis!=0)
{
/**
......@@ -256,63 +289,89 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsCctrCodeDis=ls_acct_code__dis[1];
}
// detAcctCode=lsAcctCodeDis;
// detAcctCode=lsAcctCodeDis;
if(lsCctrCodeDis==null || lsCctrCodeDis.trim().length()==0)
{
lsCctrCodeDis=InvoiceHrdMap.get("cctr_code__dis");
}
sql="select invoice_id,amount from invacct where acct_code=? and cctr_code=? and anal_code=?";
/*sql="select invoice_id,amount from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeDis);
pstmt.setString(2, lsCctrCodeDis);
pstmt.setString(3, hdrAnalCode);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
rs=pstmt.executeQuery();
if(rs.next())
{
/**
*//**
* Update record
* */
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
/**
*//**
* Discount amount
* */
* *//*
lnAmountDis=tempAmount-lnAmountDis;
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else
{
/**
* Insert record
* */
else*/
/*{
detLineNo++;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeDis,lsCctrCodeDis,hdrAnalCode,lnAmountDis,"","","",conn);
}
}*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
//invAcctMap.put("line_no",detLineNo);
invAcctMap.put("acct_code", lsAcctCodeDis);
invAcctMap.put("cctr_code", lsCctrCodeDis);
invAcctMap.put("anal_code", hdrAnalCode);
invAcctMap.put("amount", ""+lnAmountDis*(-1));
//invAcctMap.put("amount", ""+lnAmountDis);//CHANGE BY CHANDRASHEKAR
invAcctMap.put("analysis1", "");
invAcctMap.put("analysis2", "");
invAcctMap.put("analysis3", "");
System.out.println("@@@@@@@2 invAcctMap["+invAcctMap+"]");
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodeDis,lsCctrCodeDis , lnAmountDis, checkNullSpace(hdrAnalCode) );
}//lnAmountDis amount not 0 END
/**
* Find lc_scheme_discount
* */
lcSchemeDiscount=Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt"))+Double.parseDouble(InvoiceDetMap.get("disc_schem_offinv_amt"));
System.out.println("@@@@@@304 lcSchemeDiscount["+lcSchemeDiscount+"]");
if(lcSchemeDiscount!=0)
{
sql="select invoice_id from invacct where acct_code=? and cctr_code=? and anal_code=?"
/*sql="select invoice_id from invacct where acct_code=? and cctr_code=? " +
// "and anal_code=?"
" and case when anal_code is null then ' ' else anal_code end = ? "
+ " and analysis1=? and analysis2=? and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodePr);
pstmt.setString(2, lsCctrCodePr);
pstmt.setString(3, hdrAnalCode);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
pstmt.setString(4, analysis1__dr);
pstmt.setString(5, analysis2__dr);
pstmt.setString(6, analysis3__dr);
rs=pstmt.executeQuery();
if(rs.next())
{
/**
*//**
* Update record
* */
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
......@@ -321,36 +380,59 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else
{
/**
* Insert record
* */
else*/
/*{
detLineNo++;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodePr,lsCctrCodePr,hdrAnalCode,lnAmountDis,analysis1__dr,analysis2__dr,analysis3__dr,conn);
}
*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
//invAcctMap.put("line_no",detLineNo);
invAcctMap.put("acct_code", lsAcctCodePr);
invAcctMap.put("cctr_code", lsCctrCodePr);
invAcctMap.put("anal_code", hdrAnalCode);
invAcctMap.put("amount", ""+lnAmountDis);
invAcctMap.put("analysis1", analysis1__dr);
invAcctMap.put("analysis2", analysis2__dr);
invAcctMap.put("analysis3", analysis3__dr);
System.out.println("@@@@@@@3 invAcctMap["+invAcctMap+"]");
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodePr,lsCctrCodePr , lnAmountDis, checkNullSpace(hdrAnalCode) );
}// lc_scheme_discount>0 END
/**
* check lc_billback_amt>0
* */
System.out.println("@@@@@@345 InvoiceDetMap.get(disc_schem_billback_amt)["+InvoiceDetMap.get("disc_schem_billback_amt")+"]");
if(Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt"))>0)
{
sql="select invoice_id from invacct where acct_code=? and cctr_code=? and anal_code=?"
/*sql="select invoice_id from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=?"
" and case when anal_code is null then ' ' else anal_code end = ? "
+ " and analysis1=? and analysis2=? and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodePr);
pstmt.setString(2, lsCctrCodePr);
pstmt.setString(3, hdrAnalCode);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
pstmt.setString(4, analysis1__dr);
pstmt.setString(5, analysis2__dr);
pstmt.setString(6, analysis3__dr);
rs=pstmt.executeQuery();
if(rs.next())
{
/**
*//**
* Update record
* */
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
......@@ -359,24 +441,47 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else
{
/**
* Insert record
* */
else*/
/*{
detLineNo++;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodePr,lsCctrCodePr,hdrAnalCode,Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt")),analysis1__dr,analysis2__dr,analysis3__dr,conn);
}
}*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
//invAcctMap.put("line_no",detLineNo);
invAcctMap.put("acct_code", lsAcctCodePr);
invAcctMap.put("cctr_code", lsCctrCodePr);
invAcctMap.put("anal_code", hdrAnalCode);
invAcctMap.put("amount", InvoiceDetMap.get("disc_schem_billback_amt"));
invAcctMap.put("analysis1", analysis1__dr);
invAcctMap.put("analysis2", analysis2__dr);
invAcctMap.put("analysis3", analysis3__dr);
System.out.println("@@@@@@@4 invAcctMap["+invAcctMap+"]");
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodePr,lsCctrCodePr , Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt")), checkNullSpace(hdrAnalCode) );
}// lc_billback_amt>0 END
/**
* Select 'taxtran'details
* */
sql="select acct_code,cctr_code,sum(tax_amt), case when sum(reco_amount) is null then 0 else sum(reco_amount) end"
lineNoTemp = " "+InvoiceDetMap.get("line_no");
lineNoTemp = lineNoTemp.substring(lineNoTemp.length()-3, lineNoTemp.length());
System.out.println("@@@@@@@ lineNoTemp["+lineNoTemp+"]");
sql="select acct_code,cctr_code,sum(tax_amt) as tax_amt, case when sum(reco_amount) is null then 0 else sum(reco_amount) end as reco_amount "
+ " from taxtran where tran_code = 'S-INV' and tran_id = ? and line_no = ? "
+ " and effect <> 'N' group BY acct_code,cctr_code";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceDetMap.get("invoice_id"));
pstmt.setString(2, InvoiceDetMap.get("line_no"));
pstmt.setString(2, lineNoTemp);
rs=pstmt.executeQuery();
while(rs.next())
{
......@@ -385,17 +490,29 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lnAmountTax=rs.getDouble("tax_amt");
lcRecoAmt=rs.getDouble("reco_amount");
sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? and anal_code=?";
if( lsAcctCodeTax == null || lsAcctCodeTax.trim().length() == 0)
{
lsAcctCodeTax = lsAcctCodeSal;
lsCctrCodeTax = lsCctrCodeSal;
}
if( lsCctrCodeTax == null || lsCctrCodeTax.trim().length() == 0 )
{
lsCctrCodeTax = " ";
}
lnAmountTax=lnAmountTax-lcRecoAmt;
/*sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctCodeTax);
pstmt1.setString(2, lsCctrCodeTax);
pstmt1.setString(3, hdrAnalCode);
pstmt1.setString(3, checkNullSpace(hdrAnalCode));
rs1=pstmt1.executeQuery();
if(rs1.next())
{
/**
*//**
* Update record
* */
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
......@@ -403,20 +520,34 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
updateAcctAmt(tempInvId,lnAmountTax,conn);
}
else
{
/**
* Insert record
* */
else*/
/*{
detLineNo++;
tempAmount=lnAmountTax-lcRecoAmt;
System.out.println("@@@@@@431 tempAmount["+tempAmount+"]");
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeTax,lsCctrCodeTax,hdrAnalCode,tempAmount,"","","",conn);
}
pstmt1.close();
}*/
/* pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;
rs1=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
//invAcctMap.put("line_no",detLineNo);
invAcctMap.put("acct_code", lsAcctCodeTax);
invAcctMap.put("cctr_code", lsCctrCodeTax);
invAcctMap.put("anal_code", hdrAnalCode);
invAcctMap.put("amount", ""+lnAmountTax);
invAcctMap.put("analysis1", "");
invAcctMap.put("analysis2", "");
invAcctMap.put("analysis3", "");
System.out.println("@@@@@@@5 invAcctMap["+invAcctMap+"]");
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodeTax,lsCctrCodeTax , lnAmountTax, checkNullSpace(hdrAnalCode) );
}//'taxtran'details while END
pstmt.close();
......@@ -431,7 +562,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
* */
lsTaxRecoCctr=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "TAXRECO", InvoiceDetMap.get("inv_type"), conn));
// detCctrCode=lsCctrCodeSal;
// detCctrCode=lsCctrCodeSal;
String ls_tax_reco_acct[]=lsTaxRecoCctr.split(",");
if( ls_tax_reco_acct.length > 0)
......@@ -442,9 +573,13 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsTaxRecoCctr =ls_tax_reco_acct[1];
}
// detAcctCode=lsAcctCodeSal;
// detAcctCode=lsAcctCodeSal;
sql="select acct_code__reco, cctr_code__reco, case when sum(reco_amount) is null then 0 else sum(reco_amount) end"
lineNoTemp = " "+InvoiceDetMap.get("line_no");
lineNoTemp = lineNoTemp.substring(lineNoTemp.length()-3, lineNoTemp.length());
System.out.println("@@@@@@@ lineNoTemp["+lineNoTemp+"]");
sql="select acct_code__reco, cctr_code__reco, case when sum(reco_amount) is null then 0 else sum(reco_amount) end as reco_amount "
+ " from taxtran"
+ " where tran_code = 'S-INV' and tran_id = ?"
+ " and line_no = ? and effect <> 'N'"
......@@ -452,7 +587,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
+ " group BY acct_code__reco, cctr_code__reco ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceDetMap.get("invoice_id"));
pstmt.setString(2, InvoiceDetMap.get("line_no"));
pstmt.setString(2, lineNoTemp);
rs=pstmt.executeQuery();
while(rs.next())
{
......@@ -460,17 +595,29 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lsCctrReco=checkNull(rs.getString("cctr_code__reco"));
lcRecoAmt=rs.getDouble("reco_amount");
sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? and anal_code=?";
if( lsAcctReco == null || lsAcctReco.trim().length() == 0 )
{
lsAcctReco = lsTaxRecoAcct;
lsCctrReco = lsTaxRecoCctr;
}
if( lsCctrReco == null || lsCctrReco.trim().length() == 0 )
{
lsCctrReco = " ";
}
/*sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctReco);
pstmt1.setString(2, lsCctrReco);
pstmt1.setString(3, hdrAnalCode);
pstmt1.setString(3, checkNullSpace(hdrAnalCode));
rs1=pstmt1.executeQuery();
if(rs1.next())
{
/**
*//**
* Update record
* */
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
......@@ -479,14 +626,39 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
updateAcctAmt(tempInvId,lcRecoAmt,conn);
}
else
{
/**
* Insert record
* */
else*/
/*{
detLineNo++;
System.out.println("@@@@@@508 lcRecoAmt["+lcRecoAmt+"]");
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctReco,lsCctrReco,hdrAnalCode,lcRecoAmt,"","","",conn);
}
} */
/*pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
//invAcctMap.put("line_no",detLineNo);
invAcctMap.put("acct_code", lsAcctReco);
invAcctMap.put("cctr_code", lsCctrReco);
invAcctMap.put("anal_code", hdrAnalCode);
invAcctMap.put("amount", ""+lcRecoAmt);
invAcctMap.put("analysis1", "");
invAcctMap.put("analysis2", "");
invAcctMap.put("analysis3", "");
System.out.println("@@@@@@@6 invAcctMap["+invAcctMap+"]");
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctReco,lsCctrReco , lcRecoAmt, checkNullSpace(hdrAnalCode) );
}//tax reco details while END
pstmt.close();
pstmt=null;
rs.close();
rs=null;
......@@ -508,7 +680,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
for(int itr=0;itr<invoiceDetList.size();itr++)
{
InvoiceDetMap=(HashMap<String, String>) invoiceDetList.get(itr);
System.out.println("@@@@@@526 itr["+itr+"]InvoiceDetMap["+InvoiceDetMap+"]");
detInvId=InvoiceDetMap.get("invoice_id");
detItemCd=InvoiceDetMap.get("item_code");
......@@ -546,21 +718,24 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsCctrCodeSal=ls_acct_code__sal[1];
}
sql="select invoice_id from invacct where acct_code=? and cctr_code=? and anal_code=? and analysis1=? and analysis2=?"
/*sql="select invoice_id from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=? " +
" and case when anal_code is null then ' ' else anal_code end = ? "+
" and analysis1=? and analysis2=?"
+ " and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeSal);
pstmt.setString(2, lsCctrCodeSal);
pstmt.setString(3, hdrAnalCode);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
pstmt.setString(4, lsAnalysis1);
pstmt.setString(5, lsAnalysis2);
pstmt.setString(6, lsAnalysis3);
rs=pstmt.executeQuery();
if(rs.next())
{
/**
*//**
* Update record
* */
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
......@@ -569,17 +744,32 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
uActCnt=updateAcctAmt(tempInvId,lnAmountSal,conn);
}
else
{
/**
* Insert record
* */
else*/
/*{
detLineNo++;
System.out.println("@@@@@@603 lnAmountSal["+lnAmountSal+"]");
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeSal,lsCctrCodeSal,hdrAnalCode,lnAmountSal,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}
pstmt.close();
}*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;
rs=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
//invAcctMap.put("line_no",detLineNo);
invAcctMap.put("acct_code", lsAcctCodeSal);
invAcctMap.put("cctr_code", lsCctrCodeSal);
invAcctMap.put("anal_code", hdrAnalCode);
invAcctMap.put("amount", ""+lnAmountSal);
invAcctMap.put("analysis1", lsAnalysis1);
invAcctMap.put("analysis2", lsAnalysis2);
invAcctMap.put("analysis3", lsAnalysis3);
System.out.println("@@@@@@@7 invAcctMap["+invAcctMap+"]");
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodeSal,lsCctrCodeSal , lnAmountSal, checkNullSpace(hdrAnalCode) );
if(lnAmountDis!=0)
{
......@@ -597,21 +787,24 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsCctrCodeDis=ls_acct_code__dis[1];
}
sql="select invoice_id from invacct where acct_code=? and cctr_code=? and anal_code=? and analysis1=? and analysis2=?"
/*sql="select invoice_id from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=? " +
" and case when anal_code is null then ' ' else anal_code end = ? "+
" and analysis1=? and analysis2=?"
+ " and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeDis);
pstmt.setString(2, lsCctrCodeDis);
pstmt.setString(3, hdrAnalCode);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
pstmt.setString(4, lsAnalysis1);
pstmt.setString(5, lsAnalysis2);
pstmt.setString(6, lsAnalysis3);
rs=pstmt.executeQuery();
if(rs.next())
{
/**
*//**
* Update record
* */
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
......@@ -620,31 +813,49 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else
{
/**
* Insert record
* */
else*/
/*{
detLineNo++;
System.out.println("@@@@@@659 lnAmountDis["+lnAmountDis+"]");
lnAmountDis=0-lnAmountDis;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeDis,lsCctrCodeDis,hdrAnalCode,lnAmountDis,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}
pstmt.close();
}*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;
rs=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
//invAcctMap.put("line_no",detLineNo);
invAcctMap.put("acct_code", lsAcctCodeDis);
invAcctMap.put("cctr_code", lsCctrCodeDis);
invAcctMap.put("anal_code", hdrAnalCode);
invAcctMap.put("amount", ""+lnAmountDis);
invAcctMap.put("analysis1", lsAnalysis1);
invAcctMap.put("analysis2", lsAnalysis2);
invAcctMap.put("analysis3", lsAnalysis3);
System.out.println("@@@@@@@8 invAcctMap["+invAcctMap+"]");
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodeDis,lsCctrCodeDis , lnAmountDis, checkNullSpace(hdrAnalCode) );
}// lnAmountDis!=0 END
/**
* select 'taxtran' details
* */
lineNoTemp = " "+InvoiceDetMap.get("line_no");
lineNoTemp = lineNoTemp.substring(lineNoTemp.length()-3, lineNoTemp.length());
System.out.println("@@@@@@@ lineNoTemp["+lineNoTemp+"]");
sql="select acct_code,cctr_code,sum(tax_amt), case when sum(reco_amount) is null then 0 else sum(reco_amount) end"
sql="select acct_code,cctr_code,sum(tax_amt) as tax_amt , case when sum(reco_amount) is null then 0 else sum(reco_amount) end as reco_amount "
+ " from taxtran"
+ " where tran_code = 'S-INV' and tran_id = ?"
+ " and line_no = ? effect <> 'N'"
+ " group BY acct_code,cctr_code";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceDetMap.get("invoice_id"));
pstmt.setString(2, InvoiceDetMap.get("line_no"));
pstmt.setString(2, lineNoTemp);
rs=pstmt.executeQuery();
while(rs.next())
{
......@@ -653,17 +864,28 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lnAmountTax=rs.getDouble("tax_amt");
lcRecoAmt=rs.getDouble("reco_amount");
sql1="select invoice_id from invacct where acct_code=? and cctr_code=? and anal_code=?";
if( lsAcctCodeTax == null || lsAcctCodeTax.trim().length() == 0)
{
lsAcctCodeTax = lsAcctCodeSal;
lsCctrCodeTax = lsCctrCodeSal;
}
if( lsCctrCodeTax == null || lsCctrCodeTax.trim().length() == 0 )
{
lsCctrCodeTax = " ";
}
/*sql1="select invoice_id from invacct where acct_code=? and cctr_code=? " +
// "and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctCodeTax);
pstmt1.setString(2, lsCctrCodeTax);
pstmt1.setString(3, hdrAnalCode);
pstmt1.setString(3, checkNullSpace(hdrAnalCode));
rs1=pstmt1.executeQuery();
if(rs1.next())
{
/**
*//**
* Update record
* */
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
......@@ -672,18 +894,35 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
updateAcctAmt(tempInvId,lnAmountTax,conn);
}
else
{
/**
* Insert record
* */
else*/
/*{
detLineNo++;
lnAmountTax=lnAmountTax-lcRecoAmt;
System.out.println("@@@@@@716 lnAmountTax["+lnAmountTax+"]");
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeTax,lsCctrCodeTax,hdrAnalCode,lnAmountTax,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}
pstmt1.close();
}*/
/*pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;
rs1=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
//invAcctMap.put("line_no",detLineNo);
invAcctMap.put("acct_code", lsAcctCodeTax);
invAcctMap.put("cctr_code", lsCctrCodeTax);
invAcctMap.put("anal_code", hdrAnalCode);
invAcctMap.put("amount", ""+lnAmountTax);
invAcctMap.put("analysis1", lsAnalysis1);
invAcctMap.put("analysis2", lsAnalysis2);
invAcctMap.put("analysis3", lsAnalysis3);
System.out.println("@@@@@@@9 invAcctMap["+invAcctMap+"]");
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodeTax,lsCctrCodeTax , lnAmountTax, checkNullSpace(hdrAnalCode) );
}
pstmt.close();
pstmt=null;
......@@ -696,7 +935,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
* */
lsTaxRecoCctr=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "TAXRECO", InvoiceDetMap.get("inv_type"), conn));
// detCctrCode=lsCctrCodeSal;
// detCctrCode=lsCctrCodeSal;
String ls_tax_reco_acct[]=lsTaxRecoCctr.split(",");
if( ls_tax_reco_acct.length > 0)
......@@ -707,9 +946,13 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsTaxRecoCctr=ls_tax_reco_acct[1];
}
// detAcctCode=lsAcctCodeSal;
// detAcctCode=lsAcctCodeSal;
lineNoTemp = " "+InvoiceDetMap.get("line_no");
lineNoTemp = lineNoTemp.substring(lineNoTemp.length()-3, lineNoTemp.length());
System.out.println("@@@@@@@ lineNoTemp["+lineNoTemp+"]");
sql="select acct_code__reco, cctr_code__reco, case when sum(reco_amount) is null then 0 else sum(reco_amount) end"
sql="select acct_code__reco, cctr_code__reco, case when sum(reco_amount) is null then 0 else sum(reco_amount) end as reco_amount "
+ " from taxtran"
+ " where tran_code = 'S-INV' and tran_id = ?"
+ " and line_no = ? and effect <> 'N'"
......@@ -717,7 +960,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
+ " group BY acct_code__reco, cctr_code__reco ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceDetMap.get("invoice_id"));
pstmt.setString(2, InvoiceDetMap.get("line_no"));
pstmt.setString(2, lineNoTemp);
rs=pstmt.executeQuery();
while(rs.next())
{
......@@ -725,17 +968,28 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lsCctrReco=checkNull(rs.getString("cctr_code__reco"));
lcRecoAmt=rs.getDouble("reco_amount");
sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? and anal_code=?";
if( lsAcctReco == null || lsAcctReco.trim().length() == 0 )
{
lsAcctReco = lsTaxRecoAcct;
lsCctrReco = lsTaxRecoCctr;
}
if( lsCctrReco == null || lsCctrReco.trim().length() == 0 )
{
lsCctrReco = " ";
}
/*sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctReco);
pstmt1.setString(2, lsCctrReco);
pstmt1.setString(3, hdrAnalCode);
pstmt1.setString(3, checkNullSpace(hdrAnalCode));
rs1=pstmt1.executeQuery();
if(rs1.next())
{
/**
*//**
* Update record
* */
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
......@@ -744,17 +998,33 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
updateAcctAmt(tempInvId,lcRecoAmt,conn);
}
else
{
/**
* Insert record
* */
else*/
/*{
detLineNo++;
System.out.println("@@@@@@791 lcRecoAmt["+lcRecoAmt+"]");
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctReco,lsCctrReco,hdrAnalCode,lcRecoAmt,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}
pstmt1.close();
}*/
/*pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;
rs1=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
//invAcctMap.put("line_no",detLineNo);
invAcctMap.put("acct_code", lsAcctReco);
invAcctMap.put("cctr_code", lsCctrReco);
invAcctMap.put("anal_code", hdrAnalCode);
invAcctMap.put("amount", ""+lcRecoAmt);
invAcctMap.put("analysis1", lsAnalysis1);
invAcctMap.put("analysis2", lsAnalysis2);
invAcctMap.put("analysis3", lsAnalysis3);
System.out.println("@@@@@@@10 invAcctMap["+invAcctMap+"]");
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctReco,lsCctrReco , lcRecoAmt, checkNullSpace(hdrAnalCode) );
}
pstmt.close();
pstmt=null;
......@@ -762,6 +1032,56 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
rs=null;
}//invoiceDetList FOR loop END
}
retString = insertInvAcctList( invAcctList,conn );
System.out.println("@@@@@1032 retString["+retString+"]");
//calling poonam code here start 13/06/16 cpatil
boolean lb_comm= false;
String commCalcOnOff="",confDrcrOpt="",confJvOpt="",gs_run_mode="";
if( retString == null || retString.trim().length() == 0 )
{
if( gs_run_mode == null || !"B".equalsIgnoreCase(gs_run_mode))
{
//ls_comm_calc_on_off = trim(gf_getfinparm('999999','COMM_CALC_ON_OFF'))
commCalcOnOff = finCommon.getFinparams("999999", "COMM_CALC_ON_OFF", conn);
System.out.println("@@@@@1046 commCalcOnOff["+commCalcOnOff+"]");
if("Y".equalsIgnoreCase(commCalcOnOff))
{
lb_comm = true;
if( lb_comm == true )
{
lb_comm = false;
//nvo_commission_calculation lnvo_commission
//lnvo_commission = create nvo_commission_calculation
//ls_conf_drcr_opt = trim(gf_getfinparm('999999','COMM_DRCR_CONF'))
//ls_conf_jv_opt = trim(gf_getfinparm('999999','COMM_JV_CONF'))
confDrcrOpt = finCommon.getFinparams("999999", "COMM_DRCR_CONF", conn);
confJvOpt = finCommon.getFinparams("999999", "COMM_JV_CONF", conn);
System.out.println("@@@@@1061 confDrcrOpt["+confDrcrOpt+"]confJvOpt["+confJvOpt+"]");
CalculateCommission calculateCommission = new CalculateCommission();
//ls_errcode = lnvo_commission.gbf_calc_commission(ls_invoice_id[ll_cntr],'I','',ls_conf_drcr_opt,ls_conf_jv_opt)
retString = calculateCommission.CalCommission(invoiceId, "I", "", confDrcrOpt, confJvOpt, xtraParams, conn);
System.out.println("@@@@@1065 calculateCommission retString["+retString+"]");
}//end if
}
}
}
// end cpatil
System.out.println("@@@@@1073 retString["+retString+"]");
if( retString == null || retString.trim().length() == 0)
{
/**
* Select from
* Invoice acct
......@@ -775,9 +1095,11 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
retString=gbfPostInvoice(InvoiceHrdMap,invoiceAcctList,conn);
System.out.println("Invoice post return String :- ["+retString+"]");
/**
* Local connection commit
* */
}
if(connFlag)
{
conn.commit();
......@@ -808,6 +1130,398 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
return retString;
}
private String gbfPostDrcradj(String invoiceId, String lineNoRef, Connection conn) throws Exception
{
PreparedStatement pstmt = null,pstmt1=null,pstmt2=null;
ResultSet rs = null,rs1=null,rs2=null;
String retString="",ls_tran_id__rcv="",sqlStr2="";
String sql="",sqlStr="",ls_linenoref="",ls_contactcode="";
String ls_tranid="",ls_refser="",ls_refno="",ls_refseradj="",ls_refnoadj="",ls_tranidrcv="";
String ls_status="",ls_curr_code="";
String ls_fin_entity="",ls_site_code="",ls_cust_code="",ls_acct_code="",ls_cctr_code="";
double lc_exch_rate=0.0;
double lc_totamt=0.0,lc_adjamt=0.0,lc_netamt=0.0,lc_recadj=0.0,lc_rectot=0.0,lc_lineadjamt=0.0;
double lc_balamt=0.0;
int rcvadjcnt=0,ll_refcount=0;
Timestamp sysDate=null;
HashMap sundryBalMap=null;
Timestamp ld_trandate=null,ld_effdate=null;
try
{
DistCommon distCommon = new DistCommon();
FinCommon finCommon = new FinCommon();
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");
sql ="select tran_id from receivables " +
"where tran_ser = 'S-INV' and ref_no = ? and line_no__ref = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, invoiceId);
pstmt.setString(2, lineNoRef);
rs = pstmt.executeQuery();
if(rs.next())
{
ls_tran_id__rcv = checkNull(rs.getString("tran_id"));
}
rs.close();
rs=null;
pstmt.close();
pstmt = null;
if(ls_tran_id__rcv.trim().length()<=0)
{
retString="DS000";
return retString;
}
sql="update receivables_adj set tran_id__rcv = ? WHERE ref_ser = 'S-INV' AND" +
" ref_no = ? AND tran_id__rcv = ' '";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,ls_tran_id__rcv);
pstmt.setString(2,invoiceId);
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
sql ="SELECT receivables_adj.tran_id,receivables_adj.ref_ser,receivables_adj.ref_no, " +
"receivables_adj.tot_amt,receivables_adj.adj_amt,receivables_adj.ref_ser_adj, " +
"receivables_adj.ref_no_adj,receivables_adj.net_amt,receivables_adj.tran_id__rcv " +
"FROM receivables_adj WHERE ((receivables_adj.ref_ser = 'S-INV' " +
"AND receivables_adj.ref_no = ?) OR (receivables_adj.ref_ser_adj = 'S-INV' " +
" AND receivables_adj.ref_no_adj = ?))";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, invoiceId);
pstmt.setString(2, invoiceId);
rs = pstmt.executeQuery();
while(rs.next())
{
rcvadjcnt++;
ls_tranid = checkNull(rs.getString("tran_id"));
ls_refser = checkNull(rs.getString("ref_ser"));
ls_refno = checkNull(rs.getString("ref_no"));
lc_totamt = rs.getDouble("tot_amt");
lc_adjamt = rs.getDouble("adj_amt");
ls_refseradj = checkNull(rs.getString("ref_ser_adj"));
ls_refnoadj = checkNull(rs.getString("ref_no_adj"));
lc_netamt = rs.getDouble("net_amt");
ls_tranidrcv = checkNull(rs.getString("tran_id__rcv"));
sqlStr ="select tot_amt, adj_amt from receivables where tran_ser = ? " +
" and ref_no = ? and line_no__ref = ? ";
pstmt1 = conn.prepareStatement(sqlStr);
pstmt1.setString(1, ls_refser);
pstmt1.setString(2, ls_refno);
pstmt1.setString(3, lineNoRef);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
lc_rectot = rs1.getDouble("tot_amt");
lc_recadj = rs1.getDouble("adj_amt");
}
rs1.close();
rs1=null;
pstmt1.close();
pstmt1 = null;
ll_refcount = 1;
if("S-INV".equalsIgnoreCase(ls_refser))
{
sqlStr ="select count(1) as ll_refcount from receivables " +
" where tran_ser = ? and ref_no = ? and line_no__ref = ? ";
pstmt1 = conn.prepareStatement(sqlStr);
pstmt1.setString(1, ls_refser);
pstmt1.setString(2, ls_refno);
pstmt1.setString(3, lineNoRef);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
ll_refcount = rs1.getInt("ll_refcount");
}
rs1.close();
rs1=null;
pstmt1.close();
pstmt1 = null;
}
if("S-INV".equalsIgnoreCase(ls_refser) && lc_adjamt>0 && ll_refcount > 1)
{
lc_balamt=lc_adjamt;
sqlStr ="select tot_amt - adj_amt as amt, line_no__ref from receivables " +
" where tran_ser = ? and ref_no = ? " +
" and tot_amt - adj_amt > 0 ";
pstmt1 = conn.prepareStatement(sqlStr);
pstmt1.setString(1, ls_refser);
pstmt1.setString(2, ls_refno);
rs1 = pstmt1.executeQuery();
while(rs1.next())
{
lc_lineadjamt = rs1.getDouble("amt");
ls_linenoref = checkNull(rs1.getString("line_no__ref"));
sqlStr2 ="select tot_amt, adj_amt from receivables" +
" where tran_ser = ? and ref_no = ? and line_no__ref = ? ";
pstmt2 = conn.prepareStatement(sqlStr2);
pstmt2.setString(1, ls_refser);
pstmt2.setString(2, ls_refno);
pstmt2.setString(3, ls_linenoref);
rs2 = pstmt2.executeQuery();
if(rs2.next())
{
lc_rectot = rs2.getDouble("tot_amt");
lc_recadj = rs2.getDouble("adj_amt");
}
rs2.close();
rs2=null;
pstmt2.close();
pstmt2 = null;
if(lc_balamt < lc_lineadjamt)
{
lc_lineadjamt = lc_balamt;
}
lc_balamt = lc_balamt - lc_lineadjamt;
if(lc_rectot == (lc_recadj + lc_lineadjamt))
{
ls_status = "A";
}else
{
ls_status = "P";
}
sql="update receivables set adj_amt = adj_amt + ? , status = ?," +
" stat_date = ? where tran_ser = ? " +
"and ref_no = ? and line_no__ref = ? ";
pstmt2=conn.prepareStatement(sql);
pstmt2.setDouble(1,lc_lineadjamt);
pstmt2.setString(2,ls_status);
pstmt2.setTimestamp(3, sysDate);
pstmt2.setString(4,ls_refser);
pstmt2.setString(5,ls_refno);
pstmt2.setString(6,ls_linenoref);
pstmt2.executeUpdate();
pstmt2.close();
pstmt2=null;
if(lc_balamt <=0)
{
return retString;
}
}
rs1.close();
rs1=null;
pstmt1.close();
pstmt1 = null;
if(lc_balamt > 0)
{
retString="VTBALAMT";
return retString;
}
if(retString.trim().length()>0)
{
return retString;
}
}else
{
if("1".equalsIgnoreCase(checkNull(lineNoRef).trim()))
{
if(lc_rectot == (lc_adjamt + lc_recadj))
{
ls_status = "A";
}else
{
ls_status = "P";
}
sql="update receivables set adj_amt = adj_amt + ?,status = ?," +
"stat_date = ? where tran_ser = ? and ref_no = ? and " +
" line_no__ref = ? ";
pstmt2=conn.prepareStatement(sql);
pstmt2.setDouble(1,lc_adjamt);
pstmt2.setString(2,ls_status);
pstmt2.setTimestamp(3, sysDate);
pstmt2.setString(4,ls_refser);
pstmt2.setString(5,ls_refno);
pstmt2.setString(6,lineNoRef);
pstmt2.executeUpdate();
pstmt2.close();
pstmt2=null;
}
}
if("R-ADV".equalsIgnoreCase(ls_refser))
{
int radvCnt=0;
sqlStr ="select fin_entity, site_code, cust_code, acct_code, cctr_code,curr_code, exch_rate " +
" from receivables where tran_ser = ? and ref_no = ? and line_no__ref = '1'";
pstmt1 = conn.prepareStatement(sqlStr);
pstmt1.setString(1, ls_refser);
pstmt1.setString(2, ls_refno);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
radvCnt++;
ls_fin_entity = rs1.getString("fin_entity");
ls_site_code = rs1.getString("site_code");
ls_cust_code = rs1.getString("cust_code");
ls_acct_code = rs1.getString("acct_code");
ls_cctr_code = rs1.getString("cctr_code");
ls_curr_code = rs1.getString("curr_code");
lc_exch_rate = rs1.getDouble("exch_rate");
}
rs1.close();
rs1=null;
pstmt1.close();
pstmt1 = null;
if(radvCnt==0)
{
retString="DS000";
return retString;
}
sqlStr ="select tran_date,eff_date from invoice " +
" where invoice_id = ? ";
pstmt1 = conn.prepareStatement(sqlStr);
pstmt1.setString(1, invoiceId);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
ld_trandate = rs1.getTimestamp("tran_date");
ld_effdate = rs1.getTimestamp("eff_date");
}
rs1.close();
rs1=null;
pstmt1.close();
pstmt1 = null;
sundryBalMap = new HashMap();
sundryBalMap.put("tran_date",ld_trandate);
sundryBalMap.put("eff_date",ld_effdate);
sundryBalMap.put("fin_entity", ls_fin_entity);
sundryBalMap.put("site_code", ls_site_code);
sundryBalMap.put("sundry_type", "C");
sundryBalMap.put("sundry_code", ls_cust_code);
sundryBalMap.put("acct_code", ls_acct_code);
sundryBalMap.put("cctr_code", ls_cctr_code);
sundryBalMap.put("curr_code", ls_curr_code);
sundryBalMap.put("exch_rate", lc_exch_rate);
sundryBalMap.put("dr_amt", Double.parseDouble("0"));
sundryBalMap.put("cr_amt", Double.parseDouble("0"));
sundryBalMap.put("adv_amt", lc_adjamt);
ls_contactcode = finCommon.getContactCode("C", ls_cust_code, conn) ;
sundryBalMap.put("contact_code", ls_contactcode);
System.out.println("@@@@@@@@@@@ ls_refser R-ADV sundryBalMap["+sundryBalMap+"]");
/**
* sundry_bal update
* */
retString = finCommon.gbf_sundrybal_upd(sundryBalMap,conn);
}
}
rs.close();
rs=null;
pstmt.close();
pstmt = null;
/*if(rcvadjcnt==0)
{
retString="DS000";
return retString;
}
*/
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
// TODO Auto-generated method stub
return retString;
}
private String insertInvAcctList(
ArrayList<HashMap<String, String>> invAcctList, Connection conn) throws ITMException
{
int detLineNo=0;
String sql="",errCode="";
PreparedStatement pstmt=null;
try
{
System.out.println("@@@@@@@1087 invAcctList.size["+invAcctList.size()+"]");
for( int i=0; i < invAcctList.size() ; i++ )
{
detLineNo++;
HashMap<String, String> tempMap = new HashMap<String, String>();
tempMap = invAcctList.get(i);
System.out.println("@@@@@@@@@ i["+i+"]tempMap["+tempMap+"]");
if( tempMap != null)
{
sql="insert into invacct (invoice_id,line_no,acct_code,cctr_code,anal_code,amount,analysis1,analysis2,analysis3)"
+ " values (?,?,?,?,?,?,?,?,?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, tempMap.get("invoice_id"));
pstmt.setInt(2, detLineNo);
pstmt.setString(3, tempMap.get("acct_code"));
pstmt.setString(4, tempMap.get("cctr_code"));
pstmt.setString(5, tempMap.get("anal_code"));
pstmt.setDouble(6, Double.parseDouble(tempMap.get("amount")==null?"0":tempMap.get("amount")));
pstmt.setString(7, tempMap.get("analysis1"));
pstmt.setString(8, tempMap.get("analysis2"));
pstmt.setString(9, tempMap.get("analysis3"));
int insertCnt=pstmt.executeUpdate();
System.out.println("@@@@@@@@@ i["+i+"]insertCnt["+insertCnt+"]");
pstmt.close();
pstmt=null;
}
}
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
return errCode;
}
private ArrayList<HashMap<String, String>> modifyinvAcctList(
ArrayList<HashMap<String, String>> invAcctList,
HashMap<String, String> invAcctMap, String lsAcctCodeSal,
String lsCctrCodeSal, double detAmount, String analCode)
{
boolean findFlag=false;
System.out.println("@@@@@@@@1131 invAcctMap["+invAcctMap+"]");
for( int i=0; i < invAcctList.size() ; i++ )
{
HashMap<String, String> tempMap = new HashMap<String, String>();
tempMap = invAcctList.get(i);
System.out.println("@@@@@@@@1135 tempMap["+tempMap+"]");
if(tempMap.containsKey(lsAcctCodeSal+lsCctrCodeSal+analCode))
{
detAmount=detAmount + Double.parseDouble(tempMap.get("amount"));
tempMap.put("amount", ""+detAmount);
findFlag = true;
invAcctList.add(tempMap);
break;
}
}
if(! findFlag )
{
invAcctList.add(invAcctMap);
}
return invAcctList;
}
private int updateAcctAmt(String tempInvId, double amount, Connection conn) throws ITMException
{
int uActCnt=0;
......@@ -966,7 +1680,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
return invoiceDetList;
}
private String gbfPostInvoice(HashMap<String, String> InvoiceHrdMap, ArrayList<Object> invoiceAcctList,Connection conn) throws ITMException
private String gbfPostInvoice(HashMap<String, String> InvoiceHrdMap, ArrayList<Object> invoiceAcctList,Connection conn) throws Exception
{
String retString="";
// TODO Auto-generated method stub
......@@ -975,12 +1689,17 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
* Posting Invoice header
* */
retString=gbfPostInvoiceHdr(InvoiceHrdMap,conn);
System.out.println("@@@@@@@@997 retString gbfPostInvoiceHdr["+retString+"]");
if( retString == null || retString.trim().length() == 0)
{
retString=gbfPostInvoiceDet(InvoiceHrdMap,invoiceAcctList,conn);
}
System.out.println("@@@@@@@@1002 retString gbfPostInvoiceDet["+retString+"]");
return retString;
}
private String gbfPostInvoiceDet(HashMap<String, String> InvoiceHrdMap, ArrayList<Object> invoiceAcctList, Connection conn) throws ITMException
private String gbfPostInvoiceDet(HashMap<String, String> InvoiceHrdMap, ArrayList<Object> invoiceAcctList, Connection conn) throws Exception
{
// TODO Auto-generated method stub
String retString="",lsPostdate="",ldPostdate="",sql="",lsProjCode="",partyDocRef="";
......@@ -988,7 +1707,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
ResultSet rs=null;
HashMap glTraceMap = null;
HashMap<String, String>InvoiceAcctMap=null;
Timestamp ldPostdate2=null;
try
{
lsPostdate=checkNull(finCommon.getFinparams("999999", "POST_DATE_INV", conn));
......@@ -1026,7 +1745,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
InvoiceAcctMap=new HashMap<String, String>();
InvoiceAcctMap=(HashMap<String, String>) invoiceAcctList.get(itr);
System.out.println("@@@@@@@1063 itr["+itr+"]InvoiceAcctMap["+InvoiceAcctMap+"].......................InvoiceHrdMap["+InvoiceHrdMap+"]");
/**
* Generate gl_trace Map
* */
......@@ -1035,12 +1754,16 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
glTraceMap.put("ref_type", "D");
glTraceMap.put("ref_ser", "S-INV");
glTraceMap.put("ref_id", InvoiceHrdMap.get("invoice_id"));
glTraceMap.put("ref_id", InvoiceHrdMap.get("invoice_id"));
//glTraceMap.put("ref_id", InvoiceHrdMap.get("invoice_id"));
partyDocRef = finCommon.gfGetPartyDocRef((String)glTraceMap.get("ref_ser"), (String)glTraceMap.get("ref_id"),conn);
glTraceMap.put("party_doc_ref", partyDocRef);
glTraceMap.put("tran_date", ldPostdate);
if( ldPostdate != null && ldPostdate.trim().length() > 0 )
{
ldPostdate2 = Timestamp.valueOf(genericUtility.getValidDateString(ldPostdate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0");
}
glTraceMap.put("tran_date", ldPostdate2);
glTraceMap.put("eff_date",new Timestamp(Timestamp.parse(InvoiceHrdMap.get("eff_date"))));
glTraceMap.put("fin_entity", InvoiceHrdMap.get("fin_entity"));
glTraceMap.put("site_code", InvoiceHrdMap.get("site_code"));
......@@ -1050,25 +1773,38 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
glTraceMap.put("cctr_code",InvoiceAcctMap.get("cctr_code"));
glTraceMap.put("anal_code",InvoiceAcctMap.get("anal_code"));
glTraceMap.put("curr_code",InvoiceHrdMap.get("curr_code"));
glTraceMap.put("exch_rate",InvoiceHrdMap.get("exch_rate"));
//glTraceMap.put("exch_rate",InvoiceHrdMap.get("exch_rate"));
glTraceMap.put("exch_rate", Double.parseDouble(InvoiceHrdMap.get("exch_rate").toString()));
if(Double.parseDouble(InvoiceAcctMap.get("amount"))>0)
{
glTraceMap.put("dr_amt",0);
glTraceMap.put("cr_amt",InvoiceAcctMap.get("amount"));
//glTraceMap.put("dr_amt",0);
glTraceMap.put("dr_amt", Double.parseDouble("0"));
//glTraceMap.put("cr_amt",InvoiceAcctMap.get("amount"));
//glTraceMap.put("dr_amt", Double.parseDouble("0"));
glTraceMap.put("cr_amt", Double.parseDouble(InvoiceAcctMap.get("amount").toString()));
//glTraceMap.put("dr_amt", Double.parseDouble(InvoiceAcctMap.get("amount").toString()));
//glTraceMap.put("cr_amt", Double.parseDouble("0"));
}
else
{
glTraceMap.put("dr_amt",(0-Double.parseDouble(InvoiceAcctMap.get("amount"))));
glTraceMap.put("cr_amt",0);
//glTraceMap.put("dr_amt",(0-Double.parseDouble(InvoiceAcctMap.get("amount"))));
glTraceMap.put("dr_amt", (0-Double.parseDouble(InvoiceAcctMap.get("amount"))));
//glTraceMap.put("cr_amt",0);
glTraceMap.put("cr_amt", Double.parseDouble("0"));
//glTraceMap.put("dr_amt", Double.parseDouble("0"));
//glTraceMap.put("cr_amt", (0-Double.parseDouble(InvoiceAcctMap.get("amount"))));
}
glTraceMap.put("remarks", InvoiceHrdMap.get("net_amt").substring(0, 60));
System.out.println("@@@@@1103 InvoiceHrdMap.get(remarks)["+InvoiceHrdMap.get("remarks")+"]");
//glTraceMap.put("remarks", InvoiceHrdMap.get("remarks").substring(0, 60));
glTraceMap.put("remarks", InvoiceHrdMap.get("remarks"));
glTraceMap.put("proj_code", lsProjCode);
glTraceMap.put("ANALYSIS1", InvoiceAcctMap.get("analysis1"));
glTraceMap.put("ANALYSIS2", InvoiceAcctMap.get("analysis2"));
glTraceMap.put("ANALYSIS3", InvoiceAcctMap.get("analysis3"));
glTraceMap.put("analysis1", InvoiceAcctMap.get("analysis1"));
glTraceMap.put("analysis2", InvoiceAcctMap.get("analysis2"));
glTraceMap.put("analysis3", InvoiceAcctMap.get("analysis3"));
System.out.println("@@@@@@@ glTraceMap["+glTraceMap+"]");
/**
* gl_trace update
* */
......@@ -1076,6 +1812,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
}
} catch (ITMException e)
{
e.printStackTrace();
......@@ -1096,6 +1833,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
// TODO Auto-generated method stub
String retSting="",sysDate="",lsPostdate="",sql="",lsProjCode="",partyDocRef="",lcCramt="",lsAnalysis="",lsTemp="",llRelAfter="",lsAmtType="";
String analysis1__dr="",analysis2__dr="",analysis3__dr="",analysis1__cr="",analysis2__cr="",analysis3__cr="",sql1="";
String lineNoRef="";
double lc_cramt=0.0,lc_dramt=0.0,lcSchemehdrAmt=0.0,lcRelAmt=0.0,lcTotAmt=0.0;
Timestamp ldDueDate=null;
PreparedStatement pstmt=null,pstmt1=null;
......@@ -1119,7 +1857,11 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
System.out.println("System date :- [" + sysDate + "]");
lsPostdate=checkNull(finCommon.getFinparams("999999", "POST_DATE_INV", conn));
if(lsPostdate==null || lsPostdate.trim().length()==0)
if(lsPostdate==null || lsPostdate.trim().length()==0 || "NULLFOUND".equalsIgnoreCase(lsPostdate))
{
lsPostdate=InvoiceHrdMap.get("tran_date");
}
else if(lsPostdate.contains("TRAN"))
{
lsPostdate=InvoiceHrdMap.get("tran_date");
}
......@@ -1127,6 +1869,10 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsPostdate=InvoiceHrdMap.get("eff_date");
}
else
{
lsPostdate=InvoiceHrdMap.get("tran_date");
}
/**
* Generate sundry_bal Map
* */
......@@ -1140,12 +1886,18 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
sundryBalMap.put("acct_code", InvoiceHrdMap.get("acct_code__ar"));
sundryBalMap.put("cctr_code", InvoiceHrdMap.get("cctr_code__ar"));
sundryBalMap.put("curr_code", InvoiceHrdMap.get("curr_code"));
sundryBalMap.put("exch_rate", InvoiceHrdMap.get("exch_rate"));
sundryBalMap.put("dr_amt", InvoiceHrdMap.get("net_amt"));
sundryBalMap.put("cr_amt", 0);
sundryBalMap.put("adv_amt", 0.0);
//sundryBalMap.put("exch_rate", InvoiceHrdMap.get("exch_rate"));
sundryBalMap.put("exch_rate", Double.parseDouble(InvoiceHrdMap.get("exch_rate").toString()));
//sundryBalMap.put("dr_amt", InvoiceHrdMap.get("net_amt"));
sundryBalMap.put("dr_amt", Double.parseDouble(InvoiceHrdMap.get("net_amt").toString()));
//sundryBalMap.put("cr_amt", 0);
sundryBalMap.put("cr_amt", Double.parseDouble("0"));
//sundryBalMap.put("adv_amt", 0.0);
sundryBalMap.put("adv_amt", Double.parseDouble("0"));
sundryBalMap.put("contact_code", "");
System.out.println("@@@@@@@@@@@ sundryBalMap["+sundryBalMap+"]");
/**
* sundry_bal update
* */
......@@ -1168,6 +1920,8 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
/**
* Generate gl_trace Map
* */
glTraceMap = new HashMap(); // added by cpatil for null pointer error on 23/05/16
glTraceMap.put("ref_type", "D");
glTraceMap.put("ref_ser", "S-INV");
glTraceMap.put("ref_id", InvoiceHrdMap.get("invoice_id"));
......@@ -1175,22 +1929,49 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
partyDocRef = finCommon.gfGetPartyDocRef((String)glTraceMap.get("ref_ser"), (String)glTraceMap.get("ref_id"),conn);
glTraceMap.put("party_doc_ref", partyDocRef);
glTraceMap.put("tran_date", lsPostdate);
System.out.println("@@@@@ lsPostdate["+lsPostdate+"]");
Timestamp lsPostdateTemp = Timestamp.valueOf(genericUtility.getValidDateString(lsPostdate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0");
System.out.println("@@@@@ lsPostdateTemp["+lsPostdateTemp+"]");
//glTraceMap.put("tran_date", lsPostdate);
glTraceMap.put("tran_date", lsPostdateTemp);
glTraceMap.put("eff_date",new Timestamp(Timestamp.parse(InvoiceHrdMap.get("eff_date"))));
glTraceMap.put("fin_entity", InvoiceHrdMap.get("fin_entity"));
glTraceMap.put("site_code", InvoiceHrdMap.get("site_code"));
glTraceMap.put("sundry_type", "C");
glTraceMap.put("sundry_code", InvoiceHrdMap.get("cust_code__bil"));
glTraceMap.put("acct_code", InvoiceHrdMap.get("acct_code__ar"));
glTraceMap.put("cctr_code", InvoiceHrdMap.get("cctr_code__ar"));
glTraceMap.put("anal_code", InvoiceHrdMap.get("anal_code"));
glTraceMap.put("curr_code", InvoiceHrdMap.get("curr_code"));
glTraceMap.put("exch_rate", InvoiceHrdMap.get("exch_rate"));
glTraceMap.put("dr_amt", InvoiceHrdMap.get("net_amt"));
glTraceMap.put("cr_amt", 0);
glTraceMap.put("remarks", InvoiceHrdMap.get("net_amt").substring(0, 60));
//glTraceMap.put("exch_rate", InvoiceHrdMap.get("exch_rate"));
glTraceMap.put("exch_rate", Double.parseDouble(InvoiceHrdMap.get("exch_rate").toString()));
//glTraceMap.put("dr_amt", InvoiceHrdMap.get("net_amt"));
glTraceMap.put("dr_amt", Double.parseDouble(InvoiceHrdMap.get("net_amt").toString()));
//glTraceMap.put("cr_amt", 0);
glTraceMap.put("cr_amt", Double.parseDouble("0"));
System.out.println("@@@@@@ InvoiceHrdMap.get(remarks)["+InvoiceHrdMap.get("remarks").toString()+"]");
String remarksTemp ="";
if( InvoiceHrdMap.get("remarks").toString() != null && InvoiceHrdMap.get("remarks").toString().trim().length() > 0 )
{
if(InvoiceHrdMap.get("remarks").toString().trim().length() > 60)
{
remarksTemp = InvoiceHrdMap.get("remarks").substring(0, 60);
}
else
{
remarksTemp = InvoiceHrdMap.get("remarks").toString();
}
}
System.out.println("@@@@@@ remarksTemp["+remarksTemp+"]");
glTraceMap.put("remarks", remarksTemp);
glTraceMap.put("proj_code", lsProjCode);
sql="select sum(case when tax_amt is null then 0 else tax_amt end) as lcCramt from taxtran where tran_code = 'S-INV'"
//sql="select sum(case when tax_amt is null then 0 else tax_amt end) as lcCramt from taxtran where tran_code = 'S-INV'"
sql="select (case when sum(tax_amt) is null then 0 else sum(tax_amt) end) as lcCramt from taxtran where tran_code = 'S-INV'"
+ " and tran_id = ? and effect <> 'N' and pay_tax = 'Y' ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, glTraceMap.get("ref_id").toString());
......@@ -1204,17 +1985,19 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
rs.close();
rs=null;
System.out.println("@@@@@@@1262 glTraceMap["+glTraceMap+"]");
if(lcCramt==null || lcCramt.trim().length()==0)
{
lc_cramt=0;
lc_dramt=(Double)glTraceMap.get("dr_amt")-lc_cramt;
glTraceMap.put("dr_amt",lc_dramt);
}
/**
* gl_trace update
* */
retSting=finCommon.glTraceUpdate(glTraceMap,conn);
}
if(Math.abs(Double.parseDouble(lcCramt))>0)
{
glTraceMap.put("dr_amt",0);
......@@ -1228,7 +2011,23 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
retSting=finCommon.glTraceUpdate(glTraceMap,conn);
}
lcSchemehdrAmt=Double.parseDouble(InvoiceHrdMap.get("disc_offinv_amt_hdr"))+Double.parseDouble(InvoiceHrdMap.get("disc_billback_amt_hdr"));
System.out.println("@@@@@@@@ disc_offinv_amt_hdr["+InvoiceHrdMap.get("disc_offinv_amt_hdr")+"]");
System.out.println("@@@@@@@@ disc_billback_amt_hdr["+InvoiceHrdMap.get("disc_billback_amt_hdr")+"]");
if((InvoiceHrdMap.get("disc_offinv_amt_hdr") ==null) || (InvoiceHrdMap.get("disc_offinv_amt_hdr") !=null && InvoiceHrdMap.get("disc_offinv_amt_hdr").trim().length()==0))
{
InvoiceHrdMap.put("disc_offinv_amt_hdr","0");
}
if((InvoiceHrdMap.get("disc_billback_amt_hdr") ==null) || (InvoiceHrdMap.get("disc_offinv_amt_hdr") !=null && InvoiceHrdMap.get("disc_billback_amt_hdr").trim().length()==0))
{
InvoiceHrdMap.put("disc_billback_amt_hdr","0");
}
lcSchemehdrAmt=Double.parseDouble(InvoiceHrdMap.get("disc_offinv_amt_hdr")==null?"0":InvoiceHrdMap.get("disc_offinv_amt_hdr"))+Double.parseDouble(InvoiceHrdMap.get("disc_billback_amt_hdr")==null?"0":InvoiceHrdMap.get("disc_billback_amt_hdr"));
System.out.println("@@@@@ lcSchemehdrAmt["+lcSchemehdrAmt+"]");
if(lcSchemehdrAmt>0)
{
InvAcct invAcct=new InvAcct();
......@@ -1382,6 +2181,9 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
receivablesMap.put("gp_no", InvoiceHrdMap.get("gp_no"));
receivablesMap.put("gp_date", InvoiceHrdMap.get("gp_date"));
receivablesMap.put("mrp_value","0");
ldDiscdt=gbf_calc_discountdate(InvoiceHrdMap.get("cr_term"), InvoiceHrdMap.get("tran_date"), InvoiceHrdMap.get("eff_date"),
InvoiceHrdMap.get("tran_date"),conn);
receivablesMap.put("discount_date", ldDiscdt);
......@@ -1390,6 +2192,15 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
* receivable update
* */
retSting = finCommon.gbfReceivablesUpd(receivablesMap,conn);
//Start Added by chandrashekar on 12-sep-2016
System.out.println("gbfReceivablesUpd retSting 1>>>"+retSting);
if(retSting == null ||retSting.trim().length()==0)
{
lineNoRef=""+lsNo;
retSting=gbfPostDrcradj(InvoiceHrdMap.get("invoice_id"),lineNoRef,conn);
}
//End Added by chandrashekar on 12-sep-2016
}
pstmt.close();
pstmt=null;
......@@ -1400,12 +2211,15 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
receivablesMap=new HashMap();
receivablesMap.put("tran_ser", "S-INV");
receivablesMap.put("tran_date", Timestamp.valueOf(lsPostdate));
// receivablesMap.put("tran_date", Timestamp.valueOf(lsPostdate));
receivablesMap.put("tran_date", Timestamp.valueOf(genericUtility.getValidDateString(lsPostdate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0"));
receivablesMap.put("fin_entity", InvoiceHrdMap.get("fin_entity"));
receivablesMap.put("site_code", InvoiceHrdMap.get("site_code"));
receivablesMap.put("ref_no", InvoiceHrdMap.get("invoice_id"));
receivablesMap.put("ref_date", Timestamp.valueOf(lsPostdate));
receivablesMap.put("due_date", InvoiceHrdMap.get("due_date"));
// receivablesMap.put("ref_date", Timestamp.valueOf(lsPostdate));
receivablesMap.put("ref_date", Timestamp.valueOf(genericUtility.getValidDateString(lsPostdate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0"));
// receivablesMap.put("due_date", InvoiceHrdMap.get("due_date"));
receivablesMap.put("due_date", Timestamp.valueOf(genericUtility.getValidDateString(InvoiceHrdMap.get("due_date").toString(), genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0"));
receivablesMap.put("curr_code", InvoiceHrdMap.get("curr_code"));
receivablesMap.put("exch_rate", InvoiceHrdMap.get("exch_rate"));
receivablesMap.put("cust_code", InvoiceHrdMap.get("cust_code__bil"));
......@@ -1413,19 +2227,23 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
receivablesMap.put("cctr_code", InvoiceHrdMap.get("cctr_code__ar"));
receivablesMap.put("tax_amt", InvoiceHrdMap.get("tax_amt"));
receivablesMap.put("discount", InvoiceHrdMap.get("disc_amt"));
receivablesMap.put("tot_amt",lcRelAmt);
//receivablesMap.put("tot_amt",lcRelAmt);
receivablesMap.put("tot_amt",InvoiceHrdMap.get("net_amt"));//Change by chandrashekar on 09-sep-2016
receivablesMap.put("auto_rcp", "N");
receivablesMap.put("bank_code",InvoiceHrdMap.get("bank_code"));
receivablesMap.put("ref_type", InvoiceHrdMap.get("inv_type"));
receivablesMap.put("cr_term", InvoiceHrdMap.get("cr_term"));
receivablesMap.put("sales_pers", InvoiceHrdMap.get("sales_pers"));
receivablesMap.put("eff_date", InvoiceHrdMap.get("eff_date"));
// receivablesMap.put("eff_date", InvoiceHrdMap.get("eff_date"));
receivablesMap.put("eff_date", Timestamp.valueOf(genericUtility.getValidDateString(InvoiceHrdMap.get("eff_date").toString(), genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0"));
receivablesMap.put("sales_pers__1", InvoiceHrdMap.get("sales_pers__1"));
receivablesMap.put("sales_pers__2", InvoiceHrdMap.get("sales_pers__2"));
receivablesMap.put("item_ser", InvoiceHrdMap.get("item_ser"));
receivablesMap.put("gp_no", InvoiceHrdMap.get("gp_no"));
receivablesMap.put("gp_date", InvoiceHrdMap.get("gp_date"));
receivablesMap.put("mrp_value","0");
ldDiscdt=gbf_calc_discountdate(InvoiceHrdMap.get("cr_term"), InvoiceHrdMap.get("tran_date"), InvoiceHrdMap.get("eff_date"),
InvoiceHrdMap.get("tran_date"),conn);
receivablesMap.put("discount_date", ldDiscdt);
......@@ -1433,7 +2251,17 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
/**
* receivable update
* */
System.out.println("@@@@@@@@ receivablesMap["+receivablesMap+"]");
retSting = finCommon.gbfReceivablesUpd(receivablesMap,conn);
//Start Added by chandrashekar on 12-sep-2016
System.out.println("gbfReceivablesUpd retSting 2 >>>"+retSting);
if(retSting == null ||retSting.trim().length()==0)
{
lineNoRef="1";
retSting=gbfPostDrcradj(InvoiceHrdMap.get("invoice_id"),lineNoRef,conn);
}
//End Added by chandrashekar on 12-sep-2016
}
} catch (ITMException e)
......@@ -1487,7 +2315,8 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
}
else if(lsStart.equalsIgnoreCase("B"))
{
ldTranDt=Timestamp.valueOf(billDate);
// ldTranDt=Timestamp.valueOf(billDate);
ldTranDt=Timestamp.valueOf(genericUtility.getValidDateString(billDate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0");
}
liMonth=ldTranDt.getMonth();
......@@ -1524,7 +2353,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
pstmt=null;
rs.close();
rs=null;
System.out.println("@@@@@@@@1613 lsOverridediscdt["+lsOverridediscdt+"]");
if(sqlCount>0)
{
if(lsOverridediscdt!=null && lsOverridediscdt.trim().length()>0)
......@@ -1552,7 +2381,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
pstmt=null;
rs.close();
rs=null;
System.out.println("@@@@@@@@1614 lsOverridediscdt["+lsOverridediscdt+"]");
if(sqlCount>0)
{
liCrDays=Long.parseLong(lsOverridediscdt.substring(2));
......@@ -1588,6 +2417,9 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ldDuedate;
......@@ -1701,7 +2533,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
ln_amount_sal=Double.parseDouble(qtyStd) * Double.parseDouble(rateStd);
InvoiceDespMap.put("ln_amount_sal", String.valueOf(ln_amount_sal));
System.out.println("@@@@@1826 InvoiceDespMap["+InvoiceDespMap+"]");
invoiceDeapList.add(InvoiceDespMap);
}
pstmt.close();
......@@ -1730,8 +2562,8 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
private ArrayList<Object> getInvoiceAcct(String invoiceId, Connection conn) throws ITMException
{
// HashMap<String, HashMap<String, String>> InvoiceAcctExpMap=new HashMap<String, HashMap<String,String>>();
HashMap<String, String>InvoiceAcctMap=new HashMap<String, String>();
// HashMap<String, HashMap<String, String>> InvoiceAcctExpMap=new HashMap<String, HashMap<String,String>>();
ArrayList<Object> invoiceAcctList=new ArrayList<Object>();
String sql="",lineNo="";
PreparedStatement pstmt=null;
......@@ -1747,6 +2579,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
rs=pstmt.executeQuery();
while(rs.next())
{
HashMap<String, String>InvoiceAcctMap=new HashMap<String, String>();
lineNo=checkNull(rs.getString("line_no"));
InvoiceAcctMap.put("invoice_id", checkNull(rs.getString("invoice_id")));
......@@ -1760,7 +2593,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
InvoiceAcctMap.put("analysis2", checkNull(rs.getString("analysis2")));
InvoiceAcctMap.put("analysis3", checkNull(rs.getString("analysis3")));
// InvoiceAcctExpMap.put(lineNo, InvoiceAcctMap);
// InvoiceAcctExpMap.put(lineNo, InvoiceAcctMap);
invoiceAcctList.add(InvoiceAcctMap);
}
pstmt.close();
......@@ -1965,5 +2798,14 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
}
return inputStr;
}
private String checkNullSpace(String inputStr)
{
// TODO Auto-generated method stub
if(inputStr==null || inputStr.trim().length() == 0 )
{
inputStr=" ";
}
return inputStr;
}
}
......@@ -921,7 +921,8 @@ public class PostOrderActivity {
sitelocCode=locCode;
}
stkOpt = mfgCommon.chkStkOpt(itemCode,siteCodeCh,conn);
//stkOpt = mfgCommon.chkStkOpt(itemCode,siteCodeCh,conn);
stkOpt = mfgCommon.chkStkOpt(siteCodeCh,itemCode,conn);
lnno++;
lineNo=String.valueOf(lnno);
......@@ -2814,7 +2815,7 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
String rndStr="",rndOff="",rndToStr="",acct="",cctr="";
String tempSplitCode="";
String splitCode="";
String drcrTranid="",insertsql="";
String drcrTranid="",insertsql="",exciseDrAcct="",exciseDrAcctcd="",exciseDrCctrCd="";
double rndto=0.0;
double exchRate=0.0;
double taxAmt=0.0,totAmount=0.0;
......@@ -2895,6 +2896,23 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
excise=checkNull(distCommon.getDisparams("999999", "EXC_TAX_CODE_MODVAT", conn)).trim();
cess=checkNull(distCommon.getDisparams("999999", "CESS_TAX_CODE_MODVAT", conn)).trim();
hsEdu=checkNull(distCommon.getDisparams("999999", "HS_EDU_CESS_TAXCODE", conn)).trim();
// below finparm define for excise act code req id -F16FUNI001 - dt- 27-sep-2016
exciseDrAcct=checkNull(finCommon.getFinparams("999999", "EXCISE_DR_ACCT", conn)).trim();
if ((!"NULLFOUND".equalsIgnoreCase(exciseDrAcct) && exciseDrAcct != null && exciseDrAcct.trim().length() > 0) )
{
if(exciseDrAcct.trim().length() >0)
{
String[] arrStr1 =exciseDrAcct.split(";");
if(arrStr1.length>0)
{
exciseDrAcctcd =arrStr1[0];
}
if(arrStr1.length>1)
{
exciseDrCctrCd =arrStr1[1];
}
}
}
//Excise Tax Code, selected from despatch
if ((!"NULLFOUND".equalsIgnoreCase(excise) && excise != null && excise.trim().length() > 0) )
{
......@@ -3074,6 +3092,15 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
isHeaderPrepared=true;
drcrTranid=generateTranId("w_drcrrcp_dr",siteCode,conn);
// below finparm define for excise act code req id -F16FUNI001 - dt- 27-sep-2016
if(exciseDrAcctcd !=null && checkNull(exciseDrAcctcd).trim().length()>0)
{
acctCodeAr=exciseDrAcctcd;
}
if(exciseDrAcctcd !=null && checkNull(exciseDrAcctcd).trim().length()>0)
{
cctrCodeAr=exciseDrCctrCd;
}
insertsql = " INSERT INTO DRCR_RCP ( tran_id, tran_date, site_code, fin_entity, tran_type," +
" tran_ser, drcr_flag, cust_code, item_ser, invoice_id ,acct_code ,cctr_code ,eff_date ," +
"due_date ,curr_code ,exch_rate ,anal_code ,cr_term ,emp_code__aprv ,chg_date ,chg_user," +
......@@ -3841,7 +3868,8 @@ pstmt1.setDouble(6,netAmt-(-1*(drAmt-netAmt)));
}
}// FOR LOOP [2] --END--
lsDocValue = lsDocValue.substring(2, lsDocValue.length());
System.out.println("lsDocValue>>>>>>["+lsDocValue+"]");
lsDocValue = lsDocValue.substring(1, lsDocValue.length());
if ("I".equalsIgnoreCase(tranType))
{
......
......@@ -4,9 +4,13 @@ import ibase.system.config.AppConnectParm;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.E12CreateBatchLoadEjb;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ProcessEJB;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.fin.InvAcct;
import ibase.webitm.ejb.fin.adv.CalculateCommission;
import ibase.webitm.ejb.sys.CreateRCPXML;
import ibase.webitm.ejb.sys.UtilMethods;
//import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
......@@ -46,6 +50,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
UtilMethods utilMethod = new UtilMethods();
Calendar calendar = Calendar.getInstance();
ibase.webitm.ejb.dis.DistCommon dist = new ibase.webitm.ejb.dis.DistCommon();
FinCommon fnComm=new FinCommon();
E12GenericUtility genericUtility = new E12GenericUtility();
UtilMethods utilmethod = new UtilMethods();
SimpleDateFormat sdf =null;
......@@ -53,8 +58,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String strToWrite="",strToWriteHead="",logFileInit="",xmlString1="",chgTerm="",chgUser="";
String err = "";
boolean postLogYn=false;
PostOrderActivity postordact=new PostOrderActivity();
String xtraparam="";
//Connection conn = null;
ArrayList<String> salesOrderListAll=new ArrayList<String>();
ArrayList<String> postSalOder=new ArrayList<String>();
public String process(String xmlString, String xmlString2, String windowName, String xtraParams) throws RemoteException,ITMException
{
......@@ -79,7 +87,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
System.out.println("xmlString*********"+xmlString);
System.out.println("xmlString2*********"+xmlString2);
xtraparam=xtraParams;
retStr = process(headerDom, detailDom, windowName, xtraParams);
System.out.println("@@@@@@@@@@@ retStr["+retStr+"]");
......@@ -105,7 +113,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
ResultSet rs = null;
PreparedStatement pstmt = null;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
String postSal="";
String saleOrder="";
//PostOrder
......@@ -118,7 +127,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String sql="",custCode="";
// String[] custCode;
int cnt = 0,liCtr = 0,custCdIndex = 0,sordIndex=0;
boolean isPostDone=false;
ArrayList<String> custCodeList = new ArrayList<String>();
//custCodeList = null;
......@@ -127,10 +136,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
try
{
System.out.println("process starts................");
//Changes and Commented By Bhushan on 09-06-2016 :START
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
//Changes and Commented By Bhushan on 09-06-2016 :END
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
sdf = new SimpleDateFormat(e12GenericUtility.getApplDateFormat());
......@@ -279,8 +285,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(2, toSaleOrder);
pstmt.setString(3, fromCustCode);
pstmt.setString(4, toCustCode);
pstmt.setString(5, fromDateStr);
pstmt.setString(6, toDateStr);
//pstmt.setString(5, fromDateStr);
//pstmt.setString(6, toDateStr);
pstmt.setTimestamp(5, fromDate);
pstmt.setTimestamp(6, toDate);
pstmt.setString(7, siteCodeShip);
if(orderType != null && orderType.trim().length() > 0)
{
......@@ -309,13 +317,45 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
for(custCdIndex = 0 ; custCdIndex < custCodeList.size() ;custCdIndex++)
{
retString = postOrder( headerDom, custCodeList.get(custCdIndex),"",xtraParams,conn);
System.out.println("retString :"+retString);
if(retString == null || retString.trim().length() <= 0)
System.out.println("cust post ord retString :"+retString);
if(retString== null || retString.trim().length()==0)
{
isPostDone=true;
}else
{
conn.rollback();
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
}
/*if(retString== null || retString.trim().length()==0)
{
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
conn.rollback();
}else
{
isPostDone=true;
errString = itmDBAccessEJB.getErrorString("","VTPOST03","","",conn);
System.out.println("errString@@@>>>"+errString);
String begPart = errString.substring( 0, errString.indexOf("<trace>") + 7 );
String endPart = errString.substring( errString.indexOf("</trace>"));
String mainStr = "For Following Sales orders Posting Successful :" ;
mainStr=begPart+mainStr+retString;
if(mainStr.trim().length()==0)
{
mainStr = begPart;
}
mainStr = mainStr + endPart;
errString = mainStr;
System.out.println("errString>>>>>"+errString);
}*/
/*if(retString == null || retString.trim().length() <= 0)
{
//error to be display with codeCode on the message
System.out.println("Sales Orders for Customer are posted");
conn.commit();
//conn.commit();changed by chandrashekar on 07-june-2016
}
else
{
......@@ -323,7 +363,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("Sales Orders for Customer are not posted");
retString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
return retString;
}
}*/
}
}
else
......@@ -347,8 +387,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(2, toSaleOrder);
pstmt.setString(3, fromCustCode);
pstmt.setString(4, toCustCode);
pstmt.setString(5, fromDateStr);
pstmt.setString(6, toDateStr);
//pstmt.setString(5, fromDateStr);
//pstmt.setString(6, toDateStr);//change by chandrashekar on jun 02
pstmt.setTimestamp(5, fromDate);
pstmt.setTimestamp(6, toDate);
pstmt.setString(7, siteCodeShip);
if(orderType != null && orderType.trim().length() > 0)
{
......@@ -387,12 +429,37 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
retString = postOrder(headerDom, "",saleOrderList.get(sordIndex),xtraParams,conn);
System.out.println("postOrder return:::::::::::[["+retString+"]]......");
if(retString == null || retString.trim().length() <= 0 )
if(retString== null || retString.trim().length()==0)
{
if(postSalOder.size()>0)
{
isPostDone=true;
}
}else
{
conn.rollback();
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
}
/*
if(retString== null || retString.trim().length()==0)
{
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
//conn.rollback();
}else
{
isPostDone=true;
}*/
/*if(retString == null || retString.trim().length() <= 0 )
{
//error to be display with codeCode on the message
errString = itmDBAccessEJB.getErrorString("", "VTPOST03", "","", conn);
System.out.println("Sales Orders for Customer are posted..........conn.commit()..........");
conn.commit();
//conn.commit();
}
else
{
......@@ -400,10 +467,57 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("Sales Orders for Customer are not posted.........conn.rollback().........");
errString = itmDBAccessEJB.getErrorString("", "VTPOSTORD1", "","", conn);
conn.rollback();
}*/
}
}
if(isPostDone)
{
System.out.println("salesOrderListAll>>>>"+salesOrderListAll);
System.out.println("postSalOder>>>>"+postSalOder);
for(int i=0;i<salesOrderListAll.size();i++)
{
saleOrder=salesOrderListAll.get(i);
for(int j=0;j<postSalOder.size();j++)
{
postSal=postSalOder.get(j);
if(postSal.trim().equalsIgnoreCase(saleOrder.trim()));
{
salesOrderListAll.remove(postSal);
}
}
}
System.out.println("salesOrderListAll>>> After Remove>>>"+salesOrderListAll);
retString="";
String mainStr="";
for(int i=0;i<salesOrderListAll.size();i++)
{
retString=retString+salesOrderListAll.get(i)+",";
}
if(retString !=null && retString.trim().length()>0)
{
retString = retString.substring(0, retString.length() - 1);
mainStr = "For Following Sales orders Not posted :" ;
}else
{
mainStr = "All Order Posted Successfully ." ;
}
errString = itmDBAccessEJB.getErrorString("","VTPOST03","","",conn);
System.out.println("errString@@@>>>"+errString);
String begPart = errString.substring( 0, errString.indexOf("<trace>") + 7 );
String endPart = errString.substring( errString.indexOf("</trace>"));
mainStr=begPart+mainStr+retString;
if(mainStr.trim().length()==0)
{
mainStr = begPart;
}
mainStr = mainStr + endPart;
errString = mainStr;
}
}
catch(Exception e)
{
......@@ -428,6 +542,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
try
{
salesOrderListAll.clear();
postSalOder.clear();
if(rs != null)
{
......@@ -439,7 +555,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.close();
pstmt = null;
}
if(conn !=null)
{
conn.close();
conn=null;
}
}
catch(Exception e)
{
......@@ -472,7 +594,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
String errCode="";
InitialContext ctx = null;
String postUpto="",confDespOnPost="",autoInvOnDesp="";
Connection connCP=null;
ArrayList showSordrList=new ArrayList<String>();
try
{
//conn = connDriver.getConnectDB("DriverITM");
......@@ -609,11 +732,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
}
System.out.println("errCode.trim().length()!!!! :"+errCode.trim().length());
System.out.println("errCode.trim().length()!!!! :"+errCode);
if(errCode.trim().length() > 0)
if(errCode != null && errCode.trim().length() > 0)
{
conn.rollback();
return errCode;
//RETURN;
}
//else if("Y".equalsIgnoreCase(allocStk))
......@@ -627,10 +751,37 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("Despatch creation Test@@@@@@@@@");
//dispact coding starts
//added by priyanka
PostOrdDespatchGen postOrdDespatchGen=new PostOrdDespatchGen();
errCode=postOrdDespatchGen.createDespatch(fromSaleOrder, toSaleOrder, fromCustCode, toCustCode, fromDate, toDate, siteCodeShip, conn);
//showSordrList= postOrdDespatchGen.createDespatch(fromSaleOrder, toSaleOrder, fromCustCode, toCustCode, fromDate, toDate, siteCodeShip,clubOrder, conn);
//showSordrList= postOrdDespatchGen.createDespatch(SaleOrder, SaleOrder, custCode, custCode, fromDate, toDate, siteCodeShip,clubOrder, conn);
if("Y".equalsIgnoreCase(clubOrder))
{
errString= postOrdDespatchGen.createDespatch(fromSaleOrder, toSaleOrder, custCode, custCode, fromDate, toDate, siteCodeShip,clubOrder, xtraParams, conn);
}else
{
errString= postOrdDespatchGen.createDespatch(SaleOrder, SaleOrder, fromCustCode, toCustCode, fromDate, toDate, siteCodeShip,clubOrder, xtraParams, conn);
}
System.out.println("ErrCode from Despatch creation===="+errCode);
if(errCode != null && errCode.trim().length() > 0)
if (errCode == null || errCode.trim().length()==0)
{
postSalOder.add(SaleOrder);
}
/*for(int i=0;i<showSordrList.size();i++)
{
errString=errString+showSordrList.get(i)+",";
}
if(errString !=null && errString.trim().length()>0)
{
errString = errString.substring(0, errString.length() - 1);
postSalOder.add(errString);
}*/
System.out.println(" postSalOder list>>>"+postSalOder);
/*if(errCode != null && errCode.trim().length() > 0)
{
if(errCode.indexOf("VTCONPARM") > -1)
{
......@@ -654,22 +805,58 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
tranIdDespatch = arrayForTranId[1].substring(0, endIndex);
System.out.println("tranIdDespatch====="+tranIdDespatch);
System.out.println("Calling Despatch Confirmation");
String despIdArr[]=tranIdDespatch.split(",");
if(despIdArr.length>0)
{
DespatchConfirmLocal despatchConfirm = null;
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
despatchConfirm = (DespatchConfirmLocal) ctx.lookup("ibase/DespatchConfirm/local");
System.out.println("-----------despatchConfirm------- " + despatchConfirm);
String forcedFlag="N";
errString=despatchConfirm.confirm(tranIdDespatch, xtraParams, forcedFlag,conn);
System.out.println("errCode in despatch confirmation===="+errString);
}
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);
}
}
}*/
/* //commented same code repeate in despatchconfirm...
if(errStringConf != null && errStringConf.trim().length() > 0)
{
......@@ -723,25 +910,37 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
public String invPosting(String fromSaleOrder,String toSaleOrder,String fromCustCode,String toCustCode,String tranIdDespatch, String orderType,Timestamp fromDate,String clubOrder,String clubPendingOrd,String adjDrcr,String adjCustAdv,String advAdjMode,String adjNewProdInv,String siteCodeShip,Connection conn) throws ITMException
public String invPosting(String fromSaleOrder,String toSaleOrder,String fromCustCode,String toCustCode,String tranIdDespatch, String orderType,Timestamp fromDate,String clubOrder,String clubPendingOrd,String adjDrcr,String adjCustAdv,String advAdjMode,String adjNewProdInv,String siteCodeShip,String xtraParams,Connection conn) throws ITMException
{
System.out.println("@@@@@@@@@@@@ invPosting() called.........");
Boolean adjDrcrFlag= false, adjAdv=false, adjNewProdInvFlag=false;
String advAdj="";
String commDrcrConf="",commJvConf="";
DistCommon dis=new DistCommon();
String errString="",invoiceId="",sql="",ls_drnid="";
String errString="",invoiceId="",sql="",ls_drnid="",loginEmpCode;
PreparedStatement pstmt=null;
ResultSet rs=null;
String applyTime="I",crPolicy="",lsStatus="";
String applyTime="I",crPolicy="",lsStatus="",finScheme="";
double finAdjAmt=0;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
String autoInvOnDesp = dis.getDisparams("999999", "AUTO_INV_ON_DESPATCH", conn);
InitialContext ctx = null;
Timestamp sysDate = null;
if("Y".equalsIgnoreCase(autoInvOnDesp))
{
//conn.commit(); // added testing purpose
try
{
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
String sysDateStr = sdf.format(currentDate.getTime());
System.out.println("Now the date is :=> " + sysDateStr);
sysDate = Timestamp.valueOf(genericUtility.getValidDateString(sysDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()) + " 00:00:00.0");
System.out.println("xtraParams>>>"+xtraParams);
loginEmpCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode");
PostOrdInvoiceGen invgen = new PostOrdInvoiceGen();
System.out.println("from date ::::::::"+fromDate);
// SimpleDateFormat dateFormat = new SimpleDateFormat(genericUtility.getDBDateFormat());
......@@ -776,7 +975,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
advAdj = advAdjMode;
errString = invgen.invoiceProcess(fromSaleOrder, toSaleOrder, fromCustCode, toCustCode, tranIdDespatch, orderType, fromDate, clubOrder, clubPendingOrd, adjDrcr, adjCustAdv, advAdjMode, adjNewProdInv, conn);
errString = invgen.invoiceProcess(fromSaleOrder, toSaleOrder, fromCustCode, toCustCode, tranIdDespatch, orderType, fromDate, clubOrder, clubPendingOrd, adjDrcr, adjCustAdv, advAdjMode, adjNewProdInv,xtraParams, conn);
System.out.println("@@@@@@@@@695::::invgen.invoiceProcess():::errString["+errString+"]");
//if(errString != null && errString.trim().length()>0 )
//{
......@@ -868,6 +1067,54 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
System.out.println("@@@@@ crPolicy["+crPolicy+"]lc_check_amt["+lc_check_amt+"]lsStatus["+lsStatus+"]");
*/
errString=postordact.prdSchemeTraceUpd(invoiceId,xtraParams,conn);
if( errString == null || errString.trim().length() == 0 )
{
//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.........");
......@@ -896,19 +1143,48 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
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 )
{
//CreteCommCrNote creteCommCrNote = new CreteCommCrNote();
// retString = creteCommCrNote.creteCommCrNote(invoiceId, conn);
System.out.println("@@@@@@@@@4 CreteCommCrNote() errString["+errString+"]");
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();
CalculateCommission calCom=new CalculateCommission();
commDrcrConf = checkNull(fnComm.getFinparams("999999", "COMM_DRCR_CONF", conn));
commJvConf = checkNull(fnComm.getFinparams("999999", "COMM_JV_CONF", conn));
errString = calCom.CalCommission(invoiceId,"I","",commDrcrConf,commJvConf,xtraParams, conn);
//errString = postordact.createCommCrNote(invoiceId, conn);
System.out.println("@@@@@@@@@4 CreteCommCrNote() errString["+errString+"]");
if( errString != null && errString.trim().length() > 0 )
{
return errString;
}
if( errString == null || errString.trim().length() == 0 )
{
// AutoExciseDrNote autoExciseDrNote = new AutoExciseDrNote();
// retString = autoExciseDrNote.autoExciseDrNote(invoiceId, conn);
errString = postordact.autoExciseDrNote(invoiceId,xtraParams, conn);
System.out.println("@@@@@@@@@5 autoExciseDrNote() errString["+errString+"]");
}
......@@ -1200,13 +1476,15 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
DistCommon discommon = new DistCommon();
ArrayList<SorderBean> sorderList = new ArrayList<SorderBean>();
ArrayList<SordItemBean> sordItemList = null;;
ArrayList<SordItemBean> sordItemList = null;
ArrayList<StockBean> stockList = null;
Date currentDate = new Date();
Timestamp allocDate = null,orderDate=null,plDate=null;
int totRecords=0,records=0;
int saleOrderCnt=0,skiplineCnt=0;
String tranidSoalloc="",linenoSoalloc="";
String itemOld="",lsItem="";
int countItem=0;
double pendingDeallocQty=0.0,stockTot=0.0;
int updSordAllDetCnt=0;
......@@ -1342,7 +1620,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
status = sorderBean.getStatus();
locGroup=sorderBean.getLocGroup();
System.out.println("status :"+status);
if(!salesOrderListAll.contains(saleOrder))
{
salesOrderListAll.add(saleOrder);
}
varValue = itmDBAccessEJB.getEnvDis("999999", "CREATE_POST_LOG_FILE", conn);
System.out.println("varValue :"+varValue);
//ls_varvalue = gf_getenv_dis('999999','CREATE_POST_LOG_FILE')
......@@ -1421,6 +1702,30 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
//qtyDesp = rs.getDouble("qty_desp");
nature = checkNull(rs.getString("nature"));
//Start Added by chandrashekar on 26-sep-2016
if("B".equalsIgnoreCase(itemFlag) && "F".equalsIgnoreCase(nature))
{
sql = "select item_code__parent , unit from item where item_code = ?";
pstmt3 = conn.prepareStatement(sql);
pstmt3.setString(1,itemCode);
rs3 = pstmt3.executeQuery();
if(rs3.next())
{
itemCodeParent = rs3.getString("item_code__parent");
unitStd = rs3.getString("unit");
}
rs3.close();
rs3 = null;
pstmt3.close();
pstmt3 = null;
sordItemBean.setUnitStd(unitStd);
sordItemBean.setUnit(unitStd);
}else
{
sordItemBean.setUnitStd(unitStd);
sordItemBean.setUnit(unit);
}
//End Added by chandrashekar on 26-sep-2016
sordItemBean.setSaleOrder(saleOrder);
sordItemBean.setLineNo(lineNo);
sordItemBean.setConvQtyStduom(convQtyStduom);
......@@ -1434,13 +1739,20 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sordItemBean.setQtyAlloc(rs.getDouble("qty_alloc"));
sordItemBean.setSiteCode(siteCode);
//sordItemBean.setQtyDesp(qtyDesp);
sordItemBean.setUnitStd(unitStd);
sordItemBean.setItemCodeOrd(itemCodeOrd);
if(!(unit.equalsIgnoreCase(unitStd)))//Added by chandrashekar on 21-sep-2016
{
sordItmQty=sordItmQty*convQtyStduom;
sordItemBean.setQuantity(sordItmQty);
sordItemBean.setSordItmQty(sordItmQty);
}else
{
sordItemBean.setQuantity(sordItmQty);
sordItemBean.setSordItmQty(sordItmQty);
}
sordItemBean.setQuantityStduom(quantityStduom);
sordItemBean.setStatus(status);
sordItemBean.setUnit(unit);
sordItemBean.setRate(rateClg);
sordItemBean.setRateClg(rateClg);
sordItemBean.setNature(nature);
......@@ -1448,12 +1760,11 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
// sordItemList.add(sordItemBean);
if(!(unit.equalsIgnoreCase(unitStd)))
{
System.out.println("unit and unitStd are not equals!!");
sordItmQty=dist.convQtyFactor(unit,unitStd,itemCode, convQtyStduom, conn);
System.out.println("sordItmQty :"+sordItmQty);
System.out.println("sordItmQty@@@@ :"+sordItmQty);
//if(sordItmQty == -999999999)
if(sordItmQty == 0)
{
......@@ -1469,6 +1780,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
orderUnit = unit;
unit = unitStd;
sordItemBean.setUnit(unit);
}
......@@ -1476,7 +1788,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
else
{
orderUnit = unit;
sordItemBean.setUnit(unit);
}
System.out.println("sordItmQty>>"+sordItmQty);
sql = " select sum(quantity - case when qty_desp is null then 0 else qty_desp end) " +
"as siteItmQty from sorditem where sale_order = ? and " +
......@@ -1541,7 +1856,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
int stockTestCnt=0,forTestCnt=0;
System.out.println("sordItemList :"+sordItemList.size());
System.out.println("sordItemList size :"+sordItemList.size());
for(SordItemBean sordItemBean :sordItemList )
{
System.out.println("sale order :"+sordItemBean.getSorderBean().getSaleOrder());
......@@ -1594,9 +1909,14 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("orderType "+orderType);
partQty = sordItemBean.getSorderBean().getPartQty();
System.out.println("partQty "+partQty);
nature = sordItemBean.getNature();
System.out.println("nature::: "+nature);
itemCodeParent=sordItemBean.getItemCodeParent();
System.out.println("itemCodeParent:::["+itemCodeParent+"]");
unit = sordItemBean.getUnit();
unitStd = sordItemBean.getUnitStd();
System.out.println("@@@unit["+unit+"]");
System.out.println("@@@unitStd["+unitStd+"]");
sql = " select sum(a.quantity - case when a.alloc_qty is null then 0 else a.alloc_qty end - case when a.hold_qty is null then 0 else a.hold_qty end ) as quantity ";
sql = sql + "from stock a, invstat b, location c ";
......@@ -1807,6 +2127,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if("B".equalsIgnoreCase(itemFlag.trim()))
{
System.out.println("itemCodeOrd>>>>@@@["+itemCodeOrd+"]");
sql = " select grace_days from scheme_applicability " +
" where scheme_code = ? and app_from <= ? ";
pstmt = conn.prepareStatement(sql);
......@@ -1840,7 +2162,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = pstmt.executeQuery();
if(rs.next())
{
schemeCnt = rs.getInt("grace_days");
schemeCnt = rs.getInt(1);
}
rs.close();
rs = null;
......@@ -1891,7 +2213,54 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
}
//Start added by chandrashekar on 03-aug-2016
countItem=0;
if(isScheme)
{
sql = " select count(*) as count from SORDITEM where SALE_ORDER = ? " +
" and LINE_TYPE = 'I' AND line_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNo);
rs = pstmt.executeQuery();
if(rs.next())
{
countItem = rs.getInt(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(countItem>1)
{
itemOld="";
sql = " select item_code from sorditem where sale_order = ? " +
"and line_type = 'I' and line_no = ? order by item_code ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
pstmt.setString(2,lineNo);
rs = pstmt.executeQuery();
while(rs.next())
{
lsItem = checkNull(rs.getString("item_code"));
if (lsItem.trim().length()>0)
{
if(!itemOld.trim().equalsIgnoreCase(lsItem))
{
isScheme = false;
break;
}
}
itemOld=lsItem;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
}
//End added by chandrashekar on 03-aug-2016
//CHECKING CUSTOMER FOR WHICH ORDER IS BOOKED IS APPLICABLE OR NOT IN SCHEME.
......@@ -2182,6 +2551,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
if(priceList != null && priceList.trim().length() > 0)
{
allocDateStr=sdf.format(allocDate);
rate = dist.pickRate(priceList, allocDateStr,itemCode,lotNo,"D", quantityStduom, conn);
}
}
......@@ -2404,10 +2774,16 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if(schemeCnt > 0)
{
System.out.println("lineNo>>>>"+lineNo);
System.out.println("lineNoOld>>>>"+lineNoOld);
System.out.println("saleOrder>>>>"+saleOrder);
System.out.println("saleOrderOld>>>>"+saleOrderOld);
System.out.println("itemCodeOld>>>>"+itemCodeOld);
System.out.println("itemCode>>>>"+itemCode);
if(lineNo != lineNoOld || saleOrder != saleOrderOld || itemCodeOld != itemCode )
{
//ratio = i_nvo_post_order.gbf_scheme(msaleorder,integer(mline_no),as_lot_sl,ls_loc_group)
ratio=gbfScheme(saleOrder,lineNo,lotSl,locGroup,itemCode,conn);
ratioOld = ratio;
}
else if("0".equalsIgnoreCase(ratio) && lineNo.equalsIgnoreCase(lineNoOld)
......@@ -2419,7 +2795,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
ratio = "10000";
}
if(ratio==null || ratio.trim().length()==0)
{
ratio="0";
}
if("0".equalsIgnoreCase(ratio))
{
System.out.println("Short Quantity for scheme item");
......@@ -2439,7 +2818,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
/*elseif not isnumber(lc_ratio) then
merrcode = lc_ratio
goto exit_now*/
else if(!("1000".equalsIgnoreCase(ratio)))
else if(Double.parseDouble(ratio) !=10000)
//else if(!("1000".equalsIgnoreCase(ratio)))
{
sql = "SELECT bomdet.qty_per FROM bomdet WHERE " +
" ( bomdet.bom_code = ? ) AND ( bomdet.item_code = ? )" +
......@@ -2457,8 +2837,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = null;
pstmt.close();
pstmt = null;
netQuantity = bomQtyPer * Integer.parseInt(ratio);
if(ratio != null && ratio.trim().length()>0)
{
netQuantity = bomQtyPer * Double.parseDouble(ratio);
}
qtyStk = netQuantity;
}
......@@ -2469,10 +2851,12 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
if((qtyStk - allocQty - holdQty) <= netQuantity)
{
inputQty = qtyStk - allocQty - holdQty;
sordItemBean.setSordItmQty(inputQty);//Added by chandrashekar on 03-oct-2016
}
else
{
inputQty = netQuantity;
sordItemBean.setSordItmQty(inputQty);//Added by chandrashekar on 03-oct-2016
}
System.out.println("inputQty>>"+inputQty);
if(inputQty > 0)
......@@ -2480,6 +2864,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
//if isnull(as_tranid) or len(trim(as_tranid)) = 0
//{
orgQty = inputQty;
unitPack="";
sql = "select unit__pack from" +
" item_lot_packsize where item_code = ? and" +
" lot_no__from <= ?and lot_no__to >= ? ";
......@@ -2496,12 +2881,13 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = null;
pstmt.close();
pstmt = null;
if(unitPack == null || "B".equalsIgnoreCase(itemFlag))
System.out.println("unitPack>>@@@@>>["+unitPack+"]");
if(unitPack == null || unitPack.trim().length()==0 || "B".equalsIgnoreCase(itemFlag))
{
unitPack = unit;
}
System.out.println("unitPack>>>>["+unitPack+"]");
System.out.println("unit>>>>"+unit+"]");
if(!(unitPack.equalsIgnoreCase(unit)))
{
......@@ -2585,9 +2971,23 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
if("F".equalsIgnoreCase(nature))
{
sql = "select item_code__parent from item where item_code = ?" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
rs = pstmt.executeQuery();
while(rs.next())
{
itemCodeParent = rs.getString("item_code__parent");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if(itemCodeParent != null && itemCodeParent.trim().length() > 0 )
{
schemeCode = checkScheme(itemCode, orderType,custCode,siteCode,stateCodeDlv,countCodeDlv,allocDate,conn);
schemeCode = checkScheme(itemCodeParent, orderType,custCode,siteCode,stateCodeDlv,countCodeDlv,allocDate,conn);
if(schemeCode != null && schemeCode.trim().length() > 0)
......@@ -2651,8 +3051,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sql = " select bom.batch_qty,bomdet.qty_per,bomdet.app_min_qty, " +
" bomdet.app_max_qty " +
sql = " select bom.batch_qty as lc_batqty,bomdet.qty_per as lc_qtyper,bomdet.app_min_qty as lc_app_min_qty , " +
" bomdet.app_max_qty as lc_app_max_qty " +
" from bom, bomdet where " +
" bom.bom_code = bomdet.bom_code and bomdet.bom_code " +
" = ? and bomdet.nature= 'F' and ? " +
......@@ -2673,16 +3073,23 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
rs = null;
pstmt.close();
pstmt = null;
System.out.println("chargeQty>>>"+chargeQty);
System.out.println("appMinQty>>>"+appMinQty);
System.out.println("appMaxQty>>>"+appMaxQty);
if(chargeQty >= appMinQty && chargeQty <= appMaxQty)
{
//freeQty = truncate(chargeQty / batqty,0) * qtyper
freeQty = (chargeQty / batqty) * qtyper;
}
else
{
freeQty=0;
}
System.out.println("inputQty>>>"+inputQty);
System.out.println("totFreeQty>>>"+totFreeQty);
System.out.println("allocFreeQty>>>"+allocFreeQty);
System.out.println("freeQty>>>"+freeQty);
if((inputQty + totFreeQty + allocFreeQty) > freeQty )
{
System.out.println("Chargeable quantity of group of items not eligible for the free quantity");
......@@ -2787,6 +3194,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("lotNO>>"+lotNo+"lotSl >>"+lotSl);
System.out.println("allocQty["+allocQty+"]"+"holdQty["+holdQty+"]"+"qtyStk - allocQty - holdQty["+(qtyStk - allocQty - holdQty)+"");
System.out.println("stockTot["+stockTot+"]"+"qtyStk["+qtyStk+"]"+"sordItmQty["+sordItmQty+"");
stockTot=0.0;
stockTot = stockTot + (qtyStk - allocQty - holdQty);
System.out.println("stockTot >>>>"+stockTot);
if(stockTot > sordItmQty)
......@@ -2814,14 +3222,17 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
int vaildateData=0;
double totInputQty=0.0;
System.out.println("sordItemList lenth@@@"+sordItemList.size());
for(SordItemBean sordItemBean :sordItemList )//required for update sorditem accordingly line no and sale order
{
sordItmQty = sordItemBean.getSordItmQty();
netQuantity=sordItmQty;
System.out.println("netQuantity>>>"+netQuantity);
stockList=sordItemBean.getStockList();
System.out.println("stockList.size()>>>"+stockList.size());
System.out.println("stockList>>>"+stockList);
System.out.println("expLev>@@@@@@@@@>"+expLev);
totInputQty=0;
System.out.println("stockList lenth@@@"+stockList.size());
for(StockBean stockBean :stockList)
{
System.out.println("stockList iterator starts...........");
......@@ -2870,10 +3281,10 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
isRejected = stockBean.isRejected();
System.out.println("isRejected>>"+isRejected);
//inputQty=sordItmQty;
quantityStduom=sordItmQty;
//quantityStduom=sordItmQty;
expLev=stockBean.getSordItemBean().getExpLev();
System.out.println("expLev>>>"+expLev);
skipline = skipline == null ? "" : skipline;
skiplot = skiplot == null ? "" : skiplot;
System.out.println("saleOrder["+saleOrder+"]"+"itemCode["+itemCode+"]"+"lineNo["+lineNo+"]");
......@@ -2883,6 +3294,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("sordItmQty :"+sordItmQty);
System.out.println("skipline:"+skipline);
System.out.println("skiplot:"+skiplot);
System.out.println("itemCode@@@@["+itemCode+"]unit@@@["+unit+"]unitsTD"+unitStd);
System.out.println("skiplot.trim() :"+skiplot.trim());
System.out.println("'"+lineNo.trim());
......@@ -2978,7 +3390,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setDouble(4, quantityStduom);//quantity
pstmt.setString(5, itemCodeOrd);
pstmt.setString(6, siteCode);
pstmt.setString(7, orderUnit);
pstmt.setString(7, unit);
//pstmt.setString(7, orderUnit);
pstmt.setString(8, status);
pstmt.setString(9, expLev);
pstmt.setString(10, itemRef);
......@@ -2998,6 +3411,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
insCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
System.out.println(">>>>>>>>insCnt:"+insCnt);
if(insCnt > 0)
{
......@@ -3011,6 +3425,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}//end of if(sordallocCnt == 0)
else
{
inputQty = sordItmQty;
sql = "update sordalloc set qty_alloc = qty_alloc + ?," +
" status = 'D' where sale_order = ? " +
" and line_no = ? and exp_lev = ? " +
......@@ -3030,6 +3445,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(8,lotSl );
pstmt.setString(9,locCode);
updSordAllCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
if(updSordAllCnt > 0)
{
logMsg= saleOrder + "\t" + itemCode + "\t"+locCode + "\t" +lotNo+"\t"+ lineNo + "\tUpdated data in sordalloc";
......@@ -3082,7 +3499,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(2,tranidSoalloc);
pstmt.setString(3,linenoSoalloc);
updSordAllDetCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
}
......@@ -3147,7 +3565,8 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
pstmt.setString(5,lineNo);
pstmt.setString(6,expLev);
updSorditemCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
}
}
......@@ -3169,10 +3588,28 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
strToWrite=strToWrite+logMsg+"\t\r\n";
}
}*/
//Start Added by chandrashekar on 13-sep-2016
System.out.println("********************************************************");
System.out.println("records["+records+"]"+"stockOpt["+stockOpt+"]"+"saleOrder["+saleOrder+"]");
int updSordCnt=0;
if(records > 0 || stockOpt == 0 && !isRejected)
{
sql = " update sorder set alloc_flag = 'Y' where sale_order = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,saleOrder);
updSordCnt = pstmt.executeUpdate();
if(updSordCnt > 0)
{
logMsg= saleOrder + "\t" + "\tupdate sorder alloc_flag 'Y'";
strToWrite=strToWrite+logMsg+"\t\r\n";
}
pstmt.close();
pstmt = null;
}
//End Added by chandrashekar on 13-sep-2016
}//end of for(SordItemBean sordItemBean :sordItemList )...2nd
System.out.println("********************************************************");
/*System.out.println("********************************************************");
System.out.println("records["+records+"]"+"stockOpt["+stockOpt+"]"+"saleOrder["+saleOrder+"]");
int updSordCnt=0;
if(records > 0 || stockOpt == 0)
......@@ -3186,7 +3623,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
logMsg= saleOrder + "\t" + "\tupdate sorder alloc_flag 'Y'";
strToWrite=strToWrite+logMsg+"\t\r\n";
}
}
pstmt.close();
pstmt = null;
}*/
if(totLines - skiplineCnt == 0)
{
merrcode = "VTPOSTSKIP";
......@@ -3312,6 +3751,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
private String intializingLog(String fileName,String saleOrder) throws ITMException
{
String log="";
......@@ -3561,10 +4001,16 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
public double convertBox(String itemCode,String unitPack,String unit,double convQtyStduom,Connection conn) throws ITMException
{
double convQty = 0.0;
double convFact=0.0;
ArrayList convAr = null;
try
{
convQty = dist.convQtyFactor(unit,unitPack,itemCode, convQtyStduom, conn);
//convQty = dist.convQtyFactor(unit,unitPack,itemCode, convQtyStduom, conn);
convAr = dist.getConvQuantityFact(unit, unitPack, itemCode, convQtyStduom, convFact, conn);
convFact = Double.parseDouble( convAr.get(0).toString() );
System.out.println("convFact>>>>"+convFact);
convQty = Double.parseDouble( convAr.get(1).toString() );
System.out.println("convQty>>>>"+convQty);
}
catch(Exception e)
{
......@@ -3784,7 +4230,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
sql = " select a.scheme_code from scheme_applicability a, scheme_applicability_det b" +
" where a.scheme_code = b.scheme_code and a.item_code = ? " +
" and a.app_from <= ? and a.valid_upto >= ? and " +
" (b.site_code = ? or b.state_code = ? or b.count_code = ? ";
" (b.site_code = ? or b.state_code = ? or b.count_code = ? )";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,itemCode);
pstmt.setTimestamp(2,tranDate);
......@@ -3808,9 +4254,9 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
while(rs1.next())
{
applyCustList = rs.getString("apply_cust_list");
noApplyCustList = rs.getString("noapply_cust_list");
applicableordtypes = rs.getString("order_type");
applyCustList = rs1.getString("apply_cust_list");
noApplyCustList = rs1.getString("noapply_cust_list");
applicableordtypes = rs1.getString("order_type");
if("NE".equalsIgnoreCase(as_order_type) && applicableordtypes==null)
{
......@@ -3914,10 +4360,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
System.out.println("xmlString1>>"+xmlString1);
System.out.println("chgUser["+chgUser+"]"+"chgTerm["+chgTerm+"]");
/*ConnDriver connDriver = new ConnDriver();
//Changes and Commented By Bhushan on 09-06-2016 :START
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
//Changes and Commented By Bhushan on 09-06-2016 :END
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);*/
sql = " select site_code " +
......@@ -4066,10 +4509,7 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
{
ConnDriver connDriver = new ConnDriver();
//Changes and Commented By Bhushan on 09-06-2016 :START
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
//Changes and Commented By Bhushan on 09-06-2016 :END
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
if(conn != null)
......@@ -4146,13 +4586,189 @@ public class PostOrderProcess extends ProcessEJB implements PostOrderProcessLoca
}
private String gbfScheme(String saleOrder, String lineNo, String lotSl, String locGroup, String itemCode,Connection conn) throws ITMException
{
Timestamp sysDate=null;
String sql="",sql1="",sql2="",mitemCode="",mitemCodeOrd="",msiteCode="",lineNoStr="",trackShelfLife="";
String mchkDateStr="";
PreparedStatement pstmt1=null,pstmt=null,pstmt2=null;
ResultSet rs1=null,rs=null,rs2=null;
Double mquantity=0.0,mminShelfLife=0.0;
double mmin_shelf_life=0.0,stkQty=0.0,mqty=0.0,mmodqty=0.0;
double lc_ratio=10000.0,li_ratio=0.0;
Timestamp mchkDate=null;
DistCommon discmn=new DistCommon();
try
{
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
String sysDateStr = sdf.format(currentDate.getTime());
System.out.println("Now the date is :=> " + sysDateStr);
sysDate = Timestamp.valueOf(genericUtility.getValidDateString(sysDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()) + " 00:00:00.0");
String DB = CommonConstants.DB_NAME;
System.out.println("DB ==========>>>>>"+DB);
lineNo=" "+lineNo;
System.out.println("---"+lineNo+"---");
lineNo = lineNo.substring(lineNo.length() - 3);
sql1="select distinct(item_code) as item_code , sum(quantity - qty_desp) as qty, " +
"item_code__ord, site_code " +
" from sorditem where sale_order = ? and" +
" line_no = ? and (quantity - qty_desp) >0 and" +
" line_type = 'I' and item_code = ? " +
" group by item_code, item_code__ord, site_code " +
"order by item_code, item_code__ord, site_code";
pstmt1= conn.prepareStatement(sql1);
pstmt1.setString(1, saleOrder);
pstmt1.setString(2, lineNo);
pstmt1.setString(3, itemCode);
rs1 = pstmt1.executeQuery();
while (rs1.next())
{
mitemCode = rs1.getString("item_code");
mquantity = rs1.getDouble("qty");
mitemCodeOrd = rs1.getString("item_code__ord");
msiteCode = rs1.getString("site_code");
mminShelfLife = 0.0;
sql2=" select sum(a.quantity - a.alloc_qty - case when a.hold_qty is null then 0 else a.hold_qty end ) as qty " +
" from stock a, invstat b, location c where c.inv_stat = b.inv_stat and c.loc_code = a.loc_code " +
"and a.item_code = '"+mitemCode+"' and a.site_code = '"+msiteCode+"' " +
"and a.quantity > 0 and b.available = 'Y' ";
if(lotSl != null && checkNull(lotSl).trim().length()>0)
{
sql2=sql2+" and a.lot_sl = '"+lotSl+"' ";
}
if(locGroup != null && checkNull(locGroup).trim().length()>0)
{
sql2=sql2+" and c.loc_group = '"+locGroup+"' ";
}
sql="select track_shelf_life from item where item_code =?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mitemCode);
rs = pstmt.executeQuery();
if (rs.next())
{
trackShelfLife = rs.getString("track_shelf_life");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql="select min_shelf_life from sorditem where sale_order = ? " +
"and line_no = ? and line_type = 'I' and item_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, saleOrder);
pstmt.setString(2, lineNo);
pstmt.setString(3, mitemCode);
rs = pstmt.executeQuery();
if (rs.next())
{
mminShelfLife = rs.getDouble("min_shelf_life");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
mchkDate=discmn.CalcExpiry(sysDate,mminShelfLife+1);
System.out.println("mchkDate>>>>"+mchkDate);
if("Y".equalsIgnoreCase(trackShelfLife) && mminShelfLife >0)
{
if("db2".equalsIgnoreCase(DB))
{
SimpleDateFormat sdt = new SimpleDateFormat("yyyy-mm-dd");
if(mchkDate !=null)
{
mchkDateStr = sdt.format(mchkDate.getTime());
}
sql2=sql2+" and ( a.exp_date > TIMESTAMP('"+mchkDateStr+" 00:00:00.000"+"') or a.exp_date is null) ";
}else
{
SimpleDateFormat sdt = new SimpleDateFormat("dd-MMM-yyyy");
if(mchkDate !=null)
{
mchkDateStr = sdt.format(mchkDate.getTime());
}
sql2=sql2+" and ( a.exp_date > '"+mchkDateStr+"' or a.exp_date is null) ";
}
}
pstmt2=conn.prepareStatement(sql2);
rs2=pstmt2.executeQuery();
while(rs2.next())
{
stkQty=rs2.getDouble("qty");
sql="SELECT SUM(qty_per) as mqty FROM bomdet WHERE ( bom_code = ? ) AND ( item_code = ? )";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mitemCodeOrd);
pstmt.setString(2, mitemCode);
rs = pstmt.executeQuery();
if (rs.next())
{
mqty = rs.getDouble("mqty");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(stkQty<mqty)
{
break;
}
if(stkQty < mquantity)
{
if(mqty>0)
{
sql="Select mod(?,?) as mmodqty from dual";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, stkQty);
pstmt.setDouble(2, mqty);
rs = pstmt.executeQuery();
if (rs.next())
{
mmodqty = rs.getDouble("mmodqty");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
li_ratio = ((stkQty - mmodqty) / mqty);
if (lc_ratio > li_ratio)
{
lc_ratio = li_ratio ;
}
}
}
}
rs2.close();
rs2=null;
pstmt2.close();
pstmt2=null;
}
rs1.close();
rs1= null;
pstmt1.close();
pstmt1= null;
}catch(Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
return Double.toString(lc_ratio);
}
}
......@@ -4251,11 +4867,4 @@ class Log
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment