Commit 26697438 authored by ngadkari's avatar ngadkari

Migration Of Consumption Issue Confirm and Accounting effects for taxes not...

Migration Of Consumption Issue Confirm and Accounting effects for taxes not taking place on confirmation of consumption Issue.

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@186432 ce508802-f39f-4f6c-b175-0d175dae99d5
parent d81fd9d6
......@@ -13,9 +13,6 @@ import ibase.webitm.utility.ITMException;
import java.util.*;
import ibase.webitm.utility.*;
import java.util.HashMap;
import ibase.webitm.ejb.*;
import org.w3c.dom.*;
......@@ -6411,5 +6408,488 @@ public class InvAcct
}
//Changes by mayur on 3-JUNE-2018 [END]
public String consumeIssPost (String tranId,String tranSer, Connection conn) throws ITMException
{
String errString = "",sql = "",sql1="";
PreparedStatement pstmt = null,pstmtSql = null,pstmt1=null;
ResultSet rs = null,rs1 = null;
DistCommon distCommon = new DistCommon();
FinCommon finCommon=new FinCommon();
String invOnline = "",itemCode = "",itemCodehdr = "",itemSer1 = "",remarks = "",siteCode = "", tranType = "",postOnline="",
varValue = "",acctPla = "",finEntity = "",currCode = "",cctrPla = "",lineNo = "",locCode = "",lotNo = "",lotSl = "",
amount = "",acctCodeIss = "",cctrCodeIss = "",itemSer = "",grpCode = "",
acctCodeInv = "", cctrCodeInv = "",acctCodeTax="",cctrCodeTax="",typeMap = "",acctCodeMap = "",cctrCodeMap = "";
Timestamp tranDate = null,effDate = null,currDate = null;
boolean exitFlag = false;
int countRec = 0,findIndex = 0;
double qtyStduom = 0, costRate = 0, physicalQty = 0,rateOh = 0,rate = 0,stdRate = 0,amtInv = 0, amtOh = 0,amtCogos = 0,grAmount = 0,amountMap = 0;
double taxAmt=0.0,exchRate=1.0;
ArrayList consisuueList = new ArrayList();
HashMap consisuueMap = null;
HashMap glTraceMap = null;
ITMDBAccessEJB itmDBAccessEJB = null;
try
{
System.out.println("Inside consumeIssPost");
invOnline = finCommon.getFinparams("999999","INV_ACCT_CISS",conn);
if("NULLFOUND".equalsIgnoreCase(invOnline))
{
errString = itmDBAccessEJB.getErrorString("","VTFINPARM","","",conn);
return errString;
}
invOnline = invOnline.trim();
if("S".equalsIgnoreCase(invOnline))
{
sql = " Select item_code From consume_iss_det where CONS_ISSUE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
if (rs.next())
{
itemCodehdr = rs.getString("item_code");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql = " Select b.inv_acct From Item a, ItemSer b Where a.item_ser = b.item_ser And a.item_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, itemCodehdr);
rs = pstmt.executeQuery();
if (rs.next())
{
itemSer1 = rs.getString("inv_acct");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if (itemSer1 == null && itemSer1.trim().length()< 0)
{
itemSer1="N";
}
}
if("Y".equalsIgnoreCase(invOnline))
{
sql = " select issue_date, site_code__ord, tran_type, remarks from consume_iss where cons_issue = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
if (rs.next())
{
tranDate = rs.getTimestamp("issue_date");
siteCode = rs.getString("site_code__ord");
tranType = rs.getString("tran_type");
remarks = rs.getString("remarks");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
// Checking for the Financial Entity
sql = "select fin_entity from site where site_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
rs = pstmt.executeQuery();
if (rs.next())
{
finEntity = rs.getString("fin_entity");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if (finEntity == null && finEntity.trim().length()< 0)
{
errString = itmDBAccessEJB.getErrorString("","VMFINENT","","",conn);
return errString ;
}
// Checking for the Currency Code
sql = "select curr_code from finent where fin_entity = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, finEntity);
rs = pstmt.executeQuery();
if (rs.next())
{
currCode = rs.getString("curr_code");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if (currCode == null && currCode.trim().length()< 0)
{
errString = itmDBAccessEJB.getErrorString("","VTCURFIN","","",conn);
return errString ;
}
// Excise Code from DISPARM
varValue= distCommon.getDisparams("999999","EXC_TAX_CODE",conn) ;
if (varValue == null && varValue.trim().length()< 0)
{
errString = itmDBAccessEJB.getErrorString("","VTEXCISECD","","",conn);
return errString ;
}
varValue=varValue.trim();
// PLA A/c Code from FINPARM
acctPla=finCommon.getFinparams("999999","PLA_ACCT",conn);
if (acctPla == null && acctPla.trim().length()< 0)
{
errString = itmDBAccessEJB.getErrorString("","VTACCTPLA","","",conn);
return errString ;
}
acctPla=acctPla.trim();
cctrPla=" ";
sql = "select item_code, line_no, (case when amount is null then 0 else amount end) as amount , loc_code, lot_no, lot_sl,"
+ " acct_code, cctr_code, acct_code__inv, cctr_code__inv from consume_iss_det where cons_issue = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
while (rs.next())
{
itemCode = rs.getString("item_code");
lineNo = rs.getString("line_no");
amount = rs.getString("amount");
locCode = rs.getString("loc_code");
lotNo = rs.getString("lot_no");
lotSl = rs.getString("lot_sl");
acctCodeIss = rs.getString("acct_code");
cctrCodeIss = rs.getString("cctr_code");
acctCodeInv= rs.getString("acct_code__inv");
cctrCodeInv = rs.getString("cctr_code__inv");
//ls_line_no = right(' ' + ls_line_no,3) pb code no migrated
// Details from Item Master
sql1 = "select item_ser, grp_code from item where item_code = ?";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, itemCode);
rs1 = pstmt1.executeQuery();
if (rs1.next())
{
itemSer = rs1.getString("item_ser");
grpCode = rs1.getString("grp_code");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if (acctCodeIss == null && acctCodeIss.trim().length()< 0)
{
errString = itmDBAccessEJB.getErrorString("","VTACCTCI","","",conn);
return errString ;
}
if (cctrCodeIss == null && cctrCodeIss.trim().length()< 0)
{
cctrCodeIss=" ";
}
if(consisuueList.size() == 0)
{
consisuueMap = new HashMap();
consisuueMap.put("type","D");
consisuueMap.put("acct_code", acctCodeIss);
consisuueMap.put("cctr_code", cctrCodeIss);
consisuueMap.put("amount", amount);
consisuueList.add(consisuueMap);
}
else
{
findIndex = findExistingIndex(consisuueList,"D",acctCodeIss,cctrCodeIss," "," "," ");
if(findIndex < 0)
{
consisuueMap = new HashMap();
consisuueMap.put("type","D");
consisuueMap.put("acct_code", acctCodeIss);
consisuueMap.put("cctr_code", cctrCodeIss);
consisuueMap.put("amount", amount);
consisuueList.add(consisuueMap);
}
else
{
consisuueMap = (HashMap) consisuueList.get(findIndex);
grAmount = (Double) consisuueMap.get("amount");
consisuueMap.put("amount", grAmount + amount);
consisuueList.set(findIndex, consisuueMap);
}
}
if (acctCodeInv == null && acctCodeInv.trim().length()< 0)
{
errString = itmDBAccessEJB.getErrorString("","VTACCTINV","","",conn);
return errString ;
}
if (cctrCodeInv == null && cctrCodeInv.trim().length()< 0)
{
cctrCodeInv=" ";
}
if(consisuueList.size() == 0)
{
consisuueMap = new HashMap();
consisuueMap.put("type","C");
consisuueMap.put("acct_code", acctCodeInv);
consisuueMap.put("cctr_code", cctrCodeInv);
consisuueMap.put("amount", amount);
consisuueList.add(consisuueMap);
}
else
{
findIndex = findExistingIndex(consisuueList,"C",acctCodeInv,cctrCodeInv," "," "," ");
if(findIndex < 0)
{
consisuueMap = new HashMap();
consisuueMap.put("type","C");
consisuueMap.put("acct_code", acctCodeInv);
consisuueMap.put("cctr_code", cctrCodeInv);
consisuueMap.put("amount", amount);
consisuueList.add(consisuueMap);
}
else
{
consisuueMap = (HashMap) consisuueList.get(findIndex);
grAmount = (Double) consisuueMap.get("amount");
consisuueMap.put("amount", grAmount + amount);
consisuueList.set(findIndex, consisuueMap);
}
}
// Data from TAXTRAN for Excise
sql1 = "select acct_code, cctr_code, (case when tax_amt is null then 0 else tax_amt end) as tax_amt from taxtran "
+ " where tran_code= ? and tran_id = ? and line_no = ? and tax_code = ?";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, tranSer);
pstmt1.setString(2, tranId);
pstmt1.setString(3, lineNo);
pstmt1.setString(4, varValue);
rs1 = pstmt1.executeQuery();
if (rs1.next())
{
acctCodeTax = rs1.getString("acct_code");
cctrCodeTax = rs1.getString("cctr_code");
taxAmt = rs1.getDouble("tax_amt");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if (taxAmt !=0)
{
findIndex = findExistingIndex(consisuueList,"D",acctPla,cctrPla," "," "," ");
if(findIndex < 0)
{
consisuueMap = new HashMap();
consisuueMap.put("type","D");
consisuueMap.put("acct_code", acctPla);
consisuueMap.put("cctr_code", cctrPla);
consisuueMap.put("amount", taxAmt);
consisuueList.add(consisuueMap);
}
else
{
consisuueMap = (HashMap) consisuueList.get(findIndex);
grAmount = (Double) consisuueMap.get("amount");
consisuueMap.put("amount", grAmount + taxAmt);
consisuueList.set(findIndex, consisuueMap);
}
if (acctCodeTax == null && acctCodeTax.trim().length()< 0)
{
errString = itmDBAccessEJB.getErrorString("","VTACTAX","","",conn);
return errString ;
}
if (cctrCodeTax == null && cctrCodeTax.trim().length()< 0)
{
cctrCodeTax=" ";
}
findIndex = findExistingIndex(consisuueList,"D",acctCodeTax,cctrCodeTax," "," "," ");
if(findIndex < 0)
{
consisuueMap = new HashMap();
consisuueMap.put("type","D");
consisuueMap.put("acct_code", acctCodeTax);
consisuueMap.put("cctr_code", cctrCodeTax);
consisuueMap.put("amount", taxAmt);
consisuueList.add(consisuueMap);
}
else
{
consisuueMap = (HashMap) consisuueList.get(findIndex);
grAmount = (Double) consisuueMap.get("amount");
consisuueMap.put("amount", grAmount + taxAmt);
consisuueList.set(findIndex, consisuueMap);
}
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("consisuueList Size---->["+consisuueList.size()+"]");
// Passing Accounting Entry into GL_TRACE
for(int x=0; x<consisuueList.size(); x++)
{
consisuueMap = (HashMap) consisuueList.get(x);
typeMap = (String) consisuueMap.get("type");
acctCodeMap = (String) consisuueMap.get("acct_code");
cctrCodeMap = (String) consisuueMap.get("cctr_code");
amountMap = Double.parseDouble(consisuueMap.get("amount").toString());
if("R".equalsIgnoreCase(tranType.trim()))
{
if("D".equalsIgnoreCase(typeMap.trim()))
{
typeMap="C";
}
else
{
typeMap="D";
}
}
glTraceMap = new HashMap();
glTraceMap.put("tran_date",tranDate);
glTraceMap.put("eff_date",tranDate);
glTraceMap.put("fin_entity", finEntity);
glTraceMap.put("site_code", siteCode);
glTraceMap.put("sundry_type","O");
glTraceMap.put("sundry_code","");
glTraceMap.put("acct_code", acctCodeMap);
glTraceMap.put("cctr_code", cctrCodeMap);
glTraceMap.put("emp_code", "");
glTraceMap.put("anal_code", "");
glTraceMap.put("curr_code", currCode);
glTraceMap.put("exch_rate", exchRate);
if("D".equals(typeMap))
{
if(amountMap > 0)
{
glTraceMap.put("dr_amt",amountMap);
glTraceMap.put("cr_amt",0.0);
}
else
{
glTraceMap.put("dr_amt", 0.0);
glTraceMap.put("cr_amt", 0 - amountMap);
}
}
else if("C".equals(typeMap))
{
if(amountMap > 0)
{
glTraceMap.put("dr_amt", 0.0);
glTraceMap.put("cr_amt", amountMap);
}
else
{
glTraceMap.put("dr_amt", 0 - amountMap);
glTraceMap.put("cr_amt", 0.0);
}
}
glTraceMap.put("ref_type","D");
glTraceMap.put("ref_ser", tranSer);
glTraceMap.put("ref_id", tranId);
glTraceMap.put("remarks",remarks);
errString = finCommon.glTraceUpdate(glTraceMap,conn);
System.out.println("After postConsIsuue glTraceUpdate errString["+errString+"]");
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
postOnline = checkNull(finCommon.getFinparams("999999", "POST_ON_LINE", conn));
System.out.println("PostOnline["+postOnline+"]");
if("Y".equals(postOnline))
{
errString = finCommon.checkGlTranDrCr(tranSer, tranId, conn);
}
}
}
}
catch(Exception e)
{
System.out.println("Exception inside consumeIssPost-->"+e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if (rs != null)
{
rs.close();rs = null;
}
if (pstmt != null)
{
pstmt.close();pstmt = null;
}
if (rs1 != null)
{
rs1.close();rs1 = null;
}
if (pstmt1 != null)
{
pstmt1.close();pstmt1 = null;
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
return errString;
}
}
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