Commit f2345a9f authored by smanohar's avatar smanohar

New component from Sun source added

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@213143 ce508802-f39f-4f6c-b175-0d175dae99d5
parent a14ff6c5
package ibase.webitm.ejb.fin;
import java.sql.Timestamp;
public class FinChangeCalBean {
String refNo="",custCode="",tranId="",tranIdDrn="",refSer="",crTerm="",itemSer="",custName="",city="",salesPerson="";
public String getSalesPerson() {
return salesPerson;
}
public void setSalesPerson(String salesPerson) {
this.salesPerson = salesPerson;
}
int rcpAmt = 0;
double lateDays=0.0,finChg=0.0,intAmt=0.0;
public double getIntAmt() {
return intAmt;
}
public void setIntAmt(double intAmt) {
this.intAmt = intAmt;
}
public double getFinChg() {
return finChg;
}
public void setFinChg(double finChg) {
this.finChg = finChg;
}
public double getLateDays() {
return lateDays;
}
public void setLateDays(double lateDays) {
this.lateDays = lateDays;
}
Timestamp refDate=null,effDate= null,dueDate=null;
public Timestamp getRefDate() {
return refDate;
}
public void setRefDate(Timestamp refDate) {
this.refDate = refDate;
}
public Timestamp getEffDate() {
return effDate;
}
public void setEffDate(Timestamp effDate) {
this.effDate = effDate;
}
public Timestamp getDueDate() {
return dueDate;
}
public void setDueDate(Timestamp dueDate) {
this.dueDate = dueDate;
}
public String getRefNo() {
return refNo;
}
public void setRefNo(String refNo) {
this.refNo = refNo;
}
public String getCustCode() {
return custCode;
}
public void setCustCode(String custCode) {
this.custCode = custCode;
}
public String getTranId() {
return tranId;
}
public void setTranId(String tranId) {
this.tranId = tranId;
}
public String getTranIdDrn() {
return tranIdDrn;
}
public void setTranIdDrn(String tranIdDrn) {
this.tranIdDrn = tranIdDrn;
}
public String getRefSer() {
return refSer;
}
public void setRefSer(String refSer) {
this.refSer = refSer;
}
public String getCrTerm() {
return crTerm;
}
public void setCrTerm(String crTerm) {
this.crTerm = crTerm;
}
public String getItemSer() {
return itemSer;
}
public void setItemSer(String itemSer) {
this.itemSer = itemSer;
}
public String getCustName() {
return custName;
}
public void setCustName(String custName) {
this.custName = custName;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public int getRcpAmt() {
return rcpAmt;
}
public void setRcpAmt(int rcpAmt) {
this.rcpAmt = rcpAmt;
}
}
package ibase.webitm.ejb.fin;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.w3c.dom.*;
import java.rmi.RemoteException;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.*;
import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.ejb.sys.UtilMethods;
//import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.TransIDGenerator;
import ibase.webitm.utility.ITMException;
import ibase.system.config.*;
import javax.ejb.Stateless; // added for ejb3
import javax.naming.InitialContext;
import javax.xml.rpc.ParameterMode;
@Stateless // added for ejb3
public class FinanceChargeCalcPrc extends ProcessEJB implements FinanceChargeCalcPrcLocal,FinanceChargeCalcPrcRemote //SessionBean
{
ArrayList<String> detArgList = new ArrayList<String>();
ArrayList<String> miscList = new ArrayList<String>();
ArrayList<String> debitList = new ArrayList<String>();
ArrayList<String> miscTranIdList = new ArrayList<String>();
ArrayList<String> debitTranIdList = new ArrayList<String>();
public String process(String xmlString, String xmlString2, String windowName, String xtraParams) throws RemoteException,ITMException
{
Document dom1 = null,dom2 = null;
String retString = "";
System.out.println("In Process Logic....[FinanceChargeCalcPrc]");
try
{
// GenericUtility genericUtility = GenericUtility.getInstance();
E12GenericUtility genericUtility = new E12GenericUtility();
dom1 = genericUtility.parseString(xmlString);
dom2 = genericUtility.parseString(xmlString2);
retString = process(dom1,dom2,windowName,xtraParams);
}
catch(Exception e)
{
System.out.println("Exception ::FinanceChargeCalcPrc :: process() Method :: "+e.getMessage());
throw new ITMException(e);
}
return retString;
}
public String process(Document dom, Document dom2, String windowName, String xtraParams) throws RemoteException,ITMException
{
//added by narendra on date 26-03-2019 for clearing the list of transaction id after reprocessing the transaction
//start
detArgList.clear();
miscTranIdList.clear();
debitTranIdList.clear();
//end
Connection conn = null;
Statement stmt = null;
ResultSet rs = null,rs1=null,rs2=null,rs3=null;
PreparedStatement pstmt = null,pstmtl = null,pstmt2= null,pstmt3=null;
String sql = "",sql1="",sql2="";
NodeList detailNodes = null,childNodes = null;
Node child = null;
String nodeName = "",nodeValue = "";
String frDt = "", toDt = "";
java.util.Date fromDate = null, toDate = null ;
String custCodeFrom="",custCodeTo="",excludeFn="",userId="",xmlString="",returnString="",salesPerson="",invoiceId="",finnalXmlString="";
String custCode = "",refNo= "",finEntity="",tranId="",tranIdDrn="",refSer="",crTerm="",itemSer="",custName="",city="",acctCodeAr="",cctrCodeAr="",transType="",postYn="",rcpMode="";
int rcpAmt=0,minAmt=0,cnt = 1,rowCnt=0,updCnt=0,cnt1=0;
double lateDays=0.0,finChg=0.0,valDocVal=0.0,intAmt=0.0,totCust=0.0,totColl=0.0;
//added by narendra on date 13-03-2019
double totalDebitAmt=0.0;
Timestamp fromTime = null,toTime = null, refDate=null,effDate= null,dueDate=null,invDate=null;
String siteCode = "",mAmt= "",valDoc="",trantypeFinChrgDrn="",dbNoteFinEntity="",dbNoteCRTerm="",outCustCode="",outItemSer="",innerCustCode="",innerItemSer="",outInvoiceId="",outTranId="";
String errString="",retString="";
String SundryTypeOld = "",sundryCodeOld = "",tranDate = "",tranIDSer = "",generatedId="";
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
String trntypArr[] = new String[10];
FinChangeCalBean finChgCalBean = null;
FinChangeCalBean finCalOutBean = null;
FinChangeCalBean finCalInnerBean = null;
FinChangeCalBean totFinCalInnerBean = null;
FinChangeCalBean valueMapBean= null;
String dbName = "";
UtilMethods util = new UtilMethods();
double daysAfter=0 ;
boolean isError= false;
boolean recFound = false;
FinCommon finCom =new FinCommon();
DistCommon disCom =new DistCommon();
ArrayList<FinChangeCalBean> finChgCalList = new ArrayList<FinChangeCalBean>();
ArrayList<FinChangeCalBean> innerFinChgCalList = new ArrayList<FinChangeCalBean>();
ArrayList<FinChangeCalBean> finalFinaChgCalList = new ArrayList<FinChangeCalBean>();
ArrayList<FinChangeCalBean> temfinChgCalList=null;
ArrayList<FinChangeCalBean> valueMapStringList =null;
//HashMap<String,ArrayList<FinChangeCalBean>> innerFinChgCal = new HashMap<String,ArrayList<FinChangeCalBean>>;
HashMap<String,ArrayList<FinChangeCalBean>> innerFinChgCal = new HashMap<String,ArrayList<FinChangeCalBean>>();
Set mapSet=null;
ArrayList<String> MDRCIdList = new ArrayList<String>();
/*Set mapSet=null;
Iterator mapIterator=null;
Map.Entry mapEntry=null;*/
String keyObjName="";
String keyXmlString="";
int finalCnt=0;
ArrayList<String> KeyList =new ArrayList<String>();
String valueString="";
Iterator mapIterator=null;
Map.Entry mapEntry=null;
String keyString="";
ArrayList<String> valueStringList=new ArrayList<String>();
// GenericUtility genericUtility = GenericUtility.getInstance();
E12GenericUtility genericUtility = new E12GenericUtility();
int updtcnt=0;
int processCounter=0;
// ConnDriver connDriver = new ConnDriver();
Document xmlDom = null;
Node parentNode = null, childNode = null;
NodeList parentNodeList = null, childNodeList = null;
int parentNodeListLength = 0, childNodeListLength = 0;
String childNodeName = "";
PreparedStatement pstmtDrcr = null;
ResultSet rsDrcr = null;
PreparedStatement pstmtDelete = null;
PreparedStatement pstmtUpdate = null;
PreparedStatement pstmtRcpHdr = null;
ResultSet rsRcpHdr = null;
PreparedStatement pstmtUpdRcp = null;
ResultSet rsCrtermHdr = null;
PreparedStatement pstmtUpdateCr = null;
PreparedStatement pstmtCust = null;
ResultSet rsCust = null;
PreparedStatement pstmtItemSer = null;
ResultSet rsItemSer = null;
PreparedStatement pstmtTax = null;
ResultSet rsTax = null;
PreparedStatement pstmtRacct = null;
ResultSet rsSQLRacct = null;
PreparedStatement pstmtSQLRacct = null;
try
{
int successCnt = 0;
System.out.println("73 In Process Logic....[FinanceChargeCalcPrc]");
//ConnDriver con = new ConnDriver();
//conn = con.getConnectDB("DriverITM");
conn = getConnection();
conn.setAutoCommit(false);
dbName = CommonConstants.DB_NAME;
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "user_id");
valDoc = finCom.getFinparams("999999", "MIN_FINCHG_DOC", conn);
valDocVal= Double.parseDouble(valDoc);
siteCode = genericUtility.getColumnValue("site_code", dom);
tranDate = genericUtility.getColumnValue("drnote_date", dom);
frDt = genericUtility.getColumnValue("from_date", dom2);
frDt = frDt == null ? "" : frDt.trim();
System.out.println("from date from dom::["+frDt+"]");
toDt = genericUtility.getColumnValue("to_date", dom2);
toDt = toDt == null ? "" : toDt.trim();
System.out.println("to date from dom ::["+toDt+"]");
// Added by Dipali D.on 26/11/2019[START]
dbNoteFinEntity = disCom.getDisparams("999999", "FIN_CHARG_DBNOTE_FINENTITY", conn);
dbNoteCRTerm = disCom.getDisparams("999999", "FIN_CHARG_DBNOTE_CRTERM", conn);
System.out.println("Fin Entity====>"+dbNoteFinEntity+" Cr Term==>"+dbNoteCRTerm);
sql2= "select fin_entity from site where site_code= ?";
pstmt2 = conn.prepareStatement(sql2);
pstmt2.setString(1, siteCode);
rs2 = pstmt2.executeQuery();
while(rs2.next())
{
finEntity=rs2.getString("fin_entity").trim();
}
System.out.println("finEntity==>"+finEntity);
pstmt2.close();
pstmt2 = null;
rs2.close();
rs2 = null;
System.out.println("dbNoteFinEntity==>"+dbNoteFinEntity);
System.out.println("finEntity==>"+finEntity);
if(dbNoteFinEntity.equalsIgnoreCase(finEntity))
{
String sql3= "select count(*) from crterm where cr_term=?";
pstmt3 = conn.prepareStatement(sql3);
pstmt3.setString(1, dbNoteCRTerm);
rs3 = pstmt3.executeQuery();
while(rs3.next())
{
cnt1 = rs3.getInt(1);
}
if(cnt1 == 0){
errString = itmDBAccessEJB.getErrorString("","VMCRTERMNF",userId);
System.out.println("CR Term Not found .."+errString+"isError"+isError);
return errString;
}
pstmt3.close();
pstmt3 = null;
rs3.close();
rs3 = null;
}
// Added by Dipali D.on 26/11/2019[END]
if(frDt.length() == 0 || toDt.length() == 0){
errString = itmDBAccessEJB.getErrorString("", "VTDATEMPT", userId); //Date cannot be blank
return errString;
}
if(frDt.length() > 0 && toDt.length() > 0){
fromDate = sdf.parse(frDt);
toDate = sdf.parse(toDt);
System.out.println("from date after parsing::["+fromDate+"]");
System.out.println("to date after parsing::["+toDate+"]");
if(fromDate.after(toDate)){
errString = itmDBAccessEJB.getErrorString("", "VMSDLTFT", userId); //From date cannot be greater than to date
return errString;
}
}
fromTime = Timestamp.valueOf(genericUtility.getValidDateTimeString(frDt, genericUtility.getDispDateFormat(), genericUtility.getDBDateFormat()));
toTime = Timestamp.valueOf(genericUtility.getValidDateTimeString(toDt, genericUtility.getDispDateFormat(), genericUtility.getDBDateFormat()));
mAmt = genericUtility.getColumnValue("min_amt", dom);
minAmt = Integer.parseInt(mAmt);
acctCodeAr = genericUtility.getColumnValue("acct_code__ar", dom);
cctrCodeAr = genericUtility.getColumnValue("cctr_code__ar", dom);
custCodeFrom = genericUtility.getColumnValue("cust_code__from", dom);
custCodeTo = genericUtility.getColumnValue("cust_code__to", dom);
excludeFn = genericUtility.getColumnValue("exclude_fn", dom);
transType = genericUtility.getColumnValue("trans_type", dom);
postYn = genericUtility.getColumnValue("post_yn", dom);
if(transType.length() == 0 || transType.length() == 0){
errString = itmDBAccessEJB.getErrorString("", "COTRTYPE", userId); //Date cannot be blank
return errString;
}
System.out.println("87 Inside siteCode ["+siteCode+"]custCodeFrom ["+custCodeFrom+"] custCodeTo ["+custCodeTo+"] excludeFn ["+excludeFn+"]minAmt ["+minAmt+"]");
String mdrFinchgDr = finCom.getFinparams("999999", "MDR_FINCHG_DR", conn);
//if( mdrFinchgDr = "" || mdrFinchgDr.length() = 0)
if("NULLFOUND".equalsIgnoreCase(mdrFinchgDr.trim()) || mdrFinchgDr.length() == 0 )
{
mdrFinchgDr = "N";
}
if("Y".equalsIgnoreCase(excludeFn))
{
trantypeFinChrgDrn = disCom.getDisparams("999999", "IGNORE_TYPE_FINCHRG", conn);
System.out.println("152 ["+trantypeFinChrgDrn+"]");
if( trantypeFinChrgDrn != null && trantypeFinChrgDrn.trim().length() > 0 )
{
trntypArr = trantypeFinChrgDrn.split(",");
excludeFn = trntypArr[0];
}
else
{
//trntypArr[1]="FN";
excludeFn = "FN";
}
}
else
{
//trntypArr[1]="$$";
excludeFn = "$$";
}
System.out.println("87 Inside fromTime ["+fromTime+"] toTime ["+toTime+"] trntypArr ["+trntypArr.toString()+"]");
sql = "SELECT RCPDET.REF_NO,RCPDET.REF_DATE, RECEIPT.CUST_CODE,"
+" RECEIPT.TRAN_ID, RECEIPT.EFF_DATE, RCPDET.DUE_DATE, RCPDET.RCP_AMT, RCPDET.TRAN_ID__DRN, nvl(RECEIVABLES.SALES_PERS__1,'E99999') as SALES_PERS__1,"
+" 0 AS int_amt,"
+" RCPDET.REF_SER, RECEIVABLES.CR_TERM, RECEIVABLES.ITEM_SER,"
+" RCPDET.FIN_CHG,"
+" ( CASE WHEN receipt.rcp_mode = 'D'"
+" THEN receipt.ref_date"
+" ELSE receipt.eff_date END ) - rcpdet.due_date AS late_days,"
+" CUSTOMER.CUST_NAME, CUSTOMER.CITY"
+" FROM RCPDET, RECEIPT, CUSTOMER, RECEIVABLES"
+" WHERE ( RECEIPT.TRAN_ID = RCPDET.TRAN_ID )"
+" AND ( RECEIPT.CUST_CODE = CUSTOMER.CUST_CODE )"
+" AND ( RCPDET.REF_SER = RECEIVABLES.TRAN_SER )"
+" AND ( RCPDET.REF_NO = RECEIVABLES.REF_NO )"
+" AND RCPDET.TRAN_ID__DRN is null "
+" AND CUSTOMER.BLACK_LISTED<>'Y' "
+" AND ( ( receipt.site_code = ? )"
+" AND ( receipt.tran_date >= ? )"
+" AND ( receipt.tran_date <= ? )"
+" AND ( receipt.cust_code >= ? )"
+" AND ( receipt.cust_code <= ? )"
+" AND ( receipt.confirmed = 'Y' )"
+" AND ( receivables.ref_type not in ? ) )"
+" ORDER BY RECEIPT.CUST_CODE ASC,"
+" RCPDET.REF_NO ASC";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setTimestamp(2, fromTime);
pstmt.setTimestamp(3, toTime);
pstmt.setString(4, custCodeFrom);
pstmt.setString(5, custCodeTo);
pstmt.setString(6, excludeFn);
rs = pstmt.executeQuery();
while(rs.next())
{
recFound = true;
rowCnt++;
refNo = rs.getString("REF_NO");
refDate =rs.getTimestamp("REF_DATE");
custCode =rs.getString("CUST_CODE");
tranId =rs.getString("TRAN_ID");
effDate =rs.getTimestamp("EFF_DATE");
dueDate =rs.getTimestamp("DUE_DATE");
rcpAmt =rs.getInt("RCP_AMT");
tranIdDrn =rs.getString("TRAN_ID__DRN");
intAmt = rs.getInt("int_amt");
refSer =rs.getString("REF_SER");
crTerm =rs.getString("CR_TERM");
itemSer =rs.getString("ITEM_SER");
finChg =rs.getDouble("FIN_CHG");
lateDays =rs.getInt("late_days");
custName =rs.getString("CUST_NAME");
city =rs.getString("CITY");
salesPerson = rs.getString("SALES_PERS__1");
finChgCalBean = new FinChangeCalBean();
//finChgCalList = new ArrayList<FinChangeCalBean>();
finChgCalBean.setRefNo(refNo);
finChgCalBean.setRefDate(refDate);
finChgCalBean.setCustCode(custCode);
finChgCalBean.setTranId(tranId);
finChgCalBean.setEffDate(effDate);
finChgCalBean.setDueDate(dueDate);
finChgCalBean.setRcpAmt(rcpAmt);
finChgCalBean.setTranIdDrn(tranIdDrn);
finChgCalBean.setIntAmt(intAmt);
finChgCalBean.setRefSer(refSer);
finChgCalBean.setCrTerm(crTerm);
finChgCalBean.setItemSer(itemSer);
finChgCalBean.setFinChg(finChg);
finChgCalBean.setLateDays(lateDays);
finChgCalBean.setCustName(custName);
finChgCalBean.setCity(city);
finChgCalBean.setSalesPerson(salesPerson);
finChgCalList.add(finChgCalBean);
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
System.out.println("223 inisde ["+rowCnt+"] FinChgCalList.size() [ "+finChgCalList.size()+"]");
if (!recFound)
{
errString = itmDBAccessEJB.getErrorString("","VTNODATA",userId,"",conn);
System.out.println("process completed .."+errString);
return errString;
}
String sqlDrcr = "select confirmed from drcr_rcp where tran_id = ?";
pstmtDrcr = conn.prepareStatement(sqlDrcr);
String deleteSQL = "delete from drcr_rdet where tran_id = ?";
pstmtDelete = conn.prepareStatement(deleteSQL);
String updateSQL = "update drcr_rcp set amount= 0, amount__bc = 0, confirmed = 'Y', remarks = 'CANCELLED THROUGH FIN CHARGE PROCESS' where tran_id = ?";
pstmtUpdate = conn.prepareStatement(updateSQL);
String sqlRcpHdr = "select sum(net_amt) as sum_amt FROM DRCR_RDET where tran_id = ?";
pstmtRcpHdr = conn.prepareStatement(sqlRcpHdr);
String updRcpHdr = "update drcr_rcp set amount= ?, amount__bc = ?, round_adj = ? where tran_id = ?";
//String updRcpHdr = "update drcr_rcp set amount= ?, amount__bc = ? where tran_id = ?";
pstmtUpdRcp = conn.prepareStatement(updRcpHdr);
// Added by Dipali D.on 26/11/2019[START]
String crUpdateTerm = "update drcr_rcp set cr_term= ? where tran_id = ?";
pstmtUpdateCr=conn.prepareStatement(crUpdateTerm);
// Added by Dipali D.on 26/11/2019[END]
//TODO
String sqlTaxTran="select sum(tax_amt) sum_amount, acct_code, cctr_code from taxtran where tran_id=? and effect<>'N' group by acct_code, cctr_code ";
pstmtTax = conn.prepareStatement(sqlTaxTran);
String sqlRacct="INSERT INTO drcr_racct ( tran_id, line_no, acct_code, cctr_code, amount ) VALUES ( ?, ?, ?, ?, ? )";
pstmtRacct = conn.prepareStatement(sqlRacct);
if( finChgCalList.size() > 0)
{
String strKeyCustItemSer="";
ArrayList<FinChangeCalBean> listBean=null;
for(int rowCtr=0; rowCtr < finChgCalList.size();rowCtr++ )
{
System.out.println("264 rowCtr ["+rowCtr+"]");
finCalOutBean= new FinChangeCalBean();
finCalOutBean = finChgCalList.get(rowCtr);
outCustCode = finCalOutBean.getCustCode();
outItemSer = finCalOutBean.getItemSer();
outInvoiceId = finCalOutBean.getRefNo();
outTranId = finCalOutBean.getTranId();
strKeyCustItemSer=outCustCode.trim()+":"+outItemSer;
System.out.println("427 strKeyCustItemSer ["+strKeyCustItemSer+"] refNo ["+refNo+"] tranId ["+tranId+"]effDate ["+effDate+"] refDate ["+refDate+"]");
if(innerFinChgCal.containsKey(strKeyCustItemSer))
{
System.out.println("Inisde 430");
listBean=innerFinChgCal.get(strKeyCustItemSer);
listBean.add(finCalOutBean);
innerFinChgCal.put(strKeyCustItemSer,listBean);
//innerFinChgCal.put( strKeyCustItemSer , listBean);
}
else
{
System.out.println("Inisde 438");
listBean=new ArrayList<FinChangeCalBean>();
listBean.add(finCalOutBean);
innerFinChgCal.put( strKeyCustItemSer , listBean);
}
}
System.out.println("255 inside outCustCode ["+outCustCode+"] innerFinChgCal ["+innerFinChgCal+"] finCalOutBean.getRefNo() ["+innerFinChgCal.size()+"]");
System.out.println("474 innerFinChgCal.size() ["+innerFinChgCal.size()+"]");
if(innerFinChgCal.size() > 0 )
{
for(Map.Entry<String, ArrayList<FinChangeCalBean>> finInnerFinChgCal : innerFinChgCal.entrySet())
{
System.out.println(finInnerFinChgCal.getKey() + ": " + finInnerFinChgCal.getValue().toString());
valueMapStringList = finInnerFinChgCal.getValue();
System.out.println("508 valueMapStringList.size() ["+valueMapStringList.size()+"]");
for(int i=0 ;i < valueMapStringList.size(); i++)
{
System.out.println("Inisde i ["+i+"]");
totFinCalInnerBean = new FinChangeCalBean();
totFinCalInnerBean = valueMapStringList.get(i);
refSer = totFinCalInnerBean.getRefSer();
custCode = totFinCalInnerBean.getCustCode();
itemSer = totFinCalInnerBean.getItemSer();
finChg = totFinCalInnerBean.getFinChg();
invoiceId = totFinCalInnerBean.getRefNo();
tranId = totFinCalInnerBean.getTranId();
intAmt = totFinCalInnerBean.getIntAmt();
//refNo = totFinCalInnerBean.getRefNo();
if( conn != null )
{
conn.commit();
}
if (dbName.equalsIgnoreCase("db2"))
{
sql = "select tran_id__drn from rcpdet where tran_id = ?"
+" and ref_ser = ? and ref_no = ? for update";
}else if (dbName.equalsIgnoreCase("mssql"))
{
sql= "select tran_id__drn from rcpdet (updlock)"
+" where tran_id = ? and ref_ser = ? and ref_no = ?";
}else
{
sql = "select tran_id__drn from rcpdet"
+" where tran_id = ? and ref_ser = ? and ref_no = ? for update nowait";
}
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
pstmt.setString(2,refSer);
pstmt.setString(3,invoiceId);
rs = pstmt.executeQuery();
pstmt.close();
pstmt = null;
rs.close();
rs = null;
sql1 = "select count(*) as count from rcpdishnr where receipt_no = ? and tran_ser = 'R' and confirmed = 'Y'" ;
pstmtl = conn.prepareStatement(sql1);
pstmtl.setString(1, tranId);
rs1 = pstmtl.executeQuery();
while(rs1.next())
{
updCnt = rs1.getInt("count") ;
}
pstmtl.close();
pstmtl = null;
rs1.close();
rs1 = null;
System.out.println("325 updCnt ["+updCnt+"]");
if( updCnt == 0 )
{
refDate = totFinCalInnerBean.getRefDate();
dueDate = totFinCalInnerBean.getDueDate();
effDate = totFinCalInnerBean.getEffDate();
System.out.println("332 dueDate ["+dueDate+"] effDate ["+effDate+"]");
sql1 ="select rcp_mode , REF_DATE from receipt"
+" where tran_id = ?";
pstmt = conn.prepareStatement(sql1);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
while(rs.next())
{
rcpMode = rs.getString("rcp_mode");
refDate = rs.getTimestamp("REF_DATE");
System.out.println("342 refDate ["+refDate+"]");
if("D".equalsIgnoreCase(rcpMode))
{
// ll_late_days = daysafter(date(ldt_duedate), date(ldt_refdate))
lateDays = util.DaysAfter(dueDate, refDate);
}
else
{
// ll_late_days = daysafter(date(ldt_duedate), date(ldt_effdate))
lateDays = util.DaysAfter(dueDate, effDate);
}
finCalOutBean.setLateDays(lateDays);
System.out.println("347 lateDays ["+lateDays+"]");
tranIdDrn = totFinCalInnerBean.getTranIdDrn();
invDate = totFinCalInnerBean.getRefDate();
refSer = totFinCalInnerBean.getRefSer();
System.out.println("370 refSer ["+refSer+"] mdrFinchgDr ["+mdrFinchgDr+"]");
if( lateDays > 0 && (( "S-INV".equalsIgnoreCase(refSer.trim()) || "R-IBCA".equalsIgnoreCase(refSer.trim()) && "N".equalsIgnoreCase(mdrFinchgDr)) || ("MDRCRD".equalsIgnoreCase(refSer.trim()) && "Y".equalsIgnoreCase(mdrFinchgDr) )) )
{
rcpAmt = totFinCalInnerBean.getRcpAmt();
crTerm = totFinCalInnerBean.getCrTerm();
finChg = totFinCalInnerBean.getFinChg();
intAmt = getFinChgIntAmt( rcpAmt,lateDays,crTerm,invDate,conn );
System.out.println("380 intAmt["+intAmt+"] finChg["+finChg+"] valDocVal ["+valDocVal+"]");
//if(intAmt == -1 )
/*if(intAmt <= 0 )
{
errString = itmDBAccessEJB.getErrorString("", "VTINTC1", userId); //Date cannot be blank
return errString;
}*/
if( intAmt > finChg )
{
if( (intAmt - finChg ) > valDocVal )
{
totCust = totCust +intAmt;
totColl = totColl + finChg;
System.out.println("@narendra inside total cust : 462 : "+totCust+" "+totColl);
totalDebitAmt=totCust+totColl;
System.out.println("@narendra inside total receipt for cust : 467 : "+totalDebitAmt);
}
totFinCalInnerBean.setIntAmt(totalDebitAmt);
}
}
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
}
System.out.println("425 refSer ["+refSer+"] outCustCode ["+outCustCode+"] custCode ["+custCode+"] outItemSer ["+outItemSer+"] itemSer ["+itemSer+"] invoiceId ["+invoiceId+"]");
if("Y".equalsIgnoreCase(mdrFinchgDr))
{
if( ( "MDRCRD".equalsIgnoreCase(refSer.trim()) || "R-IBCA".equalsIgnoreCase(refSer.trim()) ) && (((intAmt - finChg ) > valDocVal)) )
{
System.out.println("407 Inside");
//finalFinaChgCalList = new ArrayList<FinChangeCalBean>();
if( totCust-totColl > minAmt )
{
System.out.println("722 Inside");
finalFinaChgCalList.add(totFinCalInnerBean);
}
}
}
else
{
//if( ( "S-INV".equalsIgnoreCase(refSer.trim()) || "R-IBCA".equalsIgnoreCase(refSer.trim()) ) && outCustCode.equalsIgnoreCase(custCode) && outItemSer.equalsIgnoreCase( itemSer ) && (((intAmt - finChg ) > valDocVal)) )
if( ( "S-INV".equalsIgnoreCase(refSer.trim()) || "R-IBCA".equalsIgnoreCase(refSer.trim()) ) && (((intAmt - finChg ) > valDocVal)) )
{
System.out.println("732 Inside");
if( totCust-totColl > minAmt )
{
System.out.println("414 outInvoiceId["+outInvoiceId+"] outTranId ["+outTranId+"] invoiceId ["+invoiceId+"] outTranId ["+outTranId+"] tranId ["+tranId+"]");
finalFinaChgCalList.add(totFinCalInnerBean);
}
}
}
//added by narendra on date 13-03-2019 reinitialize variable
totCust=0.0;
totColl=0.0;
totalDebitAmt=0.0;
}
System.out.println("741 finalFinaChgCalList.size() ["+finalFinaChgCalList.size()+"]");
if( finalFinaChgCalList.size() > 0 )
{
xmlString = createFinchgDrn( finalFinaChgCalList,tranDate,postYn,acctCodeAr,cctrCodeAr,siteCode,transType,xtraParams,conn );
System.out.println("473 xmlString ["+xmlString+"]");
if( xmlString.indexOf("Errors") > -1)
{
System.out.println("475 inside Error");
retString = xmlString;
return retString;
}
finalFinaChgCalList.clear();
}
else
{
errString = itmDBAccessEJB.getErrorString("", "VNDPF", userId);
processCounter++;
//Date cannot be blank
continue;
//return errString;//continue here
}
System.out.println("443 xmlString ["+ xmlString +"] ");
if( !"".equalsIgnoreCase(xmlString) && xmlString != null )
{
returnString = saveData(siteCode,xmlString,xtraParams,conn);
System.out.println("@S@DRNxmlMapreturnString["+returnString+"]");
if (returnString.indexOf("Success") <= -1)
{
System.out.println("@@@@@@1: Failed"+returnString);
isError = true;
conn.rollback();
}
else
{
conn.commit();
System.out.println("@@@@@@2: Success"+returnString);
xmlDom = genericUtility.parseString(xmlString);
generatedId = genericUtility.getColumnValue("tran_id", xmlDom);
if( "Y".equalsIgnoreCase(mdrFinchgDr) )
{
retString = executeSystemEvent("misc_drcr_rcp_dr", "pre_confirm", generatedId, xtraParams, conn);
System.out.println("retString ::: " + retString);
if(retString.indexOf("VTSUCC1") > -1 || retString.indexOf("CONFSUCCES") > -1 || retString.indexOf("VTMCONF20") >-1)
{
//miscTranIdList.clear();
System.out.println("501 Inisde");
isError=false;
conn.commit();
successCnt++;
}
else
{
System.out.println("507 Inisde");
isError=true;
//break;
}
}
else
{
String tranIdRcp = "";
String invoiceIdRcp ="";
String exchRateStr = "";
String custCodeRcp = "", itemSerRcp = "";
//TODO
int lineNoRacct = 0;
String sqlDet3 = "select max(line_no) as max_line_no from drcr_racct where tran_id=?";
pstmtSQLRacct = conn.prepareStatement(sqlDet3);
pstmtSQLRacct.setString( 1, generatedId );
rsSQLRacct = pstmtSQLRacct.executeQuery();
if( rsSQLRacct.next() )
{
lineNoRacct = rsSQLRacct.getInt("max_line_no");
}
if(rsSQLRacct != null)
{
rsSQLRacct.close();
rsSQLRacct = null;
}
if(pstmtSQLRacct != null)
{
pstmtSQLRacct.close();
pstmtSQLRacct = null;
}
pstmtTax.setString(1, generatedId);
rsTax = pstmtTax.executeQuery();
while(rsTax.next())
{
lineNoRacct = lineNoRacct+1;
pstmtRacct.setString(1, generatedId);
pstmtRacct.setInt(2, lineNoRacct);
pstmtRacct.setString(3, rsTax.getString("acct_code"));
pstmtRacct.setString(4, rsTax.getString("cctr_code")==null?" ":rsTax.getString("cctr_code"));
pstmtRacct.setDouble(5, rsTax.getDouble("sum_amount"));
pstmtRacct.executeUpdate();
pstmtRacct.clearParameters();
}
if(rsTax != null)
{
rsTax.close();
rsTax = null;
}
pstmtTax.clearParameters();
//}
double amount = 0.0d, amountBc = 0.0d, roundAdj= 0.0d, netAmt = 0.0d, exchRate = 0.0d;
pstmtRcpHdr.setString(1, generatedId);
rsRcpHdr = pstmtRcpHdr.executeQuery();
if(rsRcpHdr.next())
{
netAmt = rsRcpHdr.getDouble("sum_amt");
}
if(rsRcpHdr != null)
{
rsRcpHdr.close();
rsRcpHdr = null;
}
pstmtRcpHdr.clearParameters();
exchRateStr = genericUtility.getColumnValue("exch_rate", xmlDom);
custCodeRcp = genericUtility.getColumnValue("cust_code", xmlDom);
itemSerRcp = genericUtility.getColumnValue("item_ser", xmlDom);
if(exchRateStr != null && exchRateStr.trim().length() > 0)
{
exchRate = Double.parseDouble(exchRateStr);
}
String round = "";
int roundTo = 0;
String sqlCust = "select round, case when round_to is null then 0.001 else round_to end as round_to from customer where cust_code = ?";
pstmtCust = conn.prepareStatement(sqlCust);
pstmtCust.setString( 1, custCodeRcp );
rsCust = pstmtCust.executeQuery();
if( rsCust.next() )
{
round = rsCust.getString("round");
//roundTo = rs.getDouble("round_to");
roundTo = rsCust.getInt("round_to");
if( round == null )
{
String sqlItemSer = "select round_inv_to from itemser where item_ser = ?";
pstmtItemSer = conn.prepareStatement(sqlItemSer);
pstmtItemSer.setString( 1, itemSerRcp );
rsItemSer = pstmtItemSer.executeQuery();
if(rsItemSer.next())
{
roundTo = rsItemSer.getInt("round_inv_to");
System.out.println("997 round ["+round+"] roundTo[ "+roundTo+"]");
if( roundTo == 0.0 )
{
/*errString = itmDBAccessEJB.getErrorString("", "VTRND", userId);
return errString;*/
}
else
{
round = "R";
/*amount = round(netAmt,roundTo);
System.out.println("997 roundAmt ["+amount+"] totAmt[ "+netAmt+"] roundTo ["+roundTo+"]");
roundAdj = netAmt - amount;
*//**Condition added by santosh on 22-MAR-2019 to make round off with 3 decimal value*//*
String totAmtStr= ""+netAmt;
String[] totAmtStrArr = totAmtStr.split("\\.");
int diffVal = totAmtStrArr[1].length();
roundAdj=round(roundAdj, diffVal);
System.out.println("@S@>>> 1344 [diffAmt"+roundAdj+"]");*/
/**Condition added by santosh on 22-MAR-2019 to make round off with 3 decimal value*/
}
}
if(rsItemSer != null)
{
rsItemSer.close();
rsItemSer = null;
}
if(pstmtItemSer != null)
{
pstmtItemSer.close();
pstmtItemSer = null;
}
}
/*else
{*/
if(roundTo > 0.0)
{
//roundAmt = round(totAmt,roundTo);
amount = disCom.getRndamt(netAmt, round, roundTo);
System.out.println("1030 totAmt ["+netAmt+" round ["+round+"] roundTo ["+roundTo+"]");
//totAmtHdr = totAmtHdr+roundAmt;
roundAdj = netAmt - amount;
//roundAdj = amount - netAmt;
System.out.println("1030 roundAmt ["+amount+"] diffAmt ["+roundAdj+"] totAmtHdr []");
/**Condition added by santosh on 22-MAR-2019 to make round off with 3 decimal value*/
String totAmtStr= ""+netAmt;
String[] totAmtStrArr = totAmtStr.split("\\.");
int diffVal = totAmtStrArr[1].length();
roundAdj=round(roundAdj, diffVal);
System.out.println("@S@>>> 1344 [diffAmt"+roundAdj+"]");
/**Condition added by santosh on 22-MAR-2019 to make round off with 3 decimal value*/
}
else
{
amount = netAmt;
}
}
if(rsCust != null)
{
rsCust.close();
rsCust = null;
}
if(pstmtCust != null)
{
pstmtCust.close();
pstmtCust = null;
}
amountBc = amount*exchRate;
//amountBc = netAmt*exchRate;
pstmtUpdRcp.setDouble(1, amount);
//pstmtUpdRcp.setDouble(1, netAmt);
pstmtUpdRcp.setDouble(2, amountBc);
pstmtUpdRcp.setDouble(3, -1*roundAdj);
pstmtUpdRcp.setString(4, generatedId);
//pstmtUpdRcp.setString(3, generatedId);
int updRcpCnt = pstmtUpdRcp.executeUpdate();
pstmtUpdRcp.clearParameters();
System.out.println("updRcpCnt>>"+updRcpCnt);
// Added by Dipali D.on 26/11/2019[START]
if(dbNoteFinEntity.contains(finEntity))
{
System.out.println("Inside dbNoteFinEntity");
System.out.println("generatedId===>"+generatedId);
pstmtUpdateCr.setString(1, dbNoteCRTerm);
pstmtUpdateCr.setString(2, generatedId);
//pstmtUpdRcp.setString(3, generatedId);
pstmtUpdateCr.executeUpdate();
pstmtUpdateCr.clearParameters();
}
// Added by Dipali D.on 26/11/2019[END]
/***Condition added by santosh [08-MAY2019] to update round off amount in drcr_racct .START*/
String temp= "",tempCctr="";
/**Commented by santosh on 09-MAY-2019
* String[] tempStr= new String[20];
* temp = finCom.getFinparams("999999", "DRCR_ACCT_RND", conn);
if(temp.contains(";"))
{
tempStr = temp.split(";");
temp = tempStr[0];
tempCctr = tempStr[1];
System.out.println("@S@ 807 temp ["+temp + "] tempStr ["+tempStr+"]");
}
*/
sql="select var_value,addl_value from finparm where prd_code = '999999' and var_name = 'DRCR_ACCT_RND' ";
pstmtCust = conn.prepareStatement(sql);
rsCust=pstmtCust.executeQuery();
if(rsCust.next())
{
temp = checkNull(rsCust.getString("var_value"));
tempCctr = checkNull(rsCust.getString("addl_value"));
}
if(rsCust != null)
{
rsCust.close();
rsCust = null;
}
if(pstmtCust != null)
{
pstmtCust.close();
pstmtCust = null;
}
System.out.println("@S@ 807 temp ["+temp + "] tempCctr ["+tempCctr+"]");
sql ="update drcr_racct set amount= ? where tran_id = ? and acct_code = ? and cctr_code = ? ";
pstmtCust = conn.prepareStatement(sql);
pstmtCust.setDouble(1, -1*roundAdj);
pstmtCust.setString( 2, generatedId );
pstmtCust.setString(3, temp);
pstmtCust.setString(4, tempCctr);
int updQery = pstmtCust.executeUpdate();
System.out.println("@S@>updQery["+updQery+"]");
if(pstmtCust != null)
{
pstmtCust.close();
pstmtCust = null;
}
/***Condition added by santosh [08-MAY2019] to update round off amount in drcr_racct .END*/
conn.commit();
retString = executeSystemEvent("drcrrcp_dr", "pre_confirm", generatedId, xtraParams, conn);
System.out.println("retString ::: " + retString);
String confirmedDrcr = "";
pstmtDrcr.setString(1, generatedId);
rsDrcr = pstmtDrcr.executeQuery();
if(rsDrcr.next())
{
confirmedDrcr = rsDrcr.getString("confirmed");
}
if(rsDrcr != null)
{
rsDrcr.close();
rsDrcr = null;
}
pstmtDrcr.clearParameters();
//if((retString.indexOf("VTSUCC1") > -1 || retString.indexOf("CONFSUCCES") > -1))
if("Y".equalsIgnoreCase(confirmedDrcr))
{
//detArgList.clear();
//debitTranIdList.clear(); //commented by narendra for getting remaining tranid for confirmation
System.out.println("520 Inisde");
parentNodeList = xmlDom.getElementsByTagName("Detail2");
parentNodeListLength = parentNodeList.getLength();
System.out.println("parentNodeListLength Detail2:::::::::"+parentNodeListLength);
for (int selectedRow = 0; selectedRow < parentNodeListLength; selectedRow++)
{
parentNode = parentNodeList.item(selectedRow);
childNodeList = parentNode.getChildNodes();
childNodeListLength = childNodeList.getLength();
System.out.println("childNodeListLength::: " + childNodeListLength + "\n");
for (int childRow = 0; childRow < childNodeListLength; childRow++)
{
childNode = childNodeList.item(childRow);
childNodeName = childNode.getNodeName();
System.out.println("childNodeName :" + childNodeName);
if(childNodeName.equalsIgnoreCase("invoice_id"))
{
if(childNode.getFirstChild() != null)
{
invoiceIdRcp = childNode.getFirstChild().getNodeValue();
}
}
if(childNodeName.equalsIgnoreCase("tran_id__rcp"))
{
if(childNode.getFirstChild() != null)
{
tranIdRcp = childNode.getFirstChild().getNodeValue();
}
}
}
updtcnt = updateRcpdet( tranIdRcp, invoiceIdRcp, "S-INV", generatedId, conn );
}
isError=false;
conn.commit();
successCnt++;
}
else
{
System.out.println("526 Inisde");
pstmtUpdate.setString(1, generatedId);
//int updateCnt = pstmtUpdate.executeUpdate();
pstmtUpdate.clearParameters();
//System.out.println("526 Inisde updateCnt>>"+updateCnt);
pstmtDelete.setString(1, generatedId);
//int delCnt = pstmtDelete.executeUpdate();
pstmtDelete.clearParameters();
//System.out.println("526 Inisde delCnt>>"+delCnt);
isError=true;
//break;
//conn.commit();
}
}
//isError = false;
//conn.commit();
//commit here
//conn.commit();
//dom = genericUtility.parseString(returnString);
//generatedId = genericUtility.getColumnValue("TranID",dom);
//System.out.println("dom>>>"+dom);
}
}
}
}
//returning error message for the data that has been delayed in payment
System.out.println("549 @narendra process counter is : "+processCounter);
if(processCounter==finChgCalList.size()){
errString = itmDBAccessEJB.getErrorString("", "VNDPF", userId);
return errString;
}
if( !isError )
{/*
conn.commit();
if("N".equalsIgnoreCase(mdrFinchgDr))
{
System.out.println("detArgList ["+detArgList+"]");
updtcnt = updateRcpdet( detArgList, conn );
System.out.println("updCnt ["+updtcnt+"]");
//System.out.println(" updtcnt ["+updtcnt+"] ");
conn.commit();
}
if("Y".equalsIgnoreCase(postYn) )
{
System.out.println(" updtcnt ["+updtcnt+"] detArgList.size() ["+detArgList.size()+"] debitTranIdList ["+debitTranIdList+"]");
if( "N".equalsIgnoreCase(mdrFinchgDr) && updtcnt == detArgList.size())
{
if(debitTranIdList.size() > 0 )
{
for(int idctr=0;idctr< debitTranIdList.size();idctr++)
{
generatedId = debitTranIdList.get(idctr);
retString = executeSystemEvent("drcrrcp_dr", "pre_confirm", generatedId, xtraParams, conn);
System.out.println("retString ::: " + retString);
if(retString.indexOf("VTSUCC1") > -1 || retString.indexOf("CONFSUCCES") > -1 || retString.indexOf("VTMCONF20") >-1 )
{
detArgList.clear();
//debitTranIdList.clear(); //commented by narendra for getting remaining tranid for confirmation
System.out.println("520 Inisde");
isError=false;
}
else
{
System.out.println("526 Inisde");
isError=true;
break;
}
}
}
}
if(miscTranIdList.size() > 0 )
{
for(int idctr=0;idctr< miscTranIdList.size();idctr++)
{
generatedId = miscTranIdList.get(idctr);
retString = executeSystemEvent("misc_drcr_rcp_dr", "pre_confirm", generatedId, xtraParams, conn);
System.out.println("retString ::: " + retString);
if(retString.indexOf("VTSUCC1") > -1 || retString.indexOf("CONFSUCCES") > -1 || retString.indexOf("VTMCONF20") >-1)
{
//miscTranIdList.clear();
System.out.println("501 Inisde");
isError=false;
}
else
{
System.out.println("507 Inisde");
isError=true;
break;
}
}
}
}
*/}
}
//if(!isError)
if(successCnt == 0)
{
errString = itmDBAccessEJB.getErrorString("","VTEPSUCC",userId);
System.out.println("process completed .."+errString+"isError"+isError);
retString = errString;
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTSUCC1",userId);
System.out.println("process fail .."+errString+"isError"+isError);
retString = errString;
}
}//End try
catch(SQLException se)
{
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("SQLException :: "+se.getMessage());
throw new ITMException(se);
}
catch(Exception e)
{
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
System.out.println("Exception in FinanceChargeCalcPrc :: Process :: "+e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
System.out.println("Closing Connection....."+isError);
if(rsDrcr != null)
{
rsDrcr.close();
rsDrcr = null;
}
if(pstmtDrcr != null)
{
pstmtDrcr.close();
pstmtDrcr = null;
}
if(pstmtUpdRcp != null)
{
pstmtUpdRcp.close();
pstmtUpdRcp = null;
}
if(pstmtUpdate != null)
{
pstmtUpdate.close();
pstmtUpdate = null;
}
if(pstmtDelete != null)
{
pstmtDelete.close();
pstmtDelete = null;
}
if(rsItemSer != null)
{
rsItemSer.close();
rsItemSer = null;
}
if(pstmtItemSer != null)
{
pstmtItemSer.close();
pstmtItemSer = null;
}
if(rsCust != null)
{
rsCust.close();
rsCust = null;
}
if(pstmtCust != null)
{
pstmtCust.close();
pstmtCust = null;
}
if(rsRcpHdr != null)
{
rsRcpHdr.close();
rsRcpHdr = null;
}
if(pstmtRcpHdr != null)
{
pstmtRcpHdr.close();
pstmtRcpHdr = null;
}
if(rsTax != null)
{
rsTax.close();
rsTax = null;
}
if(pstmtTax != null)
{
pstmtTax.close();
pstmtTax = null;
}
if(pstmtRacct != null)
{
pstmtRacct.close();
pstmtRacct = null;
}
if(rsSQLRacct != null)
{
rsSQLRacct.close();
rsSQLRacct = null;
}
if(pstmtSQLRacct != null)
{
pstmtSQLRacct.close();
pstmtSQLRacct = null;
}
if(conn != null )
{
if(!isError)
{
conn.commit();
}
else
{
conn.rollback();
}
}
conn.close();
conn = null;
}catch(Exception se){}
}
return retString;
}
private double getFinChgIntAmt(int rcpAmt, double lateDays, String crTerm, Timestamp invDate, Connection conn) throws Exception
{
PreparedStatement pstmt = null;
DistCommon disCom = new DistCommon();
ResultSet rs = null;
String sql = "",fchgType= "";
Double intAmt= 0.0,finChg = 0.0,intAmtDec=0.0;
sql = "select fin_chg, fchg_type from crtermfc"
+" where cr_term = ? and min_day <= ? and max_day >= ?"
+" and min_cramt <= ? and max_cramt >= ?"
+" and eff_date <= ? and valid_upto >= ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, crTerm);
pstmt.setDouble(2, lateDays);
pstmt.setDouble(3, lateDays);
pstmt.setDouble(4, rcpAmt);
pstmt.setDouble(5, rcpAmt);
pstmt.setTimestamp(6, invDate);
pstmt.setTimestamp(7, invDate);
rs = pstmt.executeQuery();
while( rs.next() )
{
finChg = rs.getDouble("fin_chg");
fchgType = rs.getString("fchg_type");
if( "P".equalsIgnoreCase(fchgType))
{
/*lc_intamt = ((ac_amount * lc_finchg / 100 ) /365) * al_no_days*/
intAmt = ((rcpAmt*lateDays*finChg/100)/365);
}
else if( "F".equalsIgnoreCase(fchgType) )
{
//lc_intamt = lc_finchg
intAmt = finChg;
}
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
//System.out.println(" 503 inside ["+intAmt+"]");
intAmtDec = disCom.getRequiredDecimal(intAmt, 2);
//System.out.println(" 503 intAmtDec ["+intAmtDec+"]");
return intAmtDec;
}
private String createFinchgDrn(ArrayList<FinChangeCalBean> finalFinaChgCalList, String tranDate, String postYn,String acctCodeAr, String cctrCodeAr,String siteCode, String transType,String xtraParams, Connection conn) throws Exception
{
String mdrFinchgDr="";
java.util.Date ldChgDate=null;
String trnoFld = "",refSer="",invoiceId="",sql = "",sql1="",finEntity="",currCode="",currCodeCr="",siteCodeCr="",cctrCode="",acctCode="",transer="",trnofld="",postType="",drcrFlag="",loginEmpCode="",termId="",userId="",rndStr = "",rndOffStr="",rndtToStr="",rndStrto="";
String temp= "",custCode="",accCode="",salesPerson="",rcpNo="",tranIdDrn="",errString="",itemSer="",round="",detailTranId="",tempCctr="",siteStateCode="",cusStateCode="",genDescr="";
String udfStr1="",udfStr2="",udfStr3="",reasCode="",taxEnvironment="",taxClass="",gpSer="";
String sql2="",itemCode="",tranType="";
String[] tempStr= new String[20];
String[] genCode = new String[20];
String[] acctCodeArr = new String[20];
int roundTo = 0;
double exchRate = 0.0,intAmt = 0.0,finChg = 0.0,netAmt=0.0,totNetAmt=0.0,tempVal=0.0,rateClg=0.0,totAmt=0.0 ,diffAmt=0.0,roundAmt=0.0,totAmtHdr=0.0;
FinCommon finCom = new FinCommon();
DistCommon disCom = new DistCommon();
ArrayList<FinChangeCalBean> FinaChgCalList = null;
FinChangeCalBean finCalChgBean = null;
FinChangeCalBean finCusChgBean = null;
ArrayList<String> genCodeList =null;
PreparedStatement pstmt = null,pstmtl=null,pstmtlGen=null;
ResultSet rs = null,rsl= null,rsGen=null;
StringBuffer xmlBuff = null;
StringBuffer xmlBuffDet = null;
boolean isHeaderCreated = false;
E12GenericUtility genericUtility = new E12GenericUtility();
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
int llLineNo = 0,lineNo=0;
String xmlString="";
HashMap<ArrayList<String>,ArrayList<String>> dataMap = new HashMap<ArrayList<String>, ArrayList<String>>();
String forcedFlag="";
try
{
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "user_id");
loginEmpCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginEmpCode");
termId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId");
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
mdrFinchgDr = finCom.getFinparams("999999", "MDR_FINCHG_DR", conn);
if("NULLFOUND".equalsIgnoreCase(mdrFinchgDr) || mdrFinchgDr.length() == 0 )
{
mdrFinchgDr = "N";
}
finCusChgBean = new FinChangeCalBean();
finCusChgBean = finalFinaChgCalList.get(0);
custCode = finCusChgBean.getCustCode();
//System.out.println("675 Inisde custCode ["+custCode+"]");
sql2 = "select descr,udf_str1,udf_str2,udf_str3 from gencodes where fld_name='DEBIT_TAXENV'";
pstmtlGen = conn.prepareStatement(sql2);
rsGen = pstmtlGen.executeQuery();
if(rsGen.next())
{
genDescr = rsGen.getString("descr");
udfStr1 = rsGen.getString("udf_str1");
udfStr2 = rsGen.getString("udf_str2");
udfStr3 = rsGen.getString("udf_str3");
sql ="select state_code from site where site_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString( 1, siteCode);
rs = pstmt.executeQuery();
if( rs.next() )
{
siteStateCode = rs.getString("state_code");
sql1 ="select state_code from customer where cust_code = ? ";
pstmtl = conn.prepareStatement(sql1);
pstmtl.setString( 1, custCode);
rsl = pstmtl.executeQuery();
if(rsl.next())
{
cusStateCode = rsl.getString("state_code");
}
pstmtl.close();
pstmtl = null;
rsl.close();
rsl = null;
// = genDescr.split(",");
genCodeList = new ArrayList<String>(Arrays.asList(genDescr.split(",")));
if ((siteStateCode.equalsIgnoreCase(cusStateCode)) && (genCodeList.contains(cusStateCode)))
{
taxEnvironment = udfStr1;
}
if ((siteStateCode.equalsIgnoreCase(cusStateCode)) && (!genCodeList.contains(cusStateCode)))
{
taxEnvironment = udfStr2;
}
if (!siteStateCode.equalsIgnoreCase(cusStateCode))
{
taxEnvironment = udfStr2;
taxClass = udfStr3;
}
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
}
pstmtlGen.close();
pstmtlGen = null;
rsGen.close();
rsGen = null;
// System.out.println("539 Inisde ["+ finalFinaChgCalList.size() +"]");
if( "Y".equalsIgnoreCase(mdrFinchgDr) )
{
transer = "MDRCRC";
trnofld = "tran_id";
postType = finCom.getFinparams("999999", "SALES_INV_POST_HDR", conn);
if("NULLFOUND".equalsIgnoreCase(postType))
{
postType = "H";
}
drcrFlag ="D";
transer = "MDRCRD";
finCalChgBean = new FinChangeCalBean();
finCalChgBean = finalFinaChgCalList.get(0);
invoiceId = finCalChgBean.getRefNo();
refSer = finCalChgBean.getRefSer();
itemSer = finCalChgBean.getItemSer();
custCode = finCalChgBean.getCustCode();
detailTranId = generateTranId( "w_misc_drcr_rcp_dr",siteCode, tranDate,transType,drcrFlag,custCode, conn );
//cctrCodeReco = Fcommon.getAcctDetrTtype(detItemCode," ","TAXRECO",tranType,conn);
//mexchrate = finCommon.getDailyExchRateSellBuy(currCode,"",hsiteCode, genericUtility.getColumnValue("tran_date", dom1), "S", conn);
sql = "select site_code,curr_code, fin_entity, acct_code,cctr_code, SALES_PERS__1"
+" from receivables where tran_ser = ? and ref_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString( 1, refSer);
pstmt.setString( 2, invoiceId);
rs = pstmt.executeQuery();
if(rs.next())
{
siteCodeCr = rs.getString("site_code");
finEntity = rs.getString("fin_entity");
currCodeCr = rs.getString("curr_code");
acctCode = rs.getString("acct_code");
cctrCode = rs.getString("cctr_code");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
System.out.println("618 siteCodeCr ["+siteCodeCr+"] finEntity ["+finEntity+"] custCode ["+custCode+"] acctCode ["+acctCode+"] cctrCode ["+cctrCode+"]");
sql = "select acct_code__ar, cctr_code__ar from customer"
+" where cust_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString( 1, custCode );
rs = pstmt.executeQuery();
if(rs.next())
{
acctCodeAr = rs.getString("acct_code__ar");
cctrCodeAr = rs.getString("cctr_code__ar");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if( (acctCodeAr == null || cctrCodeAr == null) && ( acctCodeAr.trim().length() == 0 || cctrCodeAr.trim().length() == 0 ) )
{
sql1 = "select acct_code__ar, cctr_code__ar from itemser"
+" where item_ser = ?";
pstmtl = conn.prepareStatement(sql1);
pstmtl.setString( 1, itemSer );
rsl = pstmtl.executeQuery();
if( rsl.next() )
{
acctCodeAr = rsl.getString("acct_code__ar");
cctrCodeAr = rsl.getString("cctr_code__ar");
}
pstmtl.close();
pstmtl = null;
rsl.close();
rsl = null;
}
if( (acctCodeAr == null || cctrCodeAr == null) && ( acctCodeAr.trim().length() == 0 || cctrCodeAr.trim().length() == 0 ) )
{
cctrCodeAr = finCom.getAcctDetrTtype(itemCode, itemSer, "AR", tranType, conn);
acctCodeArr = cctrCodeAr.split("~t");
acctCodeAr = acctCodeArr[0];
}
sql1 = "select curr_code from finent where fin_entity = ? ";
pstmt = conn.prepareStatement(sql1);
pstmt.setString( 1, finEntity);
rs = pstmt.executeQuery();
if( rs.next() )
{
currCode = rs.getString("curr_code");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
//detCctr = finCom.getAcctDetrTtype(itemCode, itemSer, purpose, tranType, conn);
exchRate = finCom.getDailyExchRateSellBuy( currCodeCr,currCode,siteCodeCr, tranDate , "B", conn);
System.out.println("626 inside ["+exchRate+"]");
xmlBuff = new StringBuffer();
xmlBuffDet = new StringBuffer();
xmlBuff.append("<?xml version='1.0' encoding='ISO-8859-1'?>\n");
xmlBuff.append("<DocumentRoot>");
xmlBuff.append("<description>").append("Datawindow Root").append("</description>");
xmlBuff.append("<group0>");
xmlBuff.append("<description>").append("Group0 description").append("</description>");
xmlBuff.append("<Header0>");
xmlBuff.append("<objName><![CDATA[").append("misc_drcr_rcp_dr").append("]]></objName>");
xmlBuff.append("<pageContext><![CDATA[").append("1").append("]]></pageContext>");
xmlBuff.append("<objContext><![CDATA[").append("1").append("]]></objContext>");
xmlBuff.append("<editFlag><![CDATA[").append("A").append("]]></editFlag>");
xmlBuff.append("<focusedColumn><![CDATA[").append("").append("]]></focusedColumn>");
xmlBuff.append("<action><![CDATA[").append("SAVE").append("]]></action>");
xmlBuff.append("<elementName><![CDATA[").append("").append("]]></elementName>");
xmlBuff.append("<keyValue><![CDATA[").append("1").append("]]></keyValue>");
xmlBuff.append("<taxKeyValue><![CDATA[").append("").append("]]></taxKeyValue>");
xmlBuff.append("<saveLevel><![CDATA[").append("1").append("]]></saveLevel>");
xmlBuff.append("<forcedSave><![CDATA[").append(true).append("]]></forcedSave>");
xmlBuff.append("<taxInFocus><![CDATA[").append(false).append("]]></taxInFocus>");
xmlBuff.append("<description>").append("Header0 members").append("</description>");
xmlBuff.append("<Detail1 dbID=\"\" domID=\"1\" objName=\"drcrrcp_dr\" objContext=\"1\">");
xmlBuff.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuff.append("<tran_id><![CDATA["+detailTranId+"]]></tran_id>");
if(!isHeaderCreated)
{
xmlBuff.append("<tran_date><![CDATA["+tranDate+"]]></tran_date>");
xmlBuff.append("<site_code><![CDATA["+siteCodeCr+"]]></site_code>");
xmlBuff.append("<fin_entity><![CDATA["+finEntity+"]]></fin_entity>");
xmlBuff.append("<sundry_type><![CDATA["+"C"+"]]></sundry_type>");
xmlBuff.append("<sundry_code><![CDATA["+custCode+"]]></sundry_code>");
xmlBuff.append("<item_ser><![CDATA["+itemSer.trim()+"]]></item_ser>");
xmlBuff.append("<acct_code><![CDATA["+checkNull(acctCode) +"]]></acct_code>");
xmlBuff.append("<cctr_code><![CDATA["+ cctrCode +"]]></cctr_code>");
xmlBuff.append("<eff_date><![CDATA["+tranDate+"]]></eff_date>");
xmlBuff.append("<curr_code><![CDATA["+currCode+"]]></curr_code>");
xmlBuff.append("<exch_rate><![CDATA["+exchRate+"]]></exch_rate>");
xmlBuff.append("<drcr_flag><![CDATA["+drcrFlag+"]]></drcr_flag>");
xmlBuff.append("<emp_code__aprv><![CDATA["+loginEmpCode+"]]></emp_code__aprv>");
xmlBuff.append("<tran_type><![CDATA["+transType+"]]></tran_type>");
xmlBuff.append("<invoice_id><![CDATA["+invoiceId+"]]></invoice_id>");
reasCode = disCom.getDisparams("999999", "FINANCE_DR_RES", conn);
xmlBuff.append("<reas_code><![CDATA["+reasCode+"]]></reas_code>");
xmlBuff.append("<tran_ser><![CDATA["+transer+"]]></tran_ser>");
xmlBuff.append("<due_date><![CDATA["+tranDate+"]]></due_date>");
xmlBuff.append("<chg_date><![CDATA["+tranDate+"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
xmlBuff.append("<chg_term><![CDATA["+termId+"]]></chg_term>");
xmlBuff.append("<tax_env><![CDATA["+taxEnvironment+"]]></tax_env>");
xmlBuff.append("<tax_class><![CDATA["+taxClass+"]]></tax_class>");
rndStr = transer +"-RND";
rndOffStr = finCom.getFinparams("999999", rndStr, conn);
if(!"NULLFOUND".equalsIgnoreCase(rndOffStr))
{
xmlBuff.append("<rnd_off><![CDATA["+ rndOffStr +"]]></rnd_off>");
rndStrto = transer + "-RNDTO";
rndtToStr = finCom.getFinparams("999999", rndStrto, conn);
if( !"NULLFOUND".equalsIgnoreCase(rndOffStr))
{
xmlBuff.append("<rnd_to><![CDATA["+ rndtToStr +"]]></rnd_to>");
}
}
if("D".equalsIgnoreCase(drcrFlag))
{
xmlBuff.append("<remarks><![CDATA[Auto Generated Credit Note for fin charge]]></remarks>");
}
else{
xmlBuff.append("<remarks><![CDATA[Auto Generated Credit Note for fin charge]]></remarks>");
}
//lds_drcr_rcp_hdr.setitem(ll_hdr_row,"adj_misc_crn",ls_adj_misc_crn)
//xmlBuff.append("<adj_misc_crn><![CDATA["+ +"]]></adj_misc_crn>");
miscTranIdList.add(detailTranId);
}
temp = finCom.getFinparams("999999", "ACCT_FINCHG", conn);
tempStr = temp.split(";");
temp = tempStr[0];
tempCctr = tempStr[1];
System.out.println("751 Inside temp ["+temp+"] tempStr ["+tempStr+"]");
//ls_tempCctr = f_get_token(ls_temp,';')
for( int ctr = 0 ; ctr < finalFinaChgCalList.size(); ctr++ )
{
finCalChgBean = new FinChangeCalBean();
finCalChgBean = finalFinaChgCalList.get(ctr);
intAmt = finCalChgBean.getIntAmt();
finChg = finCalChgBean.getFinChg();
custCode = finCalChgBean.getCustCode();
llLineNo++;
xmlBuffDet.append("<Detail2 dbID=\"\" domID=\""+llLineNo+"\" objName=\"misc_drcr_rcp_dr\" objContext=\"2\">");
xmlBuffDet.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuffDet.append("<tran_id><![CDATA["+detailTranId+"]]></tran_id>");
xmlBuffDet.append("<line_no><![CDATA["+llLineNo+"]]></line_no>");
xmlBuffDet.append("<acct_code><![CDATA["+temp+"]]></acct_code>");
xmlBuffDet.append("<cctr_code><![CDATA["+tempCctr+"]]></cctr_code>");
xmlBuffDet.append("<tax_env><![CDATA["+taxEnvironment+"]]></tax_env>");
xmlBuffDet.append("<tax_class><![CDATA["+taxClass+"]]></tax_class>");
//lc_net_amt = lds_finchg.getitemnumber(ll_cc, "int_amt") - lds_finchg.getitemnumber(ll_cc, "fin_chg")
netAmt = intAmt - finChg;
if(netAmt >= 0)
{
xmlBuffDet.append("<amount><![CDATA["+netAmt+"]]></amount>");
xmlBuffDet.append("<net_amt><![CDATA["+netAmt+"]]></net_amt>");
}
totNetAmt = totNetAmt + netAmt;
totNetAmt = disCom.getRequiredDecimal(totNetAmt,3);
xmlBuffDet.append("</Detail2>");
}
if(!isHeaderCreated)
{
xmlBuff.append("<amount><![CDATA["+totNetAmt+"]]></amount>");
xmlBuff.append("<amount__bc><![CDATA["+disCom.getRequiredDecimal( totNetAmt * exchRate, 3 )+"]]></amount__bc>");
}
xmlBuff.append("</Detail1>");
xmlBuff.append(xmlBuffDet);
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
xmlString = xmlBuff.toString();
//added by narendra on date 14-03-2019 on confirming the debit note
/*errString=debitConfirm("misc_drcr_rcp_dr", detailTranId, xtraParams, forcedFlag, conn);
if (errString.indexOf("CONFSUCCES") > -1) {
System.out.println("Sucessfully");
errString="CONFSUCCES";
}
else{
xmlString=errString;
}*/
}
else
{
finCalChgBean = new FinChangeCalBean();
finCalChgBean = finalFinaChgCalList.get(0);
invoiceId = finCalChgBean.getRefNo();
custCode = finCalChgBean.getCustCode();
refSer = finCalChgBean.getRefSer();
itemSer = finCalChgBean.getItemSer();
drcrFlag ="D";
reasCode = disCom.getDisparams("999999", "FINANCE_DR_RES", conn);
gpSer = disCom.getDisparams("999999", "FIN_CHG_GPSER", conn);
detailTranId = generateTranId( "w_drcrrcp_dr",siteCode, tranDate,transType,drcrFlag,custCode, conn );
System.out.println("1017 detailTranId ["+detailTranId+"]");
//Modified by Ahmed on 25/APR/2019[To set account code and cctr code from finparm variable]start
temp = finCom.getFinparams("999999", "ACCT_FINCHG", conn);
tempStr = temp.split(";");
temp = tempStr[0];
tempCctr = tempStr[1];
System.out.println("751 Inside temp ["+temp+"] tempStr ["+tempStr+"]");
//Modified by Ahmed on 25/APR/2019[To set account code and cctr code from finparm variable]end
xmlBuff = new StringBuffer();
xmlBuffDet = new StringBuffer();
xmlBuff.append("<?xml version='1.0' encoding='ISO-8859-1'?>\n");
xmlBuff.append("<DocumentRoot>");
xmlBuff.append("<description>").append("Datawindow Root").append("</description>");
xmlBuff.append("<group0>");
xmlBuff.append("<description>").append("Group0 description").append("</description>");
xmlBuff.append("<Header0>");
xmlBuff.append("<objName><![CDATA[").append("drcrrcp_dr").append("]]></objName>");
xmlBuff.append("<pageContext><![CDATA[").append("1").append("]]></pageContext>");
xmlBuff.append("<objContext><![CDATA[").append("1").append("]]></objContext>");
xmlBuff.append("<editFlag><![CDATA[").append("A").append("]]></editFlag>");
xmlBuff.append("<focusedColumn><![CDATA[").append("").append("]]></focusedColumn>");
xmlBuff.append("<action><![CDATA[").append("SAVE").append("]]></action>");
xmlBuff.append("<elementName><![CDATA[").append("").append("]]></elementName>");
xmlBuff.append("<keyValue><![CDATA[").append("1").append("]]></keyValue>");
xmlBuff.append("<taxKeyValue><![CDATA[").append("").append("]]></taxKeyValue>");
xmlBuff.append("<saveLevel><![CDATA[").append("1").append("]]></saveLevel>");
xmlBuff.append("<forcedSave><![CDATA[").append(true).append("]]></forcedSave>");
xmlBuff.append("<taxInFocus><![CDATA[").append(false).append("]]></taxInFocus>");
xmlBuff.append("<description>").append("Header0 members").append("</description>");
xmlBuff.append("<Detail1 dbID=\"\" domID=\"1\" objName=\"drcrrcp_dr\" objContext=\"1\">");
xmlBuff.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuff.append("<tran_id><![CDATA["+detailTranId+"]]></tran_id>");
//invoiceId = lds_finchg.getitemstring(1, "ref_no")
if(!isHeaderCreated)
{
//xmlBuff.append("<tran_ser><![CDATA[DRNRCP]]></tran_ser>");
System.out.println(""+tranDate+"] ");
xmlBuff.append("<tran_date><![CDATA["+tranDate+"]]></tran_date>");
xmlBuff.append("<eff_date><![CDATA["+tranDate+"]]></eff_date>");
xmlBuff.append("<tran_type><![CDATA["+transType+"]]></tran_type>");
xmlBuff.append("<invoice_id><![CDATA["+invoiceId+"]]></invoice_id>");
xmlBuff.append("<cust_code><![CDATA["+custCode+"]]></cust_code>");
sql = " select site_code,curr_code, fin_entity, acct_code,cctr_code, SALES_PERS__1"
+" from receivables where tran_ser = ? and ref_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString( 1, refSer );
pstmt.setString( 2, invoiceId );
rs = pstmt.executeQuery();
if( rs.next() )
{
siteCodeCr = rs.getString("site_code");
finEntity = rs.getString("fin_entity");
currCodeCr = rs.getString("curr_code");
acctCode = rs.getString("acct_code");
cctrCode = rs.getString("cctr_code");
salesPerson = rs.getString("SALES_PERS__1");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
sql1 = "select curr_code from finent where fin_entity = ? ";
pstmt = conn.prepareStatement(sql1);
pstmt.setString( 1, finEntity);
rs = pstmt.executeQuery();
if( rs.next() )
{
currCode = rs.getString("curr_code");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
exchRate = finCom.getDailyExchRateSellBuy( currCodeCr,currCode,siteCodeCr, tranDate , "B", conn);
System.out.println("862 exchRate ["+exchRate+"]");
xmlBuff.append("<acct_code><![CDATA["+checkNull(acctCode) +"]]></acct_code>");
xmlBuff.append("<curr_code><![CDATA["+ currCode +"]]></curr_code>");
xmlBuff.append("<site_code><![CDATA["+ siteCodeCr +"]]></site_code>");
xmlBuff.append("<fin_entity><![CDATA["+ finEntity +"]]></fin_entity>");
xmlBuff.append("<exch_rate><![CDATA["+ exchRate +"]]></exch_rate>");
xmlBuff.append("<cctr_code><![CDATA["+ cctrCode +"]]></cctr_code>");
temp = finCom.getFinparams("999999", "CR_PRD_ZERO", conn);
if(temp.contains(";"))
{
tempStr = temp.split(";");
temp = tempStr[0];
tempCctr = tempStr[1];
}
System.out.println("883 temp ["+temp+"]tempStr ["+tempStr+"]");
xmlBuff.append("<cr_term><![CDATA["+temp+"]]></cr_term>");
xmlBuff.append("<due_date><![CDATA["+tranDate+"]]></due_date>");
xmlBuff.append("<remarks><![CDATA[AUTOMATIC DEBIT NOTE : FINANCE CHARGE]]></remarks>");
xmlBuff.append("<item_ser><![CDATA["+itemSer.trim()+"]]></item_ser>");
xmlBuff.append("<confirmed><![CDATA[N]]></confirmed>");
xmlBuff.append("<tax_env><![CDATA["+taxEnvironment+"]]></tax_env>");
xmlBuff.append("<tax_class><![CDATA["+taxClass+"]]></tax_class>");
xmlBuff.append("<gp_ser><![CDATA[DRNRCP]]></gp_ser>");
xmlBuff.append("<reas_code><![CDATA["+reasCode+"]]></reas_code>");
xmlBuff.append("<conf_date><![CDATA["+tranDate+"]]></conf_date>");
xmlBuff.append("<emp_code__aprv><![CDATA["+loginEmpCode+"]]></emp_code__aprv>");
xmlBuff.append("<drcr_flag><![CDATA[D]]></drcr_flag>");
xmlBuff.append("<chg_date><![CDATA["+tranDate+"]]></chg_date>");
xmlBuff.append("<add_date><![CDATA["+tranDate+"]]></add_date>");
xmlBuff.append("<chg_user><![CDATA["+userId+"]]></chg_user>");
xmlBuff.append("<add_user><![CDATA["+userId+"]]></add_user>");
xmlBuff.append("<chg_term><![CDATA["+termId+"]]></chg_term>");
xmlBuff.append("<add_term><![CDATA["+termId+"]]></add_term>");
debitTranIdList.add(detailTranId);
}
int difLineNo=0;
System.out.println(" 994 finalFinaChgCalList ["+finalFinaChgCalList.size()+"]");
for( int ctr =0 ; ctr < finalFinaChgCalList.size() ; ctr++ )
{
lineNo++;
xmlBuffDet.append("<Detail2 dbID=\"\" domID=\""+lineNo+"\" objName=\"drcrrcp_dr\" objContext=\"2\">");
xmlBuffDet.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuffDet.append("<tran_id><![CDATA["+detailTranId+"]]></tran_id>");
finCalChgBean = new FinChangeCalBean();
xmlBuffDet.append("<line_no><![CDATA["+lineNo+"]]></line_no>");
finCalChgBean = finalFinaChgCalList.get(ctr);
invoiceId = finCalChgBean.getRefNo();
intAmt = finCalChgBean.getIntAmt();
finChg = finCalChgBean.getFinChg();
refSer = finCalChgBean.getRefSer();
custCode = finCalChgBean.getCustCode();
salesPerson = finCalChgBean.getSalesPerson();
System.out.println("994 invoiceId ["+invoiceId+"] ctr ["+ctr+"]");
xmlBuffDet.append("<invoice_id><![CDATA["+invoiceId+"]]></invoice_id>");
xmlBuffDet.append("<line_no__inv><![CDATA[1]]></line_no__inv>");
xmlBuffDet.append("<line_no__invtrace><![CDATA[1]]></line_no__invtrace>");
xmlBuffDet.append("<sales_pers><![CDATA["+salesPerson+"]]></sales_pers>");
//xmlBuffDet.append("<tax_environment><![CDATA["+taxEnvironment+"]]></tax_environment>");
/*xmlBuffDet.append("<tax_env><![CDATA[+ tax +]]></tax_env>");*/
xmlBuffDet.append("<tax_env><![CDATA["+taxEnvironment+"]]></tax_env>");
xmlBuffDet.append("<tax_class><![CDATA["+taxClass+"]]></tax_class>");
//xmlBuffDet.append("<tax_chap><![CDATA[1234567890]]></tax_chap>");
tempVal = intAmt - finChg;
xmlBuffDet.append("<quantity><![CDATA[1]]></quantity>");
xmlBuffDet.append("<rate><![CDATA["+tempVal+"]]></rate>");
xmlBuffDet.append("<rate__clg><![CDATA["+tempVal+"]]></rate__clg>");
xmlBuffDet.append("<drcr_amt><![CDATA["+tempVal+"]]></drcr_amt>");
xmlBuffDet.append("<net_amt><![CDATA["+tempVal+"]]></net_amt>");
totAmt = totAmt + tempVal;
rcpNo = finCalChgBean.getTranId();
xmlBuffDet.append("<tran_id__rcp><![CDATA["+rcpNo+"]]></tran_id__rcp>");
xmlBuffDet.append("</Detail2>");
sql ="select tran_id__drn from rcpdet where tran_id = ? and ref_ser = ? and ref_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString( 1, rcpNo );
pstmt.setString( 2, refSer );
pstmt.setString( 3, invoiceId );
rs = pstmt.executeQuery();
if( rs.next() )
{
tranIdDrn = rs.getString("tran_id__drn");
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
if( tranIdDrn != null && tranIdDrn.trim().length() > 0 )
{
errString = itmDBAccessEJB.getErrorString("", "VTDUPDRN", userId);
return errString;
}
detArgList.add(rcpNo+"@@@"+refSer+"@@@"+invoiceId+"@@@"+detailTranId);
System.out.println("1247 detArgList ["+detArgList+"]");
if( errString.trim().length() == 0 )
{
itemSer = finCalChgBean.getItemSer();
custCode = finCalChgBean.getCustCode();
sql = "select round, case when round_to is null then 0.001 else round_to end as round_to from customer where cust_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString( 1, custCode );
rs = pstmt.executeQuery();
if( rs.next() )
{
round = rs.getString("round");
//roundTo = rs.getDouble("round_to");
roundTo = rs.getInt("round_to");
if( round == null )
{
sql1 = "select round_inv_to from itemser where item_ser = ?";
pstmtl = conn.prepareStatement(sql1);
pstmtl.setString( 1, itemSer );
rsl = pstmt.executeQuery();
if(rsl.next())
{
roundTo = rs.getInt("round_inv_to");
System.out.println("997 round ["+round+"] roundTo[ "+roundTo+"]");
if( roundTo == 0.0 )
{
errString = itmDBAccessEJB.getErrorString("", "VTRND", userId);
return errString;
}
else
{
round = "R";
/*roundAmt = round(totAmt,roundTo);
System.out.println("997 roundAmt ["+roundAmt+"] totAmt[ "+totAmt+"] roundTo ["+roundTo+"]");
//diffAmt = totAmt - roundAmt;
diffAmt = roundAmt - totAmt;
*//**Condition added by santosh on 22-MAR-2019 to make round off with 3 decimal value*//*
String totAmtStr= ""+totAmt;
String[] totAmtStrArr = totAmtStr.split("\\.");
int diffVal = totAmtStrArr[1].length();
diffAmt=round(diffAmt, diffVal);
System.out.println("@S@>>> 1344 [diffAmt"+diffAmt+"]");*/
/**Condition added by santosh on 22-MAR-2019 to make round off with 3 decimal value*/
}
}
pstmtl.close();
pstmtl = null;
rsl.close();
rsl = null;
}
/*else
{*/
if(roundTo > 0.0)
{
//roundAmt = round(totAmt,roundTo);
roundAmt = disCom.getRndamt(totAmt, round, roundTo);
System.out.println("1030 totAmt ["+totAmt+" round ["+round+"] roundTo ["+roundTo+"]");
//totAmtHdr = totAmtHdr+roundAmt;
diffAmt = totAmt - roundAmt;
//diffAmt = roundAmt - totAmt;
System.out.println("1030 roundAmt ["+roundAmt+"] diffAmt ["+diffAmt+"] totAmtHdr ["+totAmtHdr+"]");
/**Condition added by santosh on 22-MAR-2019 to make round off with 3 decimal value*/
String totAmtStr= ""+totAmt;
String[] totAmtStrArr = totAmtStr.split("\\.");
int diffVal = totAmtStrArr[1].length();
diffAmt=round(diffAmt, diffVal);
System.out.println("@S@>>> 1344 [diffAmt"+diffAmt+"]");
/**Condition added by santosh on 22-MAR-2019 to make round off with 3 decimal value*/
}
/*difLineNo++;
System.out.println("difLineNo 1 ["+difLineNo+"]");
xmlBuffDet.append("<Detail3 dbID=\"\" domID=\""+difLineNo+"\" objName=\"drcrrcp_dr\" objContext=\"2\">");
xmlBuffDet.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuffDet.append("<tran_id><![CDATA["+detailTranId+"]]></tran_id>");
xmlBuffDet.append("<line_no><![CDATA["+difLineNo+"]]></line_no>");
ls_temp = gf_getfinparm('999999', 'ACCT_FINCHG')
ls_tempCctr = f_get_token(ls_temp,';')
temp = finCom.getFinparams("999999", "ACCT_FINCHG", conn);
if(temp.contains(";"))
{
tempStr = temp.split(";");
temp = tempStr[0];
tempCctr = tempStr[1];
System.out.println("1039 temp ["+temp + "] tempStr ["+tempStr+"] tempVal ["+tempVal+"]");
}
xmlBuffDet.append("<acct_code><![CDATA["+temp+"]]></acct_code>");
xmlBuffDet.append("<cctr_code><![CDATA["+tempCctr+"]]></cctr_code>");
//xmlBuffDet.append("<amount><![CDATA["+totAmt+"]]></amount>");
xmlBuffDet.append("<amount><![CDATA["+tempVal+"]]></amount>");
xmlBuffDet.append("</Detail3>");
*/
/* if( diffAmt != 0 )
{
difLineNo++;
System.out.println("difLineNo 2 ["+difLineNo+"]");
xmlBuffDet.append("<Detail3 dbID=\"\" domID=\""+difLineNo+"\" objName=\"drcrrcp_dr\" objContext=\"2\">");
xmlBuffDet.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuffDet.append("<tran_id><![CDATA["+detailTranId+"]]></tran_id>");
xmlBuffDet.append("<line_no><![CDATA["+difLineNo+"]]></line_no>");
ls_temp = gf_getfinparm('999999', 'ACCT_FINCHG')
ls_tempCctr = f_get_token(ls_temp,';')
temp = finCom.getFinparams("999999", "DRCR_ACCT_RND", conn);
if(!"NULLFOUND".equalsIgnoreCase(temp) && temp.contains(";"))
{
tempStr = temp.split(";");
temp = tempStr[0];
tempCctr = tempStr[1];
System.out.println("1039 temp ["+temp + "] tempStr ["+tempStr+"]");
}
else
{
errString = itmDBAccessEJB.getErrorString("", "VSENVAR1", userId);
return errString;
}
System.out.println("1039 temp ["+temp + "] tempStr ["+tempStr+"]");
xmlBuffDet.append("<acct_code><![CDATA["+temp+"]]></acct_code>");
xmlBuffDet.append("<cctr_code><![CDATA["+tempCctr+"]]></cctr_code>");
xmlBuffDet.append("<amount><![CDATA["+-1 * diffAmt+"]]></amount>");
xmlBuffDet.append("</Detail3>");
}*/
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
}
}
difLineNo++;
xmlBuffDet.append("<Detail3 dbID=\"\" domID=\""+difLineNo+"\" objName=\"drcrrcp_dr\" objContext=\"2\">");
xmlBuffDet.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuffDet.append("<tran_id><![CDATA["+detailTranId+"]]></tran_id>");
xmlBuffDet.append("<line_no><![CDATA["+difLineNo+"]]></line_no>");
/*ls_temp = gf_getfinparm('999999', 'ACCT_FINCHG')
ls_tempCctr = f_get_token(ls_temp,';')*/
temp = finCom.getFinparams("999999", "ACCT_FINCHG", conn);
if(temp.contains(";"))
{
tempStr = temp.split(";");
temp = tempStr[0];
tempCctr = tempStr[1];
System.out.println("1039 temp ["+temp + "] tempStr ["+tempStr+"] tempVal ["+tempVal+"]");
}
xmlBuffDet.append("<acct_code><![CDATA["+temp+"]]></acct_code>");
xmlBuffDet.append("<cctr_code><![CDATA["+tempCctr+"]]></cctr_code>");
xmlBuffDet.append("<amount><![CDATA["+totAmt+"]]></amount>");
//xmlBuffDet.append("<amount><![CDATA["+tempVal+"]]></amount>");
xmlBuffDet.append("</Detail3>");
if( diffAmt != 0 )
{
difLineNo++;
System.out.println("difLineNo 2 ["+difLineNo+"]");
xmlBuffDet.append("<Detail3 dbID=\"\" domID=\""+difLineNo+"\" objName=\"drcrrcp_dr\" objContext=\"2\">");
xmlBuffDet.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuffDet.append("<tran_id><![CDATA["+detailTranId+"]]></tran_id>");
xmlBuffDet.append("<line_no><![CDATA["+difLineNo+"]]></line_no>");
/*ls_temp = gf_getfinparm('999999', 'ACCT_FINCHG')
ls_tempCctr = f_get_token(ls_temp,';')*/
temp = finCom.getFinparams("999999", "DRCR_ACCT_RND", conn);
// if(!"NULLFOUND".equalsIgnoreCase(temp) && temp.contains(";")) Commented by santosh on 09-MAY-2019
//to only check NULLFOUND
if(!"NULLFOUND".equalsIgnoreCase(temp))
{
sql="select var_value,addl_value from finparm where prd_code = '999999' and var_name = 'DRCR_ACCT_RND' ";
pstmt = conn.prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next())
{
temp = checkNull(rs.getString("var_value"));
tempCctr = checkNull(rs.getString("addl_value"));
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
/*tempStr = temp.split(";");
temp = tempStr[0];
tempCctr = tempStr[1];
System.out.println("1039 temp ["+temp + "] tempStr ["+tempStr+"]");*/
System.out.println("1039 temp ["+temp + "] tempCctr ["+tempCctr+"]");
}
else
{
errString = itmDBAccessEJB.getErrorString("", "VSENVAR1", userId);
return errString;
}
System.out.println("1039 temp ["+temp + "] tempStr ["+tempStr+"]");
xmlBuffDet.append("<acct_code><![CDATA["+temp+"]]></acct_code>");
xmlBuffDet.append("<cctr_code><![CDATA["+tempCctr+"]]></cctr_code>");
xmlBuffDet.append("<amount><![CDATA["+ ((-1)*diffAmt)+"]]></amount>");
xmlBuffDet.append("</Detail3>");
}
/*System.out.println("@narendra setting detail3");
xmlBuffDet.append("<Detail3 dbID=\"\" domID=\""+1+"\" objName=\"drcrrcp_dr\" objContext=\"2\">");
xmlBuffDet.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuffDet.append("<tran_id><![CDATA["+detailTranId+"]]></tran_id>");
xmlBuffDet.append("<line_no><![CDATA["+1+"]]></line_no>");
ls_temp = gf_getfinparm('999999', 'ACCT_FINCHG')
ls_tempCctr = f_get_token(ls_temp,';')
temp = finCom.getFinparams("999999", "ACCT_FINCHG", conn);
if(temp.contains(";"))
{
tempStr = temp.split(";");
temp = tempStr[0];
tempCctr = tempStr[1];
System.out.println("1039 temp ["+temp + "] tempStr ["+tempStr+"] tempVal ["+tempVal+"]");
}
xmlBuffDet.append("<acct_code><![CDATA["+temp+"]]></acct_code>");
xmlBuffDet.append("<cctr_code><![CDATA["+tempCctr+"]]></cctr_code>");
//xmlBuffDet.append("<amount><![CDATA["+totAmt+"]]></amount>");
xmlBuffDet.append("<amount><![CDATA["+totAmt+"]]></amount>");
System.out.println("@narendra setting detail3"+totAmt);
xmlBuffDet.append("</Detail3>");*/
if(!isHeaderCreated)
{
xmlBuff.append("<amount><![CDATA["+roundAmt+"]]></amount>");
xmlBuff.append("<amount__bc><![CDATA["+roundAmt*exchRate+"]]></amount__bc>");
/*xmlBuff.append("<amount><![CDATA["+totAmt+"]]></amount>");
xmlBuff.append("<amount__bc><![CDATA["+totAmt*exchRate+"]]></amount__bc>");*/
xmlBuff.append("<round_adj><![CDATA["+diffAmt*(-1)+"]]></round_adj>");
}
xmlBuff.append("</Detail1>");
xmlBuff.append(xmlBuffDet);
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
xmlString = xmlBuff.toString();
//added by narendra on date 14-03-2019 on confirming the debit note
/* errString=debitConfirm("drcrrcp_dr", detailTranId, xtraParams, forcedFlag, conn);
if (errString.indexOf("CONFSUCCES") > -1) {
System.out.println("Sucessfully");
errString="CONFSUCCES";
}
else{
xmlString=errString;
}*/
}
}
catch(Exception e)
{
xmlString = "";
System.out.println("Exception :" + e.getMessage() + ":");
throw new ITMException(e);
}
finally
{
try
{
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(pstmtl != null)
{
pstmtl.close();
pstmtl = null;
}
}
catch(Exception e)
{
System.out.println("Exception createFinchgDrn....... :\n"+e.getMessage());
}
}
return xmlString;
}
private String checkNull(String input)
{
if (input == null)
{
input="";
}
return input.trim();
}
private double round(double round,int scale) throws ITMException
{
return Math.round(round*Math.pow(10, scale))/Math.pow(10, scale);
}
public String generateTranId( String windowName, String siteCode,String tranDate,String transType,String drcrFlag,String custCode, Connection conn )throws ITMException, SQLException
{
System.out.println("inside generateTranTd@@.........");
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "";
String tranId = "";
String tranSer1 = "",keyString = "",keyCol = "";
CommonConstants commonConstants = new CommonConstants();
try
{
sql = "SELECT KEY_STRING, TRAN_ID_COL, REF_SER FROM TRANSETUP WHERE TRAN_WINDOW = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, windowName);
rs = pstmt.executeQuery();
System.out.println("keyString :"+sql);
if (rs.next())
{
keyString = rs.getString(1);
keyCol = rs.getString(2);
tranSer1 = rs.getString(3);
}
else
{
sql = "SELECT KEY_STRING, TRAN_ID_COL, REF_SER FROM TRANSETUP WHERE TRAN_WINDOW = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "GENERAL");
rs = pstmt.executeQuery();
System.out.println("keyString :"+sql);
if (rs.next())
{
keyString = rs.getString(1);
keyCol = rs.getString(2);
tranSer1 = rs.getString(3);
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("keyString :"+keyString);
System.out.println("keyCol :"+keyCol);
System.out.println("tranSer1 :"+tranSer1);
String xmlValues = "";
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id></tran_id>";
xmlValues = xmlValues + "<site_code>" + siteCode + "</site_code>";
xmlValues = xmlValues + "<tran_date>"+ tranDate + "</tran_date>";
//xmlValues = xmlValues + "<eff_date>"+ tranDate + "</eff_date>";
//xmlValues = xmlValues + "<tran_type>"+ transType + "</tran_type>";
xmlValues = xmlValues + "<drcr_flag>"+drcrFlag+"</drcr_flag>";
xmlValues = xmlValues + "<cust_code>"+custCode+"</cust_code>";
xmlValues = xmlValues + "</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", commonConstants.DB_NAME);
tranId = tg.generateTranSeqID(tranSer1, keyCol, keyString, conn);
System.out.println("tranId ::"+tranId);
}
catch (SQLException ex)
{
System.out.println("Exception ::" +sql+ ex.getMessage() + ":");
ex.printStackTrace();
throw new ITMException(ex);
}
catch (Exception e)
{
System.out.println("Exception ::" + e.getMessage() + ":");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
if(rs!=null)
{
rs.close();
rs = null;
}
if(pstmt!=null)
{
pstmt.close();
pstmt = null;
}
}
return tranId;
}
private String saveData(String siteCode,String xmlString, String xtraParams,Connection conn) throws ITMException
{
System.out.println("saving data...........");
InitialContext ctx = null;
String retString = null;
MasterStatefulLocal masterStateful = null; // for ejb3
ibase.utility.UserInfoBean userInfo;
String chgUser = "", chgTerm = "";
String loginCode = "", loginEmpCode = "", loginSiteCode = "";
try
{
AppConnectParm appConnect = new AppConnectParm();
E12GenericUtility genericUtility = new E12GenericUtility();
ctx = new InitialContext(appConnect.getProperty());
masterStateful = (MasterStatefulLocal)ctx.lookup("ibase/MasterStatefulEJB/local");
System.out.println("-----------masterStateful------- " + masterStateful);
String [] authencate = new String[2];
authencate[0] = "";
authencate[1] = "";
System.out.println("xmlString to masterstateful [" + xmlString + "]");
userInfo = new ibase.utility.UserInfoBean();
System.out.println("xtraParams>>>>" + xtraParams);
chgUser = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "chgUser");
chgTerm = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "chgTerm");
loginCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
loginEmpCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode");
loginSiteCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
userInfo.setEmpCode(loginEmpCode);
userInfo.setRemoteHost(chgTerm);
userInfo.setSiteCode(loginSiteCode);
userInfo.setLoginCode(loginCode);
userInfo.setEntityCode(loginEmpCode);
System.out.println("userInfo>>>>>" + userInfo);
System.out.println("chgUser :" + chgUser);
System.out.println("chgTerm :" + chgTerm);
System.out.println("loginCode :" + loginCode);
System.out.println("loginEmpCode :" + loginEmpCode);
//retString = masterStateful.processRequest(userInfo, siteCode, true, xmlString,true,conn);
retString = masterStateful.processRequest(userInfo, xmlString, true, conn);
System.out.println("--retString - -"+retString);
}
catch(ITMException itme)
{
System.out.println("ITMException :CreateDistOrder :saveData :==>");
throw itme;
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Exception :CreateDistOrder :saveData :==>");
throw new ITMException(e);
}
return retString;
}
private int updateRcpdet( ArrayList<String> valueStringList,Connection conn) throws ITMException,RemoteException
{
String sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
int updCnt=0;
String rcpDetReference="";
String[] rcpDetArr=null;
String rcpNo="";
String refSer="";
String detailTranId="",invoiceId="";
String refSrNo="",lineNoSrNo="",docKey="";
try
{
for(int ctr=0; ctr < valueStringList.size();ctr++)
{
rcpDetReference = valueStringList.get(ctr);
System.out.println("1416 rcpDetReference ["+rcpDetReference+"]");
rcpDetArr=rcpDetReference.split("@@@");
rcpNo =rcpDetArr[0];
refSer =rcpDetArr[1];
invoiceId = rcpDetArr[2];
detailTranId = rcpDetArr[3];
System.out.println(" 1424 rcpNo ["+rcpNo+"] refSer ["+refSer+"] invoiceId ["+invoiceId+"] detailTranId ["+detailTranId+"]");
sql =" update rcpdet set tran_id__drn = ? where tran_id = '"+rcpNo+"' and ref_ser = '"+refSer+"' and ref_no = '"+invoiceId+"'";
pstmt = conn.prepareStatement(sql);
pstmt.setString( 1, detailTranId );
updCnt+=pstmt.executeUpdate();
pstmt.close();
pstmt=null;
}
}
catch(Exception e)
{
System.out.println("Exception :" + e.getMessage() + ":");
throw new ITMException(e);
}
finally
{
try
{
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Exception \n"+e.getMessage());
}
}
return updCnt;
}
private int updateRcpdet( String rcpNo, String invoiceId, String refSer, String detailTranId, Connection conn) throws ITMException,RemoteException
{
String sql="";
PreparedStatement pstmt=null;
ResultSet rs=null;
int updCnt=0;
String rcpDetReference="";
String[] rcpDetArr=null;
/*String rcpNo="";
String refSer="";
String detailTranId="",invoiceId="";*/
String refSrNo="",lineNoSrNo="",docKey="";
try
{
/*for(int ctr=0; ctr < valueStringList.size();ctr++)
{
rcpDetReference = valueStringList.get(ctr);
System.out.println("1416 rcpDetReference ["+rcpDetReference+"]");
rcpDetArr=rcpDetReference.split("@@@");
rcpNo =rcpDetArr[0];
refSer =rcpDetArr[1];
invoiceId = rcpDetArr[2];
detailTranId = rcpDetArr[3];*/
System.out.println(" 1424 rcpNo ["+rcpNo+"] refSer ["+refSer+"] invoiceId ["+invoiceId+"] detailTranId ["+detailTranId+"]");
sql =" update rcpdet set tran_id__drn = ? where tran_id = '"+rcpNo+"' and ref_ser = '"+refSer+"' and ref_no = '"+invoiceId+"'";
pstmt = conn.prepareStatement(sql);
pstmt.setString( 1, detailTranId );
updCnt+=pstmt.executeUpdate();
pstmt.close();
pstmt=null;
//}
}
catch(Exception e)
{
System.out.println("Exception :" + e.getMessage() + ":");
throw new ITMException(e);
}
finally
{
try
{
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Exception \n"+e.getMessage());
}
}
return updCnt;
}
private String executeSystemEvent(String objName, String eventCode, String tranId, String xtraParams, Connection conn) throws ITMException {
String retValue = "";
System.out.println("Getting transaction in Edit Mode. START");
String xmlInEditMode = getXmlInEditMode(objName, tranId, xtraParams);
System.out.println("Getting transaction in Edit Mode. END");
try {
InitialContext ctx = null;
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
EventManagerLocal eventManager = (EventManagerLocal) ctx.lookup("ibase/EventManagerEJB/local");
retValue = eventManager.executeSystemEvent(objName, eventCode, null, xmlInEditMode, xmlInEditMode, xtraParams, "1");
} catch (Exception e) {
throw new ITMException(e);
}
return retValue;
}
private String getXmlInEditMode(String objName, String tranId, String xtraParams) {
InitialContext ctx = null;
String xmlInEditMode = "";
MasterStatefulLocal masterStateful = null;
AppConnectParm appConnect = new AppConnectParm();
E12GenericUtility genericUtility = new E12GenericUtility();
UserInfoBean userInfo = new UserInfoBean();
try {
userInfo.setLoginCode(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode"));
userInfo.setEmpCode(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode"));
userInfo.setSiteCode(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode"));
userInfo.setEntityCode(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "entityCode"));
userInfo.setProfileId(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "profileId"));
userInfo.setUserType(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "userType"));
userInfo.setRemoteHost(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId"));
ctx = new InitialContext(appConnect.getProperty());
masterStateful = (MasterStatefulLocal) ctx.lookup("ibase/MasterStatefulEJB/local");
masterStateful.setUserInfo(userInfo);
xmlInEditMode = masterStateful.getDetailXMLDomString(objName, "1", "E", tranId, "");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Returning from MasterStateful xmlInEditMode ::: " + xmlInEditMode);
return xmlInEditMode;
}
//added by narendra on date 14-03-2019 for confirmation of the debit note
public String debitConfirm(String businessObj,String tranId,String xtraParams,String forcedFlag, Connection conn) throws Exception, ITMException
{
String methodName = "";
String compName = "";
String retString = "";
String serviceCode = "";
String serviceURI = "";
String actionURI = "";
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String compType="";
MiscDrCrRcpConf conf=null;
try
{
conf=new MiscDrCrRcpConf();
methodName = "gbf_post";
actionURI = "http://NvoServiceurl.org/" + methodName;
sql = "SELECT SERVICE_CODE,COMP_NAME,COMP_TYPE FROM SYSTEM_EVENTS WHERE OBJ_NAME = ? AND EVENT_CODE = 'pre_confirm' ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,businessObj);
rs = pstmt.executeQuery();
if ( rs.next() )
{
serviceCode = rs.getString("SERVICE_CODE");
compName = rs.getString("COMP_NAME");
compType = rs.getString("COMP_TYPE");
}
System.out.println(">>>Debit note serviceCode = "+serviceCode+" compName "+compName);
// Changed by Manish on 01/04/16 for max cursor issue [start]
if (pstmt != null)
{
pstmt.close();
pstmt=null;
}
if (rs !=null)
{
rs.close();
rs=null;
}
if("EJB".equalsIgnoreCase(compType))
{
retString=conf.confirm(tranId, xtraParams, forcedFlag, conn);
}
else{
// Changed by Manish on 01/04/16 for max cursor issue [end]
sql = "SELECT SERVICE_URI FROM SYSTEM_EVENT_SERVICES WHERE SERVICE_CODE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,serviceCode);
rs = pstmt.executeQuery();
if ( rs.next() )
{
serviceURI = rs.getString("SERVICE_URI");
}
System.out.println(">>>Debit Note serviceURI = "+serviceURI+" compName = "+compName);
// Changed by Manish on 01/04/16 for max cursor issue [start]
if (pstmt != null)
{
pstmt.close();
pstmt=null;
}
if (rs !=null)
{
rs.close();
rs=null;
}
// Changed by Manish on 01/04/16 for max cursor issue [end]
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL(serviceURI));
call.setOperationName( new javax.xml.namespace.QName("http://NvoServiceurl.org", methodName ) );
call.setUseSOAPAction(true);
call.setSOAPActionURI(actionURI);
Object[] aobj = new Object[4];
call.addParameter( new javax.xml.namespace.QName("http://NvoServiceurl.org", "component_name"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( new javax.xml.namespace.QName("http://NvoServiceurl.org", "tran_id"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( new javax.xml.namespace.QName("http://NvoServiceurl.org", "xtra_params"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( new javax.xml.namespace.QName("http://NvoServiceurl.org", "forced_flag"), XMLType.XSD_STRING, ParameterMode.IN);
aobj[0] = new String(compName);
aobj[1] = new String(tranId);
aobj[2] = new String(xtraParams);
aobj[3] = new String(forcedFlag);
System.out.println("@@@@@@ call.setReturnType(XMLType.XSD_STRING) executed........");
call.setReturnType(XMLType.XSD_STRING);
retString = (String)call.invoke(aobj);
}
System.out.println(">>>>Confirm Complete Return string from NVO is:==>["+retString+"]");
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try{
if (pstmt != null )
{
pstmt.close();
pstmt = null;
}
if (rs !=null)
{
rs.close();
rs=null;
}
/*if( conn != null ){
conn.close();
conn = null;
}*/
}
catch(Exception e)
{
System.out.println("Exception inCalling confirmed");
e.printStackTrace();
try{
conn.rollback();
}catch (Exception s)
{
System.out.println("Unable to rollback");
s.printStackTrace();
}
throw new ITMException(e);
}
}
return retString;
}
};
\ No newline at end of file
package ibase.webitm.ejb.fin;
import java.rmi.RemoteException;
import ibase.webitm.ejb.ProcessLocal;
import ibase.webitm.utility.ITMException;
import javax.ejb.Local;
@Local
public interface FinanceChargeCalcPrcLocal extends ProcessLocal{
@Override
public String process(String arg0, String arg1, String arg2, String arg3)
throws RemoteException, ITMException;
}
package ibase.webitm.ejb.fin;
import java.rmi.RemoteException;
import ibase.webitm.ejb.ProcessRemote;
import ibase.webitm.utility.ITMException;
import javax.ejb.Remote;
@Remote
public interface FinanceChargeCalcPrcRemote extends ProcessRemote {
@Override
public String process(String arg0, String arg1, String arg2, String arg3)
throws RemoteException, ITMException;
}
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