Commit 0b3af05c authored by sgadve's avatar sgadve

For the Employee overtime and cancel logic

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@215488 ce508802-f39f-4f6c-b175-0d175dae99d5
parent c47e963c
package ibase.webitm.ejb.adm;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Time;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ibase.utility.BaseLogger;
import ibase.utility.E12GenericUtility;
import ibase.webitm.bean.adm.AttdProcCalcOtBean;
import ibase.webitm.bean.adm.CalcOtArgsBean;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.ITMException;
public class EmpOvertimeIC extends ValidatorEJB
{
E12GenericUtility genericUtility = new E12GenericUtility();
ITMDBAccessEJB itmdbAccessEJB = new ITMDBAccessEJB();
public String wfValData(String xmlString, String xmlString1, String xmlString2, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException
{
Document dom = null;
Document dom1 = null;
Document dom2 = null;
String errString = "";
try
{
if(xmlString != null && xmlString.trim().length() > 0)
{
dom = genericUtility.parseString(xmlString);
}
if(xmlString1 != null && xmlString1.trim().length() > 0)
{
dom1 = genericUtility.parseString(xmlString1);
}
if(xmlString2 != null && xmlString2.trim().length() > 0)
{
dom2 = genericUtility.parseString(xmlString2);
}
errString = wfValData(dom,dom1,dom2,objContext,editFlag,xtraParams);
}
catch(Exception e)
{
BaseLogger.log("0", null, null, "Exception EmpTransferSqlIc : [wfValData(S)] " + e.getMessage());
errString = genericUtility.createErrorString(e);
e.printStackTrace();
throw new ITMException(e);
}
return errString;
}
public String wfValData(Document dom, Document dom1, Document dom2,String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException
{
NodeList parentNodeList = null , childNodeList = null;
Node parentNode = null , childNode = null;
String childNodeName = "" , errCode = "", userId = "";
Connection con = null;
PreparedStatement pStmt = null;
ResultSet rs = null;
int currentFormNo = 0, childNodeListLen = 0 , columnCtr = 0 , rowCnt = 0;
ArrayList< String> otDateList = new ArrayList<>();
try
{
con = getConnection();
if(objContext != null && objContext.trim().length()>0)
{
currentFormNo = Integer.parseInt(objContext);
}
String sql = "", loginSite = "",calOtHrs;
String empCode = "", workSite= "",empStatus="",relieveDate,tranId ="",prdCode ="",otDate="";
String otDateFrStr = "", otDateToStr = "",lineNo = "",ls_filt_str="",otTime ="",otHrsTime="";
double counter = 0,userLvl = 0,lc_tot_aprvd_ottime = 0,otTimeInt = 0;
Timestamp otDateTs = null, otDateFr = null,otDateTo = null,relieveDateTs=null;
loginSite = getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
userId = getValueFromXTRA_PARAMS(xtraParams, "loginCode");
sql = "select usr_lev from users where code = ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, userId);
rs = pStmt.executeQuery();
while(rs.next())
{
userLvl = rs.getInt("usr_lev");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
switch(currentFormNo)
{
case 1:
parentNodeList = dom.getElementsByTagName("Detail1");
int parentNodeListLen = parentNodeList.getLength();
for(columnCtr = 0;columnCtr < parentNodeListLen;columnCtr++)
{
parentNode = parentNodeList.item(columnCtr);
childNodeList = parentNode.getChildNodes();
childNodeListLen = childNodeList.getLength();
for(rowCnt = 0; rowCnt < childNodeListLen ; rowCnt++)
{
childNode = childNodeList.item(rowCnt);
childNodeName = childNode.getNodeName();
BaseLogger.log("3", null, "", "childNodeNameSG ##"+childNodeName);
if("emp_code".equalsIgnoreCase(childNodeName))
{
empCode = E12GenericUtility.checkNull(genericUtility.getColumnValue("emp_code", dom));
if(empCode==null || empCode.trim().length() == 0)
{
errCode = itmdbAccessEJB.getErrorString("emp_code", "VTOTEMP001", userId, "", con);
break;
}
else
{
try
{
sql = "select case when status is null then ' ' else status end as emp_status,relieve_date from employee where emp_code = ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, empCode);
rs = pStmt.executeQuery();
while(rs.next())
{
counter++;
empStatus = rs.getString("emp_status");
relieveDate = rs.getString("relieve_date");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if(counter == 0)
{
errCode = itmdbAccessEJB.getErrorString("emp_code", "VTOTEMP002", userId, "", con);
break;
}
else if(empStatus != null && "S".equalsIgnoreCase(empStatus))
{
errCode = itmdbAccessEJB.getErrorString("emp_code", "VTOTEMP003", userId, "", con);
break;
}
else if(userLvl > 1)
{
sql = "select work_site from employee where emp_code = ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, empCode);
rs = pStmt.executeQuery();
while(rs.next())
{
workSite = rs.getString("work_site");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if("".equalsIgnoreCase(workSite) && workSite.trim().length()> 0 && !workSite.equalsIgnoreCase(loginSite))
{
errCode = itmdbAccessEJB.getErrorString("emp_code", "VMSITE10", userId, "", con);
break;
}
}
}
catch(Exception e)
{
errCode = itmdbAccessEJB.getErrorString("emp_code", "DS000", userId, "", con);
break;
}
}
try
{
if("".equals(errCode) && errCode.trim().length() == 0)
{
tranId = E12GenericUtility.checkNull(genericUtility.getColumnValue("tran_id", dom));
prdCode = E12GenericUtility.checkNull(genericUtility.getColumnValue("prd_code", dom));
if("".equalsIgnoreCase(tranId))
{
tranId = "*";
sql ="select count(*) as count from empotime where emp_code = ? and prd_code = ? and tran_id <> ? and ";
sql = sql+"case when status is null then 'N' else status end not in ('X' , 'A')";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, empCode);
pStmt.setString(2, prdCode);
pStmt.setString(3, tranId);
rs = pStmt.executeQuery();
while(rs.next())
{
counter = rs.getInt("count");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if(counter > 0)
{
errCode = itmdbAccessEJB.getErrorString("emp_code", "VTUNAPPTRN", userId, "", con);
break;
}
}
}
}
catch(Exception e)
{
errCode = itmdbAccessEJB.getErrorString("emp_code", "DS000", userId, "", con);
break;
}
}
}
}
case 2:
parentNodeList = dom.getElementsByTagName("Detail2");
int parentNodeListLen1 = parentNodeList.getLength();
for(columnCtr = 0;columnCtr < parentNodeListLen1;columnCtr++)
{
parentNode = parentNodeList.item(columnCtr);
childNodeList = parentNode.getChildNodes();
childNodeListLen = childNodeList.getLength();
for(rowCnt = 0; rowCnt < childNodeListLen ; rowCnt++)
{
childNode = childNodeList.item(rowCnt);
childNodeName = childNode.getNodeName();
System.out.println("childNodeNameSG12##"+childNodeName);
if("ot_date".equalsIgnoreCase(childNodeName))
{
otDate = E12GenericUtility.checkNull(genericUtility.getColumnValue("ot_date", dom2));
if("".equals(otDate))
{
errCode = itmdbAccessEJB.getErrorString("ot_date", "VTOTDATE01", userId, "", con);
break;
}
otDateTs = Timestamp.valueOf(genericUtility.getValidDateString(otDate,genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat())
+ " 00:00:00.0");
otDateFrStr = E12GenericUtility.checkNull(genericUtility.getColumnValue("ot_time_fr", dom1));
otDateFr = Timestamp.valueOf(genericUtility.getValidDateString(otDateFrStr,genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat())
+ " 00:00:00.0");
otDateToStr = E12GenericUtility.checkNull(genericUtility.getColumnValue("ot_time_to", dom1));
otDateTo = Timestamp.valueOf(genericUtility.getValidDateString(otDateToStr,genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat())
+ " 00:00:00.0");
if(otDateTs.compareTo(otDateFr) < 0 || otDateTs.compareTo(otDateTo) > 0)
{
errCode = itmdbAccessEJB.getErrorString("ot_date", "VTOTDATE", userId, "", con);
break;
}
else
{
relieveDateTs = null;
empCode = E12GenericUtility.checkNull(genericUtility.getColumnValue("emp_code", dom1));
try
{
sql ="select relieve_date from employee where emp_code = ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, empCode);
rs = pStmt.executeQuery();
while(rs.next())
{
relieveDateTs = rs.getTimestamp("relieve_date");
System.out.println("relieveDateTs"+relieveDateTs);
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if(relieveDateTs != null && otDateTs.compareTo(relieveDateTs) > 0)
{
errCode = itmdbAccessEJB.getErrorString("ot_date", "VTOTDATE02", userId, "", con);
break;
}
}
catch (Exception e)
{
errCode = itmdbAccessEJB.getErrorString("ot_date", "DS000", userId, "", con);
break;
}
}
if(errCode == null || errCode.trim().length() == 0)
{
empCode = E12GenericUtility.checkNull(genericUtility.getColumnValue("emp_code", dom2));
prdCode = E12GenericUtility.checkNull(genericUtility.getColumnValue("prd_code", dom2));
otTime = E12GenericUtility.checkNull(genericUtility.getColumnValue("ot_time", dom2));
lineNo = E12GenericUtility.checkNull(genericUtility.getColumnValue("line_no", dom2));
NodeList parentNodeList1 = null;
parentNodeList1 = dom2.getElementsByTagName("Detail2");
String childNodeNameDup = "";
int parentNodeListLen2 = parentNodeList1.getLength();
for(int columnCtr1 = 0;columnCtr1 < parentNodeListLen2;columnCtr1++)
{
Node parentNode1 = parentNodeList1.item(columnCtr);
NodeList childNodeList1 = parentNode1.getChildNodes();
int childNodeListLen1 = childNodeList1.getLength();
for(int rowCnt1 = 0; rowCnt1 < childNodeListLen1 ; rowCnt1++)
{
Node childNode1 = childNodeList1.item(rowCnt1);
childNodeNameDup = childNode1.getNodeName();
if ( childNode1.getFirstChild()!=null && childNode1.getFirstChild().getNodeValue()!=null )
{
otDate =childNode1.getFirstChild().getNodeValue();
}
if("ot_date".equalsIgnoreCase(childNodeNameDup))
{
if(otDateList.contains(otDate))
{
errCode = itmdbAccessEJB.getErrorString("ot_date", "VTMULTDET", userId, "", con);
break;
}
else
{
otDateList.add(otDate);
}
}
}
}
if(!"".equalsIgnoreCase(otTime))
{
otTimeInt = Double.parseDouble(otTime);
}
//otTimeInt = 0;
if(otTimeInt < 0)
{
lc_tot_aprvd_ottime = 0;
int ll_cnt= 0;
try
{
StringBuilder queryBuilder = new StringBuilder("select count(d.emp_code) as cnt , sum(case when d.ot_time is null then 0 else d.ot_time end) as sum");
queryBuilder.append(" from empotime_det d , empotime h where h.tran_id = d.tran_id and h.emp_code = ? and h.prd_code = ? and d.ot_date = ?");
queryBuilder.append(" and case when h.status is null then 'N' else h.status end in ('A')");
pStmt = con.prepareStatement(queryBuilder.toString());
pStmt.setString(1, empCode);
pStmt.setString(2, prdCode);
pStmt.setString(3, otDate);
rs = pStmt.executeQuery();
while(rs.next())
{
ll_cnt = rs.getInt("cnt");
lc_tot_aprvd_ottime = rs.getInt("sum");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if(ll_cnt > 0 && lc_tot_aprvd_ottime >= 0 &&
Math.abs(Integer.parseInt(otTime)) < lc_tot_aprvd_ottime)
{
errCode = itmdbAccessEJB.getErrorString("ot_date", "VTOTNEG01", userId, "", con);
break;
}
else if(ll_cnt == 0)
{
errCode = itmdbAccessEJB.getErrorString("ot_date", "VTOTNEG02", userId, "", con);
break;
}
}
catch(Exception e)
{
errCode = itmdbAccessEJB.getErrorString("ot_date", "DS000", userId, "", con);
break;
}
}
}
}
else if("ot_hours_time".equalsIgnoreCase(childNodeName))
{
otHrsTime = E12GenericUtility.checkNull(genericUtility.getColumnValue("ot_hours_time", dom2));
calOtHrs = E12GenericUtility.checkNull(genericUtility.getColumnValue("cal_ot_hrs_time", dom2));
double otHrs =0 ,calOtHr= 0;
if(otHrsTime == null || "".equals(otHrsTime))
{
otHrs = 0;
}
else
{
otHrs = Double.parseDouble(otHrsTime);
}
if(calOtHrs == null || "".equals(calOtHrs))
{
calOtHr = 0;
}
else
{
calOtHr = Double.parseDouble(calOtHrs);
}
if(otHrs == 0 || calOtHr == 0)
{
errCode = itmdbAccessEJB.getErrorString("ot_hours_time", "VTOTTIME01", userId, "", con);
break;
}
}
}
}
}
}
catch(Exception e)
{
BaseLogger.log("0", null,"","EmpOvertimeIC.wfValData()"+e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if(con != null)
{
con.close();
con = null;
}
}
catch(Exception e)
{
BaseLogger.log("0", null,"","EmpOvertimeIC.wfValData()");
}
}
return errCode;
}
public String itemChanged(String xmlString, String xmlStringHdr, String xmlStringAll, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException
{
Document dom = null, domHdr = null, domAll = null;
String valueXmlString = "";
try
{
if (xmlString != null && xmlString.trim().length() > 0)
{
dom = genericUtility.parseString(xmlString);
}
if (xmlStringHdr != null && xmlStringHdr.trim().length() > 0)
{
domHdr = genericUtility.parseString(xmlStringHdr);
}
if (xmlStringAll != null && xmlStringAll.trim().length() > 0)
{
domAll = genericUtility.parseString(xmlStringAll);
}
valueXmlString = itemChanged(dom, domHdr, domAll, objContext, currentColumn, editFlag, xtraParams);
}
catch (Exception e)
{
BaseLogger.log("0", null, null, "Exception :EmpOvertimeIC :itemChange(String xmlString):" + e.getMessage() + ":");
throw new ITMException(e);
}
return valueXmlString;
}
public String itemChanged(Document dom,Document dom1,Document dom2,String objContext,String currentColumn,String editFlag,String xtraParams) throws RemoteException,ITMException
{
StringBuffer valueXmlString = new StringBuffer();
String logInEmpCode = "",loginSite="",loginCode="",chgTerm="";
Connection con =null;
PreparedStatement pStmt =null;
ResultSet rs =null;
Timestamp currTs =null;
int currentFormNo=0;
Date frDate = null;
UtilMethods utils = new UtilMethods();
try
{
con = getConnection();
if (objContext != null && objContext.trim().length() > 0)
{
currentFormNo = Integer.parseInt(objContext);
}
logInEmpCode = getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode");
loginSite = getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
String userId = getValueFromXTRA_PARAMS(xtraParams,"loginCode");
valueXmlString.append("<?xml version=\"1.0\" encoding=''?>\r\n<Root>\r\n<header>\r\n<editFlag>");
valueXmlString.append(editFlag).append("</editFlag>\r\n</header>\r\n");
SimpleDateFormat sdfApplFormat = new SimpleDateFormat(genericUtility.getApplDateFormat());
SimpleDateFormat sdfDbFormat = new SimpleDateFormat(genericUtility.getDBDateFormat());
String prdCode = "",sql = "",empCode = "",empFname = "",empMname = "",empLname = "",workSite = "",frDateStr = "",toDate="";
String otDateStr = "",shift = "",tranDate = "",fdHrs = "",inTime = "",outTime = "",otHoursTime = "";
Date otDate = null,firstDate = null , lastDate = null;
Timestamp OtDateTimeStamp = null;
double userLvl = 0,liIntValue=0,lc_decvalue=0,lc_time=0,hours=0;
int dayNo = 0;
sql = "select usr_lev from users where code = ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, userId);
rs = pStmt.executeQuery();
while(rs.next())
{
userLvl = rs.getInt("usr_lev");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
switch(currentFormNo)
{
case 1:
valueXmlString.append("<Detail1>\r\n");
if("itm_default".equalsIgnoreCase(currentColumn))
{
if(utils.pos(xtraParams, "m_otdate_fr") > 0)
{
frDateStr = E12GenericUtility.checkNull(getValueFromXTRA_PARAMS(xtraParams, "m_otdate_fr"));
}
if(utils.pos(xtraParams, "~m_otdate_to") > 0)
{
toDate = E12GenericUtility.checkNull(getValueFromXTRA_PARAMS(xtraParams, "m_otdate_to"));
}
sql = "select code from period where fr_date <= ? and to_date >= ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, frDateStr);
pStmt.setString(2, toDate);
rs = pStmt.executeQuery();
while(rs.next())
{
prdCode = rs.getString("code");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
/*if( utils.pos(xtraParams, "prd_code") > 0 )
{
prdCode = E12GenericUtility.checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "prd_code"));
}
sql = "select fr_date, to_date from period where code =?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, prdCode);
rs = pStmt.executeQuery();
while(rs.next())
{
firstDate = rs.getDate("fr_date");
lastDate = rs.getDate("to_date");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}*/
Date currentDate = new Date();
valueXmlString.append( "<prd_code><![CDATA[" ).append(prdCode).append( "]]></prd_code>\r\n" );
// Not getting when the ot_date is take as blank
valueXmlString.append("<ot_date protect='1'><![CDATA[").append(toDate).append("]]></ot_date>\r\n");
valueXmlString.append("<ot_time_fr><![CDATA[").append(frDateStr).append("]]></ot_time_fr>\r\n");
valueXmlString.append("<ot_time_to><![CDATA[").append(toDate).append("]]></ot_time_to>\r\n");
valueXmlString.append("<status_date><![CDATA[").append(sdfApplFormat.format(currentDate)).append("]]></status_date>\r\n");
valueXmlString.append("<flag><![CDATA[").append("D").append("]]></flag>\r\n");
valueXmlString.append("<ot_hours><![CDATA[").append("0").append("]]></ot_hours>\r\n");
valueXmlString.append("<cal_ot_hours><![CDATA[").append("0").append("]]></cal_ot_hours>\r\n");
valueXmlString.append("<ot_hours_time><![CDATA[").append("0").append("]]></ot_hours_time>\r\n");
valueXmlString.append("<cal_ot_hrs_time><![CDATA[").append("0").append("]]></cal_ot_hrs_time>\r\n");
valueXmlString.append("<proc_no><![CDATA[").append("0").append("]]></proc_no>\r\n");
valueXmlString.append( "<chg_date><![CDATA[" ).append(sdfApplFormat.format(currentDate).toString()).append( "]]></chg_date>\r\n" );
valueXmlString.append( "<chg_user><![CDATA[" ).append(loginCode).append( "]]></chg_user >\r\n" );
valueXmlString.append( "<chg_term><![CDATA[" ).append(chgTerm).append( "]]></chg_term>\r\n" );
}
else if("emp_code".equalsIgnoreCase(currentColumn))
{
empCode = E12GenericUtility.checkNull(genericUtility.getColumnValue("emp_code", dom));
sql = "select emp_lname, emp_fname, emp_mname, work_site from employee where emp_code =?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, empCode);
rs = pStmt.executeQuery();
while(rs.next())
{
empFname = rs.getString("emp_fname");
empMname = rs.getString("emp_mname");
empLname = rs.getString("emp_lname");
workSite = rs.getString("work_site");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if(userLvl <= 1 || loginSite.equalsIgnoreCase(workSite))
{
valueXmlString.append("<emp_lname><![CDATA[").append(empLname).append("]]></emp_lname>\r\n");
valueXmlString.append("<emp_fname><![CDATA[").append(empFname).append("]]></emp_fname>\r\n");
valueXmlString.append("<emp_mname><![CDATA[").append(empMname).append("]]></emp_mname>\r\n");
valueXmlString.append("<work_site><![CDATA[").append(workSite).append("]]></work_site>\r\n");
}
else
{
valueXmlString.append("<emp_lname><![CDATA[").append("").append("]]></emp_lname>\r\n");
valueXmlString.append("<emp_fname><![CDATA[").append("").append("]]></emp_fname>\r\n");
valueXmlString.append("<emp_mname><![CDATA[").append("").append("]]></emp_mname>\r\n");
valueXmlString.append("<work_site><![CDATA[").append("").append("]]></work_site>\r\n");
}
}
else if("ot_date".equalsIgnoreCase(currentColumn))
{
otDateStr = E12GenericUtility.checkNull(genericUtility.getColumnValue("ot_date", dom));
sql = "select code from period where fr_date <= ? and to_date >= ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, otDateStr);
pStmt.setString(2, otDateStr);
rs = pStmt.executeQuery();
while(rs.next())
{
prdCode = rs.getString("code");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
valueXmlString.append("<prd_code><![CDATA[").append(prdCode).append("]]></prd_code>\r\n");
}
valueXmlString.append("</Detail1>\r\n");
case 2:
valueXmlString.append("<Detail2>\r\n");
String ls_prd_code = E12GenericUtility.checkNull(genericUtility.getColumnValue("prd_code", dom1));
if("itm_default".equalsIgnoreCase(currentColumn))
{
empCode = E12GenericUtility.checkNull(genericUtility.getColumnValue("emp_code", dom1 , "1"));
sql = "select emp_lname, emp_fname, emp_mname from employee where emp_code =?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, empCode);
rs = pStmt.executeQuery();
while(rs.next())
{
empFname = rs.getString("emp_fname");
empMname = rs.getString("emp_mname");
empLname = rs.getString("emp_lname");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
valueXmlString.append("<emp_code><![CDATA[").append(empCode).append("]]></emp_code>\r\n");
valueXmlString.append("<emp_lname><![CDATA[").append(empLname).append("]]></emp_lname>\r\n");
valueXmlString.append("<emp_fname><![CDATA[").append(empFname).append("]]></emp_fname>\r\n");
valueXmlString.append("<emp_mname><![CDATA[").append(empMname).append("]]></emp_mname>\r\n");
valueXmlString.append("<cal_ot_hrs_time><![CDATA[").append("0").append("]]></cal_ot_hrs_time>\r\n");
valueXmlString.append("<cal_ot_time><![CDATA[").append("0").append("]]></cal_ot_time>\r\n");
valueXmlString.append("<cal_ot_hrs_time protect='1'><![CDATA[").append(currentFormNo).append("]]></cal_ot_hrs_time>\r\n");
valueXmlString.append("<cal_ot_time protect='1'><![CDATA[").append(currentFormNo).append("]]></cal_ot_time>\r\n");
valueXmlString.append("<approved_flag><![CDATA[").append("N").append("]]></approved_flag>\r\n");
}
else if("itm_defaultedit".equalsIgnoreCase(currentColumn))
{
valueXmlString.append("<cal_ot_hrs_time protect='1'><![CDATA[").append(currentFormNo).append("]]></cal_ot_hrs_time>\r\n");
valueXmlString.append("<cal_ot_time protect='1'><![CDATA[").append(currentFormNo).append("]]></cal_ot_time>\r\n");
}
else if("ot_date".equalsIgnoreCase(currentColumn))
{
otDateStr = E12GenericUtility.checkNull(genericUtility.getColumnValue("ot_date", dom2));
OtDateTimeStamp = Timestamp.valueOf(genericUtility.getValidDateString(otDateStr,genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat())
+ " 00:00:00.0");
empCode = E12GenericUtility.checkNull(genericUtility.getColumnValue("emp_code", dom2));
otDate = sdfApplFormat.parse(otDateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(otDate);
dayNo = calendar.get(Calendar.DAY_OF_WEEK);
valueXmlString.append("<day_no><![CDATA[").append(dayNo).append("]]></day_no>\r\n");
sql = "select shift from attendance_day where emp_code = ? and attd_date = ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, empCode);
pStmt.setString(2, otDateStr);
rs = pStmt.executeQuery();
while(rs.next())
{
shift = E12GenericUtility.checkNull(rs.getString("shift"));
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if(shift.length() == 0)
{
sql = "select shift from work_shift where emp_code = ? and from_dt <= ? and to_dt >= ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, empCode);
pStmt.setString(2, otDateStr);
pStmt.setString(3, otDateStr);
rs = pStmt.executeQuery();
while(rs.next())
{
shift = E12GenericUtility.checkNull(rs.getString("shift"));
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if(shift.length() == 0)
{
StringBuilder sqlQueryBuilder = new StringBuilder("select eff_date as tran_date , work_shift__to from emp_employ_events where emp_code = ? and eff_date <= ? and confirmed = ?");
sqlQueryBuilder.append(" union select tran_date,work_shift from employee_det_change where emp_code = ? and tran_date <= ? and status = ? order by tran_date desc");
pStmt = con.prepareStatement(sqlQueryBuilder.toString());
pStmt.setString(1, empCode);
pStmt.setString(2, otDateStr);
pStmt.setString(3, "Y");
pStmt.setString(4, empCode);
pStmt.setString(5, otDateStr);
pStmt.setString(6, "C");
rs = pStmt.executeQuery();
while(rs.next())
{
tranDate = E12GenericUtility.checkNull(rs.getString("tran_date"));
shift = E12GenericUtility.checkNull(rs.getString("work_shift__to"));
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if(shift.length() == 0)
{
StringBuilder sqlQueryBuilder1 = new StringBuilder("select eff_date as tran_date , work_shift__fr from emp_employ_events where emp_code = ? and eff_date > ? and confirmed = ?");
sqlQueryBuilder1.append(" union select tran_date,work_shift_O from employee_det_change where emp_code = ? and tran_date > ? and status = ? order by tran_date ");
pStmt = con.prepareStatement(sqlQueryBuilder1.toString());
pStmt.setString(1, empCode);
pStmt.setString(2, otDateStr);
pStmt.setString(3, "Y");
pStmt.setString(4, empCode);
pStmt.setString(5, otDateStr);
pStmt.setString(6, "C");
rs = pStmt.executeQuery();
while(rs.next())
{
tranDate = E12GenericUtility.checkNull(rs.getString("tran_date"));
shift = E12GenericUtility.checkNull(rs.getString("work_shift__to"));
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
}
}
}
sql = "select fd_hrs, in_time, out_time from workshft where day_no = ? and shift = ?";
pStmt = con.prepareStatement(sql);
pStmt.setInt(1, dayNo);
pStmt.setString(2, shift);
rs = pStmt.executeQuery();
while(rs.next())
{
fdHrs = E12GenericUtility.checkNull(rs.getString("fd_hrs"));
inTime = E12GenericUtility.checkNull(rs.getString("in_time"));
outTime = E12GenericUtility.checkNull(rs.getString("out_time"));
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
valueXmlString.append("<shift><![CDATA[").append(shift).append("]]></shift>\r\n");
valueXmlString.append("<shift_time><![CDATA[").append(fdHrs).append("]]></shift_time>\r\n");
valueXmlString.append("<ot_time_fr><![CDATA[").append(otDateStr).append("]]></ot_time_fr>\r\n");
valueXmlString.append("<ot_time_to><![CDATA[").append(otDateStr).append("]]></ot_time_to>\r\n");
valueXmlString.append("<in_time><![CDATA[").append(inTime).append("]]></in_time>\r\n");
valueXmlString.append("<out_time><![CDATA[").append(outTime).append("]]></out_time>\r\n");
firstDate = sdfApplFormat.parse(genericUtility.getColumnValue("ot_time_fr", dom2));
lastDate = sdfApplFormat.parse(genericUtility.getColumnValue("ot_time_to", dom2));
try
{
CalcOtArgsBean lstrCalcOtArgs = new CalcOtArgsBean();
AttdProcCalcOtBean lstrAttdProcCalcOt = new AttdProcCalcOtBean();
AttendanceProcess attendanceProcess = new AttendanceProcess();
lstrCalcOtArgs.setEmpCode(empCode);
lstrCalcOtArgs.setPrdCode(ls_prd_code);
lstrCalcOtArgs.setProcDate(OtDateTimeStamp);
lstrCalcOtArgs.setPrdFirstDate(new Timestamp(firstDate.getTime()));
lstrCalcOtArgs.setPrdLastDate(new Timestamp(lastDate.getTime()));
lstrCalcOtArgs.setShiftCode(shift);
lstrAttdProcCalcOt = attendanceProcess.gbfGetOt(lstrCalcOtArgs, xtraParams, con);
System.out.println("lstrAttdProcCalcOt.getCalOtHrsTime()"+lstrAttdProcCalcOt.getCalOtHrsTime());
System.out.println("lstrAttdProcCalcOt.getOtTime()"+lstrAttdProcCalcOt.getOtTime());
valueXmlString.append("<cal_ot_time><![CDATA[").append(lstrAttdProcCalcOt.getOtTime()).append("]]></cal_ot_time>\r\n");
valueXmlString.append("<cal_ot_hrs_time><![CDATA[").append(lstrAttdProcCalcOt.getCalOtHrsTime()).append("]]></cal_ot_hrs_time>\r\n");
valueXmlString.append("<ot_time_str><![CDATA[").append(lstrAttdProcCalcOt.getOtTimeStr()).append("]]></ot_time_str>\r\n");
}
catch(Exception e)
{
valueXmlString.append("</Detail2>\r\n");
valueXmlString.append("</Root>\r\n");
return valueXmlString.toString();
}
}
else if("ot_hours_time".equalsIgnoreCase(currentColumn))
{
otHoursTime = E12GenericUtility.checkNull(genericUtility.getColumnValue("ot_hours_time", dom));
lc_time = Double.parseDouble(otHoursTime);
liIntValue = lc_time;
lc_decvalue = lc_time - liIntValue;
hours = (100 * lc_decvalue) / 60;
hours = liIntValue + hours;
valueXmlString.append("<ot_time><![CDATA[").append(hours).append("]]></ot_time>\r\n");
}
valueXmlString.append("</Detail2>\r\n");
}
valueXmlString.append("</Root>\r\n");
}
catch(Exception e)
{
BaseLogger.log("0", null, null, "Exception :EmpOvertimeIC :itemChange(String xmlString):" + e.getMessage() + ":");
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if(con != null)
{
con.close();
con = null;
}
}
catch(Exception e)
{
BaseLogger.log("0", null, null, "Exception :EmpOvertimeIC :itemChange(String xmlString):" + e.getMessage() + ":");
}
}
return valueXmlString.toString();
}
}
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 ibase.utility.BaseLogger;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.utility.ITMException;
public class EmpOvertimeCancel extends ActionHandlerEJB
{
ITMDBAccessEJB itmdbAccessEJB = new ITMDBAccessEJB();
E12GenericUtility genericUtility = new E12GenericUtility();
public String cancel(String tranId ,String xtraParams , String forcedFlag)
{
System.out.println("Inside the cancel logic"+tranId);
Connection conn = null;
String errCode = "";
try
{
conn = getConnection();
errCode = gbf_post_logic(tranId, tranId, xtraParams,conn);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if(conn != null)
{
conn.close();
conn = null;
}
}
catch(Exception e)
{
BaseLogger.log("0", null, "", "Exception"+e);
}
}
return errCode;
}
public String gbf_post_logic(String as_tranid_fr, String as_tranid_to, String as_extra_arg,Connection con) throws ITMException,RemoteException
{
String ls_errcode = "" , ls_tranid = "",userId = "";
userId = genericUtility.getValueFromXTRA_PARAMS(as_extra_arg, "loginCode");
try
{
if(as_tranid_fr.equalsIgnoreCase(as_tranid_to))
{
ls_tranid = as_tranid_fr;
ls_errcode = gbf_cancel_overtime(ls_tranid , 2, as_extra_arg, con) ;
}
if(ls_errcode.trim().length() > 0)
{
return ls_errcode;
}
else
{
ls_errcode = "VTMCAN";
return ls_errcode;
}
}
catch (Exception e)
{
BaseLogger.log("0",null,"","EmpOvertimeCancel.gbf_post_logic()"+e);
}
ls_errcode = itmdbAccessEJB.getErrorString("", "VTMCAN", userId, "", con);
return ls_errcode;
}
public String gbf_cancel_overtime(String as_tranid, int ai_commit,String xtraParams,Connection con)throws ITMException,RemoteException
{
String ls_tran_id,ls_status="",ls_errcode = "",sql="",userId="";
PreparedStatement pStmt = null;
ResultSet rs = null;
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
try
{
try
{
sql ="select status from empotime where tran_id = ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, as_tranid);
rs = pStmt.executeQuery();
while(rs.next())
{
ls_status = rs.getString("status");
}
System.out.println("ls_status"+ls_status);
}
catch(Exception e)
{
return ls_errcode;
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
if("A".equalsIgnoreCase(ls_status))
{
ls_errcode ="VTMCONF1";
}
else if("X".equalsIgnoreCase(ls_status))
{
ls_errcode = "VTOTCANC02";
}
else if("P".equalsIgnoreCase(ls_status))
{
ls_errcode = "VTMPROC";
}
else if("A".equalsIgnoreCase(ls_status))
{
ls_errcode = "VTAPPR05";
}
if(ls_errcode != null && ls_errcode.trim().length() > 0)
{
ls_errcode = itmdbAccessEJB.getErrorString("",ls_errcode, userId, "", con);
}
else
{
if("A".equalsIgnoreCase(ls_status))
{
try
{
sql ="update empotime set status= ? where tran_id= ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, "X");
pStmt.setString(2, as_tranid);
int i = pStmt.executeUpdate();
if(i > 0)
{
con.commit();
}
else
{
con.rollback();
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
}
catch(Exception e)
{
ls_errcode = itmdbAccessEJB.getErrorString("", "DS000", userId, "", con);
return ls_errcode;
}
}
else if("".equalsIgnoreCase(ls_status))
{
try
{
sql ="update empotime set status= ? where tran_id= ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, "X");
pStmt.setString(2, as_tranid);
int i = pStmt.executeUpdate();
if(i > 0)
{
con.commit();
}
else
{
con.rollback();
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
}
catch(Exception e)
{
ls_errcode = itmdbAccessEJB.getErrorString("", "DS000", userId, "", con);
return ls_errcode;
}
}
else
{
try
{
sql ="update empotime set status= ? where tran_id= ?";
pStmt = con.prepareStatement(sql);
pStmt.setString(1, "X");
pStmt.setString(2, as_tranid);
int i = pStmt.executeUpdate();
if(i > 0)
{
con.commit();
}
else
{
con.rollback();
}
if(pStmt != null)
{
pStmt.close();
pStmt = null;
}
}
catch(Exception e)
{
ls_errcode = itmdbAccessEJB.getErrorString("", "DS000", userId, "", con);
return ls_errcode;
}
}
if(ls_errcode != null && ls_errcode.trim().length() > 0)
{
if(ai_commit == 2)
{
// rollback is what
}
}
else
{
if(ai_commit == 2)
{
// commit is what
}
}
}
}
catch(Exception e)
{
BaseLogger.log("0",null,"","EmpOvertimeCancel.gbf_cancel_overtime()"+e);
}
System.out.println("########ls_errcode1"+ls_errcode);
return ls_errcode;
}
}
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