Commit 5d4a218f authored by asant's avatar asant

Migrated create payable voucher (payroll_post_acc_misc) into java.

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@209003 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 7ae08d4c
package ibase.webitm.ejb.adm;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.ITMException;
/**
*
* @author AMOL S Re-design (Java) on 21-AUG-2019
*
*/
public class PayrollPostAccMisc extends ValidatorEJB
{
E12GenericUtility genericUtility = new E12GenericUtility();
@Override
public String wfValData (String xmlString, String xmlString1, String xmlString2, String objContext, String editFlag,
String xtraParams) throws RemoteException, ITMException {
System.out.println("#### PayrollPostAccMisc :: wfValData ");
String errorString = "";
Document dom = null, dom1 = null, dom2 = null;
if(checkNull(xmlString).length() > 0)
dom = parseString(xmlString);
// unUsed
if(checkNull(xmlString1).length() > 0) {
dom1 = parseString(xmlString1);
}
// unUsed
if(checkNull(xmlString2).length() > 0) {
dom2 = parseString(xmlString2);
}
return errorString = wfValData (dom, dom1, dom2, objContext, editFlag, xtraParams);
}
@Override
public String wfValData (Document dom, Document dom1, Document dom2, String objContext, String editFlag,
String xtraParams) throws RemoteException, ITMException
{
String errCode = "", errorField = "";
String sqlQuery = "";
//Used in errorCode for errCode = "VPSUPPAY02";
ArrayList<String> suppCodeConList = new ArrayList<String>();
Connection conn = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
conn = getConnection();
NodeList detailNodeList = null, colNodeList = null;
Node detailNode = null, colNode = null;
detailNodeList = dom.getElementsByTagName("Detail1");
int noOfDetails = detailNodeList.getLength();
mainLoop :
for(int count = 0; count < noOfDetails; count++)
{
detailNode = detailNodeList.item(count);//<Detail1></Detail1>
colNodeList = detailNode.getChildNodes();//<col1></col1><col2></col2>.....
int noOfCol = colNodeList.getLength();
for(int ctr = 0; ctr < noOfCol; ctr ++)
{
colNode = colNodeList.item(ctr);
String colName = colNode.getNodeName();//<colName> value </colName>
if(checkNull(colName).length() > 0)
{
colName = colName.toLowerCase();
System.out.println("#### colName "+colName);
}
switch (colName)
{
case "payroll_date" :
{
String payRollDateStr = getDOMFieldVal("payroll_date",dom);
if (payRollDateStr == null)
{
errCode = "VEDAT2";
errorField = colName;
break mainLoop;
}else
{
String prdCodeTo = getDOMFieldVal("prd_code__to",dom);
Timestamp payRollDate = null,fromDate = null,toDate = null;
try
{
payRollDate = getDate(payRollDateStr);
}catch (Exception e1)
{
e1.printStackTrace();
}
if(prdCodeTo.length() > 0)
{
sqlQuery = "SELECT FR_DATE, TO_DATE FROM PERIOD WHERE CODE = ?";
try
{
preparedStatement = conn.prepareStatement(sqlQuery);
preparedStatement.setString(1, prdCodeTo);
resultSet = preparedStatement.executeQuery();
while(resultSet.next())
{
fromDate = resultSet.getTimestamp("FR_DATE");
toDate = resultSet.getTimestamp("TO_DATE");
}
if (resultSet != null)
resultSet.close();resultSet = null;
if (preparedStatement != null)
preparedStatement.close();preparedStatement = null;
//if (mdate1(payRollDate) > mdate2(toDate) or mdate1 < mdate3(frmDate))
//(22-8-19 > 30-06-18) (22-8-19 < 01-06-18 )
if( payRollDate.after(toDate) || payRollDate.before(fromDate) )
{
errCode = "VTPAYDATE";
errorField = colName;
break mainLoop;
}
else
{
//select code into :ls_prd_code from period where :mdate1 between fr_date and to_date;
String ls_prdCode = "";
sqlQuery = "SELECT CODE FROM PERIOD WHERE ? BETWEEN ? AND ?";
preparedStatement = conn.prepareStatement(sqlQuery);
preparedStatement.setTimestamp(1,payRollDate);
preparedStatement.setTimestamp(2, fromDate);//data type is date ?
preparedStatement.setTimestamp(3,toDate); // data type is date ?
resultSet = preparedStatement.executeQuery();
while(resultSet.next())
{
ls_prdCode = checkNull(resultSet.getString("CODE"));
}
if (resultSet != null)
resultSet.close();resultSet = null;
if (preparedStatement != null)
preparedStatement.close();preparedStatement = null;
if(ls_prdCode.length() == 0)
{
errCode = "VTPRD1";
errorField = colName;
break mainLoop;
}else
{
String ls_siteCodeFrm = getDOMFieldVal("site_code__fr",dom);
String ls_siteCodeTo = getDOMFieldVal("site_code__to",dom);
sqlQuery = "SELECT COUNT(*) AS CNT FROM PERIOD_STAT WHERE SITE_CODE BETWEEN ? AND ? AND PRD_CODE = ? AND STAT_FIN = ?";
preparedStatement = conn.prepareStatement(sqlQuery);
preparedStatement.setString(1,ls_siteCodeFrm);
preparedStatement.setString(2, ls_siteCodeTo);//data type is date ?
preparedStatement.setString(3,ls_prdCode);
preparedStatement.setString(4,"N");
resultSet = preparedStatement.executeQuery();
int noOfRow = 0;
while( resultSet.next() )
{
noOfRow = resultSet.getInt("CNT");
}
if (resultSet != null) {
resultSet.close();resultSet = null;
}
if (preparedStatement != null) {
preparedStatement.close();preparedStatement = null;
}
if(noOfRow > 0)
{
errCode = "VTPRDFIN";
errorField = colName;
break mainLoop;
}
}
}
}catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
break;
case "prd_code__to" :
case "prd_code__fr" :
{
String prdCode = getDOMFieldVal(colName, dom);
String prdCodeFrmStr = getDOMFieldVal("prd_code__fr", dom);
String prdCodeToStr = getDOMFieldVal("prd_code__to", dom);
if(prdCodeFrmStr.length() == 0 || prdCodeToStr.length() == 0)
{
errCode = "VPSUPPAY01";
errorField = (prdCodeFrmStr.length() == 0) ? "prd_code__fr" :"prd_code__to";
break mainLoop;
}else
{
sqlQuery = "SELECT COUNT(*) AS CNT FROM PERIOD WHERE CODE = ?";
int noOfRec = 0;
try
{
preparedStatement = conn.prepareStatement(sqlQuery);
preparedStatement.setString(1, prdCode);
resultSet = preparedStatement.executeQuery();
while( resultSet.next())
{
noOfRec = resultSet.getInt("CNT");
}
if (resultSet != null) {
resultSet.close();resultSet = null;
}
if (preparedStatement != null) {
preparedStatement.close();preparedStatement = null;
}
} catch (SQLException e1)
{
e1.printStackTrace();
}
if( noOfRec == 0)
{
errCode = "VMPRD1";
errorField = colName;
break mainLoop;
}else
{
try
{
System.out.println("#### prdCodeFrmStr "+prdCodeFrmStr +" prdCodeToStr "+prdCodeToStr);
}catch (Exception e)
{
e.printStackTrace();
}
if(Integer.parseInt(prdCodeFrmStr) > Integer.parseInt(prdCodeToStr))
{
errCode = "VMPRD2";
errorField = "prd_code__fr";
break mainLoop;
}
}
}
}
break;
case "supp_code__fr" :
case "supp_code__to" :
{
String suppCodeFrm = getDOMFieldVal("supp_code__fr",dom);
String suppCodeTo = getDOMFieldVal("supp_code__to",dom);
String siteCodeFrm = getDOMFieldVal("site_code__fr",dom);
String siteCodeTo = getDOMFieldVal("site_code__to",dom);
String suppCodeCon = "";
if(suppCodeFrm.length() == 0)
{
suppCodeFrm ="0";
}
if(suppCodeTo.length() == 0)
{
suppCodeTo = "z";
}
if(siteCodeFrm.length() == 0)
{
siteCodeFrm = "0";
}
if(siteCodeTo.length() == 0)
{
siteCodeTo = "z";
}
// SQL finds null tax_env and will inform user about null tax environment
sqlQuery = "SELECT DISTINCT E.SUPP_CODE__CON FROM EMPLOYEE E, SUPPLIER S WHERE E.SUPP_CODE__CON >= ? AND E.SUPP_CODE__CON <= ?\n" +
"AND E.PAY_SITE >= ? AND E.PAY_SITE <= ? and S.SUPP_CODE = E.SUPP_CODE__CON AND S.TAX_ENV IS NULL ORDER BY SUPP_CODE__CON";
try
{
preparedStatement = conn.prepareStatement(sqlQuery);
preparedStatement.setString(1, suppCodeFrm);
preparedStatement.setString(2, suppCodeTo);
preparedStatement.setString(3, siteCodeFrm);
preparedStatement.setString(4, siteCodeTo );
resultSet = preparedStatement.executeQuery();
while(resultSet.next())
{
suppCodeCon = checkNull(resultSet.getString("SUPP_CODE__CON"));// multiple rows will be for result
suppCodeConList.add(suppCodeCon);
}
if (resultSet != null)
resultSet.close();resultSet = null;
if (preparedStatement != null)
preparedStatement.close();preparedStatement = null;
System.out.println("suppCodeConList "+suppCodeConList);
if(suppCodeConList.size() > 0)//As per piyush sir. If error occured edit supplier master define tax env. and test again.
{
errCode = "VPSUPPAY02";
errorField = colName;
break mainLoop;
}
}catch(Exception e)
{
e.printStackTrace();
}
}
break;
}
}
}
String errorString = "", userId;
userId = getValueFromXTRA_PARAMS(xtraParams,"loginCode");
return errorString = getErrorField(errCode,errorField,userId,suppCodeConList);
}
private String getErrorField(String errCode, String errFldName,String userId,ArrayList suppCodeConList) throws RemoteException, ITMException
{
StringBuffer errStringXml = null;
if(errCode.length() > 0)
{
errStringXml = new StringBuffer("<?xml version=\"1.0\"?>\r\n<Root><Errors>");
String errString = "";
// built in logic START
errString = getErrorString(errFldName, errCode, userId);
if (errString.length() > 0)
{
System.out.println("errString "+errString);
String bifurErrString = errString.substring(errString.indexOf("<Errors>") + 8, errString.indexOf("<trace>"));
if("VPSUPPAY02".equalsIgnoreCase(errCode)){
bifurErrString = bifurErrString.replace("]]></description>", suppCodeConList+"]]></description>");
}
bifurErrString = bifurErrString + errString.substring(errString.indexOf("</trace>") +8, errString.indexOf("</Errors>"));
errStringXml.append(bifurErrString);
}
errStringXml.append("</Errors></Root> \r\n");
// built in logic END
}
else
{
errStringXml = new StringBuffer( "" );
}
System.out.println("#### wfValData Return XML "+errStringXml.toString());
return errStringXml.toString();
}
@Override
public String itemChanged (String xmlString, String xmlString1, String xmlString2, String objContext,
String currentColumn, String editFlag, String xtraParams)
throws RemoteException, ITMException
{
System.out.println("#### PayrollPostAccMisc :: itemChanged ");
@SuppressWarnings("unused")
String valueXMLString = "";
Document dom = null, dom1 = null, dom2 = null;
if(checkNull(xmlString).length() > 0) {
dom = parseString(xmlString);
}
if(checkNull(xmlString1).length() > 0) {
dom1 = parseString(xmlString1);
}
if(checkNull(xmlString2).length() > 0) {
dom2 = parseString(xmlString2);
}
return valueXMLString = itemChanged (dom, dom1, dom2, objContext, currentColumn, editFlag, xtraParams);
}
@Override
public String itemChanged (Document dom, Document dom1, Document dom2, String objContext, String currentColumn,
String editFlag, String xtraParams) throws RemoteException, ITMException
{
int currentFormNo = 0;
if(checkNull(objContext).length() > 0)
currentFormNo = Integer.parseInt(objContext);
StringBuffer valueXmlString = new StringBuffer("<?xml version=\"1.0\" encoding=''?>\r\n<Root>\r\n<header>\r\n<editFlag>");
valueXmlString.append(editFlag).append("</editFlag>\r\n</header>\r\n");
Connection conn = getConnection();
try
{
switch(currentFormNo)
{
case 1:
if ("itm_default".equalsIgnoreCase(currentColumn.trim()))
{
valueXmlString = itmDefault(valueXmlString, xtraParams, conn);
}
else if("supp_code__fr".equalsIgnoreCase(currentColumn.trim()))
{
valueXmlString = setItemChangeVal(valueXmlString, dom, conn, "supp_code__fr", "SUPP_NAME", "SUPPLIER", "SUPP_CODE", "supp_name__fr");
}
else if("supp_code__to".equalsIgnoreCase(currentColumn.trim()))
{
valueXmlString = setItemChangeVal(valueXmlString, dom, conn, "supp_code__to", "SUPP_NAME", "SUPPLIER", "SUPP_CODE", "supp_name__to");
}
else if("prd_code__fr".equalsIgnoreCase(currentColumn.trim()))
{
valueXmlString = setItemChangeVal(valueXmlString, dom, conn, "prd_code__fr", "DESCR", "PERIOD", "CODE", "fr_prd_descr");
}
else if("prd_code__to".equalsIgnoreCase(currentColumn.trim()))
{
valueXmlString = setItemChangeVal(valueXmlString, dom, conn, "prd_code__to", "DESCR", "PERIOD", "CODE", "to_prd_descr");
}
else if("site_code__fr".equalsIgnoreCase(currentColumn.trim()))
{
valueXmlString = setItemChangeVal(valueXmlString, dom, conn, "site_code__fr", "DESCR", "SITE", "SITE_CODE", "fr_site_descr");
}
else if("site_code__to".equalsIgnoreCase(currentColumn.trim()))
{
valueXmlString = setItemChangeVal(valueXmlString, dom, conn, "site_code__to", "DESCR", "SITE", "SITE_CODE", "to_site_descr");
}
else if("proc_group__fr".equalsIgnoreCase(currentColumn.trim()))
{
valueXmlString = setItemChangeVal(valueXmlString, dom, conn, "proc_group__fr", null, null, null,"proc_group__fr_name");
}
else if("proc_group__to".equalsIgnoreCase(currentColumn.trim()))
{
//valueXmlString = procGrpTo(valueXmlString, dom, conn);
valueXmlString = setItemChangeVal(valueXmlString, dom, conn, "proc_group__to", null, null, null,"proc_group__to_name");
}
valueXmlString.append("</Root>");
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
if (conn != null)
{
try
{
conn.close();
} catch (SQLException e)
{
e.printStackTrace();
}
conn = null;
}
}
return valueXmlString.toString();
}
private StringBuffer itmDefault (StringBuffer valueXmlString, String xtraParams, Connection conn) throws RemoteException, ITMException, SQLException
{
java.sql.Timestamp currDate = null, toDate = null;
currDate = new java.sql.Timestamp(System.currentTimeMillis()) ;
String payRollDate = "", prdCode = "", descr = "", siteDescr = "";
String loginSite = checkNull(getValueFromXTRA_PARAMS(xtraParams,"loginSiteCode"));
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try
{
String sqlQuery = "SELECT PRD_CODE FROM PARAMETER";
preparedStatement = conn.prepareStatement(sqlQuery);
resultSet = preparedStatement.executeQuery();
if(resultSet.next())
{
prdCode = checkNull(resultSet.getString("PRD_CODE"));
}
if (resultSet != null)
resultSet.close();resultSet = null;
if (preparedStatement != null)
preparedStatement.close();preparedStatement = null;
if(prdCode.length() > 0)
{
sqlQuery = "SELECT TO_DATE FROM PERIOD WHERE CODE = ?";
preparedStatement = conn.prepareStatement(sqlQuery);
preparedStatement.setString(1, prdCode);
resultSet = preparedStatement.executeQuery();
if(resultSet.next())
{
toDate = resultSet.getTimestamp("TO_DATE");
}
if (resultSet != null)
resultSet.close();resultSet = null;
if (preparedStatement != null)
preparedStatement.close();preparedStatement = null;
//Use comparator to compare date's [currDate > toDate then toDate = currDate] START.
System.out.println("currDate"+currDate);
System.out.println("toDate"+toDate);
if(currDate.after(toDate)) // if toDate if less than sysdate then toDate = sysdate.
{
toDate = currDate;
}
try
{
payRollDate = new SimpleDateFormat(genericUtility.getApplDateFormat()).format(toDate).toString();
}catch (Exception e)
{
e.printStackTrace();
}
System.out.println("payRollDate"+payRollDate);
//Use comparator to compare date's [currDate > toDate then toDate = currDate] END.
descr = getTableData("DESCR", "PERIOD", "CODE", prdCode, conn);
}
//select descr from site where site_code = :login_site ;
siteDescr = getTableData("DESCR", "SITE", "SITE_CODE", loginSite, conn);
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
if (resultSet != null)
resultSet.close();resultSet = null;
if (preparedStatement != null)
preparedStatement.close();preparedStatement = null;
}
valueXmlString.append("<Detail1>");
valueXmlString.append("<payroll_date><![CDATA["+payRollDate+"]]></payroll_date>");
valueXmlString.append("<prd_code__fr><![CDATA["+prdCode+"]]></prd_code__fr>");
valueXmlString.append("<prd_code__to><![CDATA["+prdCode+"]]></prd_code__to>");
valueXmlString.append("<fr_prd_descr><![CDATA["+descr+"]]></fr_prd_descr>");
valueXmlString.append("<to_prd_descr><![CDATA["+descr+"]]></to_prd_descr>");
valueXmlString.append("<site_code__fr><![CDATA["+loginSite+"]]></site_code__fr>");
valueXmlString.append("<site_code__to><![CDATA["+loginSite+"]]></site_code__to>");
valueXmlString.append("<fr_site_descr><![CDATA["+siteDescr+"]]></fr_site_descr>");
valueXmlString.append("<to_site_descr><![CDATA["+siteDescr+"]]></to_site_descr>");
valueXmlString.append("<type><![CDATA[PP]]></type>");
valueXmlString.append("</Detail1>");
return valueXmlString;
}
private StringBuffer setItemChangeVal (StringBuffer valueXmlString, Document dom, Connection conn,String colName, String selFieldName, String fromTableName, String whereFieldName, String targetColName) throws ITMException, SQLException
{
String whereFieldValue = "", changeValue = "";
whereFieldValue = getDOMFieldVal(colName,dom);
if(colName.startsWith("proc_group__"))
{
changeValue = getDescrFrmGencodes(whereFieldValue,conn);
}else
{
changeValue = getTableData(selFieldName, fromTableName, whereFieldName, whereFieldValue, conn);
}
String currDomStr = genericUtility.serializeDom(dom);
StringBuffer valueXmlStr = new StringBuffer();
valueXmlStr.append("<"+targetColName+"><![CDATA["+changeValue+"]]></"+targetColName+">");
valueXmlStr.append("</Detail1>");
currDomStr = currDomStr.replace("</Detail1>", valueXmlStr.toString());
return valueXmlString.append(currDomStr);
}
private String getTableData(String selFieldName, String fromTableName, String whereFieldName, String whereFieldValue, Connection conn) throws SQLException
{
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String result = "";
if (whereFieldValue.length() > 0)
{
String sqlQuery = "SELECT " + selFieldName + " FROM " + fromTableName + " WHERE " + whereFieldName + " = '" + whereFieldValue + "'";
System.out.println("sqlQuery "+sqlQuery);
try
{
preparedStatement = conn.prepareStatement(sqlQuery);
resultSet = preparedStatement.executeQuery();
if(resultSet.next())
{
result = checkNull(resultSet.getString(selFieldName));
}
} catch (SQLException e)
{
e.printStackTrace();
}
finally
{
if (resultSet != null)
resultSet.close();resultSet = null;
if (preparedStatement != null)
preparedStatement.close();preparedStatement = null;
}
}
System.out.println("getTableData result "+result);
return result;
}
private String getDescrFrmGencodes(String fieldVal, Connection conn) throws SQLException
{
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String result = "";
if (fieldVal.length() > 0)
{
String sqlQuery = "SELECT DESCR FROM GENCODES WHERE FLD_NAME= ? AND FLD_VALUE = ?";
System.out.println("sqlQuery "+sqlQuery);
try
{
preparedStatement = conn.prepareStatement(sqlQuery);
preparedStatement.setString(1, "PROC_GROUP");
preparedStatement.setString(2, fieldVal);
resultSet = preparedStatement.executeQuery();
while(resultSet.next())
{
result = resultSet.getString("DESCR");
}
} catch (SQLException e)
{
e.printStackTrace();
}
finally
{
if (resultSet != null)
{
resultSet.close();
resultSet = null;
}
if (preparedStatement != null)
{
preparedStatement.close();
preparedStatement = null;
}
}
}
return result;
}
private String getDOMFieldVal(String tagName,Document dom)
{
String domStr = "";
try {
domStr = checkNull(genericUtility.getColumnValue(tagName, dom));
}catch(Exception e){
System.out.println("#### Exception in getDOMFieldVal "+e);
}
return domStr;
}
private Timestamp getDate(String dateStr)
{
System.out.println("#### getDate:: "+dateStr);
Timestamp date = null;
try {
if(dateStr.length() > 0)
{
date = Timestamp.valueOf(genericUtility.getValidDateString
(dateStr,genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat())+ " 00:00:00.0");
}
} catch (ITMException e) {
System.out.println("#### ITMException getDate :"+e);
} catch (Exception e) {
System.out.println("#### Exception getDate :"+e);
}
return date;
}
private static String checkNull(String input)
{
if (input == null || "null".equalsIgnoreCase(input) || "undefined".equalsIgnoreCase(input))
{
input= "";
}
return input.trim();
}
}
package ibase.webitm.ejb.adm.adv;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import javax.naming.InitialContext;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ibase.system.config.AppConnectParm;
import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.webitm.ejb.ProcessEJB;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.ejb.adm.AdmCommon;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
public class PayrollPostAccMiscPrc extends ProcessEJB
{
//gbf_process_logic -- String
//gbf_get_periods -- Integer
//gbf_post_payroll -- Integer
/*String runmode = "V"; // run mode U-exclusive V-view
String mtype,mkeystr;
String trnofld = "tran_id";
ArrayList <Timestamp> ldateList = new ArrayList();//ldate[]
ArrayList <Double> env_var_numList = new ArrayList();//env_var_num[]
int ii_interval, ii_pct_complete = 0;*/
E12GenericUtility genericUtility = new E12GenericUtility();
StringBuffer miscVouchDetailXmlBuff = new StringBuffer();
public String process(String xmlString, String xmlString1, String windowName, String xtraParams) throws RemoteException, ITMException
{
System.out.println("process :: xmlString "+xmlString);
System.out.println("process :: xmlString1 "+xmlString1);
String processXmlStr = "";
Document dom = null, dom1 = null;
if(checkNull(xmlString).length() > 0)
dom = genericUtility.parseString(xmlString);
// unUsed
if(checkNull(xmlString1).length() > 0)
dom1 = genericUtility.parseString(xmlString1);
return processXmlStr = process(dom, dom1, windowName, xtraParams);
}
//gbf_process_logic
public String process(Document dom, Document dom1, String windowName, String xtraParams) throws ITMException, RemoteException
{
String from_prd, to_prd, fr_site, to_site, ls_supp_code__fr, ls_supp_code__to,ls_errcode;
String merrcode, mprd , mtype ="";
int totprds, commitrow = 100;
long owrite, mrows, xx, runprd, cc, totrow, rr, ll_count, ll_loop, ll_norecord;
double advalb, rndto, allwamt, dednamt, mamount, lamount, mrndamt, retval, mtotdays;
Timestamp mjoindate, mresigdate, xfrdate, promdate, dputdate, mpayrolldt, cchgdate, mfrdate, mtodate, ld_to;
int ctr;
String ls_fr_proc, ls_to_proc;
String ls_emp_code, ls_pay_site, ls_supp_code__con;
//String ls_emp_arr[], ls_pay_site_arr[], ls_supp_con_arr[], ls_temp[];
System.out.println("#### PayrollPostAccMiscPrc :: process ");
Connection conn = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String processXmlStr = "";
String errCode = "";
ls_supp_code__fr = getDOMFieldVal("supp_code__fr",dom);
ls_supp_code__to = getDOMFieldVal("supp_code__to",dom);
from_prd = getDOMFieldVal("prd_code__fr", dom);
to_prd = getDOMFieldVal("prd_code__to", dom);
fr_site = getDOMFieldVal("site_code__fr",dom);
to_site = getDOMFieldVal("site_code__to",dom);
ls_fr_proc = getDOMFieldVal("proc_group__fr",dom);
ls_to_proc = getDOMFieldVal("proc_group__to",dom);
mpayrolldt = getDate(getDOMFieldVal("payroll_date", dom));
mtype = getDOMFieldVal("type", dom);
ls_supp_code__fr = (ls_supp_code__fr.length() == 0) ? "0" : ls_supp_code__fr;
ls_supp_code__to = (ls_supp_code__to.length() == 0) ? "z" : ls_supp_code__to;
fr_site = (fr_site.length() == 0) ? "0" : fr_site;
to_site = (to_site.length() == 0) ? "z" : to_site;
from_prd = (from_prd.length() == 0) ? "0" : from_prd;
to_prd = (to_prd.length() == 0) ? "z" : to_prd;
ls_fr_proc = (ls_fr_proc.length() == 0) ? "0" : ls_fr_proc;
ls_to_proc = (ls_to_proc.length() == 0) ? "ZZZZZ" : ls_to_proc;
try {
conn = getConnection();
} catch (RemoteException e) {
e.printStackTrace();
}
int totPrds = 0;
try {
totPrds = getGbfPeriod(from_prd, to_prd, conn);
} catch (SQLException e1) {
System.out.println("#### Exception in getGbfPeriod : "+e1);
}
System.out.println("### totPrds "+totPrds);
if(totPrds == 0)
{
return "VTNXTPRD";
}
String sqlQuery = "SELECT DISTINCT PAY_SITE, SUPP_CODE__CON FROM EMPLOYEE WHERE SUPP_CODE__CON >= ?"
+ " AND SUPP_CODE__CON <= ? AND PAY_SITE >= ? AND PAY_SITE <=? ORDER BY PAY_SITE,SUPP_CODE__CON";
try
{
preparedStatement = conn.prepareStatement(sqlQuery);
preparedStatement.setString(1,ls_supp_code__fr );
preparedStatement.setString(2,ls_supp_code__to );
preparedStatement.setString(3,fr_site );
preparedStatement.setString(4,to_site );
resultSet = preparedStatement.executeQuery();
int noOfRow = 0;
ArrayList<String> paySiteArrayList = new ArrayList();
ArrayList<String> suppCodeConList = new ArrayList();
while(resultSet.next())
{
noOfRow++;
paySiteArrayList.add(checkNull(resultSet.getString("PAY_SITE")));
suppCodeConList.add(checkNull(resultSet.getString("SUPP_CODE__CON")));
}
if(resultSet != null)
{
resultSet.close();
resultSet = null;
}
if(preparedStatement != null)
{
preparedStatement.close();
preparedStatement = null;
}
if(noOfRow == 0)
{
errCode = "NORECFND";
}
else
{
int llNoRecord = 0;
for(int i = 0; i < suppCodeConList.size(); i++)
{
try
{
errCode = gbfPostPayRoll(paySiteArrayList.get(i),suppCodeConList.get(i), dom, conn, xtraParams);
}
catch (Exception e)
{
System.out.println("#### Exception in gbfPostPayRoll "+e);
e.printStackTrace();
}
}
System.out.println("##### END of Code "+llNoRecord);
if("VTPROC".equalsIgnoreCase(errCode))
{
conn.commit();
System.out.println("#### Connection commited.");
}
}
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
processXmlStr = itmDBAccessEJB.getErrorString("",errCode,"","",conn);
} catch (SQLException e)
{
e.printStackTrace();
}
finally
{
try
{
if(conn != null)
{
conn.close();
}
} catch (SQLException e)
{
e.printStackTrace();
}
conn = null;
}
return processXmlStr;
}
private int getGbfPeriod(String fromPrd, String toPrd, Connection conn) throws SQLException
{
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
ArrayList <String> prdCodeList = new ArrayList(); // code
ArrayList <Timestamp> frDateList = new ArrayList(); //fr_date
ArrayList <Timestamp> toDateList = new ArrayList();//to_date
Timestamp ndate = null, toDate = null;
String code = "";
UtilMethods utilMethods = new UtilMethods();
int totprds = 0;
String sqlQury = "SELECT CODE, FR_DATE, TO_DATE FROM PERIOD WHERE CODE >= ? AND CODE <= ? ORDER BY CODE";
try {
preparedStatement = conn.prepareStatement(sqlQury);
preparedStatement.setString(1, fromPrd);
preparedStatement.setString(2, toPrd);
resultSet = preparedStatement.executeQuery();
while( resultSet.next() )
{
prdCodeList.add(resultSet.getString("CODE"));
frDateList.add(resultSet.getTimestamp("FR_DATE"));
toDateList.add(resultSet.getTimestamp("TO_DATE"));
totprds ++;
}
} catch (SQLException e) {
System.out.println("#### Exception 241"+e);
}finally {
if(resultSet != null) { resultSet.close(); resultSet = null; }
if(preparedStatement != null) { preparedStatement.close(); preparedStatement = null; }
}
//ndate = datetime(relativedate(date(todate[totprds - 1]), 1));
try {
toDate = toDateList.get(totprds-1);
System.out.println("#### toDate "+toDate);
ndate = utilMethods.RelativeDate(toDate,1);
System.out.println("#### ndate "+ndate);
} catch (Exception e1) {
System.out.println("#### Exception 255"+e1);
}
sqlQury = "SELECT CODE FROM PERIOD WHERE FR_DATE = ?";
try {
preparedStatement = conn.prepareStatement(sqlQury);
preparedStatement.setTimestamp(1, ndate);
resultSet = preparedStatement.executeQuery();
if( resultSet.next())
{
code = checkNull(resultSet.getString("CODE"));
}
} catch (SQLException e) {
System.out.println("#### Exception 267"+e);
} finally {
if(resultSet != null) { resultSet.close(); resultSet = null; }
if(preparedStatement != null) { preparedStatement.close(); preparedStatement = null; }
}
if(code.length() <= 0)
{
return 0;//VTNXTPRD
}
return totprds;
}
//getPostPayRoll()
private String gbfPostPayRoll(String paySiteStr, String as_supp_code__con, Document dom, Connection conn,String xtraParams) throws Exception
{
System.out.println("#### gbfPostPayRoll :: ");
String ls_net_adcode ="", ls_prdcode_to ="", ls_warning ="", ls_fr_proc ="",ls_to_proc ="", from_prd = "", to_prd = "";
String mtranid = "", mtrantype, mempcode, mrefno, mbankcode, mpaymode, ls_chqname,
mautopay, msitecode, mfinentity = "", manalcode, mconfirmed, mremarks,
mpaid, macctcode_pay, mcctrcode_pay, macct_code_sal, ebankcode = "",
mcctr_code_sal, mlineno, madcode, mpayable, ls_curr = "", ls_bill_no,
mbalopt, mbatch, mon = "", mdeptcode, mprdcode, mtype1, mrndoff, mseq,
thiswin, ls_empac_sal, ls_empcc_sal, ls_reftype, ls_refno, msiteac = "",
msiteemp, msitework, mpaytable, mcadre, mgrade, mdesign,
ls_prdcomp, ls_errcode = "", ls_autopost, ls_errtext, ls_hold,
ls_dropded_inst, ls_holdflag, ls_with_held = "", ls_netad = null ,
ls_sql = "",mprdcode__acc ,ls_dataobject = null,ls_edi_option = "";
Timestamp mtrandate, meffdate, mrefdate, mchgdate = null, mfrdate = null, mtodate = null, mpaydate,
ld_relieve = null, ld_start, ld_end, ldt_bill_date, ldt_today = null;
double mtotamt = 0, mamount, mamtbal, mbaseamt, mslabamt, mresultamt, lc_misc_pay_totamt, lc_advamt,
lc_diffexch,lc_difftot = 0, mcalcamt, mrndto, lc_amtbal, lc_exch = 0, mtotamt_bc = 0, lc_netpaid,
lc_amt_bal, lc_exchadv, lc_advtot = 0;
int mretval = 0, prdcnt = 1, cnt = 0;
int minner_i , mouter_i,i, li_balfr, li_balto, li_line_no;
double lc_payroll_tot = 0, lc_arrear_tot = 0, lc_payarr_tot = 0;
String mprocgroup_to,mprocgroup_fr, ls_digit, ls_emp_code = "", ls_refser, ls_curradv, ls_acctcode, ls_cctrcode;
String ls_supp_code__con, ls_keytype, ls_acct_code__ap = "", ls_cctr_code__ap = "", ls_cr_term = "", ls_rnd_off;
double lc_misc_totamt = 0, lc_misc_advamt, lc_misc_totamt_bc, lc_netamt_adj = 0, lc_misc_tot = 0;
double ll_rnd_to, ll_count = 0;
String ls_pay_mode = "Q" , ls_tax_chap = "" , ls_tax_class = "" , ls_tax_env = "" , ls_curr_code = "";
long ll_det_cnt = 0 , ll_rno = 0;
int li_line_no_vdet = 0;
Timestamp ld_tran_date = null;
double lc_tax_amt = 0.00 , lc_bill_amt = 0.00 , lc_hdr_totamt = 0.00 , lc_tot_tax = 0.00 , lc_netamt_bc = 0.0;
String winName = "w_misc_voucher";
//Variable added by AMOL [START]
String keyString = "",errCode ="", sqlQuery = "",mtype ="";
int noOfRow = 0,noOfEmpCode = 0;
ArrayList <String> sqlArrayList = new ArrayList();
//Variable added by AMOL [END]
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
UtilMethods utilMethods = new UtilMethods();
//String sqlQuery = "SELECT KEY_STRING FROM TRANSETUP WHERE TRAN_WINDOW = ?";
keyString = getTableData("KEY_STRING", "TRANSETUP", "TRAN_WINDOW", winName, conn);//checkNull(resultSet.getString("KEY_STRING"));
if(keyString.length() == 0)
{
//return -1;
System.out.println("#### Break 307");
//return 0;
return "VTTRANID";
}
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
//MasterStatefulEJB process request [START]
AppConnectParm appConnect = new AppConnectParm();
InitialContext ctx = new InitialContext(appConnect.getProperty());
MasterStatefulLocal masterStateful = null;
//MasterStatefulEJB process request [END]
ValidatorEJB validator = new ValidatorEJB();
UserInfoBean userInfoBean = getUserInfo();
FinCommon finCommon = new FinCommon();
AdmCommon admCommon = new AdmCommon();
mbankcode = checkNull(admCommon.getEnv("999999", "BANKCODE", conn));
if(mbankcode.equalsIgnoreCase("NULLFOUND"))
{
errCode = "VSENVAR1";
//return -1;
System.out.println("#### Break 329");
return errCode;
}
mautopay = checkNull(admCommon.getEnv("999999", "AUTO_PAY", conn));
if(mautopay.equalsIgnoreCase("NULLFOUND"))
{
errCode = "VSENVAR1";
//return -1;
System.out.println("#### Break 337");
return errCode;
}
mpaymode = checkNull(admCommon.getEnv("999999", "PAY_MODE", conn));
if(mpaymode.equalsIgnoreCase("NULLFOUND"))
{
errCode = "VSENVAR1";
//return -1;
System.out.println("#### Break 345");
return errCode;
}
ls_autopost = checkNull(admCommon.getEnv("999999", "AUTO_POST_CONT_VOU", conn));
if(ls_autopost.equalsIgnoreCase("NULLFOUND"))
{
errCode = "VSENVAR1";
//return -1;
System.out.println("#### Break 353");
return errCode;
}
ls_holdflag = checkNull(admCommon.getEnv("999999", "HOLD_FLAG", conn));
if(ls_holdflag.equalsIgnoreCase("NULLFOUND"))
{
errCode = "VSENVAR1";
//return -1;
System.out.println("#### Break 361");
return errCode;
}
ls_dropded_inst = checkNull(admCommon.getEnv("999999", "DROP_INST", conn));
if(ls_dropded_inst.equalsIgnoreCase("NULLFOUND"))
{
errCode = "VSENVAR1";
//return -1;
System.out.println("#### Break 369");
return errCode;
}
ls_net_adcode = checkNull(admCommon.getEnv("999999", "NET_AC", conn));
if(ls_net_adcode.equalsIgnoreCase("NULLFOUND"))
{
ls_net_adcode = checkNull(admCommon.getEnv("999999", "NET", conn));
if(ls_net_adcode.equalsIgnoreCase("NULLFOUND"))
{
errCode = "VSENVAR1";
//return -1;
System.out.println("#### Break 380");
return errCode;
}
}
ldt_today = new Timestamp(System.currentTimeMillis());
ls_fr_proc = getDOMFieldVal("proc_group__fr", dom);
ls_fr_proc = (ls_fr_proc.length() == 0) ? "0" : ls_fr_proc;
ls_to_proc = getDOMFieldVal("proc_group__to", dom);
ls_to_proc = (ls_to_proc.length() == 0) ? "ZZZZZ" : ls_to_proc;
from_prd = getDOMFieldVal("prd_code__fr", dom);
to_prd = getDOMFieldVal("prd_code__to",dom);
ls_bill_no = getDOMFieldVal("bill_no", dom);
ldt_bill_date = getDate(getDOMFieldVal("bill_date", dom));
mtrandate = getDate(getDOMFieldVal("payroll_date", dom));
mtype = getDOMFieldVal("type", dom);
mprocgroup_fr = getDOMFieldVal("proc_group__fr",dom);
mprocgroup_fr = (mprocgroup_fr.length() == 0) ? "00" : mprocgroup_fr;
mprocgroup_to = getDOMFieldVal("proc_group__to",dom);
mprocgroup_to = (mprocgroup_to.length() == 0) ? "ZZ" : mprocgroup_to;
ls_prdcode_to = getDOMFieldVal("prd_code__to",dom);
// KEEP as IT IS don'T put in method
sqlQuery = "SELECT EMP_CODE FROM EMPLOYEE WHERE SUPP_CODE__CON = ? AND PAY_SITE = ?";
try
{
preparedStatement = conn.prepareStatement(sqlQuery);
preparedStatement.setString(1, as_supp_code__con);//taken from method parameter
preparedStatement.setString(2, paySiteStr);//taken from method parameter
resultSet = preparedStatement.executeQuery();
mainLoop :
while( resultSet.next()) // START of While main
{
noOfEmpCode ++;
PreparedStatement preparedStatement2 = null;
ResultSet resultSet2 = null;
ls_emp_code = checkNull(resultSet.getString("EMP_CODE"));
StringBuilder sqlBuilder = null;
System.out.println("#### mtype "+mtype);
if("PP".equalsIgnoreCase(mtype))
{
sqlBuilder = new StringBuilder("SELECT P.PRD_CODE,P.EMP_CODE,P.SITE_CODE__PAY,P.DEPT_CODE,P.PAY_DATE,E.EMP_FNAME,E.EMP_LNAME,P.WORK_DAYS,P.PAID_DAYS,");
sqlBuilder.append("P.ABS_DAYS,P.PAY_TABLE,P.BASIC_AMT,P.ALLOW_AMT,P.DEDN_AMT,P.NET_AMT,P.RBF_AMT,P.RCF_AMT,P.VOUCHER_NO,P.VOUCHER_DATE,");
sqlBuilder.append("P.CHG_DATE,P.CHG_USER,P.CHG_TERM,P.GRADE,P.CADRE,P.DESIGNATION,P.CONFIRMED,P.LVES_TAKEN,P.WOFF_DAYS,P.PAYROLL_DATE,");
sqlBuilder.append("P.FIN_ENTITY,P.SITE_CODE__EMP,P.SITE_CODE__WORK,E.ACCT_CODE__SAL,E.CCTR_CODE__SAL,E.PAY_MODE,E.BANK_CODE,E.RELIEVE_DATE,");
sqlBuilder.append("E.WITH_HELD,E.SUPP_CODE__CON FROM PAYROLL P,EMPLOYEE E WHERE ( P.EMP_CODE = E.EMP_CODE ) AND ");
sqlBuilder.append("( ( P.PRD_CODE >= ? ) AND ( P.PRD_CODE <= ? ) AND ( P.SITE_CODE__PAY >= ? ) AND ");
sqlBuilder.append("( P.SITE_CODE__PAY <= ? ) AND ( P.EMP_CODE >= ? ) AND ( P.EMP_CODE <= ? ) AND ");
sqlBuilder.append("( P.VOUCHER_NO IS NULL ) AND (E.PROC_GROUP >= ?) AND (E.PROC_GROUP <= ? )) ORDER BY P.PRD_CODE ASC,P.EMP_CODE ASC");
}
else
{
sqlBuilder = new StringBuilder("SELECT A.PRD_CODE, A.EMP_CODE, A.SITE_CODE__PAY, A.DEPT_CODE, A.TRAN_DATE as payroll_date, E.EMP_FNAME, E.EMP_LNAME, ");
sqlBuilder.append("A.WORK_DAYS, A.PAID_DAYS, A.ABS_DAYS, A.PAY_TABLE, A.BASIC_AMT, A.VOUCHER_NO, A.VOUCHER_DATE, A.CHG_DATE, A.CHG_USER, A.CHG_TERM, ");
sqlBuilder.append("A.DESIGNATION, A.CONFIRMED,A.LVES_TAKEN,A.WOFF_DAYS,A.FIN_ENTITY,A.PREV_NETAMT,A.DIFF_NETAMT,A.PREV_ALLOWAMT,");
sqlBuilder.append("A.GRADE, A.CADRE, A.DIFF_ALLOWAMT, A.PREV_DEDNAMT, A.DIFF_DEDNAMT, A.PRD_CODE__ACC, A.SITE_CODE__EMP, A.SITE_CODE__WORK, A.NET_AMT, ");
sqlBuilder.append("A.PRD_CODE__ACC, E.ACCT_CODE__SAL, E.CCTR_CODE__SAL, E.PAY_MODE, E.BANK_CODE, E.RELIEVE_DATE, E.WITH_HELD, E.SUPP_CODE__CON ");
sqlBuilder.append("FROM ARREARS A,EMPLOYEE E WHERE ( A.EMP_CODE = E.EMP_CODE ) AND (A.PRD_CODE__ACC >= ? ) AND ");
sqlBuilder.append("(A.PRD_CODE__ACC <= ? ) AND ( A.SITE_CODE__PAY >= ? ) AND ( A.SITE_CODE__PAY <= ? ) AND ");
sqlBuilder.append("( A.EMP_CODE >= ? ) AND ( A.EMP_CODE <= ? ) AND ( A.VOUCHER_NO IS NULL ) AND ");
sqlBuilder.append("(E.PROC_GROUP >= ? ) AND (E.PROC_GROUP <= ? ) ORDER BY A.EMP_CODE ASC,A.PRD_CODE ASC,A.PRD_CODE__ACC ASC ");
}
try {
preparedStatement2 = conn.prepareStatement(sqlBuilder.toString());
preparedStatement2.setString(1, from_prd);
preparedStatement2.setString(2, to_prd);
preparedStatement2.setString(3, paySiteStr);
preparedStatement2.setString(4, paySiteStr);
preparedStatement2.setString(5, ls_emp_code);
preparedStatement2.setString(6, ls_emp_code);
preparedStatement2.setString(7, ls_fr_proc);
preparedStatement2.setString(8, ls_fr_proc);
} catch (SQLException e) {
System.out.println("PayrollPostAccMiscPrc.gbfPostPayRoll() : SQLException : "+e);
e.printStackTrace();
}
resultSet2 = preparedStatement2.executeQuery();
while( resultSet2.next())// START of While Second
{
ll_count ++;
PreparedStatement preparedStatement3 = null;
ResultSet resultSet3 = null;
mempcode = checkNull(resultSet2.getString("emp_code"));
mdeptcode = checkNull(resultSet2.getString("dept_code"));
ls_prdcomp = checkNull(resultSet2.getString("prd_code"));
mrefno = "P-" + ls_prdcomp;
if("PP".equalsIgnoreCase(mtype))
{
mtrantype = "PAY";
mremarks = "Contract Charges for the period- " + ls_prdcomp;
mprdcode = ls_prdcomp;
}
else
{
System.out.println("#### 469");
mtrantype = "ARR";
mprdcode = checkNull(resultSet2.getString("prd_code__acc"));
mremarks = "Contract Charges for the period- " + ls_prdcomp;
mrefno = "P-"+ls_prdcomp +"-"+mprdcode;
}
System.out.println("#### 475 ");
mrefdate = resultSet2.getTimestamp("payroll_date");
System.out.println("#### mrefdate : "+mrefdate);
msitecode = checkNull(resultSet2.getString("site_code__pay"));
mtotamt = resultSet2.getDouble("net_amt");
mgrade = checkNull(resultSet2.getString("grade"));
mcadre = checkNull(resultSet2.getString("cadre"));
mpaytable = checkNull(resultSet2.getString("pay_table"));
msiteemp = checkNull(resultSet2.getString("site_code__emp"));
msitework = checkNull(resultSet2.getString("site_code__work"));
mdesign = checkNull(resultSet2.getString("designation"));
mpaydate = mrefdate;
mconfirmed = "N";
mpaid = "N";
mlineno = " 1";
meffdate = Timestamp.valueOf(getTableData("TO_DATE", "PERIOD", "CODE", ls_prdcode_to, conn));
if(meffdate != null)
{
int month = utilMethods.month(meffdate);
if(month < 10)
{
mon = "0" + mon;
}
}
int rowCnt = 0;
try
{
sqlQuery = "SELECT FIN_ENTITY, SITE_CODE__ACCT FROM SITE WHERE SITE_CODE = ?";
preparedStatement3 = conn.prepareStatement(sqlQuery);
preparedStatement3.setString(1, msitecode);
resultSet3 = preparedStatement3.executeQuery();
while( resultSet3.next())
{
rowCnt++;
mfinentity = checkNull(resultSet3.getString("FIN_ENTITY"));
msiteac = checkNull(resultSet3.getString("SITE_CODE__ACCT"));
}
if(rowCnt == 0)
{
ls_errcode = "NORECFND" ;
return ls_errcode;
}
}
catch(Exception e)
{
System.out.println("#### Exception 580 : "+e);
}
finally
{
if(resultSet3 != null) { resultSet3.close(); resultSet3 = null; }
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
sqlQuery = "SELECT BANK_CODE, RELIEVE_DATE, WITH_HELD FROM EMPLOYEE WHERE EMP_CODE = ?";
try {
preparedStatement3 = conn.prepareStatement(sqlQuery);
preparedStatement3.setString(1, mempcode);
resultSet3 = preparedStatement3.executeQuery();
rowCnt = 0;
if ( resultSet3.next())
{
rowCnt++;
ebankcode = checkNull(resultSet3.getString("BANK_CODE"));
ld_relieve = resultSet3.getTimestamp("RELIEVE_DATE");
ls_with_held = checkNull(resultSet3.getString("WITH_HELD"));
}
if(rowCnt == 0)
{
ls_errcode = "NORECFND" ;
return ls_errcode;
}
} catch (Exception e1) {
System.out.println("#### Exception 601 : "+e1);
}finally {
if(resultSet3 != null) { resultSet3.close(); resultSet3 = null; }
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
if ((ld_relieve != null || "Y".equalsIgnoreCase(ls_with_held)) && "Y".equalsIgnoreCase(ls_holdflag) ){
ls_hold = "Y";
}else{
ls_hold = "N";
}
if(ebankcode.length() > 0){
mbankcode = ebankcode;
}
ls_curr = getTableData("CURR_CODE", "FINENT", "FIN_ENTITY", mfinentity, conn);
if("NORECFND".equalsIgnoreCase(ls_curr)){
return ls_curr;
}
String lc_exchStr = getTableData("STD_EXRT", "CURRENCY", "CURR_CODE", ls_curr, conn);
if("NORECFND".equalsIgnoreCase(lc_exchStr)) {
return lc_exchStr;
}
if(lc_exchStr.length() > 0) {
lc_exch = Double.parseDouble(lc_exchStr);
}
sqlQuery = "SELECT FR_DATE, TO_DATE FROM PERIOD WHERE CODE = ?";
try {
preparedStatement3 = conn.prepareStatement(sqlQuery);
preparedStatement3.setString(1, mprdcode);
resultSet3 = preparedStatement3.executeQuery();
rowCnt = 0;
if ( resultSet3.next())
{
rowCnt++;
mfrdate = resultSet3.getTimestamp("FR_DATE");
mtodate = resultSet3.getTimestamp("TO_DATE");
}
if(rowCnt == 0)
{
ls_errcode = "NORECFND" ;
return ls_errcode;
}
} catch (Exception e1) {
System.out.println("#### Exception 655 : "+e1);
}finally{
if(resultSet3 != null) { resultSet3.close(); resultSet3 = null; }
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
mbatch = msitecode + mprdcode;
System.out.println("#### mtrandate "+mtrandate);
ls_errcode = checkNull(validator.nfCheckPeriod("ADM", mtrandate, msitecode, conn));
System.out.println("#### ls_errcode (ADM) : "+ls_errcode);
if(ls_errcode.length() == 0)
{
System.out.println("#### ldt_today "+ldt_today);
ls_errcode = checkNull(validator.nfCheckPeriod("FIN", ldt_today, paySiteStr, conn));
System.out.println("#### ls_errcode (FIN) : "+ls_errcode);
if(ls_errcode.length() > 0)
{
System.out.println("#### Break 601");
return ls_errcode;
}
}else
{
return ls_errcode;
}
System.out.println("#### ll_count : "+ll_count);
if( ll_count == 1 )
{
String userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginCode");
ls_keytype = "M-VOUC";
String tranDate = getDOMFieldVal("payroll_date", dom);
String xmlValues = "";
System.out.println("#### tranDate : "+ tranDate+" msiteac"+msiteac);
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>" + msiteac + "</site_code>";
xmlValues = xmlValues + "<tran_date>"+ tranDate + "</tran_date>";
xmlValues = xmlValues + "<vouch_type>"+ "E" + "</vouch_type>";
xmlValues = xmlValues + "<tran_type>"+ "PAY" + "</tran_type>";
xmlValues = xmlValues + "</Detail1></Root>";
System.out.println("#### Created instance of tranIdGen : xmlValues "+xmlValues);
TransIDGenerator tranIdGen = new TransIDGenerator(xmlValues, userId , userInfoBean.getTransDB());
mtranid = tranIdGen.generateTranSeqID(ls_keytype, "tran_id", keyString , conn);
System.out.println("#### Tran id : "+mtranid);
if(mtranid.length() == 0 || mtranid.equals("ERROR")) {
ls_errcode = "VTTRANID";
return ls_errcode;
}
sqlQuery = "SELECT ACCT_CODE__AP, CCTR_CODE__AP, CR_TERM ,CASE WHEN PAY_MODE IS NULL THEN 'Q' ELSE PAY_MODE END AS PAY_MODE ,TAX_CHAP,"
+ " TAX_CLASS, TAX_ENV FROM SUPPLIER WHERE SUPP_CODE = ?";
System.out.println("#### sqlQuery6 "+sqlQuery);
try {
preparedStatement3 = conn.prepareStatement(sqlQuery);
preparedStatement3.setString(1, as_supp_code__con);
resultSet3 = preparedStatement3.executeQuery();
rowCnt = 0;
while( resultSet3.next())
{
rowCnt++;
System.out.println("#### 660 ");
ls_acct_code__ap = checkNull(resultSet3.getString("ACCT_CODE__AP"));
ls_cctr_code__ap = checkNull(resultSet3.getString("CCTR_CODE__AP"));
ls_cr_term = checkNull(resultSet3.getString("CR_TERM"));
ls_pay_mode = checkNull(resultSet3.getString("PAY_MODE"));
ls_tax_chap = checkNull(resultSet3.getString("TAX_CHAP"));
ls_tax_class = checkNull(resultSet3.getString("TAX_CLASS"));
ls_tax_env = checkNull(resultSet3.getString("TAX_ENV"));
}
if(rowCnt == 0)
{
ls_errcode = "NORECFND" ;
return ls_errcode;
}rowCnt = 0;
} catch (Exception e1) {
System.out.println("#### Exception 726 : "+e1);
}finally{
if(resultSet3 != null) { resultSet3.close(); resultSet3 = null; }
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
System.out.println("#### ls_cr_term "+ls_cr_term);
sqlQuery = "SELECT COUNT(1) FROM CRTERM WHERE CR_TERM = ?";
try {
preparedStatement3 = conn.prepareStatement(sqlQuery);
preparedStatement3.setString(1, ls_cr_term);
resultSet3 = preparedStatement3.executeQuery();
if( resultSet3.next())
{
cnt = resultSet3.getInt(1);
}
System.out.println("#### cnt "+cnt);
if (cnt == 0)
{
ls_errcode = "VMCRTER1";
return ls_errcode;
}
} catch (Exception e1) {
System.out.println("#### Exception 756 : "+e1);
}finally{
if(resultSet3 != null) { resultSet3.close(); resultSet3 = null; }
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
ls_errcode = finCommon.isCctrCode(ls_acct_code__ap, ls_cctr_code__ap, ls_keytype, conn);
System.out.println("#### ls_errcode isCctrCode"+ls_errcode);
if(ls_errcode.length() > 0)
{
System.out.println("#### Break 689");
return ls_errcode;
}
ls_errcode = finCommon.isBankCode(msiteac, mbankcode, ls_keytype, conn);
System.out.println("#### ls_errcode isBankCode "+ls_errcode);
if(ls_errcode.length() > 0)
{
System.out.println("#### Break 697");
return ls_errcode;
}
ls_chqname = finCommon.getChequeName("S", as_supp_code__con, "C", conn);
System.out.println("#### ls_chqname "+ls_chqname);
ls_rnd_off = finCommon.getFinparams("999999", "PAY_RND_OFF", conn);
System.out.println("#### ls_rnd_off "+ls_rnd_off);
if(! "NULLFOUND".equalsIgnoreCase(ls_rnd_off))
{
ll_rnd_to = 1;
}
else
{
ls_rnd_off = "N";
ll_rnd_to = 0;
}
if (ls_bill_no.length() == 0 )
{
ls_bill_no = mbatch;
}
if (ldt_bill_date == null )
{
ldt_bill_date = mtodate;
}
System.out.println("#### ls_rnd_off "+ls_rnd_off+" ll_rnd_to "+ll_rnd_to+" ls_bill_no "+ls_bill_no +" ldt_bill_date "+ldt_bill_date);
String ldt_todayStr = "",meffdateStr ="",mtrandateStr = "", mchgdateStr = "";
if(ldt_today != null)
{
ldt_todayStr = sdf.format(ldt_today);
}
if(meffdate != null)
{
meffdateStr = sdf.format(meffdate);
}
if(meffdate != null)
{
mtrandateStr = sdf.format(meffdate);
}
if(mchgdate != null)
{
mchgdateStr = sdf.format( mchgdate);
}
System.out.println("#### ldt_todayStr "+ldt_todayStr); System.out.println("#### meffdateStr "+meffdateStr);
System.out.println("#### mtrandateStr "+mtrandateStr); System.out.println("#### mchgdateStr "+mchgdateStr);
miscVouchDetailXmlBuff.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
miscVouchDetailXmlBuff.append("<DocumentRoot>");
miscVouchDetailXmlBuff.append("<description>").append("Datawindow Root").append("</description>");
miscVouchDetailXmlBuff.append("<group0>");
miscVouchDetailXmlBuff.append("<description>").append("Group0description").append("</description>");
miscVouchDetailXmlBuff.append("<Header0>");
miscVouchDetailXmlBuff.append("<objName><![CDATA[").append("misc_voucher").append("]]></objName>");
miscVouchDetailXmlBuff.append("<pageContext><![CDATA[").append("1").append("]]></pageContext>");
miscVouchDetailXmlBuff.append("<objContext><![CDATA[").append("1").append("]]></objContext>");
miscVouchDetailXmlBuff.append("<editFlag><![CDATA[").append("A").append("]]></editFlag>");
miscVouchDetailXmlBuff.append("<focusedColumn><![CDATA[").append("").append("]]></focusedColumn>");
miscVouchDetailXmlBuff.append("<action><![CDATA[").append("SAVE").append("]]></action>");
miscVouchDetailXmlBuff.append("<elementName><![CDATA[").append("").append("]]></elementName>");
miscVouchDetailXmlBuff.append("<keyValue><![CDATA[").append("1").append("]]></keyValue>");
miscVouchDetailXmlBuff.append("<taxKeyValue><![CDATA[").append("").append("]]></taxKeyValue>");
miscVouchDetailXmlBuff.append("<saveLevel><![CDATA[").append("1").append("]]></saveLevel>");
miscVouchDetailXmlBuff.append("<forcedSave><![CDATA[").append("true").append("]]></forcedSave>");
miscVouchDetailXmlBuff.append("<taxInFocus><![CDATA[").append("false").append("]]></taxInFocus>");
miscVouchDetailXmlBuff.append("<Detail1 objContext =\"1\"").append(" objName=\"misc_voucher\" domID=\"1\" dbID=\"\">");
miscVouchDetailXmlBuff.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
miscVouchDetailXmlBuff.append("<tran_id>").append("<![CDATA[" + mtranid + "]]>").append("</tran_id>");
miscVouchDetailXmlBuff.append("<tran_date>").append("<![CDATA[" + ldt_todayStr + "]]>").append("</tran_date>");
miscVouchDetailXmlBuff.append("<tran_type>").append("<![CDATA[" + "PAY" + "]]>").append("</tran_type>");
miscVouchDetailXmlBuff.append("<eff_date>").append("<![CDATA[" + meffdateStr + "]]>").append("</eff_date>");
miscVouchDetailXmlBuff.append("<vouch_type>").append("<![CDATA[" + "E" + "]]>").append("</vouch_type>");
miscVouchDetailXmlBuff.append("<sundry_type>").append("<![CDATA[" + "S" + "]]>").append("</sundry_type>");
miscVouchDetailXmlBuff.append("<sundry_cod>").append("<![CDATA[" + as_supp_code__con + "]]>").append("</sundry_cod>");
miscVouchDetailXmlBuff.append("<acct_code__ap>").append("<![CDATA[" + ls_acct_code__ap + "]]>").append("</acct_code__ap>");
miscVouchDetailXmlBuff.append("<cctr_code__ap>").append("<![CDATA[" + ls_cctr_code__ap + "]]>").append("</cctr_code__ap>");
miscVouchDetailXmlBuff.append("<site_code>").append("<![CDATA[" + msiteac + "]]>").append("</site_code>");
miscVouchDetailXmlBuff.append("<fin_entity>").append("<![CDATA[" + mfinentity + "]]>").append("</fin_entity>");
miscVouchDetailXmlBuff.append("<due_date>").append("<![CDATA[" + mtrandateStr + "]]>").append("</due_date>");
miscVouchDetailXmlBuff.append("<curr_code>").append("<![CDATA[" + ls_curr + "]]>").append("</curr_code>");
miscVouchDetailXmlBuff.append("<cr_term>").append("<![CDATA[" + ls_cr_term + "]]>").append("</cr_term>");
miscVouchDetailXmlBuff.append("<auto_pay>").append("<![CDATA[" + mautopay + "]]>").append("</auto_pay>");
miscVouchDetailXmlBuff.append("<bank_code>").append("<![CDATA[" + mbankcode + "]]>").append("</bank_code>");
miscVouchDetailXmlBuff.append("<entry_batch_no>").append("<![CDATA[" + mbatch + "]]>").append("</entry_batch_no>");
miscVouchDetailXmlBuff.append("<confirmed>").append("<![CDATA[" + "N" + "]]>").append("</confirmed>");
miscVouchDetailXmlBuff.append("<chg_date>").append("<![CDATA[" + mchgdateStr + "]]>").append("</chg_date>");
miscVouchDetailXmlBuff.append("<chg_user>").append("<![CDATA[" + userId + "]]>").append("</chg_user>");
miscVouchDetailXmlBuff.append("<chg_term>").append("<![CDATA[" + userInfoBean.getRemoteAddress() + "]]>").append("</chg_term>");
miscVouchDetailXmlBuff.append("<exch_rate>").append("<![CDATA[" + lc_exch + "]]>").append("</exch_rate>");
miscVouchDetailXmlBuff.append("<net_amt>").append("<![CDATA[" + mtotamt + "]]>").append("</net_amt>");
miscVouchDetailXmlBuff.append("<net_amt__bc>").append("<![CDATA[" + mtotamt_bc + "]]>").append("</net_amt__bc>");
miscVouchDetailXmlBuff.append("<tot_amt>").append("<![CDATA[" + mtotamt + "]]>").append("</tot_amt>");
miscVouchDetailXmlBuff.append("<remarks>").append("<![CDATA[" + mremarks + "]]>").append("</remarks>");
miscVouchDetailXmlBuff.append("<rnd_off>").append("<![CDATA[" + ls_rnd_off + "]]>").append("</rnd_off>");
miscVouchDetailXmlBuff.append("<rnd_to>").append("<![CDATA[" + ll_rnd_to + "]]>").append("</rnd_to>");
miscVouchDetailXmlBuff.append("<sundry_type__pay>").append("<![CDATA[" + "S" + "]]>").append("</sundry_type__pay>");
miscVouchDetailXmlBuff.append("<sundry_code__pay>").append("<![CDATA[" + as_supp_code__con + "]]>").append("</sundry_code__pay>");
miscVouchDetailXmlBuff.append("<acct_code__pay>").append("<![CDATA[" + ls_acct_code__ap + "]]>").append("</acct_code__pay>");
miscVouchDetailXmlBuff.append("<cctr_code__pay>").append("<![CDATA[" + ls_cctr_code__ap + "]]>").append("</cctr_code__pay>");
miscVouchDetailXmlBuff.append("<pay_mode>").append("<![CDATA[" + ls_pay_mode + "]]>").append("</pay_mode>");
miscVouchDetailXmlBuff.append("<adv_amt>").append("<![CDATA[0]]>").append("</adv_amt>");
miscVouchDetailXmlBuff.append("<bill_amt>").append("<![CDATA[" + mtotamt + "]]>").append("</bill_amt>");
miscVouchDetailXmlBuff.append("<tax_amt>").append("<![CDATA[0]]>").append("</tax_amt>");
miscVouchDetailXmlBuff.append("<tran_mode>").append("<![CDATA[" + "A" + "]]>").append("</tran_mode>");
miscVouchDetailXmlBuff.append("<chq_name>").append("<![CDATA[" + ls_chqname + "]]>").append("</chq_name>");
miscVouchDetailXmlBuff.append("<bill_no>").append("<![CDATA[" + ls_bill_no + "]]>").append("</bill_no>");
miscVouchDetailXmlBuff.append("<bill_date>").append("<![CDATA[" + sdf.format(ldt_bill_date) + "]]>").append("</bill_date>");
miscVouchDetailXmlBuff.append("<diff_amt__exch>").append("<![CDATA[0]]>").append("</diff_amt__exch>");
miscVouchDetailXmlBuff.append("<taxed_adj_amt>").append("<![CDATA[0]]>").append("</taxed_adj_amt>");
miscVouchDetailXmlBuff.append("<tax_chap>").append("<![CDATA[" + ls_tax_chap + "]]>").append("</tax_chap>");
miscVouchDetailXmlBuff.append("<tax_class>").append("<![CDATA[" + ls_tax_class + "]]>").append("</tax_class>");
miscVouchDetailXmlBuff.append("<tax_env>").append("<![CDATA[" + ls_tax_env + "]]>").append("</tax_env>");
miscVouchDetailXmlBuff.append("<add_date>").append("<![CDATA[" + mchgdateStr + "]]>").append("</add_date>");
miscVouchDetailXmlBuff.append("<add_user>").append("<![CDATA[" + userId + "]]>").append("</add_user>");
miscVouchDetailXmlBuff.append("<add_term>").append("<![CDATA[" + userInfoBean.getRemoteAddress() + "]]>").append("</add_term>");
miscVouchDetailXmlBuff.append("<no_attachments>").append("<![CDATA[0]]>").append("</no_attachments>");
miscVouchDetailXmlBuff.append("<no_comments>").append("<![CDATA[0]]>").append("</no_comments>");
miscVouchDetailXmlBuff.append("</Detail1>");
HashMap <String, String> ret = gbf_payroll_post ( mempcode, mprdcode, mtype, mfrdate, msitecode,mdeptcode, mgrade, mcadre, mdesign,
mfinentity, mpaytable, msiteemp, msitework, meffdate, mpaydate, mtranid,
ls_dropded_inst, ls_prdcomp, ls_dataobject ,"N",mprocgroup_fr, mprocgroup_to, conn, userInfoBean);
//NOT USED ...ls_dataobject
ls_errcode = checkNull(ret.get("ls_errcode"));
mtotamt = Double.parseDouble(checkNull(ret.get("lc_totamt")));
lc_netpaid = Double.parseDouble(checkNull(ret.get("lc_netpaid")));
lc_misc_totamt = lc_misc_totamt + mtotamt;
lc_misc_tot = lc_misc_tot + mtotamt;
System.out.println("#### HashMap :: ls_errcode "+ls_errcode);
if(ls_errcode.length() > 0)
{
System.out.println("#### Break 838 VTPOSTDET1");
return ls_errcode;
}
if( utilMethods.abs(lc_netpaid - mtotamt) > 0.01) //accounts amount and payarr_det amount mismatch
{
ls_errcode = "VTPAYMIS";
System.out.println("#### Break 872 VTPAYMIS");
return ls_errcode;
}
StringBuilder payrolldetSql = new StringBuilder("SELECT CASE WHEN SUM(AMOUNT) IS NULL THEN 0 ELSE SUM(AMOUNT) END AS LC_PAYROLL_TOT ");
payrolldetSql.append(" FROM PAYROLLDET, PAYROLL WHERE PAYROLLDET.PRD_CODE = PAYROLL.PRD_CODE AND PAYROLLDET.EMP_CODE = PAYROLL.EMP_CODE");
payrolldetSql.append(" AND PAYROLLDET.PRD_CODE = ? AND PAYROLLDET.EMP_CODE = ? AND PAYROLLDET.AD_CODE = ? AND");
payrolldetSql.append(" (PAYROLL.VOUCHER_NO IS NOT NULL OR PAYROLL.VOUCHER_NO <> ' ' )");
try {
preparedStatement3 = conn.prepareStatement(payrolldetSql.toString());
preparedStatement3.setString(1, mprdcode);
preparedStatement3.setString(2, mempcode);
preparedStatement3.setString(3, ls_netad);
resultSet3 = preparedStatement3.executeQuery();
if(resultSet3.next())
{
lc_payroll_tot = resultSet3.getDouble("LC_PAYROLL_TOT");
}
} catch (Exception e) {
System.out.println("#### Exception 947 : "+e);
}finally{
if(resultSet3 != null) { resultSet3.close(); resultSet3 = null; }
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
StringBuilder arreasdetSql = new StringBuilder("SELECT CASE WHEN SUM(DIFF_AMT) IS NULL THEN 0 ELSE SUM(DIFF_AMT) END AS LC_ARREAR_TOT");
arreasdetSql.append(" FROM ARREARDET, ARREARS WHERE ARREARDET.PRD_CODE = ARREARS.PRD_CODE AND ARREARDET.EMP_CODE = ARREARS.EMP_CODE");
arreasdetSql.append(" AND ARREARDET.PRD_CODE__ACC = ARREARS.PRD_CODE__ACC AND ARREARDET.EMP_CODE = ? AND ARREARDET.PRD_CODE__ACC = ? AND");
arreasdetSql.append(" ARREARDET.AD_CODE = ? AND (ARREARS.VOUCHER_NO IS NOT NULL OR ARREARS.VOUCHER_NO <> ' ')");
try {
preparedStatement3 = conn.prepareStatement(arreasdetSql.toString());
preparedStatement3.setString(1, mempcode);
preparedStatement3.setString(2, mprdcode);
preparedStatement3.setString(3, ls_netad);
resultSet3 = preparedStatement3.executeQuery();
if(resultSet3.next())
{
lc_arrear_tot = resultSet3.getDouble("LC_ARREAR_TOT");
}
} catch (Exception e) {
System.out.println("#### Exception 970 : "+e);
}finally{
if(resultSet3 != null) { resultSet3.close(); resultSet3 = null; }
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
StringBuilder payArrDetSql = new StringBuilder("SELECT CASE WHEN SUM(AMOUNT) IS NULL THEN 0 ELSE SUM(AMOUNT) END AS LC_PAYARR_TOT ");
payArrDetSql.append(" FROM PAYARR_DET WHERE PAYARR_DET.PRD_CODE = ? AND PAYARR_DET.EMP_CODE = ? AND PAYARR_DET.AD_CODE = ?");
try {
preparedStatement3 = conn.prepareStatement(payArrDetSql.toString());
preparedStatement3.setString(1, mprdcode);
preparedStatement3.setString(2, mempcode);
preparedStatement3.setString(3, ls_netad);
resultSet3 = preparedStatement3.executeQuery();
if(resultSet3.next())
{
lc_payarr_tot = resultSet3.getDouble("LC_PAYARR_TOT");
}
} catch (Exception e) {
System.out.println("#### Exception 990 : "+e);
}finally{
if(resultSet3 != null) { resultSet3.close(); resultSet3 = null; }
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
System.out.println("#### lc_payroll_tot "+lc_payroll_tot);
System.out.println("#### lc_arrear_tot "+lc_arrear_tot);
System.out.println("#### lc_payarr_tot "+lc_payarr_tot);
if ((lc_payroll_tot + lc_arrear_tot) != lc_payarr_tot )
{
ls_errcode = "VTPAYMIS1";
}
System.out.println("#### ls_errcode 938 : "+ls_errcode);
if (ls_errcode.length() > 0) {
System.out.println("#### Break 938");
return ls_errcode;
}
}
// Add HERE
if(ls_errcode.length() == 0 && ll_count > 0)
{
System.out.println("#### 1206 mtotamt "+mtotamt); //0.0
if(mtotamt > 0) //getting from hashMap Detail2
{
int lineNo = 0;
sqlQuery = "SELECT TRAN_SER, REF_NO, CURR_CODE, EXCH_RATE, ACCT_CODE, CCTR_CODE, TOT_AMT, TOT_AMT - ADJ_AMT AS AMT FROM MISC_PAYABLES "
+ "WHERE TRAN_SER = ? AND SUNDRY_CODE = ? AND SUNDRY_TYPE = ? AND TOT_AMT - ADJ_AMT <> 0 AND SITE_CODE = ?";
try {
preparedStatement3 = conn.prepareStatement(sqlQuery);
preparedStatement3.setString(1,"M-ADV");
preparedStatement3.setString(2, as_supp_code__con);
preparedStatement3.setString(3, "S");
preparedStatement3.setString(4, msiteac);
resultSet3 = preparedStatement3.executeQuery();
while(resultSet3.next())
{
lineNo++;
ls_refser = checkNull(resultSet3.getString("TRAN_SER"));
ls_refno = checkNull(resultSet3.getString("REF_NO"));
ls_curradv = checkNull(resultSet3.getString("CURR_CODE"));
lc_exchadv = resultSet3.getDouble("EXCH_RATE");
ls_acctcode = checkNull(resultSet3.getString("ACCT_CODE"));
ls_cctrcode = checkNull(resultSet3.getString("CCTR_CODE"));
lc_misc_pay_totamt = resultSet3.getDouble("TOT_AMT");
lc_advamt = resultSet3.getDouble("AMT");
if(lc_advamt != 0)
{
System.out.println("#### lc_advamt "+lc_advamt+"#### lc_misc_tot "+lc_misc_tot);
if (utilMethods.abs(lc_advamt) > lc_misc_tot)
{
lc_advamt = 0 - lc_misc_tot;
lc_diffexch = 0;
lc_diffexch = (lc_advamt * lc_exchadv) - (lc_advamt * lc_exch);
lc_difftot = lc_difftot + lc_diffexch;
lc_advtot = lc_advtot + lc_advamt;
miscVouchDetailXmlBuff.append("<Detail2 dbID=\"\" domID='"+lineNo+"' objName=\"misc_voucher\" objContext=\"2\">");
miscVouchDetailXmlBuff.append("<attribute status=\"N\" updateFlag=\"A\" selected=\"N\"/>");
miscVouchDetailXmlBuff.append("<tran_id>").append("<![CDATA["+mtranid+"]]>").append("</tran_id>");
miscVouchDetailXmlBuff.append("<ref_ser>").append("<![CDATA["+ls_refser+"]]>").append("</ref_ser>");
miscVouchDetailXmlBuff.append("<ref_no>").append("<![CDATA["+ls_refno+"]]>").append("</ref_no>");
miscVouchDetailXmlBuff.append("<adj_amt>").append("<![CDATA["+lc_advamt+"]]>").append("</adj_amt>");
miscVouchDetailXmlBuff.append("<tot_amt>").append("<![CDATA["+lc_misc_pay_totamt+"]]>").append("</tot_amt>");
miscVouchDetailXmlBuff.append("<curr_code>").append("<![CDATA["+ls_curradv+"]]>").append("</curr_code>");
miscVouchDetailXmlBuff.append("<exch_rate__vouch>").append("<![CDATA["+lc_exchadv+"]]>").append("</exch_rate__vouch>");
miscVouchDetailXmlBuff.append("<diff_amt__exch>").append("<![CDATA["+lc_diffexch+"]]>").append("</diff_amt__exch>");
miscVouchDetailXmlBuff.append("<acct_code>").append("<![CDATA["+ls_acctcode+"]]>").append("</acct_code>");
miscVouchDetailXmlBuff.append("<cctr_code>").append("<![CDATA["+ls_cctrcode+"]]>").append("</cctr_code>");
miscVouchDetailXmlBuff.append("</Detail2>");
lc_misc_tot = lc_misc_tot + lc_advamt;
lc_netamt_adj = lc_netamt_adj + lc_advamt ;
}
}
}
} catch (Exception e) {
System.out.println("#### Exception 1071 : "+e);
}finally{
if(resultSet3 != null) { resultSet3.close(); resultSet3 = null; }
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
}
if (ls_errcode.length() == 0)
{
lc_misc_totamt_bc = (lc_misc_tot + lc_tot_tax) * lc_exch;
sqlQuery = "UPDATE MISC_VOUCHER SET TOT_AMT = ?, NET_AMT = ?, NET_AMT__BC = ?, BILL_AMT = ?, ADV_AMT = ?, SUPP_BILL_AMT = ?, TAX_AMT = ?,"
+ " TAX_DATE = CASE WHEN TAX_DATE IS NULL THEN TRAN_DATE ELSE TAX_DATE END WHERE TRAN_ID = ?";
int updateRecored = 0;
try {
preparedStatement3 = conn.prepareStatement(sqlQuery);
preparedStatement3.setDouble(1, lc_misc_totamt + lc_tot_tax);
preparedStatement3.setDouble(2, lc_misc_tot + lc_tot_tax);
preparedStatement3.setDouble(3, lc_misc_totamt_bc);
preparedStatement3.setDouble(4, lc_misc_totamt);
preparedStatement3.setDouble(5, lc_netamt_adj);
preparedStatement3.setDouble(6, lc_misc_tot);
preparedStatement3.setDouble(7, lc_tot_tax);
preparedStatement3.setString(8, mtranid);
updateRecored = preparedStatement3.executeUpdate();
System.out.println("#### No of record Updated "+updateRecored);
} catch (Exception e) {
System.out.println("#### Exception 1100 : "+e);
}finally{
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
}
miscVouchDetailXmlBuff.append("</Header0>");
miscVouchDetailXmlBuff.append("</group0>");
miscVouchDetailXmlBuff.append("</DocumentRoot>");
System.out.println("#### Final XML "+miscVouchDetailXmlBuff.toString());
masterStateful = (MasterStatefulLocal) ctx.lookup("ibase/MasterStatefulEJB/local");
String processStr = masterStateful.processRequest(userInfoBean, miscVouchDetailXmlBuff.toString(), true, conn);//isPartOfExtTrans
System.out.println("#### processStr "+processStr);
if(processStr.contains("Success"))
{
if("PP".equalsIgnoreCase(mtype))
{
sqlQuery = "UPDATE PAYROLL SET VOUCHER_NO = ? ,VOUCHER_DATE = ?,CONFIRMED = ? WHERE PRD_CODE >= ? AND PRD_CODE <= ? AND SITE_CODE__PAY = ? AND EMP_CODE = ? AND VOUCHER_NO IS NULL";
}else
{
sqlQuery = "UPDATE ARREARS SET VOUCHER_NO = ? ,VOUCHER_DATE = ?,CONFIRMED = ? WHERE PRD_CODE__ACC >= ? AND PRD_CODE__ACC <= ? AND SITE_CODE__PAY = ? AND EMP_CODE = ? AND VOUCHER_NO IS NULL";
}
int updateRecored = 0;
try {
preparedStatement3 = conn.prepareStatement(sqlQuery);
preparedStatement3.setString(1,mtranid);
preparedStatement3.setTimestamp(2, mtrandate);
preparedStatement3.setString(3, "Y");
preparedStatement3.setString(4, from_prd);
preparedStatement3.setString(5, to_prd);
preparedStatement3.setString(6, paySiteStr);
preparedStatement3.setString(7, ls_emp_code);
updateRecored = preparedStatement3.executeUpdate();
} catch (Exception e) {
System.out.println("#### Exception 1100 : "+e);
}finally{
if(preparedStatement3 != null) { preparedStatement3.close(); preparedStatement3 = null; }
}
System.out.println("#### No of Record Updated in"+mtype+updateRecored);
errCode = "VTPROC";
}else
{
NodeList nList = null;
Node node = null;
errCode = "VTNOROWS";
try {
Document doc = genericUtility.parseString(processStr);
nList = doc.getElementsByTagName("error");
node = nList.item(0);
errCode = node.getAttributes().getNamedItem("id").getNodeValue();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("#### attributeValue "+errCode);
}
}
// ADD END
}// End of while Second
if(resultSet2 != null){ resultSet2.close(); resultSet2 = null; }
if(preparedStatement2 != null) { preparedStatement2.close(); preparedStatement2 = null; }
}
// End of Main While
if(resultSet != null) { resultSet.close(); resultSet = null; }
if(preparedStatement != null) { preparedStatement.close(); preparedStatement = null; }
if(ll_count == 0) // For Inner while LOOP ####
{
errCode = "NORECFND";
System.out.println("#### Break 968");
return errCode;
}
if(noOfEmpCode == 0)//FOR MAIN While LOOP
{
errCode = "NORECFND";
System.out.println("#### Break 977");
return errCode;
}
}
catch (SQLException e) {
e.printStackTrace();
}
System.out.println("#### Break 1143");
return errCode;
}// End of method
/*private int getMonthInt(Date date) {
SimpleDateFormat dateFormat = new SimpleDateFormat("MM");
return Integer.parseInt(dateFormat.format(date));
}*/
private HashMap <String, String> gbf_payroll_post(String mempcode, String mprdcode, String mtype, Timestamp mfrdate,
String msitecode, String mdeptcode, String mgrade, String mcadre, String mdesign, String mfinentity,
String mpaytable, String msiteemp, String msitework, Timestamp meffdate, Timestamp mpaydate,
String mtranid, String ls_dropded_inst, String ls_prdcomp, String ls_dataobject, String ls_edi,
String mprocgroup_fr, String mprocgroup_to,Connection conn, UserInfoBean userInfoBean) throws ITMException, Exception
{
System.out.println("#### gbf_payroll_post ...hashMap");
HashMap<String,String> payrollPostHashMap = new HashMap();
String ls_netad,ls_errcode = "",madcode,ls_sql,mpost_yn,mpayable = "",mbalopt = "",mlineno = "",
macct_code_sal = "",mcctr_code_sal = "",ls_empac_sal = "",ls_empcc_sal = "",mpaymode,ebankcode,
ls_with_held,mtype1,mrndoff,mseq,ls_adrefno,ls_adreftype,ls_reftype,ls_refno,
ls_supp_code__con;
double i,cnt = 0,li_line_no,minner_i,ll_cnt = 0,ll_row;
int li_balfr=0,li_balto = 0;
double mamount,lc_netpaid = 0,mbaseamt,mslabamt,mresultamt,mcalcamt,mrndto,mtotamt = 0,mamtbal = 0,
lc_amt_bal,lc_amtbal, lc_misc_amount = 0;
Timestamp ld_relieve = null ,ld_start = null,ld_end = null,mchgdate,ld_to;
int li_cnt = 0;
String ls_tax_chap = "" , ls_tax_class = "" , ls_tax_env = "";
PreparedStatement reUsblepStmt = null;
PreparedStatement pStmt = null;
ResultSet resultSet = null;
StringBuilder StringBuilder = null;
UtilMethods utilMethods = new UtilMethods();
AdmCommon admCommon = new AdmCommon();
int rowCnt = 0;
long payrolldetRowCount = 0;
String sqlQuery = "";
i = 1;
try
{
System.out.println("#### mtype "+mtype);
if("PP".equalsIgnoreCase(mtype))
{
StringBuilder = new StringBuilder("SELECT PD.PRD_CODE,PD.EMP_CODE,PD.AD_CODE,PD.SEQ_NO,PD.TYPE,PD.PAYABLE,PD.BASE_AMT,");
StringBuilder.append("PD.SLAB_AMT,PD.RESULT_AMT,PD.POST_YN,PD.CALC_AMT,PD.RND_OFF,PD.RND_TO,PD.AMOUNT,A.DESCR,P.VOUCHER_NO,");
StringBuilder.append("PD.REF_TYPE,PD.REF_NO FROM PAYROLLDET PD,ALLWDEDN A,PAYROLL P,EMPLOYEE E ");
StringBuilder.append("WHERE ( PD.AD_CODE = A.AD_CODE ) and ( P.PRD_CODE = PD.PRD_CODE ) and ( P.EMP_CODE = PD.EMP_CODE ) and");
StringBuilder.append("(( PD.prd_code >= ?) AND (PD.prd_code <= ?) AND (PD.emp_code >= ?) AND ");
StringBuilder.append("(PD.emp_code <= ?) AND (P.voucher_no is null) AND (P.site_code__pay >= ?) AND ");
StringBuilder.append("(P.site_code__pay <= ?) AND (P.voucher_no is null) AND (E.proc_group >= ?) AND ");
StringBuilder.append("(E.proc_group <= ?)) ORDER BY PD.PRD_CODE ASC,PD.EMP_CODE ASC,PD.SEQ_NO ASC");
try
{
reUsblepStmt = conn.prepareStatement(StringBuilder.toString());
reUsblepStmt.setString(1, mprdcode);
reUsblepStmt.setString(2, mprdcode);
reUsblepStmt.setString(3, mempcode);
reUsblepStmt.setString(4, mempcode);
reUsblepStmt.setString(5, msitecode);
reUsblepStmt.setString(6, msitecode);
reUsblepStmt.setString(7, mprocgroup_fr);
reUsblepStmt.setString(8, mprocgroup_fr);
resultSet = reUsblepStmt.executeQuery();
while(resultSet.next())
{
payrolldetRowCount++;
}
System.out.println("#### payrolldetRowCount "+payrolldetRowCount);
if(resultSet != null) { resultSet.close(); resultSet = null; }
} catch (SQLException e) {
System.out.println("#### Exception 1268 : "+e);
}
}else
{
StringBuilder = new StringBuilder("SELECT AD.AMOUNT, AD.BASE_AMT,AD.SLAB_AMT, AD.RESULT_AMT, AD.PRD_CODE__ACC,AD.DIFF_BASE_AMT, ");
StringBuilder.append("AD.PRD_CODE,AD.EMP_CODE,AD.AD_CODE,AD.SEQ_NO,AD.TYPE,AD.PAYABLE,AD.POST_YN,AD.CALC_AMT, AD.RND_OFF,AD.RND_TO,");
StringBuilder.append("ALD.DESCR,AD.PREV_AMT,AD.DIFF_AMT, AD.DIFF_SLAB_AMT,AD.DIFF_RESULT_AMT,AD.REF_TYPE,AD.REF_NO ");
StringBuilder.append(" FROM ARREARDET AD, ALLWDEDN ALD, ARREARS A WHERE ( AD.AD_CODE = ALD.AD_CODE) AND (AD.PRD_CODE = A.PRD_CODE) AND ");
StringBuilder.append("(AD.PRD_CODE__ACC = A.PRD_CODE__ACC) AND (AD.EMP_CODE = A.EMP_CODE) AND (AD.prd_code = ?) AND ");
StringBuilder.append("(AD.prd_code__acc = ?) AND (AD.emp_code >= ?) AND (AD.emp_code <= ?) AND ");
StringBuilder.append("(A.site_code__pay >= ?) AND (A.site_code__pay <= ?) AND (A.voucher_no is null) ");
StringBuilder.append("ORDER BY AD.EMP_CODE ASC,AD.PRD_CODE ASC,AD.PRD_CODE__ACC ASC,AD.SEQ_NO ASC");
try
{
reUsblepStmt = conn.prepareStatement(StringBuilder.toString());
reUsblepStmt.setString(1, ls_prdcomp);
reUsblepStmt.setString(2, mprdcode);
reUsblepStmt.setString(3, mempcode);
reUsblepStmt.setString(4, mempcode);
reUsblepStmt.setString(5, msitecode);
reUsblepStmt.setString(6, msitecode);
resultSet = reUsblepStmt.executeQuery();
while(resultSet.next())
{
payrolldetRowCount++;
}
if(resultSet != null) { resultSet.close(); resultSet = null; }
} catch (SQLException e)
{
System.out.println("#### Exception 1301 : "+e);
}
}
String miscVoucherSql = "SELECT TAX_CLASS, TAX_CHAP, TAX_ENV FROM MISC_VOUCHER WHERE TRAN_ID = ?";//TRAN_ID : P2XEE0012 , P2XEE0011
try {
pStmt = conn.prepareStatement(miscVoucherSql);
pStmt.setString(1, mtranid);
resultSet = pStmt.executeQuery();
if(resultSet.next()) {
ls_tax_class = checkNull(resultSet.getString("TAX_CLASS"));
ls_tax_chap = checkNull(resultSet.getString("TAX_CHAP"));
ls_tax_env = checkNull(resultSet.getString("TAX_ENV"));
}
} catch (Exception e1) {
System.out.println("#### Exception 1317 "+e1);
}finally {
if(resultSet != null){ resultSet.close(); resultSet = null; }
if(pStmt != null) { pStmt.close(); pStmt = null; }
}
String periodSql = "SELECT TO_DATE FROM PERIOD WHERE CODE = ?";
try {
pStmt = conn.prepareStatement(periodSql);
pStmt.setString(1, mprdcode);
resultSet = pStmt.executeQuery();
if(resultSet.next())
{
ld_to = resultSet.getTimestamp("TO_DATE");
System.out.println("#### ld_to "+ld_to);
PreparedStatement pStmt1 = null;
ResultSet rs1 = null;
String empSql ="SELECT ACCT_CODE__SAL, CCTR_CODE__SAL, PAY_MODE, BANK_CODE, RELIEVE_DATE, WITH_HELD FROM EMPLOYEE WHERE EMP_CODE = ?";
try {
pStmt1 = conn.prepareStatement(empSql);
pStmt1.setString(1, mempcode);
rs1 = pStmt1.executeQuery();
if(rs1.next())
{
ls_empac_sal = checkNull(rs1.getString("ACCT_CODE__SAL"));//
ls_empcc_sal = checkNull(rs1.getString("CCTR_CODE__SAL"));//
mpaymode = checkNull(rs1.getString("PAY_MODE"));
ebankcode = checkNull(rs1.getString("BANK_CODE"));
ld_relieve = rs1.getTimestamp("RELIEVE_DATE");
ls_with_held = checkNull(rs1.getString("WITH_HELD"));
}
} catch (Exception e) {
System.out.println("#### Exception 1351 "+e);
}finally {
if(rs1 != null){ rs1.close(); rs1 = null; }
if(pStmt1 != null) { pStmt1.close(); pStmt1 = null; }
}
}
} catch (Exception e1) {
System.out.println("#### Exception 1355 "+e1);
}finally {
if(resultSet != null){ resultSet.close(); resultSet = null; }
if(pStmt != null) { pStmt.close(); pStmt = null; }
}
mchgdate = new Timestamp(System.currentTimeMillis());
ls_netad = admCommon.getEnv("999999", "NET_AC", conn);
if("NULLFOUND".equalsIgnoreCase(ls_netad))
{
ls_netad = admCommon.getEnv("999999", "NET", conn);
if("NULLFOUND".equalsIgnoreCase(ls_netad))
{
ls_errcode = "VSENVAR1";
}
}
if("PP".equalsIgnoreCase(mtype))
{
String payrolldetSql = "SELECT AMOUNT FROM PAYROLLDET WHERE PRD_CODE = ? AND EMP_CODE = ? AND AD_CODE = ?";
try {
pStmt = conn.prepareStatement(payrolldetSql);
pStmt.setString(1, ls_prdcomp);
pStmt.setString(2, mempcode);
pStmt.setString(3, ls_netad);
resultSet = pStmt.executeQuery();
if(resultSet.next()) {
lc_netpaid = resultSet.getDouble("AMOUNT");
}else {
ls_errcode = "VTPOSTDET1";
}
} catch (Exception e) {
System.out.println("#### Exception 1394 "+e);
}finally {
if(resultSet != null){ resultSet.close(); resultSet = null;}
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
}else {
String payrolldetSql = "SELECT DIFF_AMT FROM ARREARDET WHERE PRD_CODE = ? AND EMP_CODE = ? AND PRD_CODE__ACC = ? AND AD_CODE = ?";
try {
pStmt = conn.prepareStatement(payrolldetSql);
pStmt.setString(1, ls_prdcomp);
pStmt.setString(2, mempcode);
pStmt.setString(3, mprdcode);
pStmt.setString(4, ls_netad);
resultSet = pStmt.executeQuery();
if(resultSet.next()) {
lc_netpaid = resultSet.getDouble("DIFF_AMT");
}else {
ls_errcode = "VTPOSTDET1";
}
} catch (Exception e) {
System.out.println("#### Exception 1415 "+e);
}finally {
if(resultSet != null){ resultSet.close(); resultSet = null;}
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
}
ResultSet resultSet1 = null;
try
{
System.out.println("#### Deatil 3 start 1354 ");
int lineNo = 0;
resultSet1 = reUsblepStmt.executeQuery();
while (resultSet1.next())
{
System.out.println("#### 1359 ");
lineNo++;
madcode = resultSet1.getString("ad_code");
mamount = resultSet1.getDouble("amount");
mpost_yn= resultSet1.getString("post_yn");
//Pick1
mbaseamt = resultSet1.getDouble("base_amt");
mslabamt = resultSet1.getDouble("slab_amt");
mresultamt = resultSet1.getDouble("result_amt");
//Pick2
mtype1 = resultSet1.getString("type");
mcalcamt = resultSet1.getDouble("calc_amt");
mrndoff = resultSet1.getString("rnd_off");
mrndto = resultSet1.getDouble("rnd_to");
mseq = resultSet1.getString("seq_no");
ls_adrefno = resultSet1.getString("ref_no");
ls_adreftype = resultSet1.getString("ref_type");
String allwdedSql = "SELECT PAYABLE, BAL_OPT, ACCT_CODE__SAL, CCTR_CODE__SAL, BAL_FROM, BAL_TO FROM ALLWDEDN WHERE AD_CODE = ? ";
try {
pStmt = conn.prepareStatement(allwdedSql);
pStmt.setString(1, madcode);
resultSet = pStmt.executeQuery();
if(resultSet.next())
{
mpayable = resultSet.getString("PAYABLE");
mbalopt = resultSet.getString("BAL_OPT");
macct_code_sal = resultSet.getString("ACCT_CODE__SAL");
mcctr_code_sal = resultSet.getString("CCTR_CODE__SAL");
li_balfr = resultSet.getInt("BAL_FROM");
li_balto = resultSet.getInt("BAL_TO");
}
} catch (Exception e) {
System.out.println("#### Exception 1466 "+e);
}finally {
if(resultSet != null){ resultSet.close(); resultSet = null;}
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
if(ls_empac_sal.length() > 0)
{
macct_code_sal = ls_empac_sal;
}
if(ls_empcc_sal.length() > 0)
{
mcctr_code_sal = ls_empcc_sal;
}
String payRollCountSql = "SELECT COUNT(1) FROM PAYROLL WHERE PRD_CODE = ? AND EMP_CODE = ?";
try {
pStmt = conn.prepareStatement(payRollCountSql);
pStmt.setString(1, mprdcode);
pStmt.setString(2, mempcode);
resultSet = pStmt.executeQuery();
cnt = 0;
if(resultSet.next())
{
cnt = resultSet.getInt(1);
}
} catch (Exception e) {
System.out.println("#### Exception 1466 "+e);
}finally {
if(resultSet != null){ resultSet.close(); resultSet = null;}
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
System.out.println("#### Count 1392 "+cnt);
if( cnt == 0 && ld_relieve != null && ld_relieve.compareTo(mfrdate) < 0 )
{
if("N".equalsIgnoreCase(ls_edi)) // Always N
{
StringBuilder payRollInsert = new StringBuilder("INSERT INTO PAYROLL");
payRollInsert.append(" (PRD_CODE, EMP_CODE, SITE_CODE__PAY, DEPT_CODE,WORK_DAYS, PAID_DAYS, PAY_TABLE,");
payRollInsert.append(" BASIC_AMT, ALLOW_AMT, DEDN_AMT,NET_AMT, VOUCHER_NO, GRADE, CADRE, DESIGNATION, FIN_ENTITY,");
payRollInsert.append(" PAYROLL_DATE,CHG_DATE, CHG_USER, CHG_TERM, REMARKS, SITE_CODE__EMP, SITE_CODE__WORK)");
payRollInsert.append(" VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
int payRollInsertCnt = 0;
try {
pStmt = conn.prepareStatement(payRollInsert.toString());
pStmt.setString(1, mprdcode);
pStmt.setString(2, mempcode);
pStmt.setString(3, msitecode);
pStmt.setString(4, mdeptcode);
pStmt.setInt(5, 0);
pStmt.setInt(6, 0);
pStmt.setString(7, mpaytable);
pStmt.setDouble(8, 0);
pStmt.setDouble(9, 0);
pStmt.setDouble(10, 0);
pStmt.setDouble(11, 0);
pStmt.setString(12, "PAYROLL");
pStmt.setString(13, mgrade);
pStmt.setString(14, mcadre);
pStmt.setString(15, mdesign);
pStmt.setString(16, mfinentity);
pStmt.setTimestamp(17, mpaydate);
pStmt.setTimestamp(18, mchgdate);
pStmt.setString(19, userInfoBean.getLoginCode());
pStmt.setString(20, userInfoBean.getRemoteAddress());
pStmt.setString(21, "Due to arrear processing");
pStmt.setString(22, msiteemp);
pStmt.setString(23, msitework);
payRollInsertCnt = pStmt.executeUpdate();
} catch (Exception e) {
System.out.println("#### Exception 1538 "+e);
}finally {
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
System.out.println("payRollInsertCnt : "+payRollInsertCnt);
}
}//
//Pick1
String payArrDetSql = "SELECT COUNT(1) FROM PAYARR_DET WHERE PRD_CODE = ? AND EMP_CODE = ? AND AD_CODE = ?";
try {
pStmt = conn.prepareStatement(payArrDetSql);
pStmt.setString(1, mprdcode);
pStmt.setString(2, mempcode);
pStmt.setString(3, madcode);
resultSet = pStmt.executeQuery();
cnt = 0;
if(resultSet.next())
{
cnt = resultSet.getInt(1);
}
} catch (Exception e) {
System.out.println("#### Exception 1561 "+e);
}finally {
if(resultSet != null){ resultSet.close(); resultSet = null;}
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
System.out.println("#### Count 1451 "+cnt);
if(cnt == 0)
{
//Pick2
StringBuilder insertpayArrDet = new StringBuilder("INSERT INTO PAYARR_DET (PRD_CODE, EMP_CODE, AD_CODE, TYPE,PAYABLE, BASE_AMT,");
insertpayArrDet.append(" SLAB_AMT, RESULT_AMT, POST_YN,CALC_AMT, RND_OFF, RND_TO, AMOUNT, SEQ_NO, REF_TYPE, REF_NO)");
insertpayArrDet.append(" VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
try {
pStmt = conn.prepareStatement(insertpayArrDet.toString());
pStmt.setString(1, mprdcode);
pStmt.setString(2, mempcode);
pStmt.setString(3, madcode);
pStmt.setString(4, mtype1);
pStmt.setString(5, mpayable);
pStmt.setDouble(6, mbaseamt);
pStmt.setDouble(7, mslabamt);
pStmt.setDouble(8, mresultamt);
pStmt.setString(9, mpost_yn);
pStmt.setDouble(10, mcalcamt);
pStmt.setString(11, mrndoff);
pStmt.setDouble(12, mrndto);
pStmt.setDouble(13, mamount);
pStmt.setString(14, mseq);
pStmt.setString(15, ls_adreftype);
pStmt.setString(16, ls_adrefno);
int insertpayArrDetCnt = pStmt.executeUpdate();
} catch (Exception e) {
System.out.println("#### Exception 1598 "+e);
} finally {
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
}
else
{
double _amount = 0, _baseAmt = 0, _slabAmt = 0, _resultAmt = 0;
String updatePayArrDet = "UPDATE PAYARR_DET SET AMOUNT = AMOUNT + ?, BASE_AMT = BASE_AMT + ? ,SLAB_AMT = SLAB_AMT + ?,RESULT_AMT = RESULT_AMT + ?" +
" WHERE PRD_CODE = ? AND EMP_CODE = ? AND AD_CODE = ?";
try {
pStmt = conn.prepareStatement(updatePayArrDet);
pStmt.setDouble(1, ( mamount));
pStmt.setDouble(2, ( mbaseamt));
pStmt.setDouble(3, (mslabamt));
pStmt.setDouble(4, (mresultamt));
pStmt.setString(5, mprdcode);
pStmt.setString(6, mempcode);
pStmt.setString(7, madcode);
int updatePayArrDetCnt = pStmt.executeUpdate();
} catch (Exception e) {
System.out.println("#### Exception 1621 "+e);
} finally {
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
}
if("N".equalsIgnoreCase(ls_edi)) //Always N
{
System.out.println("#### 1538 mpost_yn "+mpost_yn);
if("Y".equalsIgnoreCase(mpost_yn))
{
System.out.println("#### 1541 mamount "+mamount);
if(mamount != 0)
{
String acctCctrSql = "SELECT COUNT(1) FROM ACCOUNTS_CCTR WHERE ACCT_CODE = ? AND CCTR_CODE = ?";
try {
pStmt = conn.prepareStatement(acctCctrSql);
pStmt.setString(1, macct_code_sal);
pStmt.setString(2, mcctr_code_sal);
resultSet = pStmt.executeQuery();
if(resultSet.next())
{
li_cnt = resultSet.getInt(1);
}
} catch (Exception e) {
System.out.println("#### Exception 1646 "+e);
}finally {
if(resultSet != null){ resultSet.close(); resultSet = null;}
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
if(checkNull(mcctr_code_sal).length() == 0)
{
ls_errcode = "VMCCTRCD1";
}
if (li_cnt == 0)
{
String acctCctrSql1 = "SELECT COUNT(1) FROM ACCOUNTS_CCTR WHERE ACCT_CODE = ?";
try {
pStmt = conn.prepareStatement(acctCctrSql1);
pStmt.setString(1, macct_code_sal);
resultSet = pStmt.executeQuery();
if(resultSet.next())
{
li_cnt = resultSet.getInt(1);
}
} catch (Exception e) {
System.out.println("#### Exception 1670 "+e);
} finally {
if(resultSet != null){ resultSet.close(); resultSet = null;}
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
if(li_cnt > 0)
{
ls_errcode = "VMCCTR2";
}
else if(li_cnt == 0)
{
if(E12GenericUtility.checkNull(mcctr_code_sal).length() > 0)
{
ls_errcode = "VMCCTR2";
}
}
}
ll_cnt = 0;
lc_misc_amount = 0;
ll_row = 0;
// Check record, which is never exist. ****
String miscVouchdetSql = "SELECT COUNT(1) FROM MISC_VOUCHDET WHERE TRAN_ID = ? AND ACCT_CODE = ? AND CCTR_CODE = ?";
try {
pStmt = conn.prepareStatement(miscVouchdetSql);
pStmt.setString(1, mtranid);
pStmt.setString(2, macct_code_sal);
pStmt.setString(3, mcctr_code_sal);
resultSet = pStmt.executeQuery();
if(resultSet.next())
{
ll_cnt = resultSet.getInt(1);
}
} catch (Exception e) {
System.out.println("#### Exception 1706 "+e);
} finally {
if(resultSet != null){ resultSet.close(); resultSet = null;}
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
if(ll_cnt > 0)
{ // Check record, which is never exist. ****
String miscVouAmt = "SELECT CASE WHEN AMOUNT IS NULL THEN 0 ELSE AMOUNT END AS LC_MISC_AMOUNT FROM MISC_VOUCHDET" +
" WHERE TRAN_ID = ? AND ACCT_CODE = ? AND CCTR_CODE = ?";
try {
pStmt = conn.prepareStatement(miscVouAmt);
pStmt.setString(1, mtranid);
pStmt.setString(2, macct_code_sal);
pStmt.setString(3, mcctr_code_sal);
if(resultSet.next())
{
lc_misc_amount = resultSet.getDouble("lc_misc_amount");
}
} catch (Exception e) {
System.out.println("#### Exception 1727 "+e);
}finally {
if(resultSet != null){ resultSet.close(); resultSet = null;}
if(pStmt != null) { pStmt.close(); pStmt = null;} pStmt = null;
}
}
}
System.out.println("#### 1628 mpayable "+mpayable);
if("D".equalsIgnoreCase(mpayable)) // A
{
System.out.println("#### 1628 ll_cnt "+ll_cnt);
if(ll_cnt > 0) // Never satisfing...
{ //Update record, which is never exist. ****
String miscVouchdet = "UPDATE MISC_VOUCHDET SET AMOUNT = ? WHERE TRAN_ID = ? AND ACCT_CODE = ?" +
" AND CCTR_CODE = ?";
try {
pStmt = conn.prepareStatement(miscVouchdet);
pStmt.setDouble(1, (lc_misc_amount + (mamount * -1)));
pStmt.setString(2, mtranid);
pStmt.setString(3, macct_code_sal);
pStmt.setString(4, mcctr_code_sal);
pStmt.executeUpdate();
} catch (Exception e) {
System.out.println("#### Exception 1752 "+e);
} finally {
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
}
else // detail3
{
System.out.println("#### Detail 3 line No 1641 "+lineNo);
miscVouchDetailXmlBuff.append("<Detail3 dbID=\"\" domID='"+lineNo+"' objName=\"misc_voucher\" objContext=\"2\">");
miscVouchDetailXmlBuff.append("<attribute status=\"N\" updateFlag=\"A\" selected=\"N\"/>");
miscVouchDetailXmlBuff.append("<tran_id>").append("<![CDATA["+mtranid+"]]>").append("</tran_id>");
miscVouchDetailXmlBuff.append("<line_no>").append("<![CDATA["+lineNo+"]]>").append("</line_no>");
miscVouchDetailXmlBuff.append("<acct_code>").append("<![CDATA["+macct_code_sal+"]]>").append("</acct_code>");
miscVouchDetailXmlBuff.append("<cctr_code>").append("<![CDATA["+mcctr_code_sal+"]]>").append("</cctr_code>");
miscVouchDetailXmlBuff.append("<amount>").append("<![CDATA["+mamount * (-1)+"]]>").append("</amount>");
miscVouchDetailXmlBuff.append("<apply_tax>").append("<![CDATA["+"Y"+"]]>").append("</apply_tax>");
miscVouchDetailXmlBuff.append("<tax_amt>").append("<![CDATA[0]]>").append("</tax_amt>");
miscVouchDetailXmlBuff.append("<taxed_adj_amt>").append("<![CDATA[0]]>").append("</taxed_adj_amt>");
miscVouchDetailXmlBuff.append("</Detail3>");
}
mtotamt = mtotamt - mamount;
}
else
{
System.out.println("#### 1687 ll_cnt "+ll_cnt);
if(ll_cnt > 0) //
{ // Update record, which is never exist. ****
String miscVouchdet = "UPDATE MISC_VOUCHDET SET AMOUNT = ? WHERE TRAN_ID = ? AND ACCT_CODE = ?" +
" AND CCTR_CODE = ?";
try {
pStmt = conn.prepareStatement(miscVouchdet);
pStmt.setDouble(1, (lc_misc_amount + mamount));
pStmt.setString(2, mtranid);
pStmt.setString(3, macct_code_sal);
pStmt.setString(4, mcctr_code_sal);
pStmt.executeUpdate();
} catch (Exception e) {
System.out.println("#### Exception 1752 "+e);
} finally {
if(pStmt != null) { pStmt.close(); pStmt = null;}
}
}
else
{
System.out.println("#### Detail 3 line No 1710 "+lineNo);
miscVouchDetailXmlBuff.append("<Detail3 dbID=\"\" domID='"+lineNo+"' objName=\"misc_voucher\" objContext=\"2\">");
miscVouchDetailXmlBuff.append("<attribute status=\"N\" updateFlag=\"A\" selected=\"N\"/>");
miscVouchDetailXmlBuff.append("<tran_id>").append("<![CDATA["+mtranid+"]]>").append("</tran_id>");
miscVouchDetailXmlBuff.append("<line_no>").append("<![CDATA["+lineNo+"]]>").append("</line_no>");
miscVouchDetailXmlBuff.append("<acct_code>").append("<![CDATA["+macct_code_sal+"]]>").append("</acct_code>");
miscVouchDetailXmlBuff.append("<cctr_code>").append("<![CDATA["+mcctr_code_sal+"]]>").append("</cctr_code>");
miscVouchDetailXmlBuff.append("<amount>").append("<![CDATA["+mamount+"]]>").append("</amount>");
miscVouchDetailXmlBuff.append("<apply_tax>").append("<![CDATA["+"Y"+"]]>").append("</apply_tax>");
miscVouchDetailXmlBuff.append("<tax_amt>").append("<![CDATA[0]]>").append("</tax_amt>");
miscVouchDetailXmlBuff.append("<taxed_adj_amt>").append("<![CDATA[0]]>").append("</taxed_adj_amt>");
miscVouchDetailXmlBuff.append("<tax_class>").append("<![CDATA["+ls_tax_class+"]]>").append("</tax_class>");
miscVouchDetailXmlBuff.append("<tax_chap>").append("<![CDATA["+ls_tax_chap+"]]>").append("</tax_chap>");
miscVouchDetailXmlBuff.append("<tax_env>").append("<![CDATA["+ls_tax_env+"]]>").append("</tax_env>");
miscVouchDetailXmlBuff.append("</Detail3>");
}
mtotamt = mtotamt + mamount;
}
ls_reftype = E12GenericUtility.checkNull(resultSet1.getString("ref_type"));
ls_refno = resultSet1.getString("ref_no");
System.out.println("\n#### ls_reftype "+ls_reftype+"\n#### ls_refno "+ls_refno+"\n#### mbalopt "+mbalopt);
System.out.println("\n#### mamount "+mamount);
if( mamount != 0)
{
if("A".equalsIgnoreCase(mbalopt)) //N
{
if(! "L".equalsIgnoreCase(ls_reftype))
{
String allowdedBalSql = "SELECT COUNT(1) FROM ALLOWDEDN_BAL WHERE EMP_CODE = ? AND AD_CODE = ?"
+ " AND ? >= START_DATE AND ? <= END_DATE ";
try {
pStmt = conn.prepareStatement(allowdedBalSql);
pStmt.setString(1, mempcode);
pStmt.setString(2, madcode);
pStmt.setTimestamp(3, mfrdate);
pStmt.setTimestamp(4, mfrdate);
resultSet = pStmt.executeQuery();
if(resultSet.next())
{
cnt = resultSet.getInt(1);
}
} catch (Exception e) {
System.out.println("#### Exception 1848 "+e);
} finally {
if(resultSet != null) { resultSet.close(); resultSet = null; }
if(pStmt != null) { pStmt.close(); pStmt = null; }
}
if(cnt == 0)
{
if("A".equalsIgnoreCase(mbalopt) || "N".equalsIgnoreCase(mpost_yn))
{
if(li_balto < li_balfr && (utilMethods.month(mfrdate) < li_balfr))
{
utilMethods.date(utilMethods.year(mfrdate) - 1 , li_balfr, 1);
}
else
{
utilMethods.date(utilMethods.year(mfrdate) , li_balfr, 1);
}
if(li_balto < li_balfr && utilMethods.month(mfrdate) < li_balfr || (li_balto > li_balfr))
{
utilMethods.date(utilMethods.year(mfrdate) , li_balto, 1);
}
else
{
utilMethods.date(utilMethods.year(mfrdate) + 1 , li_balto, 1);
}
ld_end = admCommon.gfLastDate(ld_end);
String insertAllowDednBal = "INSERT INTO ALLOWDEDN_BAL (EMP_CODE, AD_CODE, START_DATE, END_DATE, AMOUNT," +
" AMT_ADJ, AMT_BAL, CHG_DATE, CHG_USER, CHG_TERM, REF_TYPE)" +
" VALUES (?,?,?,?,?,?,?,?,?,?,?)";
try {
pStmt = conn.prepareStatement(insertAllowDednBal);
pStmt.setString(1, mempcode);
pStmt.setString(2, madcode);
pStmt.setTimestamp(3, ld_start);
pStmt.setTimestamp(4, ld_end);
pStmt.setDouble(5, mamount);
pStmt.setDouble(6, 0);
pStmt.setDouble(7, mamount);
pStmt.setTimestamp(8, mchgdate);
pStmt.setString(9, userInfoBean.getLoginCode());
pStmt.setString(10, userInfoBean.getRemoteAddress());
pStmt.setString(11, "K");
int count = pStmt.executeUpdate();
} catch (Exception e) {
System.out.println("#### Exception 1895 "+e);
} finally {
if(pStmt != null) { pStmt.close(); pStmt = null; }
}
}
else {
ls_errcode = "VPNOBAL1";
}
}
else
{
if("A".equalsIgnoreCase(mbalopt) || "N".equalsIgnoreCase(mpost_yn))
{
if(! "L".equals(ls_reftype))
{
String updateAllDendBal = "UPDATE ALLOWDEDN_BAL SET AMOUNT = AMOUNT + ? ,AMT_BAL = AMT_BAL + ? ,CHG_USER = ? ,"
+ " CHG_DATE = ? ,CHG_TERM = ? WHERE EMP_CODE =? AND AD_CODE = ? AND ? >= START_DATE AND ? <= END_DATE";
try {
pStmt = conn.prepareStatement(updateAllDendBal);
pStmt.setDouble(1, mamount);
pStmt.setDouble(2, mamount);
pStmt.setString(3, userInfoBean.getLoginCode());
pStmt.setString(4, userInfoBean.getRemoteHost());
pStmt.setString(5, mempcode);
pStmt.setString(6, madcode);
pStmt.setTimestamp(7, mfrdate);
pStmt.setTimestamp(8, mfrdate);
int count = pStmt.executeUpdate();
} catch (Exception e) {
System.out.println("#### Exception 1926 "+e);
}finally {
if(pStmt != null) { pStmt.close(); pStmt = null; }
}
}
}
else
{
if(! "L".equalsIgnoreCase(ls_reftype))
{
String updateAllDendBal = "UPDATE ALLOWDEDN_BAL SET AMT_BAL = AMT_BAL - ? ,AMT_ADJ = AMT_ADJ + ?, CHG_USER = ? ,"
+ " CHG_DATE = ? ,CHG_TERM = ? WHERE EMP_CODE =? AND AD_CODE = ? AND ? >= START_DATE AND ? <= END_DATE";
try {
pStmt = conn.prepareStatement(updateAllDendBal);
pStmt.setDouble(1, mamount);
pStmt.setDouble(2, mamount);
pStmt.setString(3, userInfoBean.getLoginCode());
pStmt.setString(4, userInfoBean.getRemoteHost());
pStmt.setString(5, mempcode);
pStmt.setString(6, madcode);
pStmt.setTimestamp(7, mfrdate);
pStmt.setTimestamp(8, mfrdate);
int count = pStmt.executeUpdate();
} catch (Exception e) {
System.out.println("#### Exception 1953 "+e);
}finally {
if(pStmt != null) { pStmt.close(); pStmt = null; }
}
}
}
}
}
}
}
}
}
}
payrollPostHashMap.put("ls_errcode", ls_errcode);
payrollPostHashMap.put("lc_totamt", mtotamt+"");
payrollPostHashMap.put("lc_netpaid", lc_netpaid+"");
System.out.println("\n#### (END MAP )payrollPostHashMap :: "+payrollPostHashMap+"\n");
}catch(Exception e)
{
e.printStackTrace();
}finally {
if(resultSet1 != null){ resultSet1.close(); resultSet1 = null; }
if(reUsblepStmt != null){ reUsblepStmt.close(); reUsblepStmt = null; }
}
} catch (Exception e)
{
e.printStackTrace();
}
return payrollPostHashMap;
}
private String getDOMFieldVal(String tagName,Document dom)
{
String domStr = "";
try {
domStr = checkNull(genericUtility.getColumnValue(tagName, dom));
}catch(Exception e){
System.out.println("#### Exception in getDOMFieldVal "+e);
}
return domStr;
}
private Timestamp getDate(String dateStr)
{
System.out.println("#### getDate:: "+dateStr);
Timestamp date = null;
try {
if(dateStr.length() > 0)
{
date = Timestamp.valueOf(genericUtility.getValidDateString
(dateStr,genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat())+ " 00:00:00.0");
}
} catch (ITMException e) {
System.out.println("#### ITMException getDate :"+e);
} catch (Exception e) {
System.out.println("#### Exception getDate :"+e);
}
return date;
}
private static String checkNull(String input)
{
if (input == null || "null".equalsIgnoreCase(input) || "undefined".equalsIgnoreCase(input))
{
input= "";
}
return input.trim();
}
private String getTableData(String selFieldName, String fromTableName, String whereFieldName, String whereFieldValue, Connection conn) throws SQLException
{
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String result = "";
int rowCnt = 0;
if (whereFieldValue.length() > 0)
{
String sqlQuery = "SELECT " + selFieldName + " FROM " + fromTableName + " WHERE " + whereFieldName + " = '" + whereFieldValue + "'";
System.out.println("sqlQuery "+sqlQuery);
try
{
preparedStatement = conn.prepareStatement(sqlQuery);
resultSet = preparedStatement.executeQuery();
if(resultSet.next())
{
rowCnt++;
result = checkNull(resultSet.getString(selFieldName));
}
} catch (SQLException e)
{
e.printStackTrace();
}
finally
{
if (resultSet != null)
resultSet.close();resultSet = null;
if (preparedStatement != null)
preparedStatement.close();preparedStatement = null;
}
if(rowCnt == 0)
{
return "NORECFND";
}
}
System.out.println("getTableData result "+result);
return result;
}
}
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