Commit 6b5ac964 authored by steurwadkar's avatar steurwadkar

Receipt generation changes for RCP mode G (SagePay) / M (PayPal)


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@105254 ce508802-f39f-4f6c-b175-0d175dae99d5
parent ce91d90a
package ibase.webitm.ejb.wms; package ibase.webitm.ejb.wms;
import ibase.system.config.AppConnectParm;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.ejb.dis.InvAllocTraceBean;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.fin.adv.ReceiptAdvConfLocal;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
import ibase.webitm.utility.wms.CommonWmsUtil;
import java.io.File; import java.io.File;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
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;
...@@ -14,6 +27,7 @@ import java.text.SimpleDateFormat; ...@@ -14,6 +27,7 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashMap; import java.util.HashMap;
import java.util.Properties;
import java.util.logging.FileHandler; import java.util.logging.FileHandler;
import java.util.logging.Handler; import java.util.logging.Handler;
import java.util.logging.Level; import java.util.logging.Level;
...@@ -33,23 +47,6 @@ import org.w3c.dom.Element; ...@@ -33,23 +47,6 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node; import org.w3c.dom.Node;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
import ibase.system.config.AppConnectParm;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.EMail;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.ejb.dis.InvAllocTraceBean;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
import ibase.webitm.utility.wms.CommonWmsUtil;
import ibase.webitm.utility.wms.SorderInsertSchedule;
@Stateless @Stateless
public class UploadOrderEJB extends ActionHandlerEJB implements UploadOrderEJBLocal,UploadOrderEJBRemote public class UploadOrderEJB extends ActionHandlerEJB implements UploadOrderEJBLocal,UploadOrderEJBRemote
{ {
...@@ -80,7 +77,8 @@ public class UploadOrderEJB extends ActionHandlerEJB implements UploadOrderEJBLo ...@@ -80,7 +77,8 @@ public class UploadOrderEJB extends ActionHandlerEJB implements UploadOrderEJBLo
String exchRate = ""; String exchRate = "";
String finEntity = ""; String finEntity = "";
String finCurrCode = ""; String finCurrCode = "";
//Added by Santosh on 04/04/2017
String rcpMode = "";
try try
{ {
...@@ -282,6 +280,14 @@ public class UploadOrderEJB extends ActionHandlerEJB implements UploadOrderEJBLo ...@@ -282,6 +280,14 @@ public class UploadOrderEJB extends ActionHandlerEJB implements UploadOrderEJBLo
saleOrderNo = arrayForTranId[1].substring(0,endIndex); saleOrderNo = arrayForTranId[1].substring(0,endIndex);
System.out.println("saleOrderNo------>>>["+saleOrderNo+"]"); System.out.println("saleOrderNo------>>>["+saleOrderNo+"]");
//Added by Santosh on 04/04/2017 to create receipt for RCP mode G/M [Start]
rcpMode = genericUtility.getColumnValue("rcp_mode", dom);
if( ("G".equalsIgnoreCase(rcpMode) || "M".equalsIgnoreCase(rcpMode)) && rcpMode.trim().length() > 0 && rcpMode != null )
{
createAdvReceipt(saleOrderNo, headerValuesMap.get("cust_code"), headerValuesMap, xtraParams);
}
//Added by Santosh on 04/04/2017 to create receipt for RCP mode G/M [End]
//Changed by wasim on 03-07-2015 to check tax_amount with megento server [START] //Changed by wasim on 03-07-2015 to check tax_amount with megento server [START]
sql="SELECT VAR_VALUE FROM DISPARM WHERE VAR_NAME = 'IS_ORDER_CHECK' "; sql="SELECT VAR_VALUE FROM DISPARM WHERE VAR_NAME = 'IS_ORDER_CHECK' ";
...@@ -2256,7 +2262,407 @@ public class UploadOrderEJB extends ActionHandlerEJB implements UploadOrderEJBLo ...@@ -2256,7 +2262,407 @@ public class UploadOrderEJB extends ActionHandlerEJB implements UploadOrderEJBLo
return str.trim(); return str.trim();
} }
//Added by Santosh on 04/04/2017 to create receipt for rcp mode G/M [Start]
private void createAdvReceipt(String salesOrderNo, String custCode, HashMap<String,String> headerValuesMap, String xtraParams)
{
boolean isError = false;
int count = 0;
double chqAmt = 0.0, exchRateD = 0.0;
double initialValue=0.0;
String tranId = "", chgTerm = "", chgUser = "", acctCodeAr = "", cctrCodeAr = "", acctCodeAdv = "", cctrCodeAdv = "", custBankRef = "";
String remarks = "", currCode = "", rcpMode = "", bankCode = "", finEntity = "", exchRate = "", siteCode = "", finCurrCode = "", currCodeBank = "";
String acctCodeBal = "", cctrCodeBal = "", acctCodeCf = "", currDateStr = "", cctrCodeCf = "", acctCodeCfAr = "", cctrCodeCfAr = "";
String errString = "";
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
Connection conn = null;
E12GenericUtility e12GenericUtility = new E12GenericUtility();
FinCommon finCommon = new FinCommon();
DistCommon discommon = new DistCommon();
AppConnectParm appConnect = new AppConnectParm();
ReceiptAdvConfLocal receiptAdvConfLocal = null;
try
{
System.out.println("############createAdvReceipt######### Start");
Properties p = appConnect.getProperty();
InitialContext ctx = new InitialContext(p);
java.sql.Date curDate = new java.sql.Date(System.currentTimeMillis());
java.sql.Timestamp currentDate = new Timestamp(System.currentTimeMillis());
chgTerm = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams,"termId");
chgUser = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginEmpCode");
rcpMode = headerValuesMap.get("rcp_mode");
chqAmt = Double.parseDouble(headerValuesMap.get("tot_amt"));
siteCode = headerValuesMap.get("site_code");
remarks = "Advance receipt against SO No. "+salesOrderNo;
currCode = headerValuesMap.get("curr_code");
conn = getConnection();
tranId = generateTranTd("w_receipt_adv", new SimpleDateFormat(e12GenericUtility.getApplDateFormat()).format(currentDate), headerValuesMap.get("site_code"), conn);
if(custCode != null && custCode.length() > 0)
{
sql = "SELECT ACCT_CODE__AR,CCTR_CODE__AR,CURR_CODE,ACCT_CODE__ADV,CCTR_CODE__ADV,BANK_NAME FROM CUSTOMER WHERE CUST_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
rs = pstmt.executeQuery();
if(rs.next())
{
acctCodeAr = rs.getString("ACCT_CODE__AR");
cctrCodeAr = rs.getString("CCTR_CODE__AR");
acctCodeAdv = rs.getString("ACCT_CODE__ADV");
cctrCodeAdv = rs.getString("CCTR_CODE__ADV");
custBankRef = rs.getString("BANK_NAME");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
sql = " select descr from gencodes where mod_name = ? and fld_name = ? ";
pstmt = conn.prepareStatement(sql);
if( "G".equalsIgnoreCase(rcpMode))
{
pstmt.setString(1, "W_SAGEPAY");
}
else if("M".equalsIgnoreCase(rcpMode))
{
pstmt.setString(1, "W_PAYPAL");
}
pstmt.setString(2, currCode);
rs = pstmt.executeQuery();
if (rs.next())
{
bankCode = checkNull(rs.getString("descr"));
}
System.out.println("Bank Code is="+bankCode);
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
sql = " select fin_entity from bank where bank_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, bankCode);
rs = pstmt.executeQuery();
if (rs.next())
{
finEntity = checkNull(rs.getString("fin_entity"));
}
System.out.println("Fin Entity is="+finEntity);
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(bankCode != null && bankCode.length() > 0)
{
sql = "SELECT ACCT_CODE__BAL, CCTR_CODE__BAL, ACCT_CODE__CF,"
+ "CCTR_CODE__CF,ACCT_CODE__CF_AR, CCTR_CODE__CF_AR,CURR_CODE "
+ "FROM BANK WHERE BANK_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, bankCode);
rs = pstmt.executeQuery();
if(rs.next())
{
acctCodeBal = rs.getString("ACCT_CODE__BAL");
cctrCodeBal = rs.getString("CCTR_CODE__BAL");
acctCodeCf = rs.getString("ACCT_CODE__CF");
cctrCodeCf = rs.getString("CCTR_CODE__CF");
acctCodeCfAr = rs.getString("ACCT_CODE__CF_AR");
cctrCodeCfAr = rs.getString("CCTR_CODE__CF_AR");
currCodeBank = rs.getString("CURR_CODE");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
System.out.println("ACCT_CODE__BAL@@ ::: "+acctCodeBal);
System.out.println("curr_code ::: "+currCode);
if(acctCodeCfAr != null && acctCodeCfAr.trim().length() != 0)
{
acctCodeCf = acctCodeCfAr;
}
if(cctrCodeCfAr != null && cctrCodeCfAr.trim().length() != 0)
{
cctrCodeCf = cctrCodeCfAr;
}
sql = " SELECT FIN_ENTITY FROM SITE WHERE SITE_CODE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
rs = pstmt.executeQuery();
while (rs.next())
{
finEntity = checkNull(rs.getString("FIN_ENTITY"));
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql = " SELECT CURR_CODE FROM FINENT WHERE FIN_ENTITY = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,finEntity);
rs = pstmt.executeQuery();
while (rs.next())
{
finCurrCode = checkNull(rs.getString("CURR_CODE"));
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(currCodeBank.equals(finCurrCode))
{
exchRate = "1";
}
else
{
currDateStr = new SimpleDateFormat(e12GenericUtility.getApplDateFormat()).format(currentDate);
System.out.println("TODAY IS="+currDateStr);
System.out.println("Order Site="+siteCode);
Double exchRateFinn = finCommon.getDailyExchRateSellBuy(currCode.trim(),"",siteCode.trim(),currDateStr.trim(),"S", conn);
if(exchRateFinn != null)
{
exchRateFinn = discommon.getRndamt(exchRateFinn, "R", 0.000001);
}
exchRate = String.valueOf(exchRateFinn);
System.out.println("Exch Rate from FinnCommon="+exchRate);
if(exchRate != null && exchRate.equals(""))
{
exchRate = getColumnDescr(conn, "std_exrt", "currency", "curr_code", currCode);
}
}
exchRateD = Double.parseDouble(exchRate);
System.out.println("exchRateD-------->>"+exchRateD);
}
sql = "INSERT INTO RECEIPT ( TRAN_ID,TRAN_DATE,CUST_CODE,RCP_MODE,BANK_CODE,REF_NO,REF_DATE,"
+ "EFF_DATE,SITE_CODE,CHG_DATE,CHG_USER,CHG_TERM,ACCT_CODE__AR,CCTR_CODE__AR,"//14
+ "CURR_CODE,ACCT_CODE__ADV,CCTR_CODE__ADV,CUST_BANK_REF,EXCH_RATE,EXCH_RATE_SPOT,"
+ "FIN_ENTITY,ACCT_CODE__BAL,CCTR_CODE__BAL,ACCT_CODE__CF,CCTR_CODE__CF,REMARKS,CHQ_AMT, "//27
+ "CONFIRMED, OTH_AMT,ADV_AMT,ADVADJ_AMT,NET_AMT,NET_AMT__BC,TRAN_TYPE,AUTO_RECD,ITEM_SER,"
+ "SALE_ORDER ) "
+ "VALUES ( ?,?,?,?,?,?,?,?,?,?,"
+ "?,?,?,?,?,?,?,?,?,?,"
+ "?,?,?,?,?,?,?,?,?,?,"
+ "?,?,? ,?,?,?,?)";
System.out.println("Insert SQL ::- "+sql);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.setDate(2,curDate);
pstmt.setString(3,custCode);
pstmt.setString(4,rcpMode);
pstmt.setString(5,bankCode);
pstmt.setString(6,salesOrderNo);
pstmt.setTimestamp(7,currentDate);
pstmt.setTimestamp(8,currentDate);
pstmt.setString(9,siteCode);
pstmt.setTimestamp(10,currentDate);
pstmt.setString(11,chgUser);
pstmt.setString(12,chgTerm);
pstmt.setString(13,acctCodeAr);
pstmt.setString(14,cctrCodeAr);
pstmt.setString(15,currCode);
pstmt.setString(16,acctCodeAdv);
pstmt.setString(17,cctrCodeAdv);
pstmt.setString(18,custBankRef);
pstmt.setDouble(19,exchRateD);
pstmt.setDouble(20,exchRateD);
pstmt.setString(21,finEntity);
pstmt.setString(22,acctCodeBal);
pstmt.setString(23,cctrCodeBal);
pstmt.setString(24,acctCodeCf);
pstmt.setString(25,cctrCodeCf);
pstmt.setString(26,remarks);
pstmt.setDouble(27,chqAmt);
pstmt.setString(28,"N");
pstmt.setDouble(29,initialValue);
pstmt.setDouble(30,chqAmt);
pstmt.setDouble(31,initialValue);
pstmt.setDouble(32,chqAmt);
pstmt.setDouble(33,chqAmt);
pstmt.setString(34,"A");
pstmt.setString(35,"N");
pstmt.setString(36,headerValuesMap.get("item_ser"));
pstmt.setString(37,salesOrderNo);
count = pstmt.executeUpdate();
System.out.println("No of records inserted successfully in RECEIPT are : "+count);
if(count > 0)
{
ctx = new InitialContext(appConnect.getProperty());
receiptAdvConfLocal = (ReceiptAdvConfLocal)ctx.lookup("ibase/ReceiptAdvConf/local");
errString = receiptAdvConfLocal.confirm(tranId, xtraParams, "",conn);
System.out.println("errString After confirmed------>>["+errString+"]");
if(errString.indexOf("VTCICONF3") > -1)
{
conn.commit();
System.out.println("Advanced receipt generated and confirmed successfully..................");
}
else
{
conn.rollback();
}
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
System.out.println("############createAdvReceipt######### End");
}
catch(Exception e)
{
isError = true;
System.out.println("UploadOrderEJB.createAdvReceipt():Exception occurred["+e.getMessage()+"]");
e.printStackTrace();
}
finally
{
try
{
if(isError)
{
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
conn.rollback();
}
if(conn != null && !conn.isClosed())
{
conn.close();
conn = null;
}
}
catch(SQLException se)
{
System.out.println("UploadOrderEJB.createAdvReceipt():finally["+se.getMessage()+"]");
se.printStackTrace();
}
}
}
private String generateTranTd(String windowName,String tranDate,String siteCode, Connection conn )throws ITMException
{
Statement stmt = null;
ResultSet rs = null;
String sql = "";
String tranId = "";
String newKeystring = "";
CommonConstants commonConstants = new CommonConstants();
try
{
sql = "SELECT KEY_STRING, TRAN_ID_COL, REF_SER FROM TRANSETUP WHERE TRAN_WINDOW = '"+windowName+"'";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
System.out.println("keyString :"+rs.toString());
String tranSer1 = "";
String keyString = "";
String keyCol = "";
if (rs.next())
{
keyString = rs.getString(1);
keyCol = rs.getString(2);
tranSer1 = rs.getString(3);
}
if(rs!=null)
{
rs.close();
rs = null;
}
if(stmt!=null)
{
stmt.close();
stmt = null;
}
System.out.println("keyString :"+keyString);
System.out.println("keyCol :"+keyCol);
System.out.println("tranSer1 :"+tranSer1);
String xmlValues = "";
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id></tran_id>";
xmlValues = xmlValues + "<site_code>" + siteCode + "</site_code>";
xmlValues = xmlValues + "<tran_date>"+ tranDate + "</tran_date>";
xmlValues = xmlValues + "<tran_type>"+"U"+"</tran_type>";
xmlValues = xmlValues + "</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", commonConstants.DB_NAME);
tranId = tg.generateTranSeqID(tranSer1, keyCol, keyString, conn);
System.out.println("tranId ::"+tranId);
}
catch (SQLException ex)
{
System.out.println("Exception ::" +sql+ ex.getMessage() + ":");
ex.printStackTrace();
throw new ITMException(ex);
}
catch (Exception e)
{
System.out.println("Exception ::" + e.getMessage() + ":");
e.printStackTrace();
throw new ITMException(e);
}
return tranId;
}
//Added by Santosh on 04/04/2017 to create receipt for rcp mode G/M [End]
} }
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