Commit 68200d97 authored by smanohar's avatar smanohar

Commission credit note against voucher done with new method, also bug fix of...

Commission credit note against voucher  done with new method, also bug fix of calling masterstateful.processrequest userid passed in authenticate  to get correct db connection

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@210927 ce508802-f39f-4f6c-b175-0d175dae99d5
parent fb9b7a09
...@@ -3151,7 +3151,7 @@ public class CalculateCommission ...@@ -3151,7 +3151,7 @@ public class CalculateCommission
tranIdCrn = ""; tranIdCrn = "";
xmlString = (String) crnList.get(ctr); xmlString = (String) crnList.get(ctr);
System.out.println("saveDataCrn2 [" + ctr + "] xmlString ["+xmlString + "]"); System.out.println("saveDataCrn2 [" + ctr + "] xmlString ["+xmlString + "]");
errString = saveDataCrn(siteCode,xmlString,conn); errString = saveDataCrn(siteCode,xmlString,conn,xtraParams);
if((errString == null || errString.trim().length() ==0) && ("Y".equals(post)) ) if((errString == null || errString.trim().length() ==0) && ("Y".equals(post)) )
{ {
...@@ -3176,7 +3176,7 @@ public class CalculateCommission ...@@ -3176,7 +3176,7 @@ public class CalculateCommission
} }
return errString; return errString;
} }
private String saveDataCrn(String siteCode,String xmlString, Connection conn) throws ITMException private String saveDataCrn(String siteCode,String xmlString, Connection conn,String xtraParams) throws ITMException
{ {
System.out.println("saving data..........."); System.out.println("saving data...........");
InitialContext ctx = null; InitialContext ctx = null;
...@@ -3188,8 +3188,9 @@ public class CalculateCommission ...@@ -3188,8 +3188,9 @@ public class CalculateCommission
ctx = new InitialContext(appConnect.getProperty()); ctx = new InitialContext(appConnect.getProperty());
masterStateful = (MasterStatefulLocal)ctx.lookup("ibase/MasterStatefulEJB/local"); masterStateful = (MasterStatefulLocal)ctx.lookup("ibase/MasterStatefulEJB/local");
System.out.println("-----------masterStateful------- " + masterStateful); System.out.println("-----------masterStateful------- " + masterStateful);
String userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginCode");
String [] authencate = new String[2]; String [] authencate = new String[2];
authencate[0] = ""; authencate[0] = userId;
authencate[1] = ""; authencate[1] = "";
System.out.println("xmlString to masterstateful [" + xmlString + "]"); System.out.println("xmlString to masterstateful [" + xmlString + "]");
retString = masterStateful.processRequest(authencate, siteCode, true, xmlString,true,conn); retString = masterStateful.processRequest(authencate, siteCode, true, xmlString,true,conn);
...@@ -3591,5 +3592,463 @@ public class CalculateCommission ...@@ -3591,5 +3592,463 @@ public class CalculateCommission
return errString; return errString;
} }
public String commCrditNoteVouch(String tranId, String confDrcrOpt,String xtraParams , Connection conn) throws Exception
{
String errString = "",VouchId = "", currCode = "", finEntity = "", siteCode = "", itemCode = "", salesPers ="";
String StrCommon= "", dlvTerm = "", errCode = "", salesPersOld = "", itemSer = "", tranSer = "", sql = "";
String tranNoFld = "", keyString = "", crTerm= "", acctCode = "", cctrCode = "", autoTranId = "";
String insReqd = "", frtReqd = "", acctCodeExp = "", cctrCodeExp= "", custCode = "",nullStr = "", xmlString = "";
String purcOrder = "", strLineNo = "", currCodeSp = "", Str1 = "";
double invAmt = 0, frtAmt = 0, netAmt = 0, qtyStdUom = 0, rateStdUom = 0,commPercBase=0;
double commFrt = 0, commInsu = 0, invAmtDet = 0, commPerc = 0, ordAmt = 0, insuAmt = 0;
double totNetAmt = 0, drCrAmt = 0, invDisc = 0, dblVal = 0, dblVal1 = 0, commQty = 0, amount = 0, netAmount = 0;
double exchRate = 0, jvExchRate = 0, exchRateSp = 0;
java.sql.Timestamp tranDate = null, effDate = null , chgDate = null, ldDate = null, taxDate = null,plDate = null;
int lineNoVch = 0, llLineNo=0, crDays = 0, refLineNo = 0;
int hdrRow = 0, detRow= 0, totRow= 0, currRow = 0, llCount =0;
String taxClass = "", taxChap = "", taxEnv = "", strArg1 = "", strArg2 = "", tranType= "";
String vouchNo = "" , acctCodeCf = "", cctrCodeCf= "", rcpId = "", remarks = "";
double lcExchRate =0, rcpExchRateTot= 0, rcpExchRate=0, exchRateDiff= 0, exchRateDiffTot =0, taxAmt=0;
StringBuffer xmlBuff = null;
HashMap commMap = new HashMap();
ArrayList commtList = new ArrayList();
SimpleDateFormat sdf = null;
PreparedStatement pstmt = null,pstmt1 = null;
ResultSet rs = null, rs1 = null;
ITMDBAccessEJB itmDBAccessEJB = null;
itmDBAccessEJB = new ITMDBAccessEJB();
ArrayList<String> crnList = new ArrayList();
boolean isResult = false;
try
{
sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
chgDate = new java.sql.Timestamp(new java.util.Date().getTime());
taxDate = chgDate;
ldDate = chgDate;
String userid = genericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginCode");
String termid = genericUtility.getValueFromXTRA_PARAMS(xtraParams,"termId");
tranSer = "CRNVOU";
tranNoFld = "'tran_id";
remarks = "Against Voucher : ";
sql = "select key_string from transetup where upper(tran_window) = 'W_DRCRINV_VOUCH'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next())
{
keyString = rs.getString(1);
}
else
{
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql = "select key_string from transetup where upper(tran_window) = 'GENERAL'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next())
{
keyString = rs.getString(1);
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
// get the a/c code for commission expense a/c
acctCodeExp = finCommon.getFinparams("999999", "COMM_EXP_ACCT", conn);
if ("NULLFOUND".equals(acctCodeExp))
{
errString = getMsg(" FINPARM variable COMM_EXP_ACCT for commission expense account not defined","VTFINPARM", conn);
return errString;
}
else
{
cctrCodeExp = finCommon.getFinparams("999999", "COMM_EXP_CCTR", conn);
if ("NULLFOUND".equals(cctrCodeExp))
{
errString = getMsg(" FINPARM variable COMM_EXP_CCTR for commission expense cost center not defined","VTFINPARM", conn);
return errString;
}
}
// get acct_code for currency fluctuation from bank
vouchNo = tranId;
sql = " Select acct_code__cf, cctr_code__cf from bank where bank_code = "
+ " (Select bank_code from site where site_code = (select site_code from voucher where tran_id = ? ))";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, vouchNo);
rs = pstmt.executeQuery();
if(rs.next())
{
acctCodeCf = rs.getString("acct_code__cf");
cctrCodeCf = rs.getString("cctr_code__cf");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
// get the sales persons and other details from the
// Purchase orders relating to a po
sql = "SELECT v.tran_id, v.tot_amt,v.tran_date,v.eff_date,v.curr_code,v.exch_rate,"
+ " v.fin_entity,v.site_code,vr.line_no__rcp,vr.item_code,vr.net_amt,vr.vouch_qty, "
+ " vr.vouch_rate,vr.disc_amt,vr.vouch_amt,vr.purc_order,vr.line_no__pord,vr.line_no, "
+ " vr.discount,vr.vouch_qty__stduom,vr.vouch_rate__stduom "
+ " FROM voucher v,vouchrcp vr "
+ " WHERE v.tran_id = vr.tran_id and v.TRAN_ID = ? ";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, tranId);
rs1 = pstmt1.executeQuery();
while(rs1.next())
{
currRow = currRow + 1;
VouchId = rs1.getString("tran_id");
tranDate = rs1.getTimestamp("tran_date");
effDate = rs1.getTimestamp("eff_date");
currCode = rs1.getString("curr_code");
exchRate = rs1.getDouble("exch_rate");
finEntity = rs1.getString("fin_entity");
siteCode = rs1.getString("site_code");
lineNoVch = rs1.getInt("line_no");
itemCode = rs1.getString("item_code");
qtyStdUom = rs1.getDouble("vouch_qty__stduom");
rateStdUom = rs1.getDouble("vouch_rate__stduom");
invDisc = rs1.getDouble("discount");
purcOrder= rs1.getString("purc_order");
strLineNo= rs1.getString("line_no__pord");
sql = "select sales_pers, comm_perc__on, comm_perc, curr_code__comm, item_ser, exch_rate__sp "
+ " from porder where purc_order = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, purcOrder);
rs = pstmt.executeQuery();
if(rs.next())
{
salesPers = rs.getString("sales_pers");
StrCommon = rs.getString("comm_perc__on");
commPerc = rs.getDouble("comm_perc");
currCodeSp = rs.getString("curr_code__comm");
itemSer = rs.getString("item_ser");
exchRateSp = rs.getDouble("exch_rate__sp");
}
else
{
rs.close();
rs = null;
pstmt.close();
pstmt = null;
errString = getMsg(" Not able to get sales persion from PO # [" + purcOrder + "]","VTSLPERS1", conn);
return errString;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
/// amish 27-10-05
if ( salesPers == null || salesPers.trim().length() == 0 || commPerc == 0)
{
continue;
}
//exchange rate and currency code of voucher itself
if (exchRateSp == 0)
{
currCodeSp = currCode;
exchRateSp = exchRate;
}
if (!salesPersOld.trim().equals(salesPers.trim()))
{
salesPersOld = salesPers;
if( xmlBuff != null && (xmlBuff.toString()).length() > 0 )
{
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
crnList.add(xmlBuff.toString());
xmlBuff = null;
xmlBuff = new StringBuffer();
}
///credit term and tax detail from sales person master.
///account code for account payable from sales person master.
isResult = false;
sql = "select cr_term , tax_class, tax_chap , tax_env,acct_code__ap, cctr_code__ap from sales_pers where sales_pers = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, salesPers);
rs = pstmt.executeQuery();
if(rs.next())
{
crTerm = rs.getString("cr_term");
taxClass = rs.getString("tax_class");
taxChap = rs.getString("tax_chap");
taxEnv = rs.getString("tax_env");
acctCode = rs.getString("acct_code__ap");
cctrCode = rs.getString("cctr_code__ap");
isResult = true;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if (!isResult)
{
errString = getMsg(" Salesperson {" + salesPers + "] not found in master","VTSLPERS1", conn);
return errString;
}
//credit days from crdit term for setting due date.
isResult = false;
sql = " select cr_days from crterm where cr_term = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, crTerm);
rs = pstmt.executeQuery();
if(rs.next())
{
crDays = rs.getInt("cr_days");
isResult = true;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if (!isResult)
{
errString = getMsg(" Credit term [" + crTerm + "] not found in master","VTCRTERM1", conn);
return errString;
}
if( xmlBuff == null )
{
xmlBuff = new StringBuffer();
}
xmlBuff.append("<?xml version='1.0' encoding='ISO-8859-1'?>\n");
xmlBuff.append("<DocumentRoot>");
xmlBuff.append("<description>").append("Datawindow Root").append("</description>");
xmlBuff.append("<group0>");
xmlBuff.append("<description>").append("Group0 description").append("</description>");
xmlBuff.append("<Header0>");
xmlBuff.append("<objName><![CDATA[").append("drcrinv_vouch").append("]]></objName>");
xmlBuff.append("<pageContext><![CDATA[").append("1").append("]]></pageContext>");
xmlBuff.append("<objContext><![CDATA[").append("1").append("]]></objContext>");
xmlBuff.append("<editFlag><![CDATA[").append("A").append("]]></editFlag>");
xmlBuff.append("<focusedColumn><![CDATA[").append("").append("]]></focusedColumn>");
xmlBuff.append("<action><![CDATA[").append("SAVE").append("]]></action>");
xmlBuff.append("<elementName><![CDATA[").append("").append("]]></elementName>");
xmlBuff.append("<keyValue><![CDATA[").append("1").append("]]></keyValue>");
xmlBuff.append("<taxKeyValue><![CDATA[").append("").append("]]></taxKeyValue>");
xmlBuff.append("<saveLevel><![CDATA[").append("1").append("]]></saveLevel>");
xmlBuff.append("<forcedSave><![CDATA[").append(true).append("]]></forcedSave>");
xmlBuff.append("<taxInFocus><![CDATA[").append(false).append("]]></taxInFocus>");
xmlBuff.append("<description>").append("Header0 members").append("</description>");
xmlBuff.append("<Detail1 dbID=\"\" domID=\"1\" objName=\"drcrinv_vouch\" objContext=\"1\">");
xmlBuff.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuff.append("<tran_id/>");
xmlBuff.append("<tran_date><![CDATA["+ sdf.format(ldDate).toString() +"]]></tran_date>");
xmlBuff.append("<site_code><![CDATA["+ siteCode +"]]></site_code>");
xmlBuff.append("<voucher_no><![CDATA["+ VouchId +"]]></voucher_no>");
xmlBuff.append("<fin_entity><![CDATA["+ finEntity +"]]></fin_entity>");
xmlBuff.append("<sundry_type><![CDATA["+ "P" +"]]></sundry_type>");
xmlBuff.append("<sundry_code><![CDATA["+salesPers+"]]></sundry_code>");
xmlBuff.append("<item_ser><![CDATA["+ itemSer +"]]></item_ser>");
xmlBuff.append("<acct_code><![CDATA["+ acctCode +"]]></acct_code>");
xmlBuff.append("<cctr_code><![CDATA["+ cctrCode +"]]></cctr_code>");
xmlBuff.append("<eff_date><![CDATA["+ sdf.format(ldDate).toString() +"]]></eff_date>");
xmlBuff.append("<curr_code><![CDATA["+ currCodeSp +"]]></curr_code>");
if (exchRateSp == 0 )
{
exchRateSp = 1;
}
xmlBuff.append("<exch_rate><![CDATA["+ exchRateSp +"]]></exch_rate>");
//sales comm tran type from the fin parm.
tranType = finCommon.getFinparams("999999", "SALES_COMM_TRAN_TYPE", conn);
if ("NULLFOUND".equals(tranType))
{
errString = getMsg(" FINPARM variable SALES_COMM_TRAN_TYPE for commission CRN tranaction type not defined","VTFINPARM", conn);
return errString;
}
xmlBuff.append("<tran_type><![CDATA["+ tranType +"]]></tran_type>");
// 05-12-02 Arif to set the remarks
xmlBuff.append("<drcr_flag><![CDATA["+ "C" +"]]></drcr_flag>");
xmlBuff.append("<remarks><![CDATA["+ remarks + " " + VouchId +"]]></remarks>");
xmlBuff.append("<tran_type><![CDATA["+ tranType +"]]></tran_type>");
xmlBuff.append("<tran_ser><![CDATA["+ tranSer +"]]></tran_ser>");
xmlBuff.append("<cr_term><![CDATA["+ crTerm +"]]></cr_term>");
xmlBuff.append("<due_date><![CDATA["+ sdf.format(utilMethods.RelativeDate((new java.util.Date()), crDays)).toString() +"]]></due_date>");
xmlBuff.append("<acct_code__cf><![CDATA["+ acctCodeCf +"]]></acct_code__cf>");
xmlBuff.append("<cctr_code__cf><![CDATA["+ cctrCodeCf +"]]></cctr_code__cf>");
xmlBuff.append("<chg_date><![CDATA["+ sdf.format(new java.util.Date()) +"]]></chg_date>");
xmlBuff.append("<chg_user><![CDATA["+ userid +"]]></chg_user>");
xmlBuff.append("<chg_term><![CDATA["+ termid +"]]></chg_term>");
// 08/08/14 manoharan in order user during receipt dishonour
xmlBuff.append("</Detail1>");
//insert into header of the comm calculation of the voucher.
llLineNo = 0;
totNetAmt = 0;
exchRateDiffTot = 0;
//
} // if salesPersOld <> salesPers then
//insert into detail
drCrAmt = 0;
if ("A".equals(StrCommon))
{
// on amount - deducting discount
drCrAmt = ( (qtyStdUom * rateStdUom) - ((qtyStdUom * rateStdUom) * invDisc / 100) ) * commPerc / 100;
}
else if ("Q".equals(StrCommon))
{
// on quantity
drCrAmt = qtyStdUom * commPerc;
}
if (drCrAmt != 0)
{
llLineNo ++;
xmlBuff.append("<Detail2 dbID='' domID=\"" + llLineNo + "\" objName=\"drcrinv_vouch\" objContext=\"2\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" updateFlag=\"A\" status=\"N\" />");
xmlBuff.append("<tran_id/>");
xmlBuff.append("<line_no><![CDATA["+ llLineNo +"]]></line_no>");
//xmlBuff.append("<invoice_id/>");
xmlBuff.append("<voucher_no><![CDATA["+ VouchId +"]]></voucher_no>");
xmlBuff.append("<line_no__inv><![CDATA["+ lineNoVch +"]]></line_no__inv>");
xmlBuff.append("<item_code><![CDATA["+ itemCode +"]]></item_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("<acct_code><![CDATA["+ acctCodeExp +"]]></acct_code>");
xmlBuff.append("<cctr_code><![CDATA["+ cctrCodeExp +"]]></cctr_code>");
xmlBuff.append("<exch_rate__inv><![CDATA["+ exchRateSp +"]]></exch_rate__inv>");
xmlBuff.append("<drcr_amt><![CDATA["+ drCrAmt +"]]></drcr_amt>");
}
salesPersOld = salesPers;
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if( xmlBuff != null && (xmlBuff.toString()).length() > 0 )
{
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
crnList.add(xmlBuff.toString());
}
DrCrInvConf drCrInvConf = new DrCrInvConf();
for (int ctr = 0; ctr < crnList.size(); ctr++)
{
tranIdCrn = "";
xmlString = (String) crnList.get(ctr);
System.out.println("saveDataCrn2 [" + ctr + "] xmlString ["+xmlString + "]");
errString = saveDataCrn(siteCode,xmlString,conn,xtraParams);
if( errString.indexOf("Success") != -1 )
{
errString = errString;
tranIdCrn=errString.substring( errString.indexOf("<TranID>")+8, errString.indexOf("</TranID>"));
sql = "update drcr_invdet set net_amt = (drcr_amt * ? / ?) + tax_amtwhere tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, exchRate);
pstmt.setDouble(2, exchRateSp);
pstmt.setString(3, tranIdCrn);
detRow = pstmt.executeUpdate();
sql = "select sum(net_amt) as net_amt from drcr_invdet where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranIdCrn);
rs = pstmt.executeQuery();
if(rs.next())
{
totNetAmt = rs.getDouble("net_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql = "update drcr_inv set amount = ? , amount__bc = ? * ? where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, totNetAmt);
pstmt.setDouble(2, totNetAmt);
pstmt.setDouble(3, exchRateSp);
pstmt.setString(4, tranIdCrn);
hdrRow = pstmt.executeUpdate();
if("Y".equals(confDrcrOpt))
{
errString = drCrInvConf.confirm(tranIdCrn,xtraParams,"N", conn);
if(errString.indexOf("VTCICONF3") > -1)
{
errString = "";
}
else
{
break;
}
}
}
else
{
return errString;
}
}
drCrInvConf = null;
}catch(Exception e)
{
System.out.println(e.getMessage());
System.out.println("Exception : "+e);
e.printStackTrace();
throw new ITMException(e);
}
return errString;
}
private String getMsg(String trace,String Code,Connection conn) throws ITMException, Exception
{
String mainStr ="";
try
{
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
String errString = "";
errString = itmDBAccessEJB.getErrorString("",Code,"","",conn);
String begPart = errString.substring(0,errString.indexOf("<message>")+9);
String begDesc = errString.substring(0,errString.indexOf("<description>")+13);
String endDesc = errString.substring(errString.indexOf("</description>"));
mainStr= begPart + trace + " </message><description>";
mainStr= mainStr+endDesc;
begPart = null;
itmDBAccessEJB = null;
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
return mainStr;
}
} }
\ No newline at end of file
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