Commit 64e3151f authored by tmahadi's avatar tmahadi

bug fix in auto advance adjustment by azhar


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@104047 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 680bc3a3
package ibase.webitm.ejb.fin; package ibase.webitm.ejb.fin;
import ibase.webitm.ejb.ValidatorEJB; import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.ejb.dis.DistCommon; import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.utility.GenericUtility; import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException; import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException; import java.rmi.RemoteException;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import org.w3c.dom.Document; import org.w3c.dom.Document;
@javax.ejb.Stateless
public class MiscVoucherPostSave extends ValidatorEJB implements MiscVoucherPostSaveLocal, MiscVoucherPostSaveRemote
{ @javax.ejb.Stateless
public class MiscVoucherPostSave extends ValidatorEJB implements MiscVoucherPostSaveLocal, MiscVoucherPostSaveRemote {
FinCommon finCommon = new FinCommon(); FinCommon finCommon = new FinCommon();
DistCommon distCommon = new DistCommon(); DistCommon distCommon = new DistCommon();
public String postSave()throws RemoteException,ITMException public String postSave() throws RemoteException, ITMException {
{
return ""; return "";
} }
public String postSave( String domString, String editFlag, String xtraParams, Connection conn ) throws RemoteException,ITMException public String postSave(String domString, String editFlag,String xtraParams, Connection conn) throws RemoteException,ITMException {
{
System.out.println("In VoucherPostSave ... "); System.out.println("In VoucherPostSave ... ");
PreparedStatement pstmt = null,pstmt1=null; PreparedStatement pstmt = null;
Document dom = null; Document dom = null;
ResultSet rs =null,rs1=null; ResultSet rs = null;
boolean isError = false; double diffAmtExch = 0, netAmt = 0, netAmtBc = 0, billAmt = 0, taxAmt = 0, totAmt = 0;
double advAmt = 0;
String sql = null,sql1=null;
double diffAmtExch = 0, adjAmt = 0, netAmt = 0, netAmtBc = 0, vouchAmt = 0, billAmt = 0, taxAmt = 0, totAmt = 0;
double diffAmtExchLine=0.0;
double netAmtRcp = 0, advAmt = 0, netAmtDet = 0, netAmtBcRcp = 0, taxAmtDet = 0, totAmtDet = 0, netAmtBcDet = 0 ;
double advAmtAdj = 0, taxedAdjAmt = 0, advAmtDet = 0, taxAmtAdv = 0; double advAmtAdj = 0, taxedAdjAmt = 0, advAmtDet = 0, taxAmtAdv = 0;
String hdrVoucherType="",exchRate=""; String exchRate = "" ,tran_id = "", sql = "", sundryType = "", advAdjMthd = "", sundryCode = "", siteCode = "";
String tran_id = "", sundryType = "", vouchType = "", advAdjMthd = "", sundryCode = "", siteCode = ""; int cnt = 0;
try {
boolean isAutoAdvAdjustment = false;
int cnt=0,cnt1=0,listCnt=1;
try
{
GenericUtility genericUtility = GenericUtility.getInstance(); GenericUtility genericUtility = GenericUtility.getInstance();
dom = genericUtility.parseString(domString); dom = genericUtility.parseString(domString);
//added by azhar [start](S16ESUN001) // added by azhar [start](S16ESUN001)
//Read Header Column Values // Read Header Column Values
tran_id = checkNullAndTrim(genericUtility.getColumnValue("tran_id", dom)); tran_id = checkNullAndTrim(genericUtility.getColumnValue("tran_id",dom));
sundryType = checkNullAndTrim(genericUtility.getColumnValue("sundry_type", dom)); sundryType = checkNullAndTrim(genericUtility.getColumnValue("sundry_type", dom));
vouchType = checkNullAndTrim(genericUtility.getColumnValue("vouch_type", dom));
advAdjMthd = genericUtility.getColumnValue("adv_adj_mthd", dom); advAdjMthd = genericUtility.getColumnValue("adv_adj_mthd", dom);
//totAmt = Double.parseDouble(genericUtility.getColumnValue("supp_bill_amt", dom)); // totAmt1 = genericUtility.getColumnValue("supp_bill_amt", dom);
String tempAmt = checkNullAndTrim(genericUtility.getColumnValue("supp_bill_amt", dom)); String tempAmt = checkNullAndTrim(genericUtility.getColumnValue("supp_bill_amt", dom));
totAmt = tempAmt.length() > 0 ? Double.parseDouble(tempAmt) : 0; totAmt = tempAmt.length() > 0 ? Double.parseDouble(tempAmt) : 0;
siteCode = checkNullAndTrim(genericUtility.getColumnValue("site_code", dom)); siteCode = checkNullAndTrim(genericUtility.getColumnValue("site_code", dom));
sundryCode = checkNullAndTrim(genericUtility.getColumnValue("sundry_code", dom)); sundryCode = checkNullAndTrim(genericUtility.getColumnValue("sundry_code", dom));
System.out.println("tran id from dom::: " + tran_id); System.out.println("tran id from dom::: " + tran_id);
System.out.println("supplier bill amt::" + totAmt);
advAdjMthd = advAdjMthd == null ? "0" : advAdjMthd.trim(); advAdjMthd = advAdjMthd == null ? "0" : advAdjMthd.trim();
System.out.println(); System.out.println();
if("1".equalsIgnoreCase(advAdjMthd) && totAmt > 0){
{
isAutoAdvAdjustment = true;
}
} else {
isAutoAdvAdjustment = false;
}
if(isAutoAdvAdjustment){
insertIntoMiscVouchAdv(tran_id,sundryType,totAmt,siteCode,sundryCode,conn);
}
//added by azhar[end](S16ESUN001)
if ("1".equalsIgnoreCase(advAdjMthd) && totAmt > 0)
{
insertIntoMiscVouchAdv(tran_id, sundryType, totAmt, siteCode,sundryCode, conn);
}
// added by azhar[end](S16ESUN001)
// Advance Screen Cross Update // Advance Screen Cross Update
sql="select exch_rate from misc_voucher where tran_id=?"; sql = "select exch_rate from misc_voucher where tran_id=?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tran_id ); pstmt.setString(1, tran_id);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if(rs.next()){ if (rs.next()) {
exchRate=rs.getString("exch_rate"); exchRate = rs.getString("exch_rate");
} }
rs.close(); rs.close();
rs = null; rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
//To update diff_amt__exch for every line_no // To update diff_amt__exch for every line_no
sql="update misc_vouchadv set diff_amt__exch=((coalesce(adj_amt,0) * coalesce(exch_rate__vouch,0))-(coalesce(adj_amt,0)*?))" sql = "update misc_vouchadv set diff_amt__exch=((coalesce(adj_amt,0) * coalesce(exch_rate__vouch,0))-(coalesce(adj_amt,0)*?)) where tran_id= ? ";
+ " where tran_id= ? ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1,exchRate); pstmt.setString(1, exchRate);
pstmt.setString(2,tran_id); pstmt.setString(2, tran_id);
cnt1 = pstmt.executeUpdate();
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
/**Commented by Vallabh Kadam 28/NOV/14*/ /** Commented by Vallabh Kadam 28/NOV/14 */
// sql="select coalesce(((mvadv.adj_amt * mvadv.exch_rate__vouch) - (mvadv.adj_amt * mv.exch_rate)),0) " + // sql="select coalesce(((mvadv.adj_amt * mvadv.exch_rate__vouch) - (mvadv.adj_amt * mv.exch_rate)),0) "
// " from misc_vouchadv mvadv join misc_voucher mv on mvadv.tran_id = mv.tran_id WHERE mvadv.tran_id = ? " ; // +
/**Commented by Vallabh Kadam 28/NOV/14 END*/ // " from misc_vouchadv mvadv join misc_voucher mv on mvadv.tran_id = mv.tran_id WHERE mvadv.tran_id = ? "
// ;
//SUM of all diff_amt__exch to update in header /** Commented by Vallabh Kadam 28/NOV/14 END */
sql="select coalesce(sum(diff_amt__exch),0) from misc_vouchadv where tran_id = ?";
// SUM of all diff_amt__exch to update in header
sql = "select coalesce(sum(diff_amt__exch),0) from misc_vouchadv where tran_id = ?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tran_id ); pstmt.setString(1, tran_id);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if (rs.next()) if (rs.next()) {
{ diffAmtExch = rs.getDouble(1);
diffAmtExch = rs.getDouble(1);
} }
rs.close(); rs.close();
rs = null; rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
sql="select coalesce(sum(adj_amt),0), coalesce(sum(taxed_adj_amt),0), coalesce(sum(tax_amt),0) from misc_vouchadv WHERE tran_id = ? " ; sql = "select coalesce(sum(adj_amt),0), coalesce(sum(taxed_adj_amt),0), coalesce(sum(tax_amt),0) from misc_vouchadv WHERE tran_id = ? ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tran_id); pstmt.setString(1, tran_id);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if (rs.next()) if (rs.next()) {
{
advAmtAdj = rs.getDouble(1); advAmtAdj = rs.getDouble(1);
taxedAdjAmt = rs.getDouble(2); taxedAdjAmt = rs.getDouble(2);
taxAmtAdv = rs.getDouble(3); taxAmtAdv = rs.getDouble(3);
...@@ -147,75 +119,66 @@ public class MiscVoucherPostSave extends ValidatorEJB implements MiscVoucherPost ...@@ -147,75 +119,66 @@ public class MiscVoucherPostSave extends ValidatorEJB implements MiscVoucherPost
rs = null; rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
sql="select coalesce((adv_amt__adj + adv_amt__det),0), coalesce((coalesce((adv_amt__adj + adv_amt__det),0) + tot_amt),0), coalesce((coalesce((adv_amt__adj + adv_amt__det),0) + tot_amt),0) + coalesce(exch_rate,0) from misc_voucher WHERE tran_id = ? " ; sql = "select coalesce((adv_amt__adj + adv_amt__det),0), coalesce((coalesce((adv_amt__adj + adv_amt__det),0) + tot_amt),0), coalesce((coalesce((adv_amt__adj + adv_amt__det),0) + tot_amt),0) + coalesce(exch_rate,0) from misc_voucher WHERE tran_id = ? ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tran_id ); pstmt.setString(1, tran_id);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if (rs.next()) if (rs.next()) {
{
advAmt = rs.getDouble(1); advAmt = rs.getDouble(1);
netAmt = rs.getDouble(2); netAmt = rs.getDouble(2);
netAmtBc = rs.getDouble(3); netAmtBc = rs.getDouble(3);
} }
rs.close(); rs.close();
rs = null; rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
/**Commented on 28/NOV/14 Vallabh Kadam */ /** Commented on 28/NOV/14 Vallabh Kadam */
// sql="UPDATE misc_vouchadv set diff_amt__exch = ? " // sql="UPDATE misc_vouchadv set diff_amt__exch = ? "
// +" WHERE tran_id = ? "; // +" WHERE tran_id = ? ";
// pstmt = conn.prepareStatement(sql); // pstmt = conn.prepareStatement(sql);
// pstmt.setDouble(1,diffAmtExch ); // pstmt.setDouble(1,diffAmtExch );
// pstmt.setString(2,tran_id ); // pstmt.setString(2,tran_id );
// cnt = pstmt.executeUpdate(); // cnt = pstmt.executeUpdate();
// pstmt.close(); // pstmt.close();
// pstmt = null; // pstmt = null;
// if( cnt > 0)
// {
// System.out.println("update of advance Screen success ["+cnt+"]");
// }
/**Commented on 28/NOV/14 Vallabh Kadam END */
sql="UPDATE misc_voucher set adv_amt__adj = ?, adv_amt = ?, taxed_adj_amt = ?, diff_amt__exch = ?, net_amt = ?, net_amt__bc = ? "
+" WHERE tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,advAmtAdj );
pstmt.setDouble(2,advAmt );
pstmt.setDouble(3,taxedAdjAmt );
pstmt.setDouble(4,diffAmtExch );
pstmt.setDouble(5,netAmt );
pstmt.setDouble(6,netAmtBc );
pstmt.setString(7,tran_id );
cnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
if( cnt > 0) // if( cnt > 0)
{ // {
System.out.println("update of advance Screen in misc_voucher success ["+cnt+"]"); // System.out.println("update of advance Screen success ["+cnt+"]");
} // }
/** Commented on 28/NOV/14 Vallabh Kadam END */
sql = "UPDATE misc_voucher set adv_amt__adj = ?, adv_amt = ?, taxed_adj_amt = ?, diff_amt__exch = ?, net_amt = ?, net_amt__bc = ? " +
" WHERE tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, advAmtAdj);
pstmt.setDouble(2, advAmt);
pstmt.setDouble(3, taxedAdjAmt);
pstmt.setDouble(4, diffAmtExch);
pstmt.setDouble(5, netAmt);
pstmt.setDouble(6, netAmtBc);
pstmt.setString(7, tran_id);
cnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
if (cnt > 0) {
System.out.println("update of advance Screen in misc_voucher success [" + cnt + "]");
}
// End Of advance Screen cross Update // End Of advance Screen cross Update
//Detail Screen Cross Update // Detail Screen Cross Update
sql="select case when mv.vouch_type = 'A' " sql = "select case when mv.vouch_type = 'A' Then coalesce(sum(mvdet.amount),0) " + "ELSE 0 END, "
+ "Then coalesce(sum(mvdet.amount),0) " + "case when mv.vouch_type != 'A' Then coalesce(sum(mvdet.amount),0) " + "ELSE 0 END,"
+ "ELSE 0 END, " + " coalesce(sum(mvdet.tax_amt),0) from misc_vouchdet mvdet join misc_voucher mv "
+ "case when mv.vouch_type != 'A' " + "on mvdet.tran_id = mv.tran_id WHERE mvdet.tran_id = ? group by mv.vouch_type";
+ "Then coalesce(sum(mvdet.amount),0) "
+ "ELSE 0 END,"
+ " coalesce(sum(mvdet.tax_amt),0) "
+ "from misc_vouchdet mvdet join misc_voucher mv "
+ "on mvdet.tran_id = mv.tran_id "
+ "WHERE mvdet.tran_id = ? group by mv.vouch_type" ;
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tran_id); pstmt.setString(1, tran_id);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if (rs.next()) if (rs.next()) {
{
advAmtDet = rs.getDouble(1); advAmtDet = rs.getDouble(1);
billAmt = rs.getDouble(2); billAmt = rs.getDouble(2);
taxAmt = rs.getDouble(3); taxAmt = rs.getDouble(3);
...@@ -224,251 +187,285 @@ public class MiscVoucherPostSave extends ValidatorEJB implements MiscVoucherPost ...@@ -224,251 +187,285 @@ public class MiscVoucherPostSave extends ValidatorEJB implements MiscVoucherPost
rs = null; rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
sql = "select coalesce(adv_amt__adj + adv_amt__det,0) from misc_voucher WHERE tran_id = ? ";
sql="select coalesce(adv_amt__adj + adv_amt__det,0) from misc_voucher WHERE tran_id = ? " ;
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tran_id ); pstmt.setString(1, tran_id);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if (rs.next()) if (rs.next()) {
{
advAmt = rs.getDouble(1); advAmt = rs.getDouble(1);
} }
rs.close(); rs.close();
rs = null; rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
totAmt = billAmt + (taxAmt + taxAmtAdv); totAmt = billAmt + (taxAmt + taxAmtAdv);
netAmt = advAmt + totAmt; netAmt = advAmt + totAmt;
sql = "select coalesce(? * exch_rate,0) from misc_voucher WHERE tran_id = ? ";
sql="select coalesce(? * exch_rate,0) from misc_voucher WHERE tran_id = ? " ;
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,netAmt ); pstmt.setDouble(1, netAmt);
pstmt.setString(2,tran_id ); pstmt.setString(2, tran_id);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if (rs.next()) if (rs.next()) {
{
netAmtBc = rs.getDouble(1); netAmtBc = rs.getDouble(1);
} }
rs.close(); rs.close();
rs = null; rs = null;
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
System.out.println("Taxy Amt = "+ taxAmt + " totAmt = "+ totAmt);
sql="UPDATE misc_voucher set adv_amt__det = ?, bill_amt = ?, adv_amt = ?, tax_amt = ?, tot_amt = ?, net_amt = ?, net_amt__bc = ? WHERE tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,advAmtDet );
pstmt.setDouble(2,billAmt);
pstmt.setDouble(3,advAmt);
pstmt.setDouble(4,(taxAmt + taxAmtAdv));
pstmt.setDouble(5,totAmt);
pstmt.setDouble(6,netAmt);
pstmt.setDouble(7,netAmtBc);
pstmt.setString(8,tran_id );
cnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
if( cnt > 0) System.out.println("Taxy Amt = " + taxAmt + " totAmt = " + totAmt);
{
System.out.println("update of Detail Screen success ["+cnt+"]"); sql = "UPDATE misc_voucher set adv_amt__det = ?, bill_amt = ?, adv_amt = ?, tax_amt = ?, tot_amt = ?, net_amt = ?, net_amt__bc = ?" +
} " WHERE tran_id = ? ";
pstmt = conn.prepareStatement(sql);
//End Of Detail Screen Cross Update pstmt.setDouble(1, advAmtDet);
pstmt.setDouble(2, billAmt);
} pstmt.setDouble(3, advAmt);
catch (Exception e) pstmt.setDouble(4, (taxAmt + taxAmtAdv));
{ pstmt.setDouble(5, totAmt);
System.out.println("Exception : MiscVoucherPostSave -->[" pstmt.setDouble(6, netAmt);
+ e.getMessage() + "]"); pstmt.setDouble(7, netAmtBc);
e.printStackTrace(); pstmt.setString(8, tran_id);
try cnt = pstmt.executeUpdate();
{ pstmt.close();
pstmt = null;
sql = "update misc_vouchdet_cctr set net_amount = amount + tax_amt where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tran_id);
cnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
sql = "update misc_vouchdet set net_amount = amount + tax_amt where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tran_id);
cnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
if (cnt > 0) {
System.out.println("update of Detail Screen success [" + cnt + "]");
} }
catch (Exception e1)
{ // End Of Detail Screen Cross Update
} catch (Exception e) {
System.out.println("Exception : MiscVoucherPostSave -->[" + e.getMessage() + "]");
e.printStackTrace();
try {
} catch (Exception e1) {
System.out.println("Exception while rollbacking transaction...."); System.out.println("Exception while rollbacking transaction....");
e1.printStackTrace(); e1.printStackTrace();
} }
} }
System.out.println("Out MiscVoucherPostSaveEJB ... "); System.out.println("Out MiscVoucherPostSaveEJB ... ");
return ""; return "";
}
/* private java.math.BigDecimal round(int scale ,double round)
{
return new java.math.BigDecimal(round).setScale(scale, java.math.BigDecimal.ROUND_UP);
} }
private double roundVal(double round,int scale) /*
{ * private java.math.BigDecimal round(int scale ,double round) { return new
return Math.round(round*Math.pow(10, scale))/Math.pow(10, scale); * java.math.BigDecimal(round).setScale(scale,
}*/ * java.math.BigDecimal.ROUND_UP); }
*
//added by azhar[start](S16ESUN001) * private double roundVal(double round,int scale) { return
* Math.round(round*Math.pow(10, scale))/Math.pow(10, scale); }
private void insertIntoMiscVouchAdv(String tran_id, String sundryType, double totAmt,String siteCode, String sundryCode, Connection conn)throws ITMException{ */
// added by azhar[start](S16ESUN001)
private void insertIntoMiscVouchAdv(String tran_id, String sundryType,double totAmt,String siteCode, String sundryCode, Connection conn)
throws ITMException {
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
ResultSet rs = null; ResultSet rs = null;
String sql = "", varValue = ""; String sql = "", varValue = "",tranId = "", refSer = "", refNo = "";
String tranId = "",refSer = "",refNo = ""; double totAmtPayAbs = 0.0, adjAmtPayAbs = 0.0, adjAmt = 0.0, totAmtTemp = 0.0;
double totAmtPay = 0, adjAmtPay = 0,adjAmt = 0,totAmtTemp = 0; double totAmtPay = 0.0, adjAmtPay = 0.0, adjAmtAbs = 0.0;
int lineNo = 1; int lineNo = 1;
try { try {
sql = "delete from misc_vouchadv where tran_id = ?"; sql = "delete from misc_vouchadv where tran_id = ?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tran_id); pstmt.setString(1, tran_id);
pstmt.executeUpdate(); pstmt.executeUpdate();
totAmtTemp = totAmt; totAmtTemp = totAmt;
sql = "select var_value from finparm where var_name = 'ADV_ADJ_ACCT_CODE' "; sql = "select var_value from finparm where var_name = 'ADV_ADJ_ACCT_CODE' ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if(rs.next()){ if (rs.next()) {
varValue = rs.getString("var_value"); varValue = rs.getString("var_value");
} }
varValue = varValue == null ? "" : varValue.trim(); varValue = varValue == null ? "" : varValue.trim();
System.out.println("var value ::: " + varValue); System.out.println("var value ::: " + varValue);
sql = "select tran_id,tran_ser,ref_no,tot_amt,adj_amt from misc_payables where site_code = ? and sundry_type = ? and sundry_code = ? " + sql = "select tran_id,tran_ser,ref_no,tot_amt,adj_amt from misc_payables where site_code = ? and sundry_type = ? and sundry_code = ? " +
"and tot_amt <> adj_amt and tot_amt < 0 and acct_code in (" + varValue + ") order by tran_date"; "and tot_amt <> adj_amt and tot_amt < 0 and acct_code in ("+ varValue + ") order by tran_date";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode); pstmt.setString(1, siteCode);
pstmt.setString(2, sundryType); pstmt.setString(2, sundryType);
pstmt.setString(3, sundryCode); pstmt.setString(3, sundryCode);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
while(rs.next()){ while (rs.next()) {
tranId = checkNullAndTrim(rs.getString("tran_id")); tranId = checkNullAndTrim(rs.getString("tran_id"));
refSer = checkNullAndTrim(rs.getString("tran_ser")); refSer = checkNullAndTrim(rs.getString("tran_ser"));
refNo = checkNullAndTrim(rs.getString("ref_no")); refNo = checkNullAndTrim(rs.getString("ref_no"));
totAmtPay = Math.abs(rs.getDouble("tot_amt")); totAmtPay = rs.getDouble("tot_amt");
adjAmtPay = Math.abs(rs.getDouble("adj_amt")); adjAmtPay = rs.getDouble("adj_amt");
totAmtPayAbs = Math.abs(rs.getDouble("tot_amt"));
System.out.println("tran id :: " + tranId + " tran ser::: " + refSer + "ref no::: " + refNo + " ::tot amt " + totAmtPay + "::adj amt pay:: " +adjAmtPay); adjAmtPayAbs = Math.abs(rs.getDouble("adj_amt"));
adjAmt = totAmtPay - adjAmtPay - getUnconfirmedVouchValue(refNo,siteCode,sundryCode,sundryType,refSer,conn); System.out.println("tran id :: " + tranId + " tran ser::: " + refSer + "ref no::: " + refNo + " ::tot amt " + totAmtPayAbs + "::adj amt pay:: " + adjAmtPayAbs);
if (totAmtTemp > 0) {
adjAmt = totAmtPay - adjAmtPay - getUnconfirmedVouchValue(refNo, siteCode, sundryCode, sundryType, refSer, conn);
}
adjAmtAbs = Math.abs(adjAmt);
System.out.println("adj amt to be set::: " + adjAmt); System.out.println("adj amt to be set::: " + adjAmt);
// if(totAmtTemp>=adjAmt && adjAmt > 0)
if(totAmtTemp>=adjAmt && adjAmt > 0) if ((totAmtTemp >= adjAmtAbs && totAmtTemp > 0) || (totAmtTemp < adjAmtAbs && totAmtTemp > 0)) {
{ if (totAmtTemp < adjAmtAbs) {
System.out.println("total amount temp:: " + totAmtTemp); if (adjAmt < 0) {
adjAmt = -totAmtTemp;
System.out.println("when adj amt is greater the amt to be set is::"+ adjAmt);
} else {
adjAmt = totAmtTemp;
}
}
sql = "Insert into misc_vouchadv(tran_id,ref_ser,ref_no,adj_amt,tot_amt,line_no) values(?,?,?,?,?,?)";//TODO insert System.out.println("total amount temp:: " + totAmtTemp);
sql = "Insert into misc_vouchadv(tran_id,ref_ser,ref_no,adj_amt,tot_amt,line_no) values(?,?,?,?,?,?)";// TODO insert
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tran_id); pstmt.setString(1, tran_id);
pstmt.setString(2, refSer); pstmt.setString(2, refSer);
pstmt.setString(3, refNo); pstmt.setString(3, refNo);
pstmt.setDouble(4, adjAmt); pstmt.setDouble(4, adjAmt);
pstmt.setDouble(5, totAmt); pstmt.setDouble(5, totAmtPay);
pstmt.setInt(6, lineNo); pstmt.setInt(6, lineNo);
pstmt.executeUpdate(); pstmt.executeUpdate();
lineNo++; lineNo++;
totAmtTemp-=adjAmt; totAmtTemp -= adjAmtAbs;
if(pstmt != null){ if (pstmt != null) {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
} }
} }
} catch (Exception e) { } catch (Exception e) {
System.out.println(":::: " + this.getClass().getSimpleName() + "::: " + e.getMessage()); System.out.println(":::: " + this.getClass().getSimpleName() + "::: " + e.getMessage());
e.printStackTrace(); e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
conn = null;
}
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
} catch (Exception e) {
System.out.println(":::: " + this.getClass().getSimpleName() + "::: " + e.getMessage());
e.printStackTrace();
}
} }
} }
private double getUnconfirmedVouchValue(String refNo, String siteCode ,String sundryCode, String sundryType, String refSer, Connection conn) { private double getUnconfirmedVouchValue(String refNo, String siteCode,String sundryCode, String sundryType, String refSer, Connection conn) {
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
ResultSet rs = null; ResultSet rs = null;
String sql = ""; String sql = "";
double unconfirmedAmt = 0,totAmtMVouch1 = 0, totAmtVouch1 = 0; double unconfirmedAmt = 0, totAmtMVouch1 = 0, totAmtVouch1 = 0;
try { try {
sql = "select nvl(sum(a.tot_amt),0) from misc_voucher v, misc_vouchadv a where v.tran_id = a.tran_id and v.confirmed = 'N' " + sql = "select nvl(sum(a.tot_amt),0) from misc_voucher v, misc_vouchadv a where v.tran_id = a.tran_id and v.confirmed = 'N' "
"and v.sundry_code = ? and v.site_code = ? and v.sundry_type = ? and a.ref_no = ? and a.ref_ser = ?"; + "and v.sundry_code = ? and v.site_code = ? and v.sundry_type = ? and a.ref_no = ? and a.ref_ser = ?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, sundryCode); pstmt.setString(1, sundryCode);
pstmt.setString(2, siteCode); pstmt.setString(2, siteCode);
pstmt.setString(3,sundryType); pstmt.setString(3, sundryType);
pstmt.setString(4, refNo); pstmt.setString(4, refNo);
pstmt.setString(5, refSer); pstmt.setString(5, refSer);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if(rs.next()){ if (rs.next()) {
totAmtMVouch1 = Math.abs(rs.getDouble(1)); totAmtMVouch1 = rs.getDouble(1);
} }
System.out.println("tot amt misc voucher::: " + totAmtMVouch1); System.out.println("tot amt misc voucher::: " + totAmtMVouch1);
closeResources(pstmt,rs); closeResources(pstmt, rs);
sql = "select nvl(sum(a.tot_amt),0) from voucher v, vouchadv a where v.tran_id = a.tran_id and v.confirmed = 'N' "
sql = "select nvl(sum(a.tot_amt),0) from voucher v, vouchadv a where v.tran_id = a.tran_id and v.confirmed = 'N' " + + "and v.supp_code = ? and v.site_code = ? and a.ref_no = ? and a.ref_ser = ?";
"and v.supp_code = ? and v.site_code = ? and a.ref_no = ? and a.ref_ser = ?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, sundryCode); pstmt.setString(1, sundryCode);
pstmt.setString(2, siteCode); pstmt.setString(2, siteCode);
pstmt.setString(3, refNo); pstmt.setString(3, refNo);
pstmt.setString(4, refSer); pstmt.setString(4, refSer);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if(rs.next()){ if (rs.next()) {
totAmtVouch1 = Math.abs(rs.getDouble(1)); totAmtVouch1 = rs.getDouble(1);
} }
System.out.println("tot amt voucher::: " + totAmtVouch1); System.out.println("tot amt voucher::: " + totAmtVouch1);
closeResources(pstmt,rs); closeResources(pstmt, rs);
unconfirmedAmt = totAmtMVouch1 + totAmtVouch1; unconfirmedAmt = totAmtMVouch1 + totAmtVouch1;
} catch (Exception e) { } catch (Exception e) {
System.out.println("::" + this.getClass().getSimpleName() + ":::" + e.getMessage());
e.printStackTrace();
} }
return unconfirmedAmt; return unconfirmedAmt;
} }
//added by azhar[end](S16ESUN001)
// added by azhar[end](S16ESUN001)
private void closeResources(PreparedStatement pstmt, ResultSet rs) { private void closeResources(PreparedStatement pstmt, ResultSet rs) {
try{ try {
if(pstmt != null){ if (pstmt != null) {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
if(rs != null){ if (rs != null) {
rs.close(); rs.close();
rs = null; rs = null;
} }
}catch(Exception e){ } catch (Exception e) {
System.out.println("::" + this.getClass().getSimpleName() + ":::" + e.getMessage());
e.printStackTrace();
} }
} }
......
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