Commit 60804815 authored by manohar's avatar manohar

Code optimisation for speed issue


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@104149 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 98abecc4
......@@ -34,12 +34,12 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
//public String invoicePosting(String invoiceId, Connection conn) throws ITMException
public String invoicePosting(String invoiceId,String xtraParams,String forcedFlag,Connection conn) throws ITMException
{
String retString="",sql="",itemSer="",lsCctrCodeSal="",lsAcctCodeSal="",lsAnalysis="",lsTemp="",tempInvId="",sqlUpd="";
String postType = "H",retString="",sql="",itemSer="",lsCctrCodeSal="",lsAcctCodeSal="",lsAnalysis="",lsTemp="",tempInvId="",sqlUpd="";
String detInvId="",detAcctCode="",detCctrCode="",hdrAnalCode="",detAnalysis1="",detAnalysis2="",detAnalysis3="",detItemCd="";
String analysis1__dr="",analysis2__dr="",analysis3__dr="",analysis1__cr="",analysis2__cr="",analysis3__cr="";
String lsCctrCodeDis="",lsAcctCodeDis="",lsAcctSchemedet="",lsAcctCodePr="",lsCctrCodePr="",lsAcctCodeTax="",lsCctrCodeTax="";
String sql1="",lsTaxRecoCctr="",lsTaxRecoAcct="",lsAcctReco="",lsCctrReco="",lsAnalysis1="",lsAnalysis2="",lsAnalysis3="";
int detLineNo=0,iActCnt=0,uActCnt=0;
int detLineNo=0,iActCnt=0,uActCnt=0,schemeCount=0;
double detAmount=0.0,tempAmount=0.0,lnAmountDis=0.0,lcSchemeDiscount=0.0,lnAmountTax=0.0,lcRecoAmt=0.0,lnAmountSal=0.0;
PreparedStatement pstmt=null,pstmtU=null,pstmt1=null;
ResultSet rs=null,rs1=null;
......@@ -56,11 +56,12 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
HashMap<String, String>InvoiceDetMap=null;
String analysisStr []=null;
String lineNoTemp="";
String lineNoTemp="", prevSordNo = "";
HashMap<String, String> invAcctMap = null;
ArrayList<HashMap<String, String>> invAcctList = new ArrayList<HashMap<String,String>>();
long startTime = 0, endTime = 0, totalTime = 0, totalHrs = 0, totlMts = 0, totSecs = 0; // Added
double totRecoAmt = 0;
try
{
startTime = System.currentTimeMillis();
......@@ -79,7 +80,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
* Invoice header
* */
InvoiceHrdMap=getInvoiceHdr(invoiceId,conn);
postType = InvoiceHrdMap.get("posttype");
/**
* Select from
* Invoice trace
......@@ -98,6 +99,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
* Insert in Table 'invacct'
* for each 'invdet' line
* */
//System.out.println("manohar invoiceDeapList ["+invoiceDeapList+"]");
for(int itr=0;itr<invoiceDeapList.size();itr++)
{
InvoiceDetMap=(HashMap<String, String>) invoiceDeapList.get(itr);
......@@ -110,6 +112,41 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
detAmount=Double.parseDouble(InvoiceDetMap.get("quantity__stduom")) * Double.parseDouble(InvoiceDetMap.get("rate__stduom"));
//System.out.println("@@@@@@@99 detAmount["+detAmount+"]");
sql="select item_ser from item where item_code=? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, detItemCd);
rs=pstmt.executeQuery();
if(rs.next())
{
itemSer=rs.getString("item_ser");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
/**
* Select 'ls_acct_schemedet','ls_acct_code__pr','ls_cctr_code__pr'
* from 'bom' and 'sorderdet_scheme'
* */
if (!prevSordNo.trim().equals(InvoiceDetMap.get("sord_no").trim()))
{
prevSordNo = InvoiceDetMap.get("sord_no");
sql="select count(1) from bom a,sorderdet_scheme b"
+ " where a.bom_code = b.scheme_code"
+ " and tran_id = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceDetMap.get("sord_no"));
rs=pstmt.executeQuery();
if(rs.next())
{
schemeCount = rs.getInt(1);
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
lsAnalysis=invAcct.AcctAnalysisType(" ","S-INV",InvoiceHrdMap.get("inv_type"),"CR",conn);
lsTemp="CR"+lsAnalysis;
......@@ -172,25 +209,11 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
analysis3__dr ="";
}
sql="select item_ser from item where item_code=? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, detItemCd);
rs=pstmt.executeQuery();
if(rs.next())
{
itemSer=rs.getString("item_ser");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
/**
* Select 'ls_acct_schemedet','ls_acct_code__pr','ls_cctr_code__pr'
* from 'bom' and 'sorderdet_scheme'
* */
if ("D".equals(postType)) // 06-dec-16 manoharan posttype to be considered
{
if (schemeCount > 0)
{
sql="select a.acc_code__item,a.acct_code__pr,a.cctr_code__pr from bom a,sorderdet_scheme b"
+ " where a.bom_code = b.scheme_code"
+ " and tran_id = ? and line_no_form = ?";
......@@ -208,6 +231,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
pstmt=null;
rs.close();
rs=null;
}
lsCctrCodeSal=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "SAL", InvoiceDetMap.get("inv_type"), conn));
//detCctrCode=lsCctrCodeSal;
......@@ -221,40 +245,20 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsCctrCodeSal=ls_acct_code__sal[1];
}
// detAcctCode=lsAcctCodeSal;
//System.out.println("@@@@@@@@@@@@@@lsAcctCodeSal["+lsAcctCodeSal+"]:::lsCctrCodeSal["+lsCctrCodeSal+"]");
//System.out.println("@@@@@@213 detAmount["+detAmount+"]");
/*
sql="select invoice_id,amount from invacct where acct_code=? and cctr_code=? " +
//" and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeSal);
pstmt.setString(2, lsCctrCodeSal);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
rs=pstmt.executeQuery();
if(rs.next())
}
else
{
*//**
* Update record
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
detAmount=detAmount+tempAmount;
updateAcctAmt(tempInvId,detAmount,conn);
lsAcctCodeSal = InvoiceHrdMap.get("acct_code__sal");
lsCctrCodeSal = InvoiceHrdMap.get("cctr_code__sal");
lsAcctCodeDis = InvoiceHrdMap.get("acct_code__dis");
lsCctrCodeDis = InvoiceHrdMap.get("cctr_code__dis");
lsAcctCodePr = InvoiceHrdMap.get("acct_code__pr");
lsCctrCodePr = InvoiceHrdMap.get("cctr_code__pr");
}
else */
/*{
detLineNo++;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeSal,lsCctrCodeSal,hdrAnalCode,detAmount,analysis1__cr,analysis2__cr,analysis3__cr,conn);
}*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;*/
// detAcctCode=lsAcctCodeSal;
//System.out.println("@@@@@@@@@@@@@@lsAcctCodeSal["+lsAcctCodeSal+"]:::lsCctrCodeSal["+lsCctrCodeSal+"]");
System.out.println("@@@@@@213 detAmount["+detAmount+"]");
invAcctMap = new HashMap<String, String>();
......@@ -282,6 +286,9 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
* find 'ls_cctr_code__dis'
* and 'ls_acct_code__dis'
* */
if ("D".equals(postType))
{
lsCctrCodeDis=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "DIS", InvoiceDetMap.get("inv_type"), conn));
String ls_acct_code__dis[]=lsCctrCodeDis.split(",");
if( ls_acct_code__dis.length > 0)
......@@ -298,39 +305,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsCctrCodeDis=InvoiceHrdMap.get("cctr_code__dis");
}
/*sql="select invoice_id,amount from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeDis);
pstmt.setString(2, lsCctrCodeDis);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
rs=pstmt.executeQuery();
if(rs.next())
{
*//**
* Update record
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
*//**
* Discount amount
* *//*
lnAmountDis=tempAmount-lnAmountDis;
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else*/
/*{
detLineNo++;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeDis,lsCctrCodeDis,hdrAnalCode,lnAmountDis,"","","",conn);
}*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;*/
invAcctMap = new HashMap<String, String>();
......@@ -358,41 +333,6 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
//System.out.println("@@@@@@304 lcSchemeDiscount["+lcSchemeDiscount+"]");
if(lcSchemeDiscount!=0)
{
/*sql="select invoice_id from invacct where acct_code=? and cctr_code=? " +
// "and anal_code=?"
" and case when anal_code is null then ' ' else anal_code end = ? "
+ " and analysis1=? and analysis2=? and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodePr);
pstmt.setString(2, lsCctrCodePr);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
pstmt.setString(4, analysis1__dr);
pstmt.setString(5, analysis2__dr);
pstmt.setString(6, analysis3__dr);
rs=pstmt.executeQuery();
if(rs.next())
{
*//**
* Update record
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountDis=tempAmount-lcSchemeDiscount;
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else*/
/*{
detLineNo++;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodePr,lsCctrCodePr,hdrAnalCode,lnAmountDis,analysis1__dr,analysis2__dr,analysis3__dr,conn);
}
*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;*/
invAcctMap = new HashMap<String, String>();
......@@ -419,41 +359,6 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
if(Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt"))>0)
{
/*sql="select invoice_id from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=?"
" and case when anal_code is null then ' ' else anal_code end = ? "
+ " and analysis1=? and analysis2=? and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodePr);
pstmt.setString(2, lsCctrCodePr);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
pstmt.setString(4, analysis1__dr);
pstmt.setString(5, analysis2__dr);
pstmt.setString(6, analysis3__dr);
rs=pstmt.executeQuery();
if(rs.next())
{
*//**
* Update record
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountDis=tempAmount+Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt"));
updateAcctAmt(tempInvId,lnAmountDis,conn);
}
else*/
/*{
detLineNo++;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodePr,lsCctrCodePr,hdrAnalCode,Double.parseDouble(InvoiceDetMap.get("disc_schem_billback_amt")),analysis1__dr,analysis2__dr,analysis3__dr,conn);
}*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;*/
invAcctMap = new HashMap<String, String>();
invAcctMap.put("invoice_id", detInvId);
......@@ -478,7 +383,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lineNoTemp = " "+InvoiceDetMap.get("line_no");
lineNoTemp = lineNoTemp.substring(lineNoTemp.length()-3, lineNoTemp.length());
//System.out.println("@@@@@@@ lineNoTemp["+lineNoTemp+"]");
totRecoAmt = 0;
sql="select acct_code,cctr_code,sum(tax_amt) as tax_amt, case when sum(reco_amount) is null then 0 else sum(reco_amount) end as reco_amount "
+ " from taxtran where tran_code = 'S-INV' and tran_id = ? and line_no = ? "
+ " and effect <> 'N' group BY acct_code,cctr_code";
......@@ -492,7 +397,9 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lsCctrCodeTax=checkNull(rs.getString("cctr_code"));
lnAmountTax=rs.getDouble("tax_amt");
lcRecoAmt=rs.getDouble("reco_amount");
totRecoAmt += lcRecoAmt;
if (lcRecoAmt != 0 )
{
if( lsAcctCodeTax == null || lsAcctCodeTax.trim().length() == 0)
{
lsAcctCodeTax = lsAcctCodeSal;
......@@ -503,38 +410,6 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lsCctrCodeTax = " ";
}
lnAmountTax=lnAmountTax-lcRecoAmt;
/*sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctCodeTax);
pstmt1.setString(2, lsCctrCodeTax);
pstmt1.setString(3, checkNullSpace(hdrAnalCode));
rs1=pstmt1.executeQuery();
if(rs1.next())
{
*//**
* Update record
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountTax=lnAmountTax+tempAmount-lcRecoAmt;
updateAcctAmt(tempInvId,lnAmountTax,conn);
}
else*/
/*{
detLineNo++;
tempAmount=lnAmountTax-lcRecoAmt;
System.out.println("@@@@@@431 tempAmount["+tempAmount+"]");
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeTax,lsCctrCodeTax,hdrAnalCode,tempAmount,"","","",conn);
}*/
/* pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;*/
invAcctMap = new HashMap<String, String>();
......@@ -551,6 +426,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodeTax,lsCctrCodeTax , lnAmountTax, checkNullSpace(hdrAnalCode) );
}
}//'taxtran'details while END
pstmt.close();
......@@ -563,7 +439,8 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
* tax reco details
* from 'taxtran'
* */
if(totRecoAmt != 0) // 07-dec-16 manoharan
{
lsTaxRecoCctr=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "TAXRECO", InvoiceDetMap.get("inv_type"), conn));
// detCctrCode=lsCctrCodeSal;
......@@ -577,11 +454,11 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lsTaxRecoCctr =ls_tax_reco_acct[1];
}
// detAcctCode=lsAcctCodeSal;
}
lineNoTemp = " "+InvoiceDetMap.get("line_no");
lineNoTemp = lineNoTemp.substring(lineNoTemp.length()-3, lineNoTemp.length());
//System.out.println("@@@@@@@ lineNoTemp["+lineNoTemp+"]");
totRecoAmt = 0;
sql="select acct_code__reco, cctr_code__reco, case when sum(reco_amount) is null then 0 else sum(reco_amount) end as reco_amount "
+ " from taxtran"
+ " where tran_code = 'S-INV' and tran_id = ?"
......@@ -597,7 +474,9 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lsAcctReco=checkNull(rs.getString("acct_code__reco"));
lsCctrReco=checkNull(rs.getString("cctr_code__reco"));
lcRecoAmt=rs.getDouble("reco_amount");
totRecoAmt += lcRecoAmt;
if (lcRecoAmt != 0) // 07-dec-16 manoharan
{
if( lsAcctReco == null || lsAcctReco.trim().length() == 0 )
{
lsAcctReco = lsTaxRecoAcct;
......@@ -608,37 +487,6 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lsCctrReco = " ";
}
/*sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctReco);
pstmt1.setString(2, lsCctrReco);
pstmt1.setString(3, checkNullSpace(hdrAnalCode));
rs1=pstmt1.executeQuery();
if(rs1.next())
{
*//**
* Update record
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lcRecoAmt=lcRecoAmt+tempAmount;
updateAcctAmt(tempInvId,lcRecoAmt,conn);
}
else*/
/*{
detLineNo++;
System.out.println("@@@@@@508 lcRecoAmt["+lcRecoAmt+"]");
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctReco,lsCctrReco,hdrAnalCode,lcRecoAmt,"","","",conn);
} */
/*pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;*/
invAcctMap = new HashMap<String, String>();
......@@ -655,7 +503,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctReco,lsCctrReco , lcRecoAmt, checkNullSpace(hdrAnalCode) );
}
}//tax reco details while END
pstmt.close();
......@@ -710,6 +558,9 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
rs.close();
rs=null;
if ("D".equals(postType)) // 06-dec-16 manoharan posttype to be considered
{
lsCctrCodeSal=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "SAL", InvoiceDetMap.get("inv_type"), conn));
String ls_acct_code__sal[]=lsCctrCodeSal.split(",");
......@@ -721,42 +572,18 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsCctrCodeSal=ls_acct_code__sal[1];
}
/*sql="select invoice_id from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=? " +
" and case when anal_code is null then ' ' else anal_code end = ? "+
" and analysis1=? and analysis2=?"
+ " and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeSal);
pstmt.setString(2, lsCctrCodeSal);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
pstmt.setString(4, lsAnalysis1);
pstmt.setString(5, lsAnalysis2);
pstmt.setString(6, lsAnalysis3);
rs=pstmt.executeQuery();
if(rs.next())
}
else
{
*//**
* Update record
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountSal=lnAmountSal+tempAmount;
uActCnt=updateAcctAmt(tempInvId,lnAmountSal,conn);
lsAcctCodeSal = InvoiceHrdMap.get("acct_code__sal");
lsCctrCodeSal = InvoiceHrdMap.get("cctr_code__sal");
lsAcctCodeDis = InvoiceHrdMap.get("acct_code__dis");
lsCctrCodeDis = InvoiceHrdMap.get("cctr_code__dis");
lsAcctCodePr = InvoiceHrdMap.get("acct_code__pr");
lsCctrCodePr = InvoiceHrdMap.get("cctr_code__pr");
}
else*/
/*{
detLineNo++;
System.out.println("@@@@@@603 lnAmountSal["+lnAmountSal+"]");
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeSal,lsCctrCodeSal,hdrAnalCode,lnAmountSal,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;*/
if (lnAmountSal != 0) // 07-dec-16 manoharan
{
invAcctMap = new HashMap<String, String>();
......@@ -773,6 +600,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodeSal,lsCctrCodeSal , lnAmountSal, checkNullSpace(hdrAnalCode) );
}
if(lnAmountDis!=0)
{
......@@ -780,6 +608,8 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
* find 'ls_cctr_code__dis'
* and 'ls_acct_code__dis'
* */
if ("D".equals(postType)) // 06-dec-16 manoharan posttype to be considered
{
lsCctrCodeDis=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "DIS", InvoiceDetMap.get("inv_type"), conn));
String ls_acct_code__dis[]=lsCctrCodeDis.split(",");
if( ls_acct_code__dis.length > 0 )
......@@ -790,43 +620,12 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsCctrCodeDis=ls_acct_code__dis[1];
}
/*sql="select invoice_id from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=? " +
" and case when anal_code is null then ' ' else anal_code end = ? "+
" and analysis1=? and analysis2=?"
+ " and analysis3=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, lsAcctCodeDis);
pstmt.setString(2, lsCctrCodeDis);
pstmt.setString(3, checkNullSpace(hdrAnalCode));
pstmt.setString(4, lsAnalysis1);
pstmt.setString(5, lsAnalysis2);
pstmt.setString(6, lsAnalysis3);
rs=pstmt.executeQuery();
if(rs.next())
}
else
{
*//**
* Update record
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountDis=tempAmount-lnAmountDis;
updateAcctAmt(tempInvId,lnAmountDis,conn);
lsAcctCodeDis = InvoiceHrdMap.get("acct_code__dis");
lsCctrCodeDis = InvoiceHrdMap.get("cctr_code__dis");
}
else*/
/*{
detLineNo++;
System.out.println("@@@@@@659 lnAmountDis["+lnAmountDis+"]");
lnAmountDis=0-lnAmountDis;
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeDis,lsCctrCodeDis,hdrAnalCode,lnAmountDis,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}*/
/*pstmt.close();
pstmt=null;
rs.close();
rs=null;*/
invAcctMap = new HashMap<String, String>();
......@@ -850,7 +649,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lineNoTemp = " "+InvoiceDetMap.get("line_no");
lineNoTemp = lineNoTemp.substring(lineNoTemp.length()-3, lineNoTemp.length());
//System.out.println("@@@@@@@ lineNoTemp["+lineNoTemp+"]");
totRecoAmt = 0;
sql="select acct_code,cctr_code,sum(tax_amt) as tax_amt , case when sum(reco_amount) is null then 0 else sum(reco_amount) end as reco_amount "
+ " from taxtran"
+ " where tran_code = 'S-INV' and tran_id = ?"
......@@ -866,7 +665,10 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lsCctrCodeTax=checkNull(rs.getString("cctr_code"));
lnAmountTax=rs.getDouble("tax_amt");
lcRecoAmt=rs.getDouble("reco_amount");
totRecoAmt += lcRecoAmt;
if (totRecoAmt != 0) // 07-dec-16 manoharan
{
if( lsAcctCodeTax == null || lsAcctCodeTax.trim().length() == 0)
{
lsAcctCodeTax = lsAcctCodeSal;
......@@ -876,38 +678,6 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsCctrCodeTax = " ";
}
/*sql1="select invoice_id from invacct where acct_code=? and cctr_code=? " +
// "and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctCodeTax);
pstmt1.setString(2, lsCctrCodeTax);
pstmt1.setString(3, checkNullSpace(hdrAnalCode));
rs1=pstmt1.executeQuery();
if(rs1.next())
{
*//**
* Update record
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lnAmountTax=lnAmountTax+tempAmount-lcRecoAmt;
updateAcctAmt(tempInvId,lnAmountTax,conn);
}
else*/
/*{
detLineNo++;
lnAmountTax=lnAmountTax-lcRecoAmt;
System.out.println("@@@@@@716 lnAmountTax["+lnAmountTax+"]");
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctCodeTax,lsCctrCodeTax,hdrAnalCode,lnAmountTax,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}*/
/*pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;*/
invAcctMap = new HashMap<String, String>();
......@@ -924,6 +694,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctCodeTax,lsCctrCodeTax , lnAmountTax, checkNullSpace(hdrAnalCode) );
}
}
......@@ -936,7 +707,8 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
* tax_reco details from
* 'taxtran'
* */
if (totRecoAmt != 0) // 07-dec-16 manoharan
{
lsTaxRecoCctr=checkNull(finCommon.getAcctDetrTtype(InvoiceDetMap.get("item_code"), itemSer, "TAXRECO", InvoiceDetMap.get("inv_type"), conn));
// detCctrCode=lsCctrCodeSal;
......@@ -950,11 +722,12 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lsTaxRecoCctr=ls_tax_reco_acct[1];
}
// detAcctCode=lsAcctCodeSal;
}
lineNoTemp = " "+InvoiceDetMap.get("line_no");
lineNoTemp = lineNoTemp.substring(lineNoTemp.length()-3, lineNoTemp.length());
//System.out.println("@@@@@@@ lineNoTemp["+lineNoTemp+"]");
totRecoAmt = 0;
sql="select acct_code__reco, cctr_code__reco, case when sum(reco_amount) is null then 0 else sum(reco_amount) end as reco_amount "
+ " from taxtran"
+ " where tran_code = 'S-INV' and tran_id = ?"
......@@ -970,7 +743,9 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
lsAcctReco=checkNull(rs.getString("acct_code__reco")).trim();
lsCctrReco=checkNull(rs.getString("cctr_code__reco"));
lcRecoAmt=rs.getDouble("reco_amount");
totRecoAmt += lcRecoAmt;
if (lcRecoAmt != 0) // 07-dec-16 manoharan
{
if( lsAcctReco == null || lsAcctReco.trim().length() == 0 )
{
lsAcctReco = lsTaxRecoAcct;
......@@ -980,37 +755,6 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
lsCctrReco = " ";
}
/*sql1="select invoice_id,amount from invacct where acct_code=? and cctr_code=? " +
// " and anal_code=?";
" and case when anal_code is null then ' ' else anal_code end = ? ";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, lsAcctReco);
pstmt1.setString(2, lsCctrReco);
pstmt1.setString(3, checkNullSpace(hdrAnalCode));
rs1=pstmt1.executeQuery();
if(rs1.next())
{
*//**
* Update record
* *//*
tempInvId=rs.getString("invoice_id");
tempAmount=rs.getDouble("amount");
lcRecoAmt=lcRecoAmt+tempAmount;
updateAcctAmt(tempInvId,lcRecoAmt,conn);
}
else*/
/*{
detLineNo++;
System.out.println("@@@@@@791 lcRecoAmt["+lcRecoAmt+"]");
iActCnt=insertInvAcct(detInvId,detLineNo,lsAcctReco,lsCctrReco,hdrAnalCode,lcRecoAmt,lsAnalysis1,lsAnalysis2,lsAnalysis3,conn);
}*/
/*pstmt1.close();
pstmt1=null;
rs1.close();
rs1=null;*/
invAcctMap = new HashMap<String, String>();
......@@ -1027,6 +771,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
//invAcctList.add(invAcctMap);
invAcctList = modifyinvAcctList(invAcctList,invAcctMap,lsAcctReco,lsCctrReco , lcRecoAmt, checkNullSpace(hdrAnalCode) );
}
}
pstmt.close();
......@@ -1454,8 +1199,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
return retString;
}
private String insertInvAcctList(
ArrayList<HashMap<String, String>> invAcctList, Connection conn) throws ITMException
private String insertInvAcctList(ArrayList<HashMap<String, String>> invAcctList, Connection conn) throws ITMException
{
int detLineNo=0;
String sql="",errCode="";
......@@ -1463,7 +1207,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
try
{
//System.out.println("@@@@@@@1087 invAcctList.size["+invAcctList.size()+"]");
System.out.println("manoharan invAcctList ["+invAcctList+"]");
// 28-nov-16 manoharan moved from below (inside loop
sql="insert into invacct (invoice_id,line_no,acct_code,cctr_code,anal_code,amount,analysis1,analysis2,analysis3)"
+ " values (?,?,?,?,?,?,?,?,?)";
......@@ -1513,31 +1257,31 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
return errCode;
}
private ArrayList<HashMap<String, String>> modifyinvAcctList(
ArrayList<HashMap<String, String>> invAcctList,
HashMap<String, String> invAcctMap, String lsAcctCodeSal,
String lsCctrCodeSal, double detAmount, String analCode)
private ArrayList<HashMap<String, String>> modifyinvAcctList( ArrayList<HashMap<String, String>> invAcctList, HashMap<String, String> invAcctMap, String lsAcctCodeSal, String lsCctrCodeSal, double detAmount, String analCode)
{
boolean findFlag=false;
HashMap<String, String> tempMap = null;
//System.out.println("@@@@@@@@1131 invAcctMap["+invAcctMap+"]");
for( int i=0; i < invAcctList.size() ; i++ )
{
HashMap<String, String> tempMap = new HashMap<String, String>();
//HashMap<String, String> tempMap = new HashMap<String, String>();
tempMap = invAcctList.get(i);
//System.out.println("@@@@@@@@1135 tempMap["+tempMap+"]");
if(tempMap.containsKey(lsAcctCodeSal+lsCctrCodeSal+analCode))
//if(tempMap.containsKey(lsAcctCodeSal+lsCctrCodeSal+analCode))
if (lsAcctCodeSal.trim().equals(tempMap.get("acct_code").trim()) && lsCctrCodeSal.trim().equals(tempMap.get("cctr_code").trim()) && analCode.trim().equals(tempMap.get("anal_code").trim()) )
{
detAmount=detAmount + Double.parseDouble(tempMap.get("amount"));
tempMap.put("amount", ""+detAmount);
findFlag = true;
invAcctList.add(tempMap);
//invAcctList.add(tempMap);
invAcctList.set(i,tempMap);
break;
}
}
if(! findFlag )
if(!findFlag )
{
invAcctList.add(invAcctMap);
}
......@@ -1570,7 +1314,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
return uActCnt;
}
/*
private int insertInvAcct(String detInvId, int detLineNo, String detAcctCode, String detCctrCode, String hdrAnalCode,
double detAmount, String detAnalysis1, String detAnalysis2, String detAnalysis3, Connection conn) throws ITMException
{
......@@ -1607,7 +1351,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
return insertCnt;
}
*/
private ArrayList<Object> getInvoiceDet(String invoiceId, Connection conn) throws ITMException
{
// TODO Auto-generated method stub
......@@ -1706,7 +1450,10 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
String retString="";
// TODO Auto-generated method stub
String sql="",chgDtStr="";
PreparedStatement pstmt=null;
ResultSet rs=null;
double drAmt = 0, crAmt = 0,netAmtDet = 0,netAmtHdr = 0;
/**
* Posting Invoice header
* */
......@@ -1718,6 +1465,45 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
}
//System.out.println("@@@@@@@@1002 retString gbfPostInvoiceDet["+retString+"]");
// 28-nov-16 manoharan
sql = "select sum(case when dr_amt is null then 0 else dr_amt end * exch_rate) as dr_amt,sum(case when cr_amt is null then 0 else cr_amt end * exch_rate) as cr_amt from gltrace where ref_ser = 'S-INV' and ref_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceHrdMap.get("invoice_id"));
rs=pstmt.executeQuery();
if(rs.next())
{
drAmt =rs.getDouble("dr_amt");
crAmt =rs.getDouble("cr_amt");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
sql = "select sum(net_amt) as net_amt from invoice_trace where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceHrdMap.get("invoice_id"));
rs=pstmt.executeQuery();
if(rs.next())
{
netAmtDet =rs.getDouble("net_amt");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
sql = "select net_amt as net_amt from invoice where invoice_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, InvoiceHrdMap.get("invoice_id"));
rs=pstmt.executeQuery();
if(rs.next())
{
netAmtHdr =rs.getDouble("net_amt");
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
System.out.println("Invoice # [" + InvoiceHrdMap.get("invoice_id") + "] Debit [" + drAmt + "] Credit [" + crAmt + "] netAmtHdr [" + netAmtHdr + "] netAmtDet ["+ netAmtDet+ "]" );
if( retString == null || retString.trim().length() == 0)
{
retString = finCommon.checkGlTranDrCr("S-INV",InvoiceHrdMap.get("invoice_id"),conn);
......@@ -2468,7 +2254,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
private ArrayList<Object> getInvoiceDesp(String invoiceId, Connection conn) throws ITMException
{
HashMap<String, String> InvoiceDespMap=new HashMap<String, String>();
HashMap<String, String> InvoiceDespMap = null;
ArrayList<Object> invoiceDeapList=new ArrayList<Object>();
double ln_amount_dis=0.00,ln_amount_sal=0.00;
String rateStd="",qtyStd="",discount="",ls_cctr_code__sal="",mfgDtStr="",expDtStr="",excDtStr="";
......@@ -2499,6 +2285,8 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
rs=pstmt.executeQuery();
while(rs.next())
{
InvoiceDespMap=new HashMap<String, String>(); // 06-dec-16 manoharan same object was added in all the list as many times
InvoiceDespMap.put("invoice_id", checkNull(rs.getString("invoice_id")));
InvoiceDespMap.put("inv_line_no", checkNull(rs.getString("inv_line_no")));
InvoiceDespMap.put("desp_id", checkNull(rs.getString("desp_id")));
......@@ -2656,7 +2444,7 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
{
// TODO Auto-generated method stub
HashMap<String, String> InvoiceHrdMap=new HashMap<String, String>();
String sql="",trnDtStr="",despDtStr="",dueDtStr="",effDtStr="",taxDtStr="",confDtStr="",chgDtStr="", gpDtStr = null;
String sql="",trnDtStr="",despDtStr="",dueDtStr="",effDtStr="",taxDtStr="",confDtStr="",chgDtStr="", gpDtStr = "";
PreparedStatement pstmt=null;
ResultSet rs=null;
......@@ -2796,14 +2584,9 @@ public class PostOrdInvoicePost extends ActionHandlerEJB implements PostOrdInvoi
InvoiceHrdMap.put("gp_no", checkNull(rs.getString("gp_no")));
//Changed By Nasruddin 14-10-16 Strat
//InvoiceHrdMap.put("gp_date", checkNull(rs.getString("gp_date")));
//changed by nasruddin check Null in gbf date 6/12/12 start
if( rs.getString("gp_date") != null)
{
gpDtStr = genericUtility.getValidDateString(rs.getString("gp_date"), genericUtility.getDBDateFormat(),
gpDtStr=genericUtility.getValidDateString(rs.getString("gp_date"), genericUtility.getDBDateFormat(),
genericUtility.getApplDateFormat());
}
InvoiceHrdMap.put("gp_date", gpDtStr);
//changed by nasruddin check Null in gbf date 6/12/12 End
//Changed By Nasruddin 14-10-16 End
InvoiceHrdMap.put("sales_grp", checkNull(rs.getString("sales_grp")));
InvoiceHrdMap.put("edi_addr", checkNull(rs.getString("edi_addr")));
......
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