Commit d7653d26 authored by msharma's avatar msharma

Misc Debit Credit Note Confirmation Migrated


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@92629 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 1447cab9
package ibase.webitm.ejb.fin;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Types;
import javax.ejb.Stateless;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.sql.ResultSet;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.webitm.ejb.*;
import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.TransIDGenerator;
@Stateless
public class MiscDrCrRcpConf extends ActionHandlerEJB implements MiscDrCrRcpConfLocal ,MiscDrCrRcpConfRemote {
public String confirm(String tranId,String xtraParams,String forcedFlag,Connection conn) throws RemoteException,ITMException
{
//Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "";
// ConnDriver connDriver = null;
String confirm = "",errString = "" ;
ITMDBAccessEJB itmDBAccessEJB = null;
try
{
System.out.println("<!@#> In confirm :::::::::::::3007121030::::::::::::::::::");
System.out.println("<!@#> In confirm ::::::::::::::::::::xtraParams:" +xtraParams +":");
System.out.println("<!@#> In confirm ::::::::::::::::::::forcedFlag:" +forcedFlag +":");
itmDBAccessEJB = new ITMDBAccessEJB();
// connDriver = new ConnDriver();
// conn = connDriver.getConnectDB("DriverITM");
// connDriver = null;
// conn.setAutoCommit(false);
sql =" select confirmed from misc_drcr_rcp where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
confirm = rs.getString("confirmed");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(confirm != null && "Y".equalsIgnoreCase(confirm))
{
System.out.println("The Selected transaction is already confirmed");
errString = itmDBAccessEJB.getErrorString("","VTMCONF1","","",conn);
return errString;
}
else
{
errString = this.gbfRetrieveMiscDrcrRcp(tranId,xtraParams,conn);
if(errString != null && errString.trim().length() > 0)
{
// return errString;
System.out.println("checking CONFSUCCES in errString" +errString);
if(errString.indexOf("CONFSUCCES") > -1)
{
System.out.println("Committing..............");
//conn.commit();
//conn.close();
//conn=null;
// return errString;
}
else
{
System.out.println("Rollbacking..............");
//conn.rollback();
//conn.close();
//conn=null;
}
}
}
} //end of try
catch(Exception e)
{
System.out.println("Exception ::"+e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
//if(conn!=null)
//{
//System.out.println(" finally Rollbacking..............");
//conn.rollback();
//conn.close();
//}
//conn = null;
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Exception : "+e);e.printStackTrace();
throw new ITMException(e);
}
}
return errString;
} //end of confirm method
private String gbfRetrieveMiscDrcrRcp(String tranIdFrom,String tranIdto, String xtraParams,Connection conn)throws RemoteException,ITMException
{
String errString="";
PreparedStatement pstmt=null;
ArrayList<String> tranidList = new ArrayList<String>() ;
ResultSet rs=null;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
try{
System.out.println("<!@#> In gbfRetrieveMiscDrcrRcp :::::::::::::::::::::::::::::::");
String sql="";
sql ="select tran_id from misc_drcr_rcp where tran_id <= ? and tran_id >=? and site_code =? and confirmed = ?" +
" order by tran_id asc";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,tranIdFrom);
pstmt.setString(2, tranIdto);
pstmt.setString(3, GenericUtility.getInstance().getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode"));
pstmt.setString(4, "N");
rs=pstmt.executeQuery();
while (rs.next())
{
tranidList.add(rs.getString("tran_id"));
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
if(tranidList.size() >0)
{
//Iterate through list
Iterator<String> iterator =tranidList.iterator();
while(iterator.hasNext())
{
//check for multiple
errString=gbfRetrieveMiscDrcrRcp(iterator.next(), xtraParams, conn);
if(!(errString.indexOf("CONFSUCCES")>-1))
{
throw new Exception("Transaction Fail");
}
}
}else
{
//Show error
errString = itmDBAccessEJB.getErrorString("","VTNOREC2","","",conn);
return errString;
}
}catch (Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
return errString;
}
private String gbfRetrieveMiscDrcrRcp(String tranId,String xtraParams,Connection conn)throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
PreparedStatement pstmtInsert = null;
PreparedStatement pstmtInner = null;
ResultSet rs = null;
ResultSet rsInner = null;
String sql = "",sqlInsert = "",sqlInner="";
String loginEmpCode = "",errString="" ;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
FinCommon Fcommon = new FinCommon();
DistCommon Dcommon = new DistCommon();
ArrayList miscRdetList = new ArrayList();
ArrayList miscRcpInvList = new ArrayList();
HashMap miscRcpMap=null,miscRdetMap= null,miscRcpInvMap=null;
HashMap miscRdetListMap=null,miscRcpInvListMap=null;
java.sql.Timestamp tranDate = null;
java.sql.Timestamp effDate = null;
java.sql.Timestamp dueDate = null;
java.sql.Timestamp confDate = null;
String tranSer="",sundryType="",tranType="",siteCode="",finEntity="",sundryCode="",acctCode="";
String cctrCode="",currCode="",remarks="",confirmed="",empCodeAprv="",drcrFlag="",tranIdRcv="";
String itemSer="",sreturnNo="",adjMiscCrn="",custRefNo="",rndOff="",custCode="",siteCodeDrcr="";
double amount=0,amountBc=0,exchRate=0,adjAmount=0,roundAdj=0,rndTo=0;
String lineNo="",detAcctCode="",detCctrCode="",detAnalCode="",detEmpCode="",detTaxClass="";
String detTaxChap="",detTaxEnv="",detReasCode="",detRefNo="",detItemCode="",lineNoSret="";
String lineNoInvtrace="",detLotNo="",detLotSl="",analysis1="",analysis2="",analysis3="";
double detAmount=0,detNetAmt=0,detTaxAmt=0,detQuantity=0,detRate=0;
String adjLineNo="",adjRefSer="",adjRefNo="";
double adjAmt=0,refBalAmt=0,mrpValueAdj=0;
String runMode = "I",winName="",ledgPostConf="",acctCodeRadj="",cctrCodeRadj="";
double amthdr1=0,amountRadj=0,amt=0,taxAmt=0,recoAmt=0,tot =0;
java.sql.Timestamp toDay = null;
java.util.Date toDate = new java.util.Date();
String acctCodeReco="",cctrCodeReco="",taxAcct="",taxCctr="",itemSr="";
int cnt =0,cnt1=0,foundAt=0;
double recAmt=0,totAmt=0,recAdjAmt=0;
int updCnt=0;
int upd=0;
boolean status=false ,flg = true;
int[] batchCount;
try{
System.out.println("<!@#> In gbfRetrieveMiscDrcrRcp :::::::::::::::::::::::::::::::");
if("db2".equalsIgnoreCase(CommonConstants.DB_NAME))
{
sql =" select tran_date,tran_ser,eff_date,sundry_type,tran_type,due_date, "
+" site_code, fin_entity,sundry_code,acct_code,cctr_code,amount,curr_code,remarks, "
+" confirmed,conf_date,emp_code__aprv,drcr_flag,tran_id__rcv,item_ser, "
+" amount__bc,exch_rate,sreturn_no,adj_misc_crn,adj_amount,round_adj,cust_ref_no,"
+" cust_ref_date,cust_ref_amt,rnd_off,rnd_to "
+" from misc_drcr_rcp "
+" where tran_id = ? for update" ;
}else if("mssql".equalsIgnoreCase(CommonConstants.DB_NAME))
{
sql =" select tran_date,tran_ser,eff_date,sundry_type,tran_type,due_date, "
+" site_code, fin_entity,sundry_code,acct_code,cctr_code,amount,curr_code,remarks, "
+" confirmed,conf_date,emp_code__aprv,drcr_flag,tran_id__rcv,item_ser, "
+" amount__bc,exch_rate,sreturn_no,adj_misc_crn,adj_amount,round_adj,cust_ref_no,"
+" cust_ref_date,cust_ref_amt,rnd_off,rnd_to "
+" from misc_drcr_rcp (updlock) "
+" where tran_id = ? " ;
}else
{
sql =" select tran_date,tran_ser,eff_date,sundry_type,tran_type,due_date, "
+" site_code, fin_entity,sundry_code,acct_code,cctr_code,amount,curr_code,remarks, "
+" confirmed,conf_date,emp_code__aprv,drcr_flag,tran_id__rcv,item_ser, "
+" amount__bc,exch_rate,sreturn_no,adj_misc_crn,adj_amount,round_adj,cust_ref_no,"
// +" cust_ref_date,cust_ref_amt,rnd_off,rnd_to,site_code__drcr "
+" cust_ref_date,cust_ref_amt,rnd_off,rnd_to "
+" from misc_drcr_rcp "
+" where tran_id = ? for update nowait " ;
}
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs=pstmt.executeQuery();
if(rs.next())
{
tranDate = rs.getTimestamp("tran_date");
tranSer = rs.getString("tran_ser");
effDate = rs.getTimestamp("eff_date");
sundryType = rs.getString("sundry_type");
tranType = rs.getString("tran_type");
dueDate = rs.getTimestamp("due_date");
siteCode = rs.getString("site_code");
finEntity = rs.getString("fin_entity");
sundryCode = rs.getString("sundry_code");
acctCode = rs.getString("acct_code");
cctrCode = rs.getString("cctr_code");
amount = rs.getDouble("amount");
currCode = rs.getString("curr_code");
remarks = rs.getString("remarks");
confirmed = rs.getString("confirmed");
confDate = rs.getTimestamp("conf_date");
empCodeAprv = rs.getString("emp_code__aprv");
drcrFlag = rs.getString("drcr_flag");
tranIdRcv = rs.getString("tran_id__rcv");
itemSer = rs.getString("item_ser");
amountBc = rs.getDouble("amount__bc");
exchRate = rs.getDouble("exch_rate");
sreturnNo = rs.getString("sreturn_no");
adjMiscCrn = rs.getString("adj_misc_crn");
adjAmount = rs.getDouble("adj_amount");
roundAdj = rs.getDouble("round_adj");
custRefNo = rs.getString("cust_ref_no");
rndOff = rs.getString("rnd_off");
rndTo = rs.getDouble("rnd_to");
//siteCodeDrcr = rs.getString("site_code__drcr");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
miscRcpMap = new HashMap();
miscRcpMap.put("tran_date",tranDate);
miscRcpMap.put("tran_ser",tranSer);
miscRcpMap.put("eff_date",effDate);
miscRcpMap.put("sundry_type",sundryType);
miscRcpMap.put("tran_type",tranType);
miscRcpMap.put("due_date",dueDate);
miscRcpMap.put("site_code",siteCode);
miscRcpMap.put("fin_entity",finEntity);
miscRcpMap.put("sundry_code",sundryCode);
miscRcpMap.put("acct_code",acctCode);
miscRcpMap.put("cctr_code",cctrCode);
miscRcpMap.put("amount",amount);
miscRcpMap.put("curr_code",currCode);
miscRcpMap.put("remarks",remarks);
miscRcpMap.put("confirmed",confirmed);
miscRcpMap.put("conf_date",confDate);
miscRcpMap.put("emp_code__aprv",empCodeAprv);
miscRcpMap.put("drcr_flag",drcrFlag);
miscRcpMap.put("tran_id__rcv",tranIdRcv);
miscRcpMap.put("item_ser",itemSer);
miscRcpMap.put("amount__bc",amountBc);
miscRcpMap.put("exch_rate",exchRate);
miscRcpMap.put("sreturn_no",sreturnNo);
miscRcpMap.put("adj_misc_crn",adjMiscCrn);
miscRcpMap.put("adj_amount",adjAmount);
miscRcpMap.put("round_adj",roundAdj);
miscRcpMap.put("cust_ref_no",custRefNo);
miscRcpMap.put("rnd_off",rndOff);
miscRcpMap.put("rnd_to",rndTo);
//miscRcpMap.put("site_code__drcr",siteCodeDrcr);
//check record present in detail or not and apply lock
// if("db2".equalsIgnoreCase(CommonConstants.DB_NAME))
// {
// sql ="select count(*) from misc_drcr_rdet where tran_id = ? for update";
//
//
// }else if("mssql".equalsIgnoreCase(CommonConstants.DB_NAME))
// {
// sql ="select count(*) from misc_drcr_rdet (updlock) where tran_id = ?";
//
// }else
// {
sql ="select count(*) from misc_drcr_rdet where tran_id = ?";
// }
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt1 =rs.getInt(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("cnt1["+cnt1+"]");
if(cnt1 <= 0)
{
System.out.println("no record found in misc_drcr_rdet");
errString = itmDBAccessEJB.getErrorString("","VTNOREC2","","",conn);
return errString;
}
//taking details for particular tran_id
sql =" select line_no,acct_code,cctr_code,amount,anal_code,emp_code,net_amt,tax_amt,tax_class,tax_chap, "
+" tax_env,reas_code,ref_no,item_code,quantity,rate,line_no__sret,line_no__invtrace,lot_no,lot_sl,analysis1,analysis2,analysis3 "
+" from misc_drcr_rdet "
+" where tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
while(rs.next())
{
lineNo = rs.getString("line_no");
detAcctCode = rs.getString("acct_code");
detCctrCode = rs.getString("cctr_code");
detAmount = rs.getDouble("amount");
detAnalCode = rs.getString("anal_code");
detEmpCode = rs.getString("emp_code");
detNetAmt = rs.getDouble("net_amt");
detTaxAmt = rs.getDouble("tax_amt");
detTaxClass = rs.getString("tax_class");
detTaxChap = rs.getString("tax_chap");
detTaxEnv = rs.getString("tax_env");
detReasCode = rs.getString("reas_code");
detRefNo = rs.getString("ref_no");
detItemCode = rs.getString("item_code");
detQuantity = rs.getDouble("quantity");
detRate = rs.getDouble("rate");
lineNoSret = rs.getString("line_no__sret");
lineNoInvtrace = rs.getString("line_no__invtrace");
detLotNo = rs.getString("lot_no");
detLotSl = rs.getString("lot_sl");
analysis1 = rs.getString("analysis1");
analysis2 = rs.getString("analysis2");
analysis3 = rs.getString("analysis3");
miscRdetMap = new HashMap();
miscRdetMap.put("line_no",lineNo);
miscRdetMap.put("acct_code",detAcctCode);
miscRdetMap.put("cctr_code",detCctrCode);
miscRdetMap.put("amount",detAmount);
miscRdetMap.put("anal_code",detAnalCode);
miscRdetMap.put("emp_code",detEmpCode);
miscRdetMap.put("net_amt",detNetAmt);
miscRdetMap.put("tax_amt",detTaxAmt);
miscRdetMap.put("tax_class",detTaxClass);
miscRdetMap.put("tax_chap",detTaxChap);
miscRdetMap.put("tax_env",detTaxEnv);
miscRdetMap.put("reas_code",detReasCode);
miscRdetMap.put("ref_no",detRefNo);
miscRdetMap.put("item_code",detItemCode);
miscRdetMap.put("quantity",detQuantity);
miscRdetMap.put("rate",detRate);
miscRdetMap.put("line_no__sret",lineNoSret);
miscRdetMap.put("line_no__invtrace",lineNoInvtrace);
miscRdetMap.put("lot_no",detLotNo);
miscRdetMap.put("lot_sl",detLotSl);
miscRdetMap.put("analysis1",analysis1);
miscRdetMap.put("analysis2",analysis2);
miscRdetMap.put("analysis3",analysis3);
miscRdetList.add(miscRdetMap);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//taking details from misc_drcr_rcpinv and apply lock
// if("db2".equalsIgnoreCase(CommonConstants.DB_NAME))
// {
// sql =" select line_no,ref_ser,ref_no,adj_amt,ref_bal_amt,mrp_value__adj "
// +" from misc_drcr_rcpinv where tran_id = ? for update" ;
//
//
// }else if("mssql".equalsIgnoreCase(CommonConstants.DB_NAME))
// {
// sql =" select line_no,ref_ser,ref_no,adj_amt,ref_bal_amt,mrp_value__adj "
// +" from misc_drcr_rcpinv(updlock) where tran_id = ?" ;
// }else
// {
sql =" select line_no,ref_ser,ref_no,adj_amt,ref_bal_amt,mrp_value__adj "
+" from misc_drcr_rcpinv where tran_id = ?" ;
// }
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
adjLineNo = rs.getString("line_no");
adjRefSer = rs.getString("ref_ser");
adjRefNo = rs.getString("ref_no");
adjAmt = rs.getDouble("adj_amt");
refBalAmt = rs.getDouble("ref_bal_amt");
mrpValueAdj = rs.getDouble("mrp_value__adj");
miscRcpInvMap = new HashMap();
miscRcpInvMap.put("line_no",adjLineNo);
miscRcpInvMap.put("ref_ser",adjRefSer);
miscRcpInvMap.put("ref_no",adjRefNo);
miscRcpInvMap.put("adj_amt",adjAmt);
miscRcpInvMap.put("ref_bal_amt",refBalAmt);
miscRcpInvMap.put("mrp_value__adj",mrpValueAdj);
miscRcpInvList.add(miscRcpInvMap);
}
//commented as discussed with shri mam else
// {
// System.out.println("no record found in misc_drcr_rcpinv");
// errString = itmDBAccessEJB.getErrorString("","VTNOREC2","","",conn);
// return errString;
// }
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//for run mode "I" {as discussed with KB sir it is only for PB compatibility}
if ("I".equalsIgnoreCase(runMode))
{
toDay =new java.sql.Timestamp(toDate.getTime());
if("MDRCRC".equalsIgnoreCase(tranSer.trim()))
{
winName = "W_MISC_DRCR_RCP_CR";
}
else if("MDRCRD".equalsIgnoreCase(tranSer.trim()))
{
winName = "W_MISC_DRCR_RCP_DR";
}
sql =" select ledg_post_conf from transetup where upper(tran_window) = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,winName);
rs = pstmt.executeQuery();
if(rs.next())
{
ledgPostConf = rs.getString("ledg_post_conf");
}
else
{
System.out.println("Record not found in transetup");
errString = itmDBAccessEJB.getErrorString("","VTSEQ","","",conn);
return errString;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(ledgPostConf != null && "Y".equalsIgnoreCase(ledgPostConf))
{
if(tranDate.compareTo(toDay) > 0)
{
sql =" update misc_drcr_rcp set tran_date = ? "
+" where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,tranDate);
pstmt.setString(2,tranId);
upd = pstmt.executeUpdate();
if(upd <1 )
{
throw new ITMException(new Exception("updateFail"));
}
pstmt.close();
pstmt = null;
}
}
if(("null".equals(roundAdj)) || (roundAdj == 0))
{
amthdr1 = amount ;
if(!("N").equalsIgnoreCase(rndOff))
{
amount = Dcommon.getRndamt(amthdr1,rndOff,rndTo);
}
if(amthdr1 != amount)
{
sql =" update misc_drcr_rcp "
+" set round_adj = ? ,amount = ? ,amount__bc = ? "
+" where tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,(amount - amthdr1));
pstmt.setDouble(2,amthdr1);
pstmt.setDouble(3,(amount * exchRate));
pstmt.setString(4,tranId);
upd = pstmt.executeUpdate();
if(upd <1 )
{
throw new ITMException(new Exception());
}
pstmt.close();
pstmt = null;
miscRcpMap.put("round_adj",(amount - amthdr1));
miscRcpMap.put("amount",amthdr1);
miscRcpMap.put("amount__bc",(amount * exchRate));
}
}
//insert into misc_drcr_rdet
// sqlInsert =" insert into misc_drcr_rdet "
// +" (tran_id,line_no,acct_code,cctr_code,amount,emp_code,anal_code)"
// +" values (?,?,?,?,?,?,?)";
// pstmtInsert = conn.prepareStatement(sqlInsert);
amountRadj =Double.parseDouble(miscRcpMap.get("round_adj").toString());
if("null".equals(amountRadj))
{
amountRadj = 0;
}
if(amountRadj !=0 )
{
acctCodeRadj = Fcommon.getFinparams("999999","ROUND_ADJUST_ACCT",conn);
cctrCodeRadj = Fcommon.getFinparams("999999","ROUND_ADJUST_CCTR",conn);
if("null".equalsIgnoreCase(cctrCodeRadj)) cctrCodeRadj = "";
//// for (int ctr =0; ctr < miscRdetList.size(); ctr++)
//// {
//// miscRdetListMap = new HashMap();
//// miscRdetListMap = (HashMap) miscRdetList.get(ctr);
////
//// lineNo = (String) miscRdetListMap.get("line_no");
//// acctCode = (String) miscRdetListMap.get("acct_code");
//// cctrCode =(String) miscRdetListMap.get("cctr_code");
//// amount = Double.parseDouble(miscRdetListMap.get("amount").toString());
//// amt = amount+amountRadj;
////finding first acctCode & cctrCode in misc_drcr_rdet & last line no
// miscRdetListMap = new HashMap();
// miscRdetListMap = (HashMap) miscRdetList.get(0);
//
//// lineNo = (String) miscRdetListMap.get("line_no");
// acctCode = (String) miscRdetListMap.get("acct_code");
// cctrCode =(String) miscRdetListMap.get("cctr_code");
// miscRdetListMap = new HashMap();
// miscRdetListMap = (HashMap) miscRdetList.get(miscRdetList.size()-1);
// lineNo = (String) miscRdetListMap.get("line_no");
for (int ctr =0; ctr < miscRdetList.size(); ctr++)
{
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap) miscRdetList.get(ctr);
lineNo = (String) miscRdetListMap.get("line_no");
acctCode = (String) miscRdetListMap.get("acct_code");
cctrCode =(String) miscRdetListMap.get("cctr_code");
// if(!(acctCodeRadj.equalsIgnoreCase(acctCode)) &&(cctrCodeRadj.equalsIgnoreCase(cctrCode)))
if((acctCodeRadj.equalsIgnoreCase(acctCode)) &&(cctrCodeRadj.equalsIgnoreCase(cctrCode)))
{
System.out.println(" Search acctCode & cctrCode Record found @ line no " +lineNo);
status=true;
foundAt=ctr;
break;
}
}if(!status)
{
// }
//
// if(!(acctCodeRadj.equalsIgnoreCase(acctCode)) &&(cctrCodeRadj.equalsIgnoreCase(cctrCode)))
// {
System.out.println("inserting into misc_drcr_rdetif(!(acctCodeRadj.equalsIgnoreCase(acctCode)) &&(cctrCodeRadj.equalsIgnoreCase(cctrCode)))");
sqlInsert =" insert into misc_drcr_rdet "
+" (tran_id,line_no,acct_code,cctr_code,amount,emp_code,anal_code)"
+" values (?,?,?,?,?,?,?)";
pstmtInsert = conn.prepareStatement(sqlInsert);
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap) miscRdetList.get(miscRdetList.size()-1);
lineNo = (String) miscRdetListMap.get("line_no");
lineNo = (new Integer (Integer.parseInt(lineNo)+1)).toString() ;
// lineNo =lineNo+1;
pstmtInsert.setString(1,tranId);
pstmtInsert.setString(2,lineNo);
pstmtInsert.setString(3,acctCodeRadj);
pstmtInsert.setString(4,cctrCodeRadj);
pstmtInsert.setDouble(5,amountRadj);
pstmtInsert.setString(6,"");
pstmtInsert.setString(7,"");
// pstmtInsert.addBatch();
//adding values to miscRdetListMap
miscRdetMap = new HashMap();
miscRdetMap.put("tran_id", tranId);
miscRdetMap.put("line_no", lineNo);
miscRdetMap.put("acct_code", lineNo);
miscRdetMap.put("acct_code",acctCodeRadj);
miscRdetMap.put("cctr_code",cctrCodeRadj);
miscRdetMap.put("amount",amountRadj);
miscRdetMap.put("emp_code","");
miscRdetMap.put("anal_code","");
miscRdetList.add(miscRdetMap);
//end
upd = pstmtInsert.executeUpdate();
pstmtInsert.close();
pstmtInsert=null;
if(upd <1)
{
throw new Exception("Update Fail");
}
}
else
{
// sqlInner =" update MISC_DRCR_RDET set amount = ? where tran_id = ? and line_no = ? ";
sqlInner =" update MISC_DRCR_RDET set amount =amount+ ? where tran_id = ? and line_no = ? ";
pstmtInner = conn.prepareStatement(sqlInner);
// pstmtInner.setDouble(1,amt);
pstmtInner.setDouble(1,amountRadj);
pstmtInner.setString(2,tranId);
pstmtInner.setString(3,lineNo);
updCnt = pstmtInner.executeUpdate();
if(updCnt <1)
{
throw new ITMException(new Exception("updateFail"));
}
pstmtInner.close();
pstmtInner = null;
// modify Map for these new values
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap)miscRdetList.get(foundAt);
miscRdetMap = new HashMap();
miscRdetMap.put("line_no",miscRdetListMap.get("line_no"));
miscRdetMap.put("acct_code",miscRdetListMap.get("acct_code"));
miscRdetMap.put("cctr_code",miscRdetListMap.get("cctr_code"));
miscRdetMap.put("amount",((Double)miscRdetListMap.get("amount") +amountRadj));
miscRdetMap.put("anal_code",miscRdetListMap.get("anal_code"));
miscRdetMap.put("emp_code",miscRdetListMap.get("emp_code"));
miscRdetMap.put("net_amt",miscRdetListMap.get("net_amt"));
miscRdetMap.put("tax_amt",miscRdetListMap.get("tax_amt"));
miscRdetMap.put("tax_class",miscRdetListMap.get("tax_class"));
miscRdetMap.put("tax_chap",miscRdetListMap.get("tax_chap"));
miscRdetMap.put("tax_env",miscRdetListMap.get("tax_env"));
miscRdetMap.put("reas_code",miscRdetListMap.get("reas_code"));
miscRdetMap.put("ref_no",miscRdetListMap.get("ref_no"));
miscRdetMap.put("item_code",miscRdetListMap.get("item_code"));
miscRdetMap.put("quantity",miscRdetListMap.get("line_no"));
miscRdetMap.put("rate",miscRdetListMap.get("rate"));
miscRdetMap.put("line_no__sret",miscRdetListMap.get("line_no__sret"));
miscRdetMap.put("line_no__invtrace",miscRdetListMap.get("line_no__invtrace"));
miscRdetMap.put("lot_no",miscRdetListMap.get("lot_no"));
miscRdetMap.put("lot_sl",miscRdetListMap.get("lot_sl"));
miscRdetMap.put("analysis1",miscRdetListMap.get("analysis1"));
miscRdetMap.put("analysis2",miscRdetListMap.get("analysis2"));
miscRdetMap.put("analysis3",miscRdetListMap.get("analysis3"));
miscRdetList.add(foundAt,miscRdetMap );
//end
}
// }
} // end of amountRadj !=0
sql =" select acct_code,cctr_code,case when sum(tax_amt) is null then 0 else sum(tax_amt) end as taxAmt, "
+" case when sum(reco_amount) is null then 0 else sum(reco_amount) end as recoAmount "
+" from taxtran where tran_code= ? and "
+" tran_id = ? and tax_amt <> 0 and effect <> 'N' "
+" group by acct_code,cctr_code" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranSer);
pstmt.setString(2,tranId);
rs = pstmt.executeQuery();
while(rs.next())
{
acctCodeReco = rs.getString("acct_code");
cctrCodeReco = rs.getString("cctr_code");
taxAmt = rs.getDouble("taxAmt");
recoAmt = rs.getDouble("recoAmount");
// for(int ctr =0; ctr< miscRdetList.size(); ctr++)
// {
// miscRdetListMap = new HashMap();
// miscRdetListMap = (HashMap) miscRdetList.get(ctr);
//
// lineNo = (String) miscRdetListMap.get("line_no");
// acctCode = (String) miscRdetListMap.get("acct_code");
// cctrCode =(String) miscRdetListMap.get("cctr_code");
// amount = Double.parseDouble(miscRdetListMap.get("amount").toString());
// amt = amount+recoAmt;
if(acctCodeReco == null)
{
//taking default account code
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap) miscRdetList.get(0);
acctCode = (String) miscRdetListMap.get("acct_code");
cctrCode =(String) miscRdetListMap.get("cctr_code");
acctCodeReco = acctCode;
}
if(cctrCodeReco == null)
{
//taking default costCtr code
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap) miscRdetList.get(0);
cctrCode =(String) miscRdetListMap.get("cctr_code");
cctrCodeReco = cctrCode;
}
System.out.println("inserting into misc_drcr_rdetselect acct_code,cctr_code,sum(nvl(tax_amt,0))");
sqlInsert =" insert into misc_drcr_rdet "
+" (tran_id,line_no,acct_code,cctr_code,amount,emp_code,anal_code)"
+" values (?,?,?,?,?,?,?)";
pstmtInsert = conn.prepareStatement(sqlInsert);
if(status && flg)
{
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap) miscRdetList.get(miscRdetList.size()-1);
lineNo = (String) miscRdetListMap.get("line_no");
flg=false;
System.out.println("lineNo status" +lineNo +status);
}
lineNo = (new Integer (Integer.parseInt(lineNo)+1)).toString() ;
System.out.println("lineNo out side if flg" +lineNo +flg);
pstmtInsert.setString(1,tranId);
pstmtInsert.setString(2,lineNo);
pstmtInsert.setString(3,acctCodeReco);
pstmtInsert.setString(4,cctrCodeReco);
pstmtInsert.setDouble(5,(taxAmt-recoAmt));
pstmtInsert.setString(6,"");
pstmtInsert.setString(7,"");
pstmtInsert.addBatch();
//adding values to miscRdetListMap
miscRdetMap = new HashMap();
miscRdetMap.put("tran_id", tranId);
miscRdetMap.put("line_no", lineNo);
miscRdetMap.put("acct_code",acctCodeReco);
miscRdetMap.put("cctr_code",cctrCodeReco);
miscRdetMap.put("amount",(taxAmt-recoAmt));
miscRdetMap.put("emp_code","");
miscRdetMap.put("anal_code","");
miscRdetList.add(miscRdetMap);
//end
// upd =pstmtInsert.executeUpdate();
// if(upd < 1)
// {
// throw new Exception("UpdateFail");
// }
// }
}// end while
if(pstmtInsert!=null)
{
batchCount =pstmtInsert.executeBatch();
System.out.println("nos of row inserted "+batchCount.length);
pstmtInsert.close();
pstmtInsert=null;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//taking reco_amount
sql =" select line_no, acct_code__reco,cctr_code__reco, "
+" case when sum(reco_amount) is null then 0 else sum(reco_amount) end as recoAmount "
+" from taxtran where tran_code= ? and "
+" tran_id = ? and "
+" (case when (reco_amount) is null then 0 else (reco_amount) end) <> 0 "
+" and effect <> 'N' "
+" group by line_no,acct_code__reco,cctr_code__reco" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranSer);
pstmt.setString(2,tranId);
rs = pstmt.executeQuery();
while(rs.next())
{
lineNo = rs.getString("line_no");
acctCodeReco = rs.getString("acct_code__reco");
cctrCodeReco = rs.getString("cctr_code__reco");
recoAmt = rs.getDouble("recoAmount");
// for (int ctr =0; ctr< miscRdetList.size(); ctr++)
// {
// miscRdetListMap = new HashMap();
// miscRdetListMap = (HashMap)miscRdetList.get(ctr);
//
// lineNo = (String) miscRdetListMap.get("line_no");
// acctCode = (String) miscRdetListMap.get("acct_code");
// cctrCode =(String) miscRdetListMap.get("cctr_code");
// amount = Double.parseDouble(miscRdetListMap.get("amount").toString());
// amt = amount+recoAmt;
if(acctCodeReco == null || acctCodeReco.trim().length()== 0)
{
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap)miscRdetList.get(Integer.parseInt(lineNo.trim())-1);
// System.out.println();
detItemCode =(String)miscRdetListMap.get("item_code");
// cctrCode = Fcommon.getAcctDetrTtype(detItemCode," ","TAXRECO",tranType,conn);
cctrCodeReco = Fcommon.getAcctDetrTtype(detItemCode," ","TAXRECO",tranType,conn);
System.out.println("<!@#>from AcctDetrType acctCodeReco & cctrCodeReco:" +cctrCodeReco+":");
/*
if(cctrCodeReco.trim().length() > 1)
{
// String[] ary =cctrCodeReco.split("//t");
String[] ary =cctrCodeReco.split(",");
// taxAcct = ary[0];
acctCodeReco = ary[0];
System.out.println("<!@#>cctrCodeReco is " +cctrCodeReco);
// taxCctr = ary[1];
cctrCodeReco = ary[1];
}
if(acctCodeReco == null || acctCodeReco.trim().length() == 0 )
{
errString = itmDBAccessEJB.getErrorString("","VTACCTRECO","","",conn);
return errString;
}
if (cctrCodeReco == null || cctrCodeReco.trim().length() == 0 )
{
cctrCodeReco = " ";
}
*/
if(cctrCodeReco.length() > 0)
{
System.out.println("in if");
// String[] ary =cctrCodeReco.split("//t");
String[] ary =cctrCodeReco.split(",");
if(ary.length >0)
{
System.out.println("<!@#>ary " +ary.length);
acctCodeReco = ary[0];
}else
{
acctCodeReco ="";
} if(ary.length >1)
{
cctrCodeReco = ary[1];
}else
{
cctrCodeReco =" ";
}
// System.out.println("<!@#>cctrCodeReco is " +cctrCodeReco);
// taxCctr = ary[1];
}
if(acctCodeReco == null || acctCodeReco.trim().length() == 0 )
{
errString = itmDBAccessEJB.getErrorString("","VTACCTRECO","","",conn);
return errString;
}
}
// if(taxAcct == null || taxAcct.trim().length() == 0 )
// {
// errString = itmDBAccessEJB.getErrorString("","VTACCTRECO","","",conn);
// return errString;
// }
// if (taxCctr == null || taxCctr.trim().length() == 0 )
// {
// taxCctr = " ";
// }
// finding lines
status= false;
foundAt=0;
for (int ctr =0; ctr < miscRdetList.size()-1; ctr++)
{
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap) miscRdetList.get(ctr);
lineNo = (String) miscRdetListMap.get("line_no");
acctCode = (String) miscRdetListMap.get("acct_code");
cctrCode =(String) miscRdetListMap.get("cctr_code");
// if(!(acctCodeRadj.equalsIgnoreCase(acctCode)) &&(cctrCodeRadj.equalsIgnoreCase(cctrCode)))
// if(!(acctCodeReco.equalsIgnoreCase(acctCode)) &&(cctrCodeReco.equalsIgnoreCase(cctrCode)))
if((acctCodeReco.equalsIgnoreCase(acctCode)) &&(cctrCodeReco.equalsIgnoreCase(cctrCode)))
{
System.out.println(" Search acctCodeReco & cctrCodeReco Record found @ line no " +lineNo);
status=true;
flg=false;
break;
}
}
if(!status)
// if(!(acctCodeReco.equalsIgnoreCase(acctCode)) &&(cctrCodeReco.equalsIgnoreCase(cctrCode)))
{
sqlInsert =" insert into misc_drcr_rdet "
+" (tran_id,line_no,acct_code,cctr_code,amount,emp_code,anal_code)"
+" values (?,?,?,?,?,?,?)";
pstmtInsert=conn.prepareStatement(sqlInsert);
// if(status && flg)
// {
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap) miscRdetList.get(miscRdetList.size()-1);
lineNo = (String) miscRdetListMap.get("line_no");
// flg=false;
System.out.println("lineNo status" +lineNo +status);
// }
lineNo = (new Integer (Integer.parseInt(lineNo)+1)).toString() ;
// lineNo = lineNo +1;
//for testing
// if(cctrCodeReco ==null)
// {
// cctrCodeReco="";
// }
//for testing
pstmtInsert.setString(1,tranId);
pstmtInsert.setString(2,lineNo);
pstmtInsert.setString(3,acctCodeReco);
pstmtInsert.setString(4,cctrCodeReco);
pstmtInsert.setDouble(5,recoAmt);
pstmtInsert.setString(6,"");
pstmtInsert.setString(7,"");
pstmtInsert.addBatch();
//adding values to miscRdetListMap
miscRdetMap = new HashMap();
miscRdetMap.put("tran_id", tranId);
miscRdetMap.put("line_no", lineNo);
miscRdetMap.put("acct_code", lineNo);
miscRdetMap.put("acct_code",acctCodeReco);
miscRdetMap.put("cctr_code",cctrCodeReco);
miscRdetMap.put("amount",(recoAmt));
miscRdetMap.put("emp_code","");
miscRdetMap.put("anal_code","");
miscRdetList.add(miscRdetMap);
}
else
{
// sqlInner =" update MISC_DRCR_RDET set amount = ? where tran_id = ? and line_no = ? ";
sqlInner =" update MISC_DRCR_RDET set amount = amount + ? where tran_id = ? and line_no = ? ";
pstmtInner = conn.prepareStatement(sqlInner);
// pstmtInner.setDouble(1,amt);
pstmtInner.setDouble(1,recoAmt);
pstmtInner.setString(2,tranId);
pstmtInner.setString(3,lineNo);
updCnt = pstmtInner.executeUpdate();
if(updCnt <1)
{
throw new Exception("UpdateFail");
}
pstmtInner.close();
pstmtInner = null;
// modify Map for these new values
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap)miscRdetList.get(foundAt);
miscRdetMap = new HashMap();
miscRdetMap.put("line_no",miscRdetListMap.get("line_no"));
miscRdetMap.put("acct_code",miscRdetListMap.get("acct_code"));
miscRdetMap.put("cctr_code",miscRdetListMap.get("cctr_code"));
miscRdetMap.put("amount",((Double)miscRdetListMap.get("amount") +recoAmt));
miscRdetMap.put("anal_code",miscRdetListMap.get("anal_code"));
miscRdetMap.put("emp_code",miscRdetListMap.get("emp_code"));
miscRdetMap.put("net_amt",miscRdetListMap.get("net_amt"));
miscRdetMap.put("tax_amt",miscRdetListMap.get("tax_amt"));
miscRdetMap.put("tax_class",miscRdetListMap.get("tax_class"));
miscRdetMap.put("tax_chap",miscRdetListMap.get("tax_chap"));
miscRdetMap.put("tax_env",miscRdetListMap.get("tax_env"));
miscRdetMap.put("reas_code",miscRdetListMap.get("reas_code"));
miscRdetMap.put("ref_no",miscRdetListMap.get("ref_no"));
miscRdetMap.put("item_code",miscRdetListMap.get("item_code"));
miscRdetMap.put("quantity",miscRdetListMap.get("line_no"));
miscRdetMap.put("rate",miscRdetListMap.get("rate"));
miscRdetMap.put("line_no__sret",miscRdetListMap.get("line_no__sret"));
miscRdetMap.put("line_no__invtrace",miscRdetListMap.get("line_no__invtrace"));
miscRdetMap.put("lot_no",miscRdetListMap.get("lot_no"));
miscRdetMap.put("lot_sl",miscRdetListMap.get("lot_sl"));
miscRdetMap.put("analysis1",miscRdetListMap.get("analysis1"));
miscRdetMap.put("analysis2",miscRdetListMap.get("analysis2"));
miscRdetMap.put("analysis3",miscRdetListMap.get("analysis3"));
miscRdetList.add(foundAt,miscRdetMap );
//end
}
// }
}// end while
if(pstmtInsert !=null)
{
batchCount =pstmtInsert.executeBatch();
System.out.println("nos of row inserted "+batchCount.length);
pstmtInsert.close();
pstmtInsert =null;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(("C".equalsIgnoreCase(sundryType)) && (adjMiscCrn != null))
{
if(("AI".equalsIgnoreCase(adjMiscCrn.trim())) || ("AC".equalsIgnoreCase(adjMiscCrn.trim())))
{
errString = this.gbfPopuMiscDrcrRcpAdj(tranId,miscRcpMap,adjMiscCrn,miscRcpInvList,conn);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
}
else if (("MI".equalsIgnoreCase(adjMiscCrn.trim())) || ("MC".equalsIgnoreCase(adjMiscCrn.trim())))
{
for (int ctr =0; ctr< miscRcpInvList.size(); ctr++)
{
miscRcpInvListMap = new HashMap();
miscRcpInvListMap = (HashMap) miscRcpInvList.get(ctr);
adjRefNo = (String)miscRcpInvListMap.get("ref_no");
adjRefSer = (String)miscRcpInvListMap.get("ref_ser");
adjAmt = Double.parseDouble(miscRcpInvListMap.get("adv_amt").toString());
tot = tot + adjAmt;
// sql =" select count(*) from receivables "
// +" where cust_code = ? and tran_ser = ? and ref_no = ?";
// pstmt = conn.prepareStatement(sql);
// pstmt.setString(1,sundryCode);
// pstmt.setString(2,adjRefSer);
// pstmt.setString(3,adjRefNo);
// rs = pstmt.executeQuery();
// if(rs.next())
// {
// cnt = rs.getInt(1);
// }
// rs.close();
// rs= null;
// pstmt.close();
// pstmt=null;
//
// if (cnt == 0)
// {
// errString = itmDBAccessEJB.getErrorString("","VMREF1","","",conn);
// return errString;
// }
sql =" select (tot_amt - adj_amt) amt,tot_amt,adj_amt from receivables "
+" where cust_code = ? and tran_ser = ? and ref_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sundryCode);
pstmt.setString(2,adjRefSer);
pstmt.setString(3,adjRefNo);
rs = pstmt.executeQuery();
if(rs.next())
{
recAmt = rs.getDouble("amt");
totAmt = rs.getDouble("tot_amt");
recAdjAmt = rs.getDouble("adj_amt");
}else
{
System.out.println("NO record found in receivables ");
errString = itmDBAccessEJB.getErrorString("","VTNOREC2","","",conn);
return errString;
}
rs.close();
rs= null;
pstmt.close();
pstmt=null;
if((Math.abs(recAdjAmt+adjAmt)) > Math.abs(totAmt))
{
errString = itmDBAccessEJB.getErrorString("","VTRECBAL","","",conn);
return errString;
}
}//end of for
if(sreturnNo != null)
{
sql =" select cust_code from sreturn where tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sreturnNo);
rs = pstmt.executeQuery();
if(rs.next())
{
custCode = rs.getString("cust_code");
}
rs.close();
rs= null;
pstmt.close();
pstmt=null;
if(custCode.trim() != sundryCode.trim())
{
errString = itmDBAccessEJB.getErrorString("","VTCUSTCD","","",conn);
return errString;
}
if("MI".equalsIgnoreCase(adjMiscCrn.trim()))
{
sql =" select item_ser from sreturn where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sreturnNo);
rs = pstmt.executeQuery();
if(rs.next())
{
itemSr = rs.getString("item_ser");
}
rs.close();
rs= null;
pstmt.close();
pstmt=null;
if(itemSer.trim() != itemSr.trim())
{
errString = itmDBAccessEJB.getErrorString("","VTRITMSER","","",conn);
return errString;
}
}
}
amt = Double.parseDouble(miscRcpMap.get("amount").toString());
if(amt < 0 && tot <= 0)
{
if(Math.abs(amt) < Math.abs(tot))
{
errString = itmDBAccessEJB.getErrorString("","VTRECAMT","","",conn);
return errString;
}
// else if(amt < tot)
// {
// errString = itmDBAccessEJB.getErrorString("","VTRECAMT","","",conn);
// return errString;
// }
}
} // end of MI or MC
}// end of C is sundry Type
if(errString.length() == 0)
{
errString = this.gbfPostMiscDrcrRcp(tranId,miscRcpMap,miscRdetList,miscRcpInvList,xtraParams,conn);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
}
}
}catch(Exception e)
{
System.out.println("Exception :MiscDrcrConfirm :gbfRetrieveMiscDrcrRcp :SQLException :==>\n"+e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
return errString;
}
//migration of gbfPopuMiscDrcrRcpAdj
//populating automatic adjustment of advance of customer
private String gbfPopuMiscDrcrRcpAdj(String tranId,HashMap miscRcpMap,String adjMiscCrn,ArrayList miscRcpInvList,Connection conn)throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
PreparedStatement pstmtInsert = null;
ResultSet rs = null;
ResultSet rsInsert = null;
String sql = "",sqlInsert="";
ConnDriver connDriver = null;
String errString = "" ;
GenericUtility genericUtility = null;
ITMDBAccessEJB itmDBAccessEJB = null;
FinCommon Fcommon = new FinCommon();
DistCommon Dcommon = new DistCommon();
genericUtility = new GenericUtility();
HashMap glTraceMap = null,miscRdetListMap = null;
java.util.Date toDay = new java.util.Date();
java.sql.Timestamp tDay = null;
String date="",cust="",itemSer="",tranSer="",recNo="";
double amt=0,adjAmt=0,totAdj=0;
int line =0;
int upd1=0;
int []batchCount =null;
try
{
System.out.println("<!@#> In gbfPopuMiscDrcrRcpAdj :::::::::::::::::::::::::::::::");
date = Dcommon.getDisparams("999999","ADJ_CRN_ORD",conn);
if("NULLFOUND".equalsIgnoreCase(date.trim()))
{
errString = "NULLFOUND";
return errString;
}
else if("E".equalsIgnoreCase(date.trim()))
{
date = "eff_date";
}
else if("D".equalsIgnoreCase(date.trim()))
{
date = "due_date";
}
amt = Double.parseDouble(miscRcpMap.get("amount").toString());
cust = (String)miscRcpMap.get("sundry_code");
itemSer = (String)miscRcpMap.get("item_ser");
// sqlInsert =" insert into misc_drcr_rcpinv "
// +" (tran_id,line_no,ref_ser,ref_no,adj_amt,ref_bal_amt) "
// +" values (?,?,?,?,?,?) ";
// pstmtInsert = conn.prepareStatement(sqlInsert);
if("AI".equalsIgnoreCase(adjMiscCrn))
{
sql =" select tran_ser,ref_no,(tot_amt - adj_amt) as amt from receivables "
+" where cust_code = ? and item_ser = ? "
+" and (tot_amt - adj_amt) <> 0 and tran_ser ='S-INV' order by ? asc ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,cust);
pstmt.setString(2,itemSer);
pstmt.setString(3,date);
}
else if("AC".equalsIgnoreCase(adjMiscCrn))
{
sql =" select tran_ser,ref_no,(tot_amt - adj_amt) as amt from receivables "
+" where cust_code = ? and (tot_amt - adj_amt) <> 0 "
+" and tran_ser ='S-INV' order by ? asc " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,cust);
pstmt.setString(2,date);
}
rs = pstmt.executeQuery();
sqlInsert =" insert into misc_drcr_rcpinv "
+" (tran_id,line_no,ref_ser,ref_no,adj_amt,ref_bal_amt) "
+" values (?,?,?,?,?,?) ";
// pstmtInsert = conn.prepareStatement(sqlInsert);
pstmtInsert=null;
while (rs.next())
{
pstmtInsert = conn.prepareStatement(sqlInsert);
tranSer = rs.getString("tran_ser");
recNo = rs.getString("ref_no");
adjAmt = rs.getDouble("amt");
line =line+1;
pstmtInsert.setString(1,tranId);
pstmtInsert.setInt(2,line);
pstmtInsert.setString(3,tranSer);
pstmtInsert.setString(4,recNo.trim());
if(amt >= adjAmt)
{
totAdj = totAdj +adjAmt;
pstmtInsert.setDouble(5,adjAmt);
pstmtInsert.setDouble(6,adjAmt);
amt = amt - adjAmt;
}
else
{
totAdj = totAdj + amt;
pstmtInsert.setDouble(5,amt);
pstmtInsert.setDouble(6,adjAmt);
}
pstmtInsert.addBatch();
// pstmtInsert.executeBatch();
// upd1 = pstmtInsert.executeUpdate();
// if(upd1<1)
// {
// throw new Exception("UpdateFail");
// }
}//end of while
if(pstmtInsert !=null)
{
batchCount =pstmtInsert.executeBatch();
System.out.println("Nos of row updated " +batchCount.length);
}
pstmtInsert.close();
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql =" update misc_drcr_rcp set adj_amount = ? where tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,totAdj);
pstmt.setString(2,tranId);
upd1 = pstmt.executeUpdate();
if(upd1<1)
{
throw new Exception("UpdateFail");
}
pstmt.close();
pstmt = null;
}// end of try
catch(SQLException e)
{
System.out.println("Exception :MiscDrcrConfirm :gbfPopuMiscDrcrRcpAdj :SQLException :==>\n"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
catch (Exception e)
{
System.out.println("Exception :MiscDrCrRcpConf :gbfPopuMiscDrcrRcpAdj :==>"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(rsInsert != null)
{
rsInsert.close();
rsInsert = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(pstmtInsert != null)
{
pstmtInsert.close();
pstmtInsert = null;
}
}
catch(Exception e)
{
System.out.println("Exception : "+e);e.printStackTrace();
throw new ITMException(e);
}
}
return errString;
}
// migration gbf_post_misc_drcr_rcphdr
private String gbfPostMiscDrcrRcphdr(String tranId,HashMap miscRcpMap,String xtraParams,Connection conn)throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "",errString = "" ;
GenericUtility genericUtility = null;
ITMDBAccessEJB itmDBAccessEJB = null;
FinCommon Fcommon = new FinCommon();
genericUtility = new GenericUtility();
HashMap glTraceMap = null,sundryBalMap = null,receivablesMap = null;
java.util.Date toDay = new java.util.Date();
java.sql.Timestamp tDay = null;
String loginEmpCode="",gRefId="",tranSer="",winName="",ediOption="",acctCodePay="",siteCode="";
String drcrFlag="",sType="",sCode="",sretNo="",confirm="",siteCodeFor="",cctrCodePay="";
double amount=0,drAmt=0,crAmt=0,mrpValue=0;
int cnt=0;
int upd=0;
try
{
System.out.println("<!@#> In gbfPostMiscDrcrRcphdr :::::::::::::::::::::::::::::::");
itmDBAccessEJB = new ITMDBAccessEJB();
tDay = new java.sql.Timestamp(toDay.getTime());
loginEmpCode = GenericUtility.getInstance().getValueFromXTRA_PARAMS(xtraParams,"loginEmpCode");
glTraceMap = new HashMap();
sundryBalMap = new HashMap();
drcrFlag = (String)miscRcpMap.get("drcr_flag");
amount =Double.parseDouble(miscRcpMap.get("amount").toString());
//above row
// sql = "select count(*) from misc_drcr_rcp where tran_id = ? ";
// pstmt = conn.prepareStatement(sql);
// pstmt.setString(1,tranId);
// rs = pstmt.executeQuery();
// if(rs.next())
// {
// cnt = rs.getInt(1);
// }
// rs.close();
// rs = null;
// pstmt.close();
// pstmt= null;
glTraceMap.put("tran_date",(miscRcpMap.get("tran_date") == null ? "":miscRcpMap.get("tran_date")));
glTraceMap.put("eff_date",(miscRcpMap.get("eff_date") == null ? "":miscRcpMap.get("eff_date")));
glTraceMap.put("fin_entity",(miscRcpMap.get("fin_entity") == null ? "":miscRcpMap.get("fin_entity")));
glTraceMap.put("site_code",(miscRcpMap.get("site_code") == null ? "":miscRcpMap.get("site_code")));
glTraceMap.put("sundry_type",(miscRcpMap.get("sundry_type")));
glTraceMap.put("sundry_code",(miscRcpMap.get("sundry_code") == null ? "":miscRcpMap.get("sundry_code")));
System.out.println("<!@#>acount code"+miscRcpMap.get("acct_code"));
glTraceMap.put("acct_code",(miscRcpMap.get("acct_code")));
glTraceMap.put("cctr_code",(miscRcpMap.get("cctr_code") == null ? "":miscRcpMap.get("cctr_code")));
glTraceMap.put("emp_code","");
glTraceMap.put("anal_code","");
glTraceMap.put("curr_code",(miscRcpMap.get("curr_code")));
glTraceMap.put("exch_rate",(miscRcpMap.get("exch_rate")));
//added on 18/07/12
System.out.println("<!@#>:::::::::::::miscRcpMap.get(eff_date)" +miscRcpMap.get("eff_date"));
// glTraceMap.put("ref_date",(miscRcpMap.get("eff_date") == null ? "":miscRcpMap.get("eff_date")));
// glTraceMap.put("due_date",(miscRcpMap.get("due_date") == null ? "":miscRcpMap.get("due_date")));
// glTraceMap.put("ref_no",tranId);
//end
if("D".equalsIgnoreCase(drcrFlag))
{
glTraceMap.put("dr_amt",amount);
glTraceMap.put("cr_amt","0");
//added on19/07/12
miscRcpMap.put("tot_amt", amount);
}
else
{
glTraceMap.put("cr_amt",amount);
glTraceMap.put("dr_amt","0");
//added on19/07/12
miscRcpMap.put("tot_amt", (0 - amount));
}
glTraceMap.put("ref_type","F");
glTraceMap.put("ref_id",tranId);
glTraceMap.put("ref_ser",(miscRcpMap.get("tran_ser")));
glTraceMap.put("remarks",(miscRcpMap.get("remarks")));
System.out.println("<!@#>going gbfPostMiscDrcrRcphdr::::::::::: glTraceUpdate");
errString = Fcommon.glTraceUpdate(glTraceMap,conn);
System.out.println("<!@#>going gbfPostMiscDrcrRcphdr::::::::::: glTraceUpdate errString" +errString);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
String sundryTypeGl = (String)glTraceMap.get("sundry_type");
if(!("O".equalsIgnoreCase(sundryTypeGl)))
{
sundryBalMap.put("tran_date",miscRcpMap.get("tran_date"));
sundryBalMap.put("eff_date",miscRcpMap.get("eff_date"));
sundryBalMap.put("fin_entity",miscRcpMap.get("fin_entity"));
sundryBalMap.put("site_code",miscRcpMap.get("site_code"));
sundryBalMap.put("sundry_type",glTraceMap.get("sundry_type"));
sundryBalMap.put("sundry_code",miscRcpMap.get("sundry_code"));
sundryBalMap.put("acct_code",glTraceMap.get("acct_code"));
sundryBalMap.put("cctr_code",glTraceMap.get("cctr_code"));
sundryBalMap.put("curr_code",miscRcpMap.get("curr_code"));
sundryBalMap.put("exch_rate",miscRcpMap.get("exch_rate"));
if("D".equalsIgnoreCase(drcrFlag))
{
drAmt = amount;
crAmt = 0;
}
else
{
drAmt = 0;
crAmt = amount;
}
sundryBalMap.put("dr_amt",drAmt);
sundryBalMap.put("cr_amt",crAmt);
sundryBalMap.put("adv_amt",0.0);
// sType = (String)sundryBalMap.get("sundry_type");
sCode = (String)sundryBalMap.get("sundry_code");
// if(sType != null)
// {
sundryBalMap.put("contact_code",Fcommon.getContactCode(sundryTypeGl,sCode,conn));
// }
// else
// {
// sundryBalMap.put("contact_code","");
// }
System.out.println("<!@#>going gbfPostMiscDrcrRcphdr::::::::::: gbf_sundrybal_upd");
errString = Fcommon.gbf_sundrybal_upd(sundryBalMap,conn);
System.out.println("<!@#>going gbfPostMiscDrcrRcphdr::::::::::: gbf_sundrybal_upd errString"+errString);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
}
////genrating key for receivables
////insert into receivables 33
// sql="insert into receivables (tran_id, tran_ser, tran_date, ref_no, ref_date, " +
// "curr_code, exch_rate, cust_code, acct_code, cctr_code, " +
// "due_date, fin_entity, site_code, tot_amt, adj_amt, " +
// "discount, tax_amt, auto_rcp, bank_code, recd, " +
// "ref_type, cr_term, sales_pers, item_ser, status, stat_date, " +
// "sales_pers__1, sales_pers__2, contact_code, eff_date,fin_scheme, ref_ser__org,sale_order) values (" +
// " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
// pstmt = conn.prepareStatement(sql);
// pstmt.setString(1,"");//
// pstmt.setString(2,(String)miscRcpMap.get("tran_ser") );
// pstmt.setString(3,"" );//
// pstmt.setString(4, (String)miscRcpMap.get("ref_no"));
// pstmt.setString(5, (String)miscRcpMap.get("ref_date"));
// pstmt.setString(6, (String)miscRcpMap.get("curr_code"));
// pstmt.setString(7, (String)miscRcpMap.get("exch_rate"));
// pstmt.setString(8, (String)miscRcpMap.get("cust_code"));
// pstmt.setString(9, (String)miscRcpMap.get("acct_code"));
// pstmt.setString(10,(String)miscRcpMap.get("cctr_code"));
// pstmt.setString(11,(String)miscRcpMap.get("due_date"));
// pstmt.setString(12,(String)miscRcpMap.get("fin_entity"));
// pstmt.setString(13,(String)miscRcpMap.get("tot_amt"));
// pstmt.setString(14,(String)miscRcpMap.get("adj_amt"));
// pstmt.setString(15,(String)miscRcpMap.get("discount"));
// pstmt.setString(16,(String)miscRcpMap.get("tax_amt"));
// pstmt.setString(17,(String)miscRcpMap.get("auto_rcp"));
// pstmt.setString(18,(String)miscRcpMap.get("bank_code"));
// pstmt.setString(19,(String)miscRcpMap.get("recd"));
// pstmt.setString(20,(String)miscRcpMap.get("ref_type"));
// pstmt.setString(21,(String)miscRcpMap.get("cr_term"));
// pstmt.setString(22,(String)miscRcpMap.get("sales_pers"));
// pstmt.setString(23,(String)miscRcpMap.get("item_ser"));
// pstmt.setString(24,(String)miscRcpMap.get("status"));
// pstmt.setString(25,(String)miscRcpMap.get("stat_date"));
// pstmt.setString(26,(String)miscRcpMap.get("sales_pers__1"));
// pstmt.setString(27,(String)miscRcpMap.get("sales_pers__2"));
// pstmt.setString(28,(String)miscRcpMap.get("contact_code"));
// pstmt.setString(29,(String)miscRcpMap.get("eff_date"));
// pstmt.setString(30,(String)miscRcpMap.get("fin_scheme"));
// pstmt.setString(31,(String)miscRcpMap.get("ref_ser__org"));
// pstmt.setString(32,(String)miscRcpMap.get("sale_order"));
//
//
//
//
// upd =pstmt.executeUpdate();
// if(upd <1)
// {
// throw new Exception("InsertFail");
// }
System.out.println("<!@#>going gbfPostMiscDrcrRcphdr::::::::::: gbfReceivablesUpd");
miscRcpMap.put("ref_date",(miscRcpMap.get("eff_date") == null ? "":miscRcpMap.get("eff_date")));
miscRcpMap.put("auto_rcp","N");
miscRcpMap.put("bank_code",null);
miscRcpMap.put("ref_type",(miscRcpMap.get("tran_type") == null ? "":miscRcpMap.get("tran_type")));
miscRcpMap.put("cr_term",null);
miscRcpMap.put("sales_pers",null);
miscRcpMap.put("tax_amt",0.0);
miscRcpMap.put("discount",0.0);
miscRcpMap.put("ref_no",tranId);
//item_ser already present
sretNo=(String)miscRcpMap.get("sreturn_no");
if(sretNo !=null && sretNo.trim().length() >0)
{
sql="select sum(case when mrp_value is null then 0 else mrp_value end) "+
" from sreturndet where tran_id = ? ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, sretNo);
if(rs.next())
{
mrpValue =rs.getDouble(1);
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
}
miscRcpMap.put("mrp_value",mrpValue);
// miscRcpMap.put("ref_no",tranId);
errString = Fcommon.gbfReceivablesUpd(miscRcpMap,conn);
System.out.println("<!@#>going gbfPostMiscDrcrRcphdr::::::::::: gbfReceivablesUpd errString"+errString);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
//
// as per discussion with Shri Mam
// confirm = (String)miscRcpMap.get("confirmed");
// gRefId = (String)glTraceMap.get("ref_id");
//
// if(!("Y".equalsIgnoreCase(confirm)))
// {
sql =" update misc_drcr_rcp set confirmed = ?,conf_date = ?, "
+" emp_code__aprv = ? where tran_id = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,"Y");
pstmt.setTimestamp(2,tDay);
pstmt.setString(3,loginEmpCode);
// pstmt.setString(3,gRefId);
pstmt.setString(4,tranId);
upd = pstmt.executeUpdate();
if(upd <1)
{
throw new Exception("UpdateFail");
}
pstmt.close();
pstmt = null;
// }
// the window for cr/dr are now seperate, to take respective values as per tran_ser
// tranSer =(String)miscRcpMap.get("tran_ser");
// if("MDRCRC".equalsIgnoreCase(tranSer))
// {
// winName = "w_misc_drcr_rcp_cr";
// }
// else if ("MDRCRD".equalsIgnoreCase(tranSer))
// {
// winName = "w_misc_drcr_rcp_dr";
// }
//edi calculation not needed as per discussion with KB Sir
}// end of try
catch(SQLException e)
{
System.out.println("Exception :MiscDrCrRcpConf :gbfPostMiscDrcrRcphdr :SQLException :==>\n"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
catch (Exception e)
{
System.out.println("Exception :MiscDrCrRcpConf :gbfPostMiscDrcrRcphdr :==>"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Exception : "+e);e.printStackTrace();
throw new ITMException(e);
}
}
return errString;
} // end of method hdr
//migration gbf_post_misc_drcr_rcp_det
private String gbfPostMiscDrcrRcpdet(String tranId,HashMap miscRcpMap,ArrayList miscRdetList,String xtraParams,Connection conn)throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "",errString = "" ;
GenericUtility genericUtility = null;
ITMDBAccessEJB itmDBAccessEJB = null;
FinCommon Fcommon = new FinCommon();
genericUtility = new GenericUtility();
HashMap glTraceMap = null,miscRdetListMap = null;
java.util.Date toDay = new java.util.Date();
java.sql.Timestamp tDay = null;
String acctCode="",cctrCode="",empCode="",analCode="",anal1="",anal2="",anal3="",drcrFlag="";
double amount =0;
try
{
System.out.println("<!@#> In gbfPostMiscDrcrRcpdet :::::::::::::::::::::::::::::::");
itmDBAccessEJB = new ITMDBAccessEJB();
tDay = new java.sql.Timestamp(toDay.getTime());
glTraceMap = new HashMap();
drcrFlag = (String)miscRcpMap.get("drcr_flag");
for (int ctr =0; ctr < miscRdetList.size(); ctr++)
{
miscRdetListMap = new HashMap();
miscRdetListMap = (HashMap) miscRdetList.get(ctr);
acctCode = (String)miscRdetListMap.get("acct_code");
cctrCode = (String)miscRdetListMap.get("cctr_code");
//for testing
System.out.println("<!@#>cctrCode:" +cctrCode + ":");
// if(cctrCode == null || cctrCode.trim().length()==0)
// {
// cctrCode="A101";
// }
empCode = (String)miscRdetListMap.get("emp_code");
analCode = (String)miscRdetListMap.get("anal_code");
// amount = Double.parseDouble(miscRdetListMap.get("amount").toString());
amount = (Double)miscRdetListMap.get("amount");
anal1 = (String)miscRdetListMap.get("analysis1");
anal2 = (String)miscRdetListMap.get("analysis2");
anal3 = (String)miscRdetListMap.get("analysis3");
glTraceMap.put("tran_date",(miscRcpMap.get("tran_date")));
glTraceMap.put("eff_date",(miscRcpMap.get("eff_date")));
glTraceMap.put("fin_entity",(miscRcpMap.get("fin_entity")));
glTraceMap.put("site_code",(miscRcpMap.get("site_code")));
glTraceMap.put("sundry_type","O"); //hard coded as it is in code
glTraceMap.put("sundry_code"," ");
System.out.println("<!@#>acount code det " + acctCode);
glTraceMap.put("acct_code",acctCode);
glTraceMap.put("cctr_code",cctrCode);
glTraceMap.put("emp_code",empCode);
glTraceMap.put("anal_code",analCode);
glTraceMap.put("curr_code",(miscRcpMap.get("curr_code")));
glTraceMap.put("exch_rate",(miscRcpMap.get("exch_rate")));
if("D".equalsIgnoreCase(drcrFlag))
{
if(amount > 0)
{
glTraceMap.put("dr_amt","0");
glTraceMap.put("cr_amt",amount);
}
else
{
glTraceMap.put("dr_amt",(0 - amount));
glTraceMap.put("cr_amt","0");
}
}
else
{
if(amount > 0)
{
glTraceMap.put("dr_amt",amount);
glTraceMap.put("cr_amt","0");
}
else
{
glTraceMap.put("dr_amt","0");
glTraceMap.put("cr_amt",(0 - amount));
}
}
glTraceMap.put("ref_type","F");
glTraceMap.put("ref_id",tranId);
glTraceMap.put("ref_ser",(miscRcpMap.get("tran_ser")));
glTraceMap.put("remarks",(miscRcpMap.get("remarks")));
glTraceMap.put("analysis1",anal1);
glTraceMap.put("analysis2",anal2);
glTraceMap.put("analysis3",anal3);
System.out.println("<!@#> In gbfPostMiscDrcrRcpdet :::::::::::::::::::::::glTraceUpdate");
errString = Fcommon.glTraceUpdate(glTraceMap,conn);
System.out.println("<!@#> In gbfPostMiscDrcrRcpdet :::::::::::::::::::::::glTraceUpdate errString "+errString);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
}//end of for
}//end of try
catch (Exception e)
{
System.out.println("Exception :MiscDrCrRcpConf :gbfPostMiscDrcrRcpdet :==>"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Exception : "+e);e.printStackTrace();
throw new ITMException(e);
}
}
return errString;
} //end of method det
//migration of gbf_post_misc_drcr_adj_det
private String gbfPostMiscDrcrAdjdet(String tranId,HashMap miscRcpMap,ArrayList miscRcpInvList,String xtraParams,Connection conn)throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
PreparedStatement pstmtInner = null;
ResultSet rs = null;
ResultSet rsInner = null;
String sql = "",sqlInner ="";
String errString = "" ;
int upd=0;
HashMap advListMap =null;
String refSerHdr="",cust="",refSer="",refNo="";
double totAdjAmt=0,amount=0,mrpValueAdj=0,adjAmt=0,totAmt=0;
try
{
System.out.println("<!@#> In gbfPostMiscDrcrAdjdet :::::::::::::::::::::::::::::::");
refSerHdr = (String)miscRcpMap.get("tran_ser");
cust = (String)miscRcpMap.get("sundry_code");
for (int ctr =0; ctr < miscRcpInvList.size(); ctr++)
{
advListMap = new HashMap();
advListMap = (HashMap) miscRcpInvList.get(ctr);
refSer = (String)advListMap.get("ref_ser");
refNo = (String)advListMap.get("ref_no");
amount =(Double)advListMap.get("adj_amt");
mrpValueAdj = (Double)advListMap.get("mrp_value__adj");
totAdjAmt = amount;
sql =" update receivables "
+" set adj_amt = case when adj_amt is null then 0 else adj_amt end + ? , "
+" mrp_value = case when mrp_value is null then 0 else mrp_value end - ? "
+" where tran_ser = ? and ref_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,amount);
pstmt.setDouble(2,mrpValueAdj);
pstmt.setString(3,refSer);
pstmt.setString(3,refNo);
upd = pstmt.executeUpdate();
if(upd <1)
{
throw new Exception("UpdateFail");
}
pstmt.close();
pstmt = null;
//check for total adjustment
sql =" select adj_amt,tot_amt from receivables "
+" where tran_ser = ? and ref_no = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,refSer);
pstmt.setString(2,refNo);
rs = pstmt.executeQuery();
if(rs.next())
{
adjAmt = rs.getDouble("adj_amt");
totAmt = rs.getDouble("tot_amt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(adjAmt == totAmt)
{
sql =" update receivables set status = ? "
+" where tran_ser = ? and ref_no = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,"A");
pstmt.setString(2,refSer);
pstmt.setString(3,refNo);
upd = pstmt.executeUpdate();
if(upd <1)
{
throw new Exception("UpdateFail");
}
pstmt.close();
pstmt = null;
}
}//end of for
sql =" update receivables set adj_amt = case when adj_amt is null then 0 else adj_amt end + -1 * ? "
+" where tran_ser = ? and ref_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,totAdjAmt);
pstmt.setString(2,refSerHdr);
pstmt.setString(3,tranId);
upd = pstmt.executeUpdate();
if(upd <1)
{
throw new Exception("UpdateFail");
}
pstmt.close();
pstmt = null;
//check for total adjustment
sql =" select adj_amt,tot_amt from receivables "
+" where tran_ser = ? and ref_no = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,refSerHdr);
pstmt.setString(2,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
adjAmt = rs.getDouble("adj_amt");
totAmt = rs.getDouble("tot_amt");
if (adjAmt == totAmt)
{
sqlInner =" update receivables set status = ? "
+" where tran_ser = ? and ref_no = ? ";
pstmtInner = conn.prepareStatement(sqlInner);
pstmtInner.setString(1,"A");
pstmtInner.setString(2,refSerHdr);
pstmtInner.setString(3,tranId);
upd = pstmtInner.executeUpdate();
if(upd <1)
{
throw new Exception("UpdateFail");
}
pstmtInner.close();
pstmtInner = null;
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}//end of try
catch(SQLException e)
{
System.out.println("Exception :MiscDrCrRcpConf :gbfPostMiscDrcrAdjdet :SQLException :==>\n"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
catch (Exception e)
{
System.out.println("Exception :MiscDrCrRcpConf :gbfPostMiscDrcrAdjdet :==>"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(rsInner != null)
{
rsInner.close();
rsInner = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(pstmtInner != null)
{
pstmtInner.close();
pstmtInner = null;
}
}
catch(Exception e)
{
System.out.println("Exception : "+e);e.printStackTrace();
throw new ITMException(e);
}
}
return errString;
}//end of adj method
//migration gbf_post_misc_drcr_rcp
//migration gbf_post_misc_drcr_rcp
private String gbfPostMiscDrcrRcp(String tranId,HashMap miscRcpMap,ArrayList miscRdetList,ArrayList miscRcpInvList,String xtraParams,Connection conn)throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
PreparedStatement pstmtIn = null;
ResultSet rs = null;
ResultSet rsIn = null;
String sql = "",sqlIn ="",errString = "" ;
ITMDBAccessEJB itmDBAccessEJB = null;
FinCommon Fcommon = new FinCommon();
String tranSer="",runMode = "I",invIbcaGen="",cust="",site="",siteRcv="",thisWin="",xmlString="";
String keyString="",finEntFr="",finEntTo="",link ="",acctFr ="",cctrFr="",acctTo="",cctrTo="",itemSer="";
String ibcaId="",remarks="",curr="",custI="",acct="",cctr="",autoRcp="",bank="",recd="",refType="";
String crTerm="",itmSer="",spers="",spers1="",spers2="",custRefNo="",chgUser="",chgTerm="",tranType="";
String siteCodeFor="";
int upd =0;
java.util.Date toDay = new java.util.Date();
java.sql.Timestamp refDate = null;
java.sql.Timestamp dueDate = null;
java.sql.Timestamp tranDate = null;
java.sql.Timestamp custRefDate = null;
java.sql.Timestamp tDay = null;
double exch=0,amount=0,discount=0,taxAmt=0,custRefAmt=0,amountBc=0;
try
{
System.out.println("<!@#> In gbfPostMiscDrcrRcp ::::::: ::::::::::::::::::::::::");
itmDBAccessEJB = new ITMDBAccessEJB();
tranSer = (String)miscRcpMap.get("tran_ser");
siteCodeFor = (String)miscRcpMap.get("site_code__drcr");
System.out.println("<!@#> In gbfPostMiscDrcrRcp tran_ser :::" +tranSer);
System.out.println("<!@#> In gbfPostMiscDrcrRcp siteCodeFor :::" +siteCodeFor);
tDay = new java.sql.Timestamp(toDay.getTime());
chgUser = GenericUtility.getInstance().getValueFromXTRA_PARAMS(xtraParams,"loginCode");
chgTerm = GenericUtility.getInstance().getValueFromXTRA_PARAMS(xtraParams,"termId");
System.out.println("<!@#> In gbfPostMiscDrcrRcp going into gbfPostMiscDrcrRcphdr:::");
errString = this.gbfPostMiscDrcrRcphdr(tranId,miscRcpMap,xtraParams,conn);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
System.out.println("<!@#> In gbfPostMiscDrcrRcp returning from gbfPostMiscDrcrRcphdr errString:::" +errString);
System.out.println("<!@#> In gbfPostMiscDrcrRcp going into gbfPostMiscDrcrRcpdet:::");
errString = this.gbfPostMiscDrcrRcpdet(tranId,miscRcpMap,miscRdetList,xtraParams,conn);
System.out.println("<!@#> In gbfPostMiscDrcrRcp returning from gbfPostMiscDrcrRcpdet errString:::" +errString);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
// ask to pravin
System.out.println("<!@#> In gbfPostMiscDrcrRcp going into gbfPostMiscDrcrAdjdet:::");
errString = this.gbfPostMiscDrcrAdjdet(tranId,miscRcpMap,miscRcpInvList,xtraParams,conn);
System.out.println("<!@#> In gbfPostMiscDrcrRcp returning from gbfPostMiscDrcrAdjdet errString:::" +errString);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
System.out.println("<!@#> In gbfPostMiscDrcrRcp going into Fcommon.checkGlTranDrCr:::");
errString = Fcommon.checkGlTranDrCr(tranSer,tranId,conn);
System.out.println("<!@#> In gbfPostMiscDrcrRcp returning from Fcommon.checkGlTranDrCr:::" +errString);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
System.out.println("<!@#> In gbfPostMiscDrcrRcp going into runMode:::" +runMode);
if("I".equalsIgnoreCase(runMode))
{
invIbcaGen = Fcommon.getFinparams("999999","INV_IBCA_GEN",conn);
if(invIbcaGen == "NULLFOUND")
{
invIbcaGen = "Y";
}
if("Y".equalsIgnoreCase(invIbcaGen))
{
// create ibca if site code in voucher does not match the rcv site of the customer
cust = (String)miscRcpMap.get("sundry_code");
site = (String)miscRcpMap.get("site_code");
//if the receipt site not found in site customer master then take the site receipt from
// customer master.
sql =" select site_code__rcp from site_customer "
+" where site_code = ? and cust_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,site);
pstmt.setString(2,cust);
rs = pstmt.executeQuery();
if(rs.next())
{
siteRcv = rs.getString("site_code__rcp");
}
else
{
sqlIn ="select site_code__rcp from customer where cust_code = ? ";
pstmtIn = conn.prepareStatement(sqlIn);
pstmtIn.setString(1,cust);
rsIn = pstmtIn.executeQuery();
if(rsIn.next())
{
siteRcv = rsIn.getString("site_code__rcp");
}
rsIn.close();
rsIn = null;
pstmtIn.close();
pstmtIn = null;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("siteRcv From query is :::"+siteRcv);
if((siteRcv == null) || (siteRcv.trim().length() == 0))
{
System.out.println("Inside siteRcv 1:::::");
sql ="select site_code__rcp from customer where cust_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,cust);
rs = pstmt.executeQuery();
if(rs.next())
{
siteRcv = rs.getString("site_code__rcp");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("Inside siteRcv 2:::::"+siteRcv);
}
// ibca start
if((siteRcv == null) || (siteRcv.trim().length() == 0))
{
siteRcv = site;
System.out.println("Inside siteRcv 3:::::"+siteRcv);
}
if((siteRcv.trim() != site.trim()) && ("I".equalsIgnoreCase(runMode)))
{
thisWin = "W_RCP_IBCA";
System.out.println("siteRcv :::::"+siteRcv);
System.out.println("site :::::"+site);
sql =" select key_string from transetup where upper(tran_window) = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, thisWin);
rs = pstmt.executeQuery();
if(rs.next())
{
keyString = rs.getString("key_string");
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTSEQ","","",conn);
return errString;
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
sql =" select fin_entity from site where site_code =? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,site);
rs = pstmt.executeQuery();
if(rs.next())
{
finEntFr = rs.getString("fin_entity");
}
else
{
errString = itmDBAccessEJB.getErrorString("","VMSITE","","",conn);
return errString;
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
sql =" select fin_entity from site where site_code =? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteRcv);
rs = pstmt.executeQuery();
if(rs.next())
{
finEntTo = rs.getString("fin_entity");
}
else
{
errString = itmDBAccessEJB.getErrorString("","VMSITE","","",conn);
return errString;
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
sql = "select link_type,acct_code__pay,cctr_code__pay,acct_code__rcp,cctr_code__rcp "
+" from ibca_rcp_ctrl where site_code__from = ? and site_code__to = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,site);
pstmt.setString(2,siteRcv);
rs = pstmt.executeQuery();
if(rs.next())
{
link = rs.getString("link_type");
acctFr = rs.getString("acct_code__pay");
//issue
cctrFr = rs.getString("cctr_code__pay");
System.out.println("<!@#> cctrFr :"+cctrFr+":");
acctTo = rs.getString("acct_code__rcp");
cctrTo = rs.getString("cctr_code__rcp");
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTIBCA5","","",conn);
return errString;
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
xmlString = "<?xml version=\"1.0\"?>\r\n<Root>\r\n<header>"+
"\r\n</header><Detail1><item_ser></item_ser>"+
"\r\n<tran_date>sdf.format(new java.util.Date(toDay.getTime()))</tran_date>"+
"\r\n<site_code__from>"+site+"</site_code__from>"+
"\r\n<link_type>"+link+"</link_type></Detail1></Root>";
System.out.println("xmlString : : : : :"+xmlString);
CommonConstants.setIBASEHOME();
TransIDGenerator tg = new TransIDGenerator(xmlString,"Base",CommonConstants.DB_NAME);
ibcaId = tg.generateTranSeqID("R-IBCA","tran_id",keyString,conn);
System.out.println("Generated Key :: "+ibcaId);
if (ibcaId.indexOf("ERROR") > -1 )
{
errString = itmDBAccessEJB.getErrorString("","VTTRANID","","",conn);
}
remarks = "Auto IBCA transfer of Misc Dr/Cr Note of " +cust;
sql =" select ref_date,curr_code,exch_rate,cust_code,acct_code,cctr_code,"
+" due_date,tot_amt - adj_amt as amt ,discount,tax_amt,auto_rcp,bank_code, "
+" recd,ref_type,cr_term,item_ser,sales_pers,sales_pers__1, "
+" sales_pers__2,tran_date,cust_ref_no,cust_ref_date,cust_ref_amt "
+" from receivables where tran_ser like 'MDRCR%' "
+" and ref_no = ?" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
refDate = rs.getTimestamp("ref_date");
curr = rs.getString("curr_code");
exch = rs.getDouble("exch_rate");
custI = rs.getString("cust_code");
acct = rs.getString("acct_code");
cctr = rs.getString("cctr_code");
dueDate = rs.getTimestamp("due_date");
amount = rs.getDouble("amt");
discount = rs.getDouble("discount");
taxAmt = rs.getDouble("tax_amt");
autoRcp = rs.getString("auto_rcp");
bank = rs.getString("bank_code");
recd = rs.getString("recd");
refType = rs.getString("ref_type");
crTerm = rs.getString("cr_term");
itmSer = rs.getString("item_ser");
spers = rs.getString("sales_pers");
spers1 = rs.getString("sales_pers__1");
spers2 = rs.getString("sales_pers__2");
tranDate = rs.getTimestamp("tran_date");
custRefNo = rs.getString("cust_ref_no");
custRefDate = rs.getTimestamp("cust_ref_date");
custRefAmt = rs.getDouble("cust_ref_amt");
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
if(amount > 0)
{
tranSer ="MDRCRC";
}
else
{
tranSer="MDRCRD";
}
amountBc = amount * exch;
if (amountBc != 0)
{
sql =" insert into rcp_ibca (tran_id,tran_date,eff_date,site_code__from,fin_entity__from, "
+" site_code__to,fin_entity__to,amount,curr_code,exch_rate,confirmed,acct_code__ifr, "
+" cctr_code__ifr,acct_code__ito,cctr_code__ito,chg_date,chg_user,chg_term,amount__bc, "
+" tran_type,tran_ser,link_type,remarks) "
+" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,ibcaId);
pstmt.setTimestamp(2,tranDate);
pstmt.setTimestamp(3,tranDate);
pstmt.setString(4,site);
pstmt.setString(5,finEntFr);
pstmt.setString(6,siteRcv);
pstmt.setString(7,finEntTo);
pstmt.setDouble(8,amount);
if(curr == null || curr.trim().length() == 0)
{
pstmt.setNull(9,Types.VARCHAR);
}
else
{
pstmt.setString(9,curr);
}
pstmt.setDouble(10,exch);
pstmt.setString(11,"N");
if(acctFr == null || acctFr.trim().length() == 0)
{
pstmt.setNull(12,Types.VARCHAR);
}
else
{
pstmt.setString(12,acctFr);
}//issue
System.out.println("<!@#> Setting cctrFr :"+cctrFr+":");
if(cctrFr == null)
{
pstmt.setNull(13,Types.VARCHAR);
}
else
{
pstmt.setString(13,cctrFr);
}
if(acctTo == null )
{
pstmt.setNull(14,Types.VARCHAR);
}
else
{
pstmt.setString(14,acctTo);
}
if(cctrTo == null )
{
pstmt.setNull(15,Types.VARCHAR);
}
else
{
pstmt.setString(15,cctrTo);
}
pstmt.setTimestamp(16,tDay);
pstmt.setString(17,chgUser);
pstmt.setString(18,chgTerm);
pstmt.setDouble(19,amountBc);
pstmt.setString(20,tranType);
pstmt.setString(21,"I");
if(link == null || link.trim().length() == 0)
{
pstmt.setNull(22,Types.VARCHAR);
}
else
{
pstmt.setString(22,link);
}
pstmt.setString(23,remarks);
upd =pstmt.executeUpdate();
if(upd <1)
{
throw new Exception("UpdateFail");
}
pstmt.close();
sql =" insert into rcp_ibca_det (tran_id,ref_ser,ref_no,ref_date,curr_code, "
+" exch_rate,cust_code,acct_code,cctr_code,due_date,tot_amt,discount,tax_amt, "
+" bank_code,ref_type,auto_rcp,sales_pers,item_ser,sales_pers__1,sales_pers__2, "
+" cr_term,recd,ref_ser__org,line_no__ref,cust_ref_no,cust_ref_date,cust_ref_amt) "
+" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,ibcaId);
pstmt.setString(2,tranSer);
pstmt.setString(3,tranId);
pstmt.setTimestamp(4,refDate);
pstmt.setString(5,curr);
pstmt.setDouble(6,exch);
pstmt.setString(7,custI);
pstmt.setString(8,acct);
pstmt.setString(9,cctr);
pstmt.setTimestamp(10,dueDate);
pstmt.setDouble(11,amount);
pstmt.setDouble(12,discount);
pstmt.setDouble(13,taxAmt);
pstmt.setString(14,bank);
pstmt.setString(15,refType);
pstmt.setString(16,autoRcp);
pstmt.setString(17,spers);
pstmt.setString(18,itemSer);
pstmt.setString(19,spers1);
pstmt.setString(20,spers2);
pstmt.setString(21,crTerm);
pstmt.setString(22,recd);
pstmt.setString(23,tranSer);
pstmt.setString(24,"1");
pstmt.setString(25,custRefNo);
pstmt.setTimestamp(26,custRefDate);
pstmt.setDouble(27,custRefAmt);
upd= pstmt.executeUpdate();
if(upd <1)
{
throw new Exception("UpdateFail");
}
pstmt.close();
}
} //end siteRcv != site & runMode = I
}// end Y is invIbcaGen
}// runMode is I
System.out.println("Reaching End sucessefull <!@# new>");
// errString = itmDBAccessEJB.getErrorString("","CONFSUCCES","");
errString = itmDBAccessEJB.getErrorString("","CONFSUCCES","","",conn);
System.out.println("Misc Drcr Confirmed .."+errString);
}// end of try
catch(SQLException e)
{
System.out.println("Exception :MiscDrCrRcpConf :gbfPostMiscDrcrRcp :SQLException :==>\n"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
catch (Exception e)
{
System.out.println("Exception :MiscDrCrRcpConf :gbfPostMiscDrcrRcp :==>"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Exception : "+e);e.printStackTrace();
throw new ITMException(e);
}
}
return errString;
}
}
\ No newline at end of file
package ibase.webitm.ejb.fin;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Local;
@Local
public interface MiscDrCrRcpConfLocal {
public String confirm(String tranId,String xtraParams,String forcedFlag) throws RemoteException,ITMException;
}
\ No newline at end of file
package ibase.webitm.ejb.fin;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Remote;
@Remote
public interface MiscDrCrRcpConfRemote {
public String confirm(String tranId,String xtraParams,String forcedFlag) throws RemoteException,ITMException;
}
\ 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