Commit 0d400c57 authored by cpatil's avatar cpatil

create for recalculation, voucher and penalty


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@98231 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 1f7ef2b9
package ibase.webitm.ejb.dis.adv;
import ibase.system.config.AppConnectParm;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ITMDBAccessLocal;
import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.webitm.ejb.dis.POrderMilestone;
import ibase.webitm.ejb.dis.adv.CreatePoVoucherAdvance;
import ibase.webitm.ejb.sys.UtilMethods;
//import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
import org.apache.axis.encoding.XMLType;
import org.w3c.dom.Document;
import javax.naming.InitialContext;
import javax.xml.rpc.ParameterMode;
//------
public class POMilestoneCnf
{
public String confMilestone( String tranId, String xmlDataAll, String editFlag ) throws Exception
{
String returnStr="";
System.out.println("@@@@@@@@@ POMilestoneCnf:: confMilestone() called ...tranId["+tranId+"]");
Connection conn = null;
try
{
ConnDriver connDriver = new ConnDriver();
if(conn==null)
{
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
}
System.out.println("@@@@@@@@@ workflowForPenalty() called ...tranId["+tranId+"]");
ResultSet rs = null;
PreparedStatement pstmt = null;
String sql="",purcOrder="",lineNoOrd="",tranType="",siteCode="",suppCode="",acctCode="",cctrCode="",taxClass="",taxChap="";
String taxEnv="",taskCode="",taskStatus="",paymentOpt="",remarks="",tranIdVch="",empCodeAprv="",wfStatus="",allowOverride="";
double amount=0,amountOrig=0;
Timestamp tranDate=null,confDate=null,complDate=null,statusDate=null,dueDateTs=null;
Date dueDate=null;
Date currentDate = new Date();
E12GenericUtility genericUtility = new E12GenericUtility();
Calendar currentDate1 = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
String sysDate = sdf.format(currentDate1.getTime());
System.out.println("Now the date is :=> " + sysDate);
System.out.println("@@@@@@@@@ xmlDataAll["+xmlDataAll+"]");
//vishakha method called
POrderMilestone pOrderMilestone = new POrderMilestone();
returnStr = pOrderMilestone.recalcDueDate(tranId, xmlDataAll, conn);
System.out.println("@@@@@@@@@ pOrderMilestone.recalcDueDate() returnStr["+returnStr+"]");
if(returnStr == null || returnStr.trim().length() == 0 || "SUCCESS".equalsIgnoreCase(returnStr))
{
returnStr = workflowForPenalty(tranId, xmlDataAll, conn);
System.out.println("@@@@@@ returnStr["+returnStr+"]");
if(returnStr.indexOf("Success") > -1 || returnStr.indexOf("VTSUCC1") > -1 )
{
System.out.println("@@@@@@@@@ workflowForPenalty return successfully.....");
returnStr = "Y";
}
else
{
System.out.println("@@@@@@@@@ workflowForPenalty failed.....");
returnStr = "N";
}
}
System.out.println("@@@@@@ returnStr["+returnStr+"]");
return returnStr;
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
finally
{
if( conn != null)
{
conn.close();
conn = null;
}
}
}
public String workflowForPenalty(String tranId,String xmlDataAll, Connection conn) throws Exception
{
String returnStr="";
System.out.println("@@@@@@@@@ workflowForPenalty() called ...tranId["+tranId+"]");
ResultSet rs = null;
PreparedStatement pstmt = null;
String sql="",purcOrder="",lineNoOrd="",tranType="",siteCode="",suppCode="",acctCode="",cctrCode="",taxClass="",taxChap="";
String taxEnv="",taskCode="",taskStatus="",paymentOpt="",remarks="",tranIdVch="",empCodeAprv="",wfStatus="",allowOverride="";
double amount=0,amountOrig=0;
Timestamp tranDate=null,confDate=null,complDate=null,statusDate=null,dueDateTs=null;
Date dueDate=null;
StringBuffer xmlBuff = null;
Date currentDate = new Date();
E12GenericUtility genericUtility = new E12GenericUtility();
Calendar currentDate1 = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
String sysDate = sdf.format(currentDate1.getTime());
System.out.println("Now the date is :=> " + sysDate);
// Timestamp newsysDate = java.sql.Timestamp.valueOf( sdf.format(currentDate)+" 00:00:00.0");
Timestamp newsysDate = getCurrdateAppFormat();
System.out.println("Now the date is :=> ["+newsysDate+"]");
java.sql.Timestamp today = null;
java.util.Date date = null;
today = new java.sql.Timestamp(System.currentTimeMillis());
java.text.SimpleDateFormat sdf1 = new java.text.SimpleDateFormat(genericUtility.getDBDateFormat());
date = sdf1.parse(today.toString());
today = java.sql.Timestamp.valueOf(sdf1.format(date).toString() + " 00:00:00.0");
System.out.println(" date today:=> ["+today+"]");
String xtraParams="",tranIdForVoucher="",relAgnst="",returnStr1="" ;
String chgTerm = genericUtility.getValueFromXTRA_PARAMS(xtraParams,"CHG_TERM");
String chgUser = genericUtility.getValueFromXTRA_PARAMS(xtraParams,"CHG_USER");
sql = " select tran_id,tran_date,purc_order,line_no__ord,tran_type,site_code,supp_code,acct_code,cctr_code," +
" tax_class,tax_chap,tax_env, task_code, amount,due_date,task_status,payment_opt,remarks,tran_id__vch," +
" conf_date,compl_date,emp_code__aprv,wf_status,status_date,compl_date,allow_override,amount_orig " +
" from PUR_MILSTN where tran_id = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId );
rs = pstmt.executeQuery();
if (rs.next())
{
tranDate=rs.getTimestamp("tran_date");
purcOrder=checkNull(rs.getString("purc_order"));
lineNoOrd=checkNull(rs.getString("line_no__ord"));
tranType=checkNull(rs.getString("tran_type"));
siteCode=checkNull(rs.getString("site_code"));
suppCode=checkNull(rs.getString("supp_code"));
acctCode=checkNull(rs.getString("acct_code"));
cctrCode=checkNull(rs.getString("cctr_code"));
taxClass=checkNull(rs.getString("tax_class"));
taxChap=checkNull(rs.getString("tax_chap"));
taxEnv=checkNull(rs.getString("tax_env"));
taskCode=checkNull(rs.getString("task_code"));
amount=rs.getDouble("amount");
dueDateTs=rs.getTimestamp("due_date");
dueDate=rs.getDate("due_date");
taskStatus=checkNull(rs.getString("task_status"));
paymentOpt=checkNull(rs.getString("payment_opt"));
remarks=checkNull(rs.getString("remarks"));
tranIdVch=checkNull(rs.getString("tran_id__vch"));
confDate=rs.getTimestamp("conf_date");
complDate=rs.getTimestamp("compl_date");
empCodeAprv=checkNull(rs.getString("emp_code__aprv"));
wfStatus=checkNull(rs.getString("wf_status"));
statusDate=rs.getTimestamp("status_date");
allowOverride=checkNull(rs.getString("allow_override"));
amountOrig=rs.getDouble("amount_orig");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
long timeDiff =0;
sql = " select delay_days from pur_milstn_resch where tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId );
rs = pstmt.executeQuery();
if (rs.next())
{
timeDiff=rs.getLong("delay_days");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
// xml iterate
Document xmlDataAllDom= null;
if(xmlDataAll != null && xmlDataAll.trim().length()!=0)
{
xmlDataAllDom = genericUtility.parseString(xmlDataAll);
System.out.println("xmlDataAll" + xmlDataAll);
}
amount = 0; // testing
paymentOpt = "";
System.out.println("@@@@ before paymentOpt["+paymentOpt+"]amount["+amount+"]");
amount = Double.parseDouble(genericUtility.getColumnValue("amount",xmlDataAllDom)==null?"":genericUtility.getColumnValue("amount",xmlDataAllDom));
paymentOpt = genericUtility.getColumnValue("payment_opt",xmlDataAllDom);
System.out.println("@@@@ paymentOpt["+paymentOpt+"]amount["+amount+"]");
// xml end
/*
if( complDate != null && dueDate!= null && complDate.after(dueDate))
{
UtilMethods utilMethod = new UtilMethods();
timeDiff = utilMethod.DaysAfter(dueDateTs,complDate);
//timeDiff = Double.parseDouble(""+timeDiff(dueDate,complDate));
System.out.println("complDate["+complDate+"]dueDate["+dueDate+"]timeDiff["+timeDiff+"]");
}
*/
//timeDiff = 3;
System.out.println("tranId["+tranId+"]tranType["+tranType+"]timeDiff["+timeDiff+"]paymentOpt["+paymentOpt+"]taskCode["+taskCode+"]");
if( "P".equalsIgnoreCase(tranType))
{ // voucher created for tran type 'P'
System.out.println("@@@@@@@@ voucher created for tran type 'P' ");
sql= " select rel_agnst from PORD_PAY_TERM where purc_order=? and line_no=? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, purcOrder);
pstmt.setString(2, lineNoOrd);
rs = pstmt.executeQuery();
if(rs.next())
{
relAgnst = checkNull(rs.getString("rel_agnst"));
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if("P".equalsIgnoreCase(paymentOpt))
{
CreatePoVoucherAdvance createPoVouchAdv = new CreatePoVoucherAdvance();
returnStr = createPoVouchAdv.createPoVoucher(purcOrder,xtraParams,conn,"PR", 0,today ,taskCode,relAgnst,lineNoOrd);
System.out.println("CreatePoVoucherAdvance returnStr["+returnStr+"]");
if(returnStr.indexOf("Success") > -1)
{
System.out.println("CreatePoVoucherAdvance created Successfully["+returnStr+"]");
conn.commit();
String[] arrayForTranId = returnStr.split("<TranID>");
int endIndex = arrayForTranId[1].indexOf("</TranID>");
tranIdForVoucher = arrayForTranId[1].substring(0,endIndex);
tranIdForVoucher=tranIdForVoucher==null ? "" : tranIdForVoucher.trim();
System.out.println("tranIdForVoucher["+tranIdForVoucher+"]");
returnStr = confirmTranscation("voucher_adv",tranIdForVoucher,xtraParams,conn);
System.out.println("CreatePoVoucherAdvance confirmTranscation returnStr["+returnStr+"]");
if(returnStr.indexOf("Success") > -1 || returnStr.indexOf("VTSUCC1") > -1 )
{
sql = " update pur_milstn set tran_id__vch = ? where tran_id = ? ";
System.out.println("sql :"+sql );
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranIdForVoucher);
pstmt.setString(2,tranId);
int cnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
System.out.println("@@@@@ updated sucessfully pur_milstn tranId["+tranId+"]tranIdForVoucher["+tranIdForVoucher+"]cnt["+cnt+"]");
// conn.commit();
}
}
else
{
conn.rollback();
System.out.println("Voucher not created ...rollback()...");
return returnStr;
}
}
else
{
System.out.println("paymentOpt is 'N' ...rollback()...");
conn.rollback();
return returnStr;
}
}
if( "P".equalsIgnoreCase(tranType) && timeDiff > 0 )
{ // insert into purc_milstn with tran type as 'D'
System.out.println("@@@@@@@@ insert into purc_milstn with tran type as 'D' ");
xmlBuff = new StringBuffer();
System.out.println("--XML CREATION !!!!!--");
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("pur_milstn").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>");
/*---Detail1 screen,starts----*/
xmlBuff.append("<Detail1 dbID=\"\" domID=\"1\" objName=\"pur_milstn\" objContext=\"1\">");
xmlBuff.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuff.append("<tran_id/>");
xmlBuff.append("<tran_date><![CDATA["+ sdf.format(currentDate).toString() +"]]></tran_date>");
xmlBuff.append( "<purc_order><![CDATA["+purcOrder+"]]></purc_order>");
xmlBuff.append( "<line_no__ord><![CDATA["+lineNoOrd+"]]></line_no__ord>");
xmlBuff.append( "<tran_type><![CDATA[D]]></tran_type>");
xmlBuff.append( "<site_code><![CDATA["+siteCode+"]]></site_code>");
xmlBuff.append( "<supp_code><![CDATA["+suppCode+"]]></supp_code>");
xmlBuff.append( "<acct_code><![CDATA["+acctCode+"]]></acct_code>");
xmlBuff.append( "<cctr_code><![CDATA["+cctrCode+"]]></cctr_code>");
xmlBuff.append( "<tax_class><![CDATA["+taxClass+"]]></tax_class>");
xmlBuff.append( "<tax_chap><![CDATA["+taxChap+"]]></tax_chap>");
xmlBuff.append( "<tax_env><![CDATA["+taxEnv+"]]></tax_env>");
xmlBuff.append( "<task_code><![CDATA["+taskCode+"]]></task_code>");
xmlBuff.append( "<amount><![CDATA["+amount+"]]></amount>");
xmlBuff.append( "<due_date><![CDATA["+sdf.format(dueDate).toString()+"]]></due_date>");
// xmlBuff.append( "<due_date><![CDATA["+dueDate+"]]></due_date>");
xmlBuff.append( "<task_status><![CDATA[P]]></task_status>");
xmlBuff.append( "<payment_opt><![CDATA[P]]></payment_opt>");
xmlBuff.append( "<remarks><![CDATA["+remarks+"]]></remarks>");
xmlBuff.append( "<tran_id__vch><![CDATA[]]></tran_id__vch>");
xmlBuff.append( "<confirmed><![CDATA[N]]></confirmed>");
xmlBuff.append( "<conf_date><![CDATA[]]></conf_date>");
xmlBuff.append( "<emp_code__aprv><![CDATA[]]></emp_code__aprv>");
xmlBuff.append( "<wf_status><![CDATA[]]></wf_status>");
xmlBuff.append( "<status_date><![CDATA[]]></status_date>");
xmlBuff.append( "<compl_date><![CDATA[]]></compl_date>");
xmlBuff.append( "<allow_override><![CDATA["+allowOverride+"]]></allow_override>");
xmlBuff.append( "<amount_orig><![CDATA["+amountOrig+"]]></amount_orig>");
xmlBuff.append( "<add_user><![CDATA["+chgUser+"]]></add_user>");
xmlBuff.append( "<add_date><![CDATA["+ sdf.format(currentDate).toString() +"]]></add_date>");
xmlBuff.append( "<add_term><![CDATA["+chgTerm+"]]></add_term>");
xmlBuff.append( "<chg_user><![CDATA["+chgUser+"]]></chg_user>");
xmlBuff.append( "<chg_date><![CDATA["+ sdf.format(currentDate).toString() +"]]></chg_date>");
xmlBuff.append( "<chg_term><![CDATA["+chgTerm+"]]></chg_term>");
xmlBuff.append("</Detail1>");
/*---Detail1 screen,end----*/
/* xmlBuff.append("<Detail2 dbID='' domID=\"1\" objName=\"drcrpay_dr\" objContext=\"2\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" updateFlag=\"A\" status=\"N\" />");
xmlBuff.append("<tran_id/>");
xmlBuff.append("<line_no><![CDATA[]]></line_no>");
xmlBuff.append("<delay_days><![CDATA[]]></delay_days>");
xmlBuff.append("<task_code__delay><![CDATA[]]></task_code__delay>");
xmlBuff.append("<due_date_org><![CDATA[]]></due_date_org>");
xmlBuff.append("<due_date_resch><![CDATA[]]></due_date_resch>");
xmlBuff.append("</Detail2>");*/
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
String xmlString = xmlBuff.toString();
System.out.println("xmlString["+xmlString+"]");
returnStr1 = saveData(siteCode,xmlString,conn);
System.out.println(" saveData returnStr1["+returnStr1+"]");
}
if( "D".equalsIgnoreCase(tranType))
{ // debit note created created
System.out.println("@@@@@@@@ debit note created created for tran type 'D' ");
HashMap<String , String> drcrMap = new HashMap<String, String>();
// sql= " select tran_id__vch from pur_milstn where tran_id = ? ";
sql = " select tran_id__vch from pur_milstn where " +
" purc_order in ( select purc_order from pur_milstn where tran_id = ? ) " +
" and tran_id__vch is not null ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
tranIdVch = checkNull(rs.getString("tran_id__vch"));
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("@@@@@@@@@tranId["+tranId+"]tranIdVch["+tranIdVch+"]");
drcrMap.put("tran_id", tranId);
drcrMap.put("voucher_id", tranIdVch);
drcrMap.put("purc_order", purcOrder);
drcrMap.put("task_code", taskCode);
drcrMap.put("due_date", String.valueOf(dueDate));
drcrMap.put("process_date", sysDate);
drcrMap.put("rel_amt", String.valueOf(amount));
drcrMap.put("date_diff", String.valueOf(timeDiff));
returnStr = createDebitNote(drcrMap,conn);
System.out.println("createDebitNote tranId["+tranId+"]returnStr["+returnStr+"]");
if( returnStr.indexOf("Success") > -1 )
{
System.out.println("createDebitNote created Successfully["+returnStr+"]");
conn.commit();
String[] arrayForTranId = returnStr.split("<TranID>");
int endIndex = arrayForTranId[1].indexOf("</TranID>");
String tranIdForDebit = arrayForTranId[1].substring(0,endIndex);
tranIdForDebit=tranIdForDebit==null ? "" : tranIdForDebit.trim();
System.out.println("-tranIdForDebit["+tranIdForDebit+"]");
returnStr = confirmTranscation("drcrpay_dr",tranIdForDebit,xtraParams,conn);
System.out.println("confirmTranscation debit node returnStr["+returnStr+"]");
// conn.commit();
}
else
{
System.out.println("createDebitNote returnStr... rollback()..["+returnStr+"]");
conn.rollback();
}
}
System.out.println("@@@@@@@@@@@ before status update pur_milstn returnStr["+returnStr+"]");
if(returnStr.indexOf("Success") > -1 || returnStr.indexOf("VTSUCC1") > -1 )
{
sql = " update pur_milstn set wf_status = 'c' ,conf_date = ? ,confirmed = 'Y' where tran_id = ? ";
System.out.println("sql :"+sql );
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,newsysDate);
pstmt.setString(2,tranId);
int cnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
System.out.println("@@@@@ updated sucessfully pur_milstn tranId["+tranId+"]cnt["+cnt+"]wf_status='c',confirmed='Y'");
conn.commit();
}
System.out.println("@@@@@@@@@@@ final returnStr["+returnStr+"]");
return returnStr;
}
private Timestamp getCurrdateAppFormat()
{
//String s = "";
Timestamp timestamp = null;
E12GenericUtility genericUtility = new E12GenericUtility();
try
{
java.util.Date date = null;
timestamp = new Timestamp(System.currentTimeMillis());
SimpleDateFormat simpledateformat = new SimpleDateFormat(genericUtility.getDBDateFormat());
date = simpledateformat.parse(timestamp.toString());
timestamp = Timestamp.valueOf(simpledateformat.format(date).toString() + " 00:00:00.0");
}
catch(Exception exception)
{
System.out.println("Exception in getCurrdateAppFormat " + exception.getMessage());
}
return timestamp;
}
public String createDebitNote(HashMap<String,String> drcrMap,Connection conn)
throws RemoteException, ITMException {
StringBuffer xmlBuff = null;
String xmlString = null;
// Connection conn = null;
PreparedStatement pstmt = null,pstmt1 = null,pstmt2 = null,pstmt3 = null;
ResultSet rs = null, rs1 = null,rs2 = null,rs3 = null;
String retString = "",errString = "",siteCode="",chgUser="",chgTerm="",loginEmpCode="",acctCodeDr="",cctrCodeDr="";
String suppCode="",currCode="",acctCode="",cctrCode="",tranSer="",bankCode="",finEntity="",vouchType="",projCode="";
String dueDate="",processDate="",voucherId="",xtraParams="",lineNoStr = "", frtTerm = "";
String noArticle="0",entityNameDlv="",relAmt="",purcOrder="",taskCode="",retString1="",sql="",fchgType="";
String lineNoDet="",acctCdDet="",cctrCdDet="",exchRateDet="",analysisDet1="",analysisDet2="",analysisDet3="",taxClassDet="",taxChapDet="",taxEnvDet="",taxChepDet="";
Date dispatchDate=null,processDate1=null,dueDate1=null;
int cnt = 0,count=0,detailsCnt =0,shipmentleadTime=0,lineNo=0,minDays=0,maxDays=0;
//ConnDriver connDriver = new ConnDriver();
ITMDBAccessLocal itmDBAccessLocal = new ITMDBAccessEJB();
long diff=0,datediff=0;
double finChrge=0.0,minAmt=0.0,maxAmt=0.0,amtDet=0.0,taxAmtDet=0.0,amount=0.0,pentlyAmt=0.0;
double exchRate = 0.0,billAmt=0.0,taxAmt=0.0,totAmt=0.0,netAMt=0.0;
Date taxDate=null,effDate=null;
HashMap<String,String> vocDetMap = new HashMap<String,String>();
boolean flag=false;
E12GenericUtility genericUtility = new E12GenericUtility();
String taxClass="",taxChap="",taxEnv="";
try
{
System.out.println("createDebitNote called....");
Date currentDate = new Date();
xmlBuff = null;
xmlBuff = new StringBuffer();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
SimpleDateFormat sdf1 = new SimpleDateFormat(genericUtility.getDBDateFormat());
System.out.println("application date format :"+genericUtility.getApplDateFormat());
dueDate=drcrMap.get("due_date");
System.out.println("dueDate :"+dueDate);
processDate=drcrMap.get("process_date");
System.out.println("processDate :"+processDate);
voucherId=drcrMap.get("voucher_id");
purcOrder=drcrMap.get("purc_order");
relAmt=drcrMap.get("rel_amt");
taskCode=drcrMap.get("task_code");
chgUser=drcrMap.get("chg_user");
chgTerm=drcrMap.get("chg_term");
System.out.println("date_diff!!! : "+drcrMap.get("date_diff"));
datediff=Long.parseLong(drcrMap.get("date_diff"));
String tranId=drcrMap.get("tran_id");
System.out.println("dueDate :"+dueDate);
System.out.println("processDate :"+processDate);
System.out.println("voucherId :"+voucherId);
System.out.println("purcOrder :"+purcOrder);
System.out.println("relAmt :"+relAmt);
System.out.println("taskCode :"+taskCode);
System.out.println("dueDate :"+dueDate);
System.out.println("chgUser :"+chgUser);
System.out.println("chgTerm :"+chgTerm);
System.out.println("processDate :"+processDate);
System.out.println("dueDate1 :"+dueDate1);
System.out.println("processDate1:"+processDate);
System.out.println("datediff :"+datediff);
/*
select * from TARODEV.pord_dlv_term where purc_order='718PNF0299'
and min_day <=14 and max_day>=14
*/
/* sql = "select * from (select min_day,max_day,fin_chg,fchg_type,min_amt,max_amt from pord_dlv_term where " +
"purc_order=? and REF_CODE=? ORDER BY ABS( min_day - ? ) ,ABS( max_day - ? ) ) where rownum <=1 ";*/
sql = " select min_day,max_day,fin_chg,fchg_type,min_amt,max_amt from pord_dlv_term where purc_order= ? " +
" and REF_CODE=? and ? between min_day and max_day ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, purcOrder);
pstmt.setString(2, taskCode);
pstmt.setLong(3, datediff);
//pstmt.setLong(4, datediff);
rs = pstmt.executeQuery();
if (rs.next())
{
//siteCode = rs.getString("SITE_CODE");
minDays=rs.getInt("min_day");
maxDays=rs.getInt("max_day");
finChrge=rs.getDouble("fin_chg");
fchgType=rs.getString("fchg_type");
minAmt=rs.getDouble("min_amt");
maxAmt=rs.getDouble("max_amt");
fchgType=fchgType==null ? "" :fchgType;
System.out.println("minDays :"+minDays);
System.out.println("maxDays :"+maxDays);
System.out.println("finChrge :"+finChrge);
System.out.println("fchgType :"+fchgType);
System.out.println("minAmt :"+minAmt);
System.out.println("maxAmt :"+maxAmt);
System.out.println("========Penalty amount calculation=======");
System.out.println("Purchase order :"+purcOrder);
System.out.println("relAmt :"+relAmt);
System.out.println("finChrge:"+finChrge);
if(fchgType.equalsIgnoreCase("P"))
{
amount=Double.parseDouble(relAmt);
System.out.println("Formula :pentlyAmt=(finChrge * amount)/100;");
pentlyAmt=(finChrge * amount)/100;//finChrge conside as percentage
System.out.println("Calculated pentlyAmt :"+pentlyAmt);
}
else if(fchgType.equalsIgnoreCase("Q"))
{
System.out.println("Formula :pentlyAmt=finChrge * amount");
amount=Double.parseDouble(relAmt);
pentlyAmt=finChrge * amount;//finChrge conside as Quantity
}
else
{
System.out.println("Formula:pentlyAmt=finChrge;");
System.out.println("Formula :pentlyAmt=finChrge");
pentlyAmt=finChrge;//finChrge conside as fixed amount
}
System.out.println("calculate penalaty amount :"+pentlyAmt);
if(pentlyAmt > maxAmt)
{
pentlyAmt=maxAmt;
}
else if(pentlyAmt < minAmt)
{
pentlyAmt=minAmt;
}
flag=true;
System.out.println("selected pentlyAmt from min to max amount:"+pentlyAmt);
}
else
{
System.out.println("data not found in pord_dlv_term for penalty calculation!!");
flag=false;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
/*
if flag is true then only debit node generated.
flag true means purc_order data exist in pord_dlv_term and penalty is greater than 0.
*/
if(flag)
{
sql = " select SUPP_CODE,PURC_ORDER,ACCT_CODE,CCTR_CODE,DUE_DATE,SITE_CODE " +
" from pur_milstn where tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
if (rs.next())
{
suppCode = rs.getString("SUPP_CODE");
purcOrder = rs.getString("PURC_ORDER");
acctCode = rs.getString("ACCT_CODE");
cctrCode = rs.getString("CCTR_CODE");
dueDate1 = rs.getDate("DUE_DATE");
siteCode = checkNull(rs.getString("SITE_CODE"));
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql = " select fin_entity from site where site_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
rs = pstmt.executeQuery();
if (rs.next())
{
finEntity = checkNull(rs.getString("fin_entity"));
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("siteCode["+siteCode+"]finEntity["+finEntity+"]");
sql = " select CURR_CODE,EXCH_RATE , " +
" TAX_AMT,TOT_AMT,TAX_DATE ,TAX_CLASS,TAX_CHAP,TAX_ENV ," +
" PROJ_CODE from porder where PURC_ORDER = ?" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, purcOrder);
rs = pstmt.executeQuery();
if (rs.next())
{
// suppCode = rs.getString("SUPP_CODE");
currCode = rs.getString("CURR_CODE");
exchRate = rs.getDouble("EXCH_RATE");
taxAmt = rs.getDouble("TAX_AMT");
totAmt = rs.getDouble("TOT_AMT");
taxDate = rs.getDate("TAX_DATE");
// taxClass = rs.getString("TAX_CLASS");
// taxChap = rs.getString("TAX_CHAP");
// taxEnv = rs.getString("TAX_ENV");
projCode = rs.getString("PROJ_CODE");
// suppCode=suppCode==null ? "" :suppCode.trim();
purcOrder=purcOrder==null ? "" :purcOrder.trim();
currCode=currCode==null ? "" :currCode.trim();
acctCode=acctCode==null ? "" :acctCode.trim();
cctrCode=cctrCode==null ? "" :cctrCode.trim();
// bankCode=bankCode==null ? "" :bankCode.trim();
siteCode=siteCode==null ? "" :siteCode.trim();
// finEntity=finEntity==null ? "" :finEntity.trim();
// vouchType=vouchType==null ? "" :vouchType.trim();
projCode=projCode==null ? "" :projCode.trim();
// System.out.println("effDate :"+effDate);
System.out.println("suppCode :"+suppCode);
System.out.println("purcOrder :"+purcOrder);
System.out.println("finChrge :"+finChrge);
System.out.println("fchgType :"+fchgType);
System.out.println("currCode :"+currCode);
System.out.println("exchRate :"+exchRate);
System.out.println("acctCode :"+acctCode);
System.out.println("cctrCode :"+cctrCode);
// System.out.println("bankCode :"+bankCode);
System.out.println("dueDate :"+dueDate);
System.out.println("dueDate1 :"+dueDate1);
System.out.println("siteCode :"+siteCode);
System.out.println("finEntity :"+finEntity);
// System.out.println("netAMt :"+netAMt);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
/*sql = " select acct_code__dr,cctr_code__dr from porddet where purc_order= ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,purcOrder);
rs = pstmt.executeQuery();
if (rs.next())
{
acctCodeDr = rs.getString("acct_code__dr");
cctrCodeDr = rs.getString("cctr_code__dr");
acctCodeDr=acctCodeDr==null ? "" :acctCodeDr.trim();
cctrCodeDr=cctrCodeDr==null ? "" :cctrCodeDr.trim();
System.out.println("acctCodeDr :"+acctCodeDr);
System.out.println("cctCodeDr :"+cctrCodeDr);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;*/
sql = " select line_no,site_code,tax_amt,tax_chap,tax_class,tax_env,acct_code__dr," +
" cctr_code__dr from porddet where PURC_ORDER= ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, purcOrder);
rs = pstmt.executeQuery();
while(rs.next())
{
cnt++;
lineNoDet = rs.getString("line_no");
// acctCdDet = rs.getString("ACCT_CODE");
// cctrCdDet = rs.getString("CCTR_CODE");
// amtDet = rs.getDouble("AMOUNT");
taxAmtDet = rs.getDouble("TAX_AMT");
// exchRateDet = rs.getString("exch_rate");
// analysisDet1 = rs.getString("analysis1");
// analysisDet2 = rs.getString("analysis2");
// analysisDet3 = rs.getString("analysis3");
// taxChepDet = rs.getString("tax_chep");
// taxClassDet = rs.getString("tax_class");
// taxEnvDet = rs.getString("tax_env");
// taxChapDet = rs.getString("tax_chap");
acctCodeDr = rs.getString("acct_code__dr");
cctrCodeDr = rs.getString("cctr_code__dr");
lineNoDet=lineNoDet==null ? "" :lineNoDet.trim();
// acctCdDet=acctCdDet==null ? "" :acctCdDet.trim();
// cctrCdDet=cctrCdDet==null ? "" :cctrCdDet.trim();
// exchRateDet=exchRateDet==null ? "" :exchRateDet.trim();
// analysisDet1=analysisDet1==null ? "" :analysisDet1.trim();
// analysisDet2=analysisDet2==null ? "" :analysisDet2.trim();
// analysisDet3=analysisDet3==null ? "" :analysisDet3.trim();
taxClassDet=taxClassDet==null ? "" :taxClassDet.trim();
taxChapDet=taxChapDet==null ? "" :taxChapDet.trim();
// taxChepDet=taxChepDet==null ? "" :taxChepDet.trim();
taxEnvDet=taxEnvDet==null ? "" :taxEnvDet.trim();
System.out.println("taxEnvDet :"+taxEnvDet);
acctCodeDr=acctCodeDr==null ? "" :acctCodeDr.trim();
cctrCodeDr=cctrCodeDr==null ? "" :cctrCodeDr.trim();
System.out.println("lineNoDet :"+lineNoDet);
// System.out.println("acctCdDet :"+acctCdDet);
// System.out.println("cctrCdDet :"+cctrCdDet);
// System.out.println("exchRateDet :"+exchRateDet);
// System.out.println("analysisDet1 :"+analysisDet1);
// System.out.println("analysisDet2 :"+analysisDet2);
// System.out.println("analysisDet3 :"+analysisDet3);
System.out.println("taxClassDet :"+taxClassDet);
System.out.println("taxChapDet :"+taxChapDet);
System.out.println("acctCodeDr :"+acctCodeDr);
System.out.println("cctCodeDr :"+cctrCodeDr);
vocDetMap.put("line_no"+cnt, lineNoDet);
vocDetMap.put("acct_code"+cnt, acctCode);
vocDetMap.put("cctr_code"+cnt, cctrCode);
// vocDetMap.put("amount"+cnt, String.valueOf(amtDet));
vocDetMap.put("tax_amt"+cnt, String.valueOf(taxAmtDet));
vocDetMap.put("exch_rate"+cnt, exchRateDet);
// vocDetMap.put("analysis1"+cnt, analysisDet1);
// vocDetMap.put("analysis2"+cnt, analysisDet2);
// vocDetMap.put("analysis3"+cnt, analysisDet3);
vocDetMap.put("tax_class"+cnt, taxClassDet);
vocDetMap.put("tax_chap"+cnt, taxChapDet);
// vocDetMap.put("tax_chep"+cnt, taxChepDet);
vocDetMap.put("tax_env"+cnt, taxEnvDet);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
tranSer="DRNPAY";
siteCode = siteCode == null ? "" : siteCode.trim();
// create xml for track information
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("drcrpay_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>");
System.out.println("details 1 start!!!!!");
xmlBuff.append("<Detail1 dbID=\"\" domID=\"1\" objName=\"drcrpay_dr\" objContext=\"1\">");
xmlBuff.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuff.append("<tran_id/>");
xmlBuff.append("<tran_date><![CDATA["+ sdf.format(currentDate).toString() + "]]></tran_date>");
xmlBuff.append("<tran_ser><![CDATA[" + tranSer.trim()+ "]]></tran_ser>");
xmlBuff.append("<fin_entity><![CDATA[" + finEntity.trim()+ "]]></fin_entity>");
xmlBuff.append("<supp_code><![CDATA[" + suppCode.trim()+ "]]></supp_code>");
xmlBuff.append("<acct_code><![CDATA[" + acctCode.trim()+ "]]></acct_code>");
xmlBuff.append("<cctr_code><![CDATA[" + cctrCode.trim()+ "]]></cctr_code>");
if(effDate == null)
{
xmlBuff.append("<eff_date><![CDATA[" + sdf.format(currentDate).toString() + "]]></eff_date>");
}
else
{
xmlBuff.append("<eff_date><![CDATA[" + sdf.format(effDate)+ "]]></eff_date>");
}
xmlBuff.append("<vouch_ser><![CDATA[]]></vouch_ser>");
xmlBuff.append("<vouch_no><![CDATA[" + checkNull(voucherId)+ "]]></vouch_no>");
xmlBuff.append("<amount><![CDATA[" + pentlyAmt + "]]></amount>");
xmlBuff.append("<curr_code><![CDATA[" + checkNull(currCode)+ "]]></curr_code>");
xmlBuff.append("<exch_rate><![CDATA[" + exchRate+ "]]></exch_rate>");
xmlBuff.append("<remarks><![CDATA[]]></remarks>");
xmlBuff.append("<chg_user><![CDATA[" + checkNull(chgUser)+ "]]></chg_user>");
xmlBuff.append("<chg_date><![CDATA[" + sdf.format(currentDate).toString() + "]]></chg_date>");
xmlBuff.append("<chg_term><![CDATA[" + checkNull(chgTerm)+ "]]></chg_term>");
xmlBuff.append("<site_code><![CDATA[" + checkNull(siteCode)+ "]]></site_code>");
xmlBuff.append("<anal_code><![CDATA[]]></anal_code>");
xmlBuff.append("<bill_no><![CDATA[]]></bill_no>");
xmlBuff.append("<drcr_flag><![CDATA[D]]></drcr_flag>");
xmlBuff.append("<tran_id__pay><![CDATA[]]></tran_id__pay>");
xmlBuff.append("<confirmed><![CDATA[N]]></confirmed>");
xmlBuff.append("<conf_date><![CDATA[]]></conf_date>");
xmlBuff.append("<cr_term><![CDATA[]]></cr_term>");
/* if(dueDate1 == null)
{
xmlBuff.append("<due_date><![CDATA[]]></due_date>");
}
else
{
xmlBuff.append("<due_date><![CDATA[" + sdf.format(dueDate1) + "]]></due_date>");
}
*/
xmlBuff.append("<due_date><![CDATA[" + sdf.format(currentDate) + "]]></due_date>");
xmlBuff.append("<emp_code__aprv><![CDATA[]]></emp_code__aprv>");
xmlBuff.append("<amount__bc><![CDATA[]]></amount__bc>");
xmlBuff.append("<bill_date><![CDATA[]]></bill_date>");
xmlBuff.append("<vouch_adj><![CDATA[]]></vouch_adj>");
xmlBuff.append("<parent__tran_id><![CDATA[]]></parent__tran_id>");
xmlBuff.append("<rev__tran><![CDATA[]]></rev__tran>");
xmlBuff.append("</Detail1>");
lineNo = 0;
System.out.println("end of details 1");
for (int itemCtr = 1; itemCtr <= cnt; itemCtr++)
{
lineNo++;
System.out.println("lineNo is " + lineNo);
// tempMap = (HashMap)tempList.get(itemCtr);
System.out.println("start of details 2");
xmlBuff.append("<Detail2 dbID='' domID=\"1\" objName=\"drcrpay_dr\" objContext=\"2\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" updateFlag=\"A\" status=\"N\" />");
xmlBuff.append("<tran_id/>");
xmlBuff.append("<line_no>" + lineNo + "</line_no>");
// xmlBuff.append("<vouch_no><![CDATA["+voucherId+"]]></vouch_no>");
// xmlBuff.append("<line_no__vou><![CDATA["+vocDetMap.get("line_no" + itemCtr)+"]]></line_no__vou>");
xmlBuff.append("<item_code><![CDATA[]]></item_code>");
xmlBuff.append("<tax_class><![CDATA["+vocDetMap.get("tax_class" + itemCtr)+"]]></tax_class>");
xmlBuff.append("<tax_chap><![CDATA["+vocDetMap.get("tax_chap" + itemCtr)+"]]></tax_chap>");
xmlBuff.append("<tax_env><![CDATA["+vocDetMap.get("tax_env" + itemCtr)+"]]></tax_env>");
xmlBuff.append("<drcr_amt><![CDATA["+pentlyAmt+"]]></drcr_amt>");
xmlBuff.append("<tax_amt><![CDATA["+vocDetMap.get("tax_amt" + itemCtr)+"]]></tax_amt>");
xmlBuff.append("<net_amt><![CDATA["+pentlyAmt+"]]></net_amt>");
xmlBuff.append("<reas_code><![CDATA[]]></reas_code>");
xmlBuff.append("<acct_code><![CDATA["+acctCodeDr.trim()+"]]></acct_code>");
xmlBuff.append("<cctr_code><![CDATA["+cctrCodeDr.trim()+"]]></cctr_code>");
xmlBuff.append("<amount><![CDATA["+pentlyAmt+"]]></amount>");
// xmlBuff.append("<analysis3><![CDATA["+vocDetMap.get("analysis3" + itemCtr)+"]]></analysis3>");
// xmlBuff.append("<analysis2><![CDATA["+vocDetMap.get("analysis2" + itemCtr)+"]]></analysis2>");
// xmlBuff.append("<analysis1><![CDATA["+vocDetMap.get("analysis1" + itemCtr)+"]]></analysis1>");
xmlBuff.append("</Detail2>");
}// end of for loop
System.out.println("end of details 2");
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
xmlString = xmlBuff.toString();
System.out.println("@@@@@2: retString :" + xmlString);
errString = saveData(siteCode,xmlString,conn);
System.out.println("Passed xml in master State full saveData errString["+errString+"]");
/*
sql = " select EFF_DATE,SUPP_CODE,PURC_ORDER,CURR_CODE,EXCH_RATE ,ACCT_CODE,CCTR_CODE,BANK_CODE," +
" DUE_DATE,SITE_CODE,FIN_ENTITY ,BILL_AMT,TAX_AMT,TOT_AMT,TAX_DATE,VOUCH_TYPE ," +
" PROJ_CODE,NET_AMT from voucher where TRAN_ID = ?" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, voucherId);
rs = pstmt.executeQuery();
if (rs.next())
{
effDate = rs.getDate("EFF_DATE");
suppCode = rs.getString("SUPP_CODE");
purcOrder = rs.getString("PURC_ORDER");
currCode = rs.getString("CURR_CODE");
exchRate = rs.getDouble("EXCH_RATE");
acctCode = rs.getString("ACCT_CODE");
cctrCode = rs.getString("CCTR_CODE");
bankCode = rs.getString("BANK_CODE");
// dueDate = rs.getDate("DUE_DATE");
siteCode = rs.getString("SITE_CODE");
finEntity = rs.getString("FIN_ENTITY");
billAmt = rs.getDouble("BILL_AMT");
taxAmt = rs.getDouble("TAX_AMT");
totAmt = rs.getDouble("TOT_AMT");
taxDate = rs.getDate("TAX_DATE");
vouchType = rs.getString("VOUCH_TYPE");
projCode = rs.getString("PROJ_CODE");
netAMt = rs.getDouble("NET_AMT");
suppCode=suppCode==null ? "" :suppCode.trim();
purcOrder=purcOrder==null ? "" :purcOrder.trim();
currCode=currCode==null ? "" :currCode.trim();
acctCode=acctCode==null ? "" :acctCode.trim();
cctrCode=cctrCode==null ? "" :cctrCode.trim();
bankCode=bankCode==null ? "" :bankCode.trim();
siteCode=siteCode==null ? "" :siteCode.trim();
finEntity=finEntity==null ? "" :finEntity.trim();
vouchType=vouchType==null ? "" :vouchType.trim();
projCode=projCode==null ? "" :projCode.trim();
System.out.println("effDate :"+effDate);
System.out.println("suppCode :"+suppCode);
System.out.println("purcOrder :"+purcOrder);
System.out.println("finChrge :"+finChrge);
System.out.println("fchgType :"+fchgType);
System.out.println("currCode :"+currCode);
System.out.println("exchRate :"+exchRate);
System.out.println("acctCode :"+acctCode);
System.out.println("cctrCode :"+cctrCode);
System.out.println("bankCode :"+bankCode);
System.out.println("dueDate :"+dueDate);
System.out.println("siteCode :"+siteCode);
System.out.println("finEntity :"+finEntity);
System.out.println("netAMt :"+netAMt);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql = " select acct_code__dr,cctr_code__dr from porddet where purc_order= ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,purcOrder);
rs = pstmt.executeQuery();
if (rs.next())
{
acctCodeDr = rs.getString("acct_code__dr");
cctrCodeDr = rs.getString("cctr_code__dr");
acctCodeDr=acctCodeDr==null ? "" :acctCodeDr.trim();
cctrCodeDr=cctrCodeDr==null ? "" :cctrCodeDr.trim();
System.out.println("acctCodeDr :"+acctCodeDr);
System.out.println("cctCodeDr :"+cctrCodeDr);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql = "select LINE_NO,ACCT_CODE,CCTR_CODE,AMOUNT,TAX_AMT,EXCH_RATE ,ANALYSIS1 " +
" ,ANALYSIS2,ANALYSIS3,TAX_CLASS,TAX_CHEP,TAX_ENV,TAX_CHAP " +
" from vouchdet where TRAN_ID= ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, voucherId);
rs = pstmt.executeQuery();
while(rs.next())
{
cnt++;
lineNoDet = rs.getString("LINE_NO");
acctCdDet = rs.getString("ACCT_CODE");
cctrCdDet = rs.getString("CCTR_CODE");
amtDet = rs.getDouble("AMOUNT");
taxAmtDet = rs.getDouble("TAX_AMT");
exchRateDet = rs.getString("exch_rate");
analysisDet1 = rs.getString("analysis1");
analysisDet2 = rs.getString("analysis2");
analysisDet3 = rs.getString("analysis3");
taxClassDet = rs.getString("tax_class");
taxChepDet = rs.getString("tax_chep");
taxEnvDet = rs.getString("tax_env");
taxChapDet = rs.getString("tax_chap");
lineNoDet=lineNoDet==null ? "" :lineNoDet.trim();
acctCdDet=acctCdDet==null ? "" :acctCdDet.trim();
cctrCdDet=cctrCdDet==null ? "" :cctrCdDet.trim();
exchRateDet=exchRateDet==null ? "" :exchRateDet.trim();
analysisDet1=analysisDet1==null ? "" :analysisDet1.trim();
analysisDet2=analysisDet2==null ? "" :analysisDet2.trim();
analysisDet3=analysisDet3==null ? "" :analysisDet3.trim();
taxClassDet=taxClassDet==null ? "" :taxClassDet.trim();
taxChapDet=taxChapDet==null ? "" :taxChapDet.trim();
taxChepDet=taxChepDet==null ? "" :taxChepDet.trim();
taxEnvDet=taxEnvDet==null ? "" :taxEnvDet.trim();
System.out.println("taxEnvDet :"+taxEnvDet);
System.out.println("lineNoDet :"+lineNoDet);
System.out.println("acctCdDet :"+acctCdDet);
System.out.println("cctrCdDet :"+cctrCdDet);
System.out.println("exchRateDet :"+exchRateDet);
System.out.println("analysisDet1 :"+analysisDet1);
System.out.println("analysisDet2 :"+analysisDet2);
System.out.println("analysisDet3 :"+analysisDet3);
System.out.println("taxClassDet :"+taxClassDet);
System.out.println("taxChapDet :"+taxChapDet);
System.out.println("analysisDet2 :"+analysisDet2);
vocDetMap.put("line_no"+cnt, lineNoDet);
vocDetMap.put("acct_code"+cnt, acctCdDet);
vocDetMap.put("cctr_code"+cnt, cctrCdDet);
vocDetMap.put("amount"+cnt, String.valueOf(amtDet));
vocDetMap.put("tax_amt"+cnt, String.valueOf(taxAmtDet));
vocDetMap.put("exch_rate"+cnt, exchRateDet);
vocDetMap.put("analysis1"+cnt, analysisDet1);
vocDetMap.put("analysis2"+cnt, analysisDet2);
vocDetMap.put("analysis3"+cnt, analysisDet3);
vocDetMap.put("tax_class"+cnt, taxClassDet);
vocDetMap.put("tax_chap"+cnt, taxChapDet);
vocDetMap.put("tax_chep"+cnt, taxChepDet);
vocDetMap.put("tax_env"+cnt, taxEnvDet);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
tranSer="DRNPAY";
siteCode = siteCode == null ? "" : siteCode.trim();
// create xml for track information
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("drcrpay_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>");
System.out.println("details 1 start!!!!!");
xmlBuff.append("<Detail1 dbID=\"\" domID=\"1\" objName=\"drcrpay_dr\" objContext=\"1\">");
xmlBuff.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuff.append("<tran_id/>");
xmlBuff.append("<tran_date><![CDATA["+ sdf.format(currentDate).toString() + "]]></tran_date>");
xmlBuff.append("<tran_ser><![CDATA[" + tranSer.trim()+ "]]></tran_ser>");
xmlBuff.append("<fin_entity><![CDATA[" + finEntity.trim()+ "]]></fin_entity>");
xmlBuff.append("<supp_code><![CDATA[" + suppCode.trim()+ "]]></supp_code>");
xmlBuff.append("<acct_code><![CDATA[" + acctCode.trim()+ "]]></acct_code>");
xmlBuff.append("<cctr_code><![CDATA[" + cctrCode.trim()+ "]]></cctr_code>");
if(effDate == null)
{
xmlBuff.append("<eff_date><![CDATA[]]></eff_date>");
}
else
{
xmlBuff.append("<eff_date><![CDATA[" + sdf.format(effDate)+ "]]></eff_date>");
}
xmlBuff.append("<vouch_ser><![CDATA[]]></vouch_ser>");
xmlBuff.append("<vouch_no><![CDATA[" + checkNull(voucherId)+ "]]></vouch_no>");
xmlBuff.append("<amount><![CDATA[" + pentlyAmt + "]]></amount>");
xmlBuff.append("<curr_code><![CDATA[" + checkNull(currCode)+ "]]></curr_code>");
xmlBuff.append("<exch_rate><![CDATA[" + exchRate+ "]]></exch_rate>");
xmlBuff.append("<remarks><![CDATA[]]></remarks>");
xmlBuff.append("<chg_user><![CDATA[" + checkNull(chgUser)+ "]]></chg_user>");
xmlBuff.append("<chg_date><![CDATA[" + sdf.format(currentDate).toString() + "]]></chg_date>");
xmlBuff.append("<chg_term><![CDATA[" + checkNull(chgTerm)+ "]]></chg_term>");
xmlBuff.append("<site_code><![CDATA[" + checkNull(siteCode)+ "]]></site_code>");
xmlBuff.append("<anal_code><![CDATA[]]></anal_code>");
xmlBuff.append("<bill_no><![CDATA[]]></bill_no>");
xmlBuff.append("<drcr_flag><![CDATA[D]]></drcr_flag>");
xmlBuff.append("<tran_id__pay><![CDATA[]]></tran_id__pay>");
xmlBuff.append("<confirmed><![CDATA[N]]></confirmed>");
xmlBuff.append("<conf_date><![CDATA[]]></conf_date>");
xmlBuff.append("<cr_term><![CDATA[]]></cr_term>");
if(dueDate1 == null)
{
xmlBuff.append("<due_date><![CDATA[]]></due_date>");
}
else
{
xmlBuff.append("<due_date><![CDATA[" + sdf.format(dueDate1) + "]]></due_date>");
}
xmlBuff.append("<due_date><![CDATA[" + sdf.format(currentDate) + "]]></due_date>");
xmlBuff.append("<emp_code__aprv><![CDATA[]]></emp_code__aprv>");
xmlBuff.append("<amount__bc><![CDATA[]]></amount__bc>");
xmlBuff.append("<bill_date><![CDATA[]]></bill_date>");
xmlBuff.append("<vouch_adj><![CDATA[]]></vouch_adj>");
xmlBuff.append("<parent__tran_id><![CDATA[]]></parent__tran_id>");
xmlBuff.append("<rev__tran><![CDATA[]]></rev__tran>");
xmlBuff.append("</Detail1>");
lineNo = 0;
System.out.println("end of details 1");
for (int itemCtr = 1; itemCtr <= cnt; itemCtr++)
{
lineNo++;
System.out.println("lineNo is " + lineNo);
// tempMap = (HashMap)tempList.get(itemCtr);
System.out.println("start of details 2");
xmlBuff.append("<Detail2 dbID='' domID=\"1\" objName=\"drcrpay_dr\" objContext=\"2\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" updateFlag=\"A\" status=\"N\" />");
xmlBuff.append("<tran_id/>");
xmlBuff.append("<line_no>" + lineNo + "</line_no>");
xmlBuff.append("<vouch_no><![CDATA["+voucherId+"]]></vouch_no>");
xmlBuff.append("<line_no__vou><![CDATA["+vocDetMap.get("line_no" + itemCtr)+"]]></line_no__vou>");
xmlBuff.append("<item_code><![CDATA[]]></item_code>");
xmlBuff.append("<tax_class><![CDATA["+vocDetMap.get("tax_class" + itemCtr)+"]]></tax_class>");
xmlBuff.append("<tax_chap><![CDATA["+vocDetMap.get("tax_chap" + itemCtr)+"]]></tax_chap>");
xmlBuff.append("<tax_env><![CDATA["+vocDetMap.get("tax_env" + itemCtr)+"]]></tax_env>");
xmlBuff.append("<drcr_amt><![CDATA["+pentlyAmt+"]]></drcr_amt>");
xmlBuff.append("<tax_amt><![CDATA["+vocDetMap.get("tax_amt" + itemCtr)+"]]></tax_amt>");
xmlBuff.append("<net_amt><![CDATA["+pentlyAmt+"]]></net_amt>");
xmlBuff.append("<reas_code><![CDATA[]]></reas_code>");
xmlBuff.append("<acct_code><![CDATA["+acctCodeDr.trim()+"]]></acct_code>");
xmlBuff.append("<cctr_code><![CDATA["+cctrCodeDr.trim()+"]]></cctr_code>");
xmlBuff.append("<amount><![CDATA["+pentlyAmt+"]]></amount>");
xmlBuff.append("<analysis3><![CDATA["+vocDetMap.get("analysis3" + itemCtr)+"]]></analysis3>");
xmlBuff.append("<analysis2><![CDATA["+vocDetMap.get("analysis2" + itemCtr)+"]]></analysis2>");
xmlBuff.append("<analysis1><![CDATA["+vocDetMap.get("analysis1" + itemCtr)+"]]></analysis1>");
xmlBuff.append("</Detail2>");
}// end of for loop
System.out.println("end of details 2");
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
xmlString = xmlBuff.toString();
System.out.println("@@@@@2: retString :" + xmlString);
errString = saveData(siteCode,xmlString,conn);
System.out.println("Passed xml in master State full saveData errString["+errString+"]");
*/
}else
{
errString = itmDBAccessLocal.getErrorString("", "VTTRINERR", "");
}
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception ::" + e.getMessage());
errString = itmDBAccessLocal.getErrorString("", "VTTRINERR", "");
return errString;
}
finally
{
try
{
if(rs != null)
{
rs.close();
}
if(pstmt != null)
{
pstmt.close();
}
/*if(conn != null)
{
conn.close();
}*/
}
catch(Exception e)
{
e.printStackTrace();
}
}
return errString;
}
public String confirmTranscation(String businessObj, String tranIdFr,String xtraParams, Connection conn) throws ITMException
{
String methodName = "";
String compName = "";
String retString = "";
String serviceCode = "";
String serviceURI = "";
String actionURI = "";
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
System.out.println("confirmVoucher(String businessObj, String tranIdFr,String xtraParams, String forcedFlag, Connection conn) called >>><!@#>");
try
{
//ConnDriver connDriver = new ConnDriver();
//conn = connDriver.getConnectDB("DriverITM");
methodName = "gbf_post";
actionURI = "http://NvoServiceurl.org/" + methodName;
sql = "SELECT SERVICE_CODE,COMP_NAME 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");
}
System.out.println("serviceCode = "+serviceCode+" compName "+compName);
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("serviceURI = "+serviceURI+" compName = "+compName);
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(tranIdFr);
aobj[2] = new String(xtraParams);
System.out.println("aobj 0 :"+aobj[0]);
System.out.println("aobj 1 :"+aobj[1]);
System.out.println("aobj 2 :"+aobj[2]);
//aobj[3] = new String(forcedFlag);
//System.out.println("@@@@@@@@@@loginEmpCode:" +genericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginEmpCode")+":");
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( 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;
}
private String saveData(String siteCode,String xmlString, Connection conn) throws ITMException
{
System.out.println("saving data...........");
InitialContext ctx = null;
String retString = null;
MasterStatefulLocal masterStateful = null; // for ejb3
try
{
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
masterStateful = (MasterStatefulLocal)ctx.lookup("ibase/MasterStatefulEJB/local");
System.out.println("-----------masterStateful------- " + masterStateful);
String [] authencate = new String[2];
authencate[0] = "";
authencate[1] = "";
System.out.println("xmlString to masterstateful [" + xmlString + "]");
retString = masterStateful.processRequest(authencate, siteCode, true, xmlString,true,conn);
}
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 String generateTranId( String windowName, String siteCode, Connection conn )throws ITMException
{
PreparedStatement pstmt = null;
ResultSet rs = null;
String selSql = "";
String tranId = "";
String tranSer = "";
String keyString = "";
String keyCol = "";
String xmlValues = "";
java.sql.Timestamp currDate = null;
//GenericUtility genericUtility = GenericUtility.getInstance();
E12GenericUtility genericUtility = new E12GenericUtility();
try
{
SimpleDateFormat sdfAppl = new SimpleDateFormat(genericUtility.getApplDateFormat());
currDate = new java.sql.Timestamp(System.currentTimeMillis());
String currDateStr = sdfAppl.format(currDate);
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 + "<tran_id></tran_id>";
xmlValues = xmlValues + "<site_code>" + siteCode + "</site_code>";
xmlValues = xmlValues + "<tran_date>" + currDateStr + "</tran_date>";
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()
private String checkNull(String input)
{
if (input == null)
{
input = "";
}
return input;
}
public double timeDiff(Timestamp d1, Timestamp d2)throws RemoteException,ITMException
{
long t1 = d1.getTime();
long t2 = d2.getTime();
long t3 = t1 - t2;
double hr = (double)((double)t3/(60.00f*1000.00f*60.00f));
double min = ((int)((hr - (int)hr) * 60))/100.00f;
double time = (int)(hr) + min;
return time;
}
}
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