Commit b75e40a5 authored by mjadhav's avatar mjadhav

generating pur milestone through scheduler


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@98222 ce508802-f39f-4f6c-b175-0d175dae99d5
parent b5a64c45
/*
* Request Id=D15CSUN015
* developer : mahendra
*
* This scheduler generate purchase milestone (PUR_MILESTN)
*
*
*
*/
package ibase.webitm.ejb.fin;
import ibase.scheduler.utility.interfaces.Schedule;
import ibase.system.config.ConnDriver;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ITMDBAccessLocal;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import java.io.File;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
import java.sql.Timestamp;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
//import com.sun.jmx.snmp.Timestamp;
import ibase.webitm.ejb.dis.POrderMilestone;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.utility.CommonConstants;
import javax.naming.InitialContext;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.system.config.AppConnectParm;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
public class GenPurcMilestoneSch extends ValidatorEJB implements Schedule {
E12GenericUtility e12GenericUtility = new E12GenericUtility();
UtilMethods utilmethod = new UtilMethods();
@Override
public String schedule(HashMap arg0) throws Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public String schedulePriority(String arg0) throws Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public String schedule(String scheduleParamXML) throws Exception {
// TODO Auto-generated method stub
System.out.println("scheduleParamXML:::"+scheduleParamXML);
ibase.utility.UserInfoBean userInfo = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
SimpleDateFormat sdf;
String sql = "",retString="",finParamTranType="",filePath="",updResult="",paymentSql="",purcOrder="",loginCode="";
String tranId="",xtraParams="",chgUser="",loginSiteCode="";
PreparedStatement pstmt = null;
ResultSet rs = null;
String siteCodeList="",siteCode="",paymentId="",chgTerm="";
ArrayList<String> purcOrdList = new ArrayList<String>();
ArrayList<String> purcSuccList = new ArrayList<String>();
ArrayList<String> purcFailedList = new ArrayList<String>();
FinCommon finCommon = new FinCommon();
userInfo = new ibase.utility.UserInfoBean( scheduleParamXML );
conn = connDriver.getConnectDB("DriverITM");
try
{
Document dom = null;
Node currDetail = null ;
int noOfParam=0;
GenericUtility genericUtility=GenericUtility.getInstance();
System.out.println("scheduleParamXML-----"+scheduleParamXML);
dom=genericUtility.parseString(scheduleParamXML);
NodeList paramList = dom.getElementsByTagName( "SCHEDULE" );
noOfParam = paramList.getLength();
NodeList parentNodeList = null,childNodeList = null;
Node parentNode = null,childNode = null;
int childNodeListLength = 0;
String childNodeName = null;
purcOrdList.clear();
loginCode=e12GenericUtility.getColumnValue("loginCode", dom);
System.out.println("userInfo.getLoginCode() :"+userInfo.getLoginCode());
System.out.println("userInfo.getRemoteHost() :"+userInfo.getRemoteHost());
chgTerm=userInfo.getRemoteHost();
System.out.println("");
System.out.println("loginCode @@@ :"+loginCode);
xtraParams = "loginCode="+userInfo.getLoginCode()+"~~termId="+userInfo.getRemoteHost()+"~~loginSiteCode="+loginSiteCode+"~~loginEmpCode="+userInfo.getEmpCode();
chgUser=userInfo.getLoginCode();
chgTerm=userInfo.getRemoteHost();
sql =" select po.purc_order from porder po ,pord_pay_term pterm where PTERM.PURC_ORDER = PO.PURC_ORDER " +
" AND case when pterm.VOUCH_CREATED is null then 'N' else pterm.VOUCH_CREATED end = 'N' " +
" and pterm.rel_agnst in ('05','06') and po.confirmed='Y' and po.status not in ('C','X') " +
" and not exists (select 1 from PUR_MILSTN i where i.purc_order = po.purc_order and i.line_no__ord = pterm.line_no) " +
" and pterm.task_code is not null "
//"and to_date(po.conf_date + pterm.rel_after,'DD-Mon-YY') <= to_date(sysdate) ";
+ " and po.conf_date + pterm.rel_after <= sysdate";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next())
{
purcOrdList.add(rs.getString("purc_order"));
// purcOrdList.add("810LNF0041");
//purcOrdList.add("810LNF0077");
//purcOrdList.add("810LNF0045");
}
System.out.println("purcOrdList for purchase order :"+purcOrdList);
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(purcOrdList.size() <= 0)
{
System.out.println("Error: System not found data to saved in purchase milestone");
}
for (int i = 0; i < purcOrdList.size(); i++)
//for (int i = 0; i < 1; i++)
{
purcOrder = purcOrdList.get(i);
System.out.println("Purchase Order :"+purcOrder);
retString=insertPurMilestone(purcOrder,chgUser,chgTerm,conn);
System.out.println("retString :"+retString);
if(retString.indexOf("Success") > -1)
{
conn.commit();
purcSuccList.add(purcOrder);
}
else
{
conn.rollback();
purcFailedList.add(purcOrder);
}
}//end of for sitecodelist for invoice
System.out.println("List of success record :"+purcSuccList);
System.out.println("List of failed record :"+purcFailedList);
/*---------------------------------------------------------------------------------------------------------------------*/
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if(conn != null)
{
conn.close();
}
if(pstmt != null)
{
pstmt.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
return "";
}
//
public String insertPurMilestone(String purcOrder,String chgUser,String chgTerm,Connection conn) throws Exception
{
E12GenericUtility e12GenericUtility = new E12GenericUtility();
PreparedStatement pstmt = null,pstmt1=null,pstmt2=null,pstmt3=null,pstmt4=null;
ResultSet rs = null,rs1=null,rs2=null,rs3=null,rs4=null;
StringBuffer xmlBuff = null;
Date currentDate = new Date();
SimpleDateFormat sdf;
String type="",amtType="",relAfter="",acctCode="",cctrCode="",taxClass="",lineNoOrd="",allowOverride="",wfStatus="",lineNoPrev="";
String taxChap="",taxEnv="",siteCodeAdv="",taskCode="",sql="",xmlString="",retString="",remarks="",suppCode="",relAgainst="";
String taskCodePrv="",detailsXml="",tranIdMilestn="",detailsResult="",tranIdCurr="",relAgainstPrv="";
double odtAmt=0.0,totAmt=0.0,calAmt=0.0,relAmt=0.0,taxAmt=0.0;
Date mistnDueDate=null,mistnComplDate=null,dueDate=null;
int conRcpCnt=0,cnt=0,dupCnt=0;
long dateDiff=0;
int delayDays=0;
Date dueDateUpd=null;
boolean hasDelayActivity=false,isSavedMilstn=false,existMilesRec=false,calDelayActivity=false;
boolean delayDetailsRec = false;
Timestamp dueDateOrg = null,compDateOrg=null,reschDate=null;
int lineNo=0, totdelayDays=0;
String taskDelay="";
try
{
System.out.println("insertPurMilestone called for purchase order :"+purcOrder);
sdf = new SimpleDateFormat(e12GenericUtility.getApplDateFormat());
sql = "SELECT pterm.purc_order, pterm.line_no ,pterm.line_no__prev , pterm.type ,pterm.rel_agnst ,pterm.amt_type ," +
" pterm.rel_amt ,pterm.rel_after ,pterm.vouch_created ,pterm.task_code ,pterm.due_date ," +
" pterm.adj_method ,pterm.acct_code ,pterm.cctr_code ,pterm.tax_class ,pterm.tax_chap , " +
" pterm.tax_env ,pterm.retention_perc ,pterm.site_code__adv , pterm.adj_perc,pterm.remarks,pterm.allow_override " +
" , po.supp_code,po.ord_amt,po.tot_amt,po.tax_amt,pdet.acct_code__ap_adv as acct_code ,pdet.cctr_code__ap_adv as cctr_code " +
" FROM PORD_PAY_TERM pterm,PORDER po,porddet pdet " +
" WHERE PTERM.PURC_ORDER = PO.PURC_ORDER and po.PURC_ORDER = pdet.PURC_ORDER and pterm.PURC_ORDER = ?" +
" AND case when pterm.VOUCH_CREATED is null then 'N' else pterm.VOUCH_CREATED end = 'N'" +
" and po.confirmed='Y' and po.status not in ('C','X')";
//" and to_char(po.conf_date + pterm.rel_after,'DD-Mon-YY') <= to_char(sysdate)";
//" and po.conf_date + pterm.rel_after <= sysdate";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, purcOrder);
rs = pstmt.executeQuery();
while(rs.next())
{
cnt++;
System.out.println("count for No. record in PORD_PAY_TERM: purchase order :"+purcOrder+" count :"+cnt);
lineNoOrd=checkNull(rs.getString("line_no"));
lineNoPrev=rs.getString("line_no__prev");
type=checkNull(rs.getString("type"));
amtType=checkNull(rs.getString("amt_type"));
relAgainst=checkNull(rs.getString("rel_agnst"));
relAmt=rs.getDouble("rel_amt");
relAfter=checkNull(rs.getString("rel_after"));
acctCode=checkNull(rs.getString("acct_code"));
cctrCode=checkNull(rs.getString("cctr_code"));
taxClass=checkNull(rs.getString("tax_class"));
taxChap=checkNull(rs.getString("tax_chap"));
taxEnv=checkNull(rs.getString("tax_env"));
siteCodeAdv=checkNull(rs.getString("site_code__adv"));
taskCode=checkNull(rs.getString("task_code"));
dueDate=rs.getDate("due_date");
remarks=checkNull(rs.getString("remarks"));
allowOverride=checkNull(rs.getString("allow_override"));
suppCode=checkNull(rs.getString("supp_code"));
odtAmt = rs.getDouble("ord_amt");
totAmt = rs.getDouble("tot_amt");
taxAmt = rs.getDouble("tax_amt");
System.out.println("lineNoOrd :"+lineNoOrd+" @lineNoPrev: "+lineNoPrev+" @amtType :"+amtType);
System.out.println("relAmt :"+relAmt+" @relAgainst: "+relAgainst+" @relAfter :"+relAfter);
System.out.println("dueDate :"+dueDate + " @taskCode :"+taskCode);
System.out.println("odtAmt :"+odtAmt+" @totAmt: "+totAmt+" @taxAmt :"+taxAmt);
if(amtType.equalsIgnoreCase("01")) // % of base
{
System.out.println(" % of base amount =(odtAmt * relAmt)/100;");
calAmt=(odtAmt * relAmt)/100;
}
else if(amtType.equalsIgnoreCase("02"))// % of net
{
System.out.println("% of net amount=(totAmt * relAmt)/100;");
calAmt=(totAmt * relAmt)/100;
}
else if (amtType.equalsIgnoreCase("03"))// fixed amount
{
System.out.println("fixed amount = relAmt ");
calAmt=relAmt;
}
else if(amtType.equalsIgnoreCase("04"))// % of full tax
{
System.out.println("% of full tax = (totAmt * relAmt)/100 + taxAmt");
calAmt = (totAmt * relAmt)/100 + taxAmt;
}
System.out.println("calculated amount is : "+calAmt);
//lineNoPrev : check dependecy of privious activity
//taskCodePrv : previous activity task code
//If lineNoprev is null then current activity not dependant of previous activity
//If lineNoprev is not null then current activity dependant of previous activity
System.out.println("lineNoPrev :"+lineNoPrev);
isSavedMilstn=true;//saved current activity.
existMilesRec=false;//check exisiting activity
calDelayActivity=false;//check previous delay activity
delayDetailsRec=false;
if(lineNoPrev != null)
{
/*sql= " select task_code,rel_agnst from PORD_PAY_TERM where purc_order=? and line_no=? ";
pstmt4 = conn.prepareStatement(sql);
pstmt4.setString(1, purcOrder);
pstmt4.setString(2, lineNoPrev);
rs4 = pstmt4.executeQuery();
if(rs4.next())
{
taskCodePrv = rs4.getString("task_code");
relAgainstPrv = rs4.getString("rel_agnst");
}
rs4.close();
rs4 = null;
pstmt4.close();
pstmt4 = null;
System.out.println("taskCodePrv :"+taskCodePrv);*/
/*sql= "select due_date,compl_date,wf_status,tran_id from pur_milstn where purc_order=? " +
" and task_code=? and line_no__ord=?";*/
sql= "select due_date,compl_date,wf_status,tran_id from pur_milstn where purc_order=? " +
" and line_no__ord=?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, purcOrder);
//pstmt1.setString(2, taskCodePrv);
pstmt1.setString(2, lineNoPrev);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
existMilesRec=true;
mistnDueDate=rs1.getDate("due_date");
mistnComplDate=rs1.getDate("compl_date");
wfStatus = rs1.getString("wf_status");
tranIdMilestn = rs1.getString("tran_id");
System.out.println("mistnDueDate :"+mistnDueDate);
System.out.println("wfStatus :"+wfStatus);
//isSavedMilstn =false;//existing previous activity must not be stored in pur_milstn.
if(mistnDueDate != null && mistnComplDate != null && wfStatus.equalsIgnoreCase("C") )
{
System.out.println("Previous activity is completed!!!");
totdelayDays=totDelayActivity(purcOrder,conn);
//java.sql.Timestamp dueDatePenTstm=java.sql.Timestamp.valueOf(sdf.format(dueDatePen).toString() + " 00:00:00.0");
System.out.println("totdelayDays :"+totdelayDays);
dueDateUpd = utilmethod.RelativeDate(dueDate, totdelayDays);
System.out.println("dueDateUpd :"+dueDateUpd);
//if(sdf.format(dueDateUpd).toString().equals(sdf.format(currentDate).toString()))
/*if(sdf.format(dueDateUpd).toString().equals("11/07/15"))
{*/
isSavedMilstn=true;
delayDetailsRec=true;
//}
/*else
{
isSavedMilstn=false;
System.out.println("Error :updated current activity due date is not equal to current date");
}*/
//calDelayActivity=true;
//detailsResult=calDelayDueDate(mistnDueDate,mistnComplDate,taskCodePrv,tranIdMilestn,conn);
//recalcDueDate();
//isSavedMilstn=true;//saved current activity.
}
else
{
System.out.println("Incomplete previous activity");
isSavedMilstn=false;
//return "failed";
}
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("existMilesRec :"+existMilesRec);
if(!existMilesRec)
{
isSavedMilstn=false;//if activity is dependant and previous activty not exist in pur milestone,then current actvity not saved.
}
//To check if release against is on receipt confirmation
System.out.println("relAgainst :"+relAgainst);
if(relAgainstPrv.equalsIgnoreCase("02"))
{
System.out.println("check previous activity on receipt confirmation......");
sql= " select count(*) as cnt from porcp where purc_order=? and confirmed='Y' ";
pstmt2 = conn.prepareStatement(sql);
pstmt2.setString(1, purcOrder);
rs2 = pstmt2.executeQuery();
if(rs2.next())
{
conRcpCnt = rs2.getInt("cnt");
}
rs2.close();
rs2 = null;
pstmt2.close();
pstmt2 = null;
if(conRcpCnt > 0)
{
System.out.println("prevoius activity on receipt confirmation is completed,Now proceed to saved current activity. ");
isSavedMilstn=true;
}
}//relAgainst is receipt confirmation
}//end of if for lineNoPrev not null
else
{
System.out.println("Activity is not dependant on previous activity.");
dueDateUpd=dueDate;
}
System.out.println("check duplicate activity in purcase milestone......");
sql= "select count(*) as count from pur_milstn where purc_order=? " +
" and task_code=? and line_no__ord=?";
pstmt3 = conn.prepareStatement(sql);
pstmt3.setString(1, purcOrder);
pstmt3.setString(2, taskCode);
pstmt3.setString(3, lineNoOrd);
rs3 = pstmt3.executeQuery();
if(rs3.next())
{
dupCnt = rs3.getInt("count");
}
rs3.close();
rs3 = null;
pstmt3.close();
pstmt3 = null;
if(dupCnt > 0)
{
isSavedMilstn=false;
System.out.println("duplicate activity in purchase milestone !!");
}
//taskCodePrv=taskCode; //set previous task code
System.out.println("isSavedMilstn :"+isSavedMilstn);
if(isSavedMilstn && (relAgainst.equalsIgnoreCase("05") || relAgainst.equalsIgnoreCase("06")))
{
xmlBuff = new StringBuffer();
System.out.println("--XML CREATION !!!!!--");
xmlBuff.append("<?xml version='1.0' encoding='ISO-8859-1'?>\n");
xmlBuff.append("<DocumentRoot>");
xmlBuff.append("<description>").append("Datawindow Root").append("</description>");
xmlBuff.append("<group0>");
xmlBuff.append("<description>").append("Group0 description").append("</description>");
xmlBuff.append("<Header0>");
xmlBuff.append("<objName><![CDATA[").append("pur_milstn").append("]]></objName>");
xmlBuff.append("<pageContext><![CDATA[").append("1").append("]]></pageContext>");
xmlBuff.append("<objContext><![CDATA[").append("1").append("]]></objContext>");
xmlBuff.append("<editFlag><![CDATA[").append("A").append("]]></editFlag>");
xmlBuff.append("<focusedColumn><![CDATA[").append("").append("]]></focusedColumn>");
xmlBuff.append("<action><![CDATA[").append("SAVE").append("]]></action>");
xmlBuff.append("<elementName><![CDATA[").append("").append("]]></elementName>");
xmlBuff.append("<keyValue><![CDATA[").append("1").append("]]></keyValue>");
xmlBuff.append("<taxKeyValue><![CDATA[").append("").append("]]></taxKeyValue>");
xmlBuff.append("<saveLevel><![CDATA[").append("1").append("]]></saveLevel>");
xmlBuff.append("<forcedSave><![CDATA[").append(true).append("]]></forcedSave>");
xmlBuff.append("<taxInFocus><![CDATA[").append(false).append("]]></taxInFocus>");
xmlBuff.append("<description>").append("Header0 members").append("</description>");
/*---Detail1 screen,starts----*/
xmlBuff.append("<Detail1 dbID=\"\" domID=\"1\" objName=\"pur_milstn\" objContext=\"1\">");
xmlBuff.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\"/>");
xmlBuff.append("<tran_id/>");
xmlBuff.append("<tran_date><![CDATA["+ sdf.format(currentDate).toString() +"]]></tran_date>");
xmlBuff.append( "<purc_order><![CDATA["+purcOrder+"]]></purc_order>");
xmlBuff.append( "<line_no__ord><![CDATA["+lineNoOrd+"]]></line_no__ord>");
xmlBuff.append( "<tran_type><![CDATA[P]]></tran_type>");
xmlBuff.append( "<site_code><![CDATA["+siteCodeAdv+"]]></site_code>");
xmlBuff.append( "<supp_code><![CDATA["+suppCode+"]]></supp_code>");
xmlBuff.append( "<acct_code><![CDATA["+acctCode+"]]></acct_code>");
xmlBuff.append( "<cctr_code><![CDATA["+cctrCode+"]]></cctr_code>");
xmlBuff.append( "<tax_class><![CDATA["+taxClass+"]]></tax_class>");
xmlBuff.append( "<tax_chap><![CDATA["+taxChap+"]]></tax_chap>");
xmlBuff.append( "<tax_env><![CDATA["+taxEnv+"]]></tax_env>");
xmlBuff.append( "<task_code><![CDATA["+taskCode+"]]></task_code>");
xmlBuff.append( "<amount><![CDATA["+calAmt+"]]></amount>");
//xmlBuff.append( "<due_date><![CDATA["+sdf.format(dueDate).toString()+"]]></due_date>");
xmlBuff.append( "<due_date><![CDATA["+sdf.format(dueDateUpd).toString()+"]]></due_date>");
xmlBuff.append( "<task_status><![CDATA[P]]></task_status>");
xmlBuff.append( "<payment_opt><![CDATA[P]]></payment_opt>");
xmlBuff.append( "<remarks><![CDATA["+remarks+"]]></remarks>");
xmlBuff.append( "<tran_id__vch><![CDATA[]]></tran_id__vch>");
xmlBuff.append( "<confirmed><![CDATA[N]]></confirmed>");
xmlBuff.append( "<conf_date><![CDATA[]]></conf_date>");
xmlBuff.append( "<emp_code__aprv><![CDATA[]]></emp_code__aprv>");
xmlBuff.append( "<wf_status><![CDATA[S]]></wf_status>");
xmlBuff.append( "<status_date><![CDATA[]]></status_date>");
xmlBuff.append( "<compl_date><![CDATA[]]></compl_date>");
xmlBuff.append( "<allow_override><![CDATA["+allowOverride+"]]></allow_override>");
xmlBuff.append( "<amount_orig><![CDATA["+calAmt+"]]></amount_orig>");
xmlBuff.append( "<add_user><![CDATA["+chgUser+"]]></add_user>");
xmlBuff.append( "<add_date><![CDATA["+ sdf.format(currentDate).toString() +"]]></add_date>");
xmlBuff.append( "<add_term><![CDATA["+chgTerm+"]]></add_term>");
xmlBuff.append( "<chg_user><![CDATA["+chgUser+"]]></chg_user>");
xmlBuff.append( "<chg_date><![CDATA["+ sdf.format(currentDate).toString() +"]]></chg_date>");
xmlBuff.append( "<chg_term><![CDATA["+chgTerm+"]]></chg_term>");
xmlBuff.append("</Detail1>");
//if(delayDetailsRec)
//{
/*---Detail1 screen,end----*/
//sql = "select task_code,due_date,compl_date from pur_milstn where purc_order = ? and wf_status <> 'C' ";
sql = "select task_code,due_date,compl_date from pur_milstn where purc_order = ? and wf_status='C'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,purcOrder);
rs = pstmt.executeQuery();
while ( rs.next() )
{
lineNo++;
System.out.println("count for details inserted record :"+lineNo);
dueDateOrg=rs.getTimestamp("due_date");
compDateOrg=rs.getTimestamp("compl_date");
taskDelay=rs.getString("task_code");
System.out.println("dueDateOrg :"+dueDateOrg);
System.out.println("compDateOrg :"+compDateOrg);
System.out.println("taskDelay :"+taskDelay);
delayDays = (int)utilmethod.DaysAfter(dueDateOrg, compDateOrg); //(int)countDaysBetween(dueDateOrg,complDateNew);
System.out.println("delayDays :"+delayDays);
reschDate = utilmethod.RelativeDate(dueDateOrg, delayDays);
System.out.println("reschDate :"+reschDate);
xmlBuff.append("<Detail2 dbID='' domID=\"1\" objName=\"drcrpay_dr\" objContext=\"2\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" updateFlag=\"A\" status=\"N\" />");
xmlBuff.append("<tran_id/>");
xmlBuff.append("<line_no><![CDATA["+lineNo+"]]></line_no>");
xmlBuff.append("<delay_days><![CDATA["+delayDays+"]]></delay_days>");
xmlBuff.append("<task_code__delay><![CDATA["+taskDelay+"]]></task_code__delay>");
xmlBuff.append("<due_date_org><![CDATA["+sdf.format(dueDateOrg)+"]]></due_date_org>");
xmlBuff.append("<due_date_resch><![CDATA["+sdf.format(reschDate)+"]]></due_date_resch>");
xmlBuff.append("</Detail2>");
}
// }
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
xmlString = xmlBuff.toString();
System.out.println("xmlString !!!!"+xmlString);
retString = saveData(siteCodeAdv,xmlString,conn);
System.out.println("retString ::::::"+retString);
}//end of if for isPurMilstn true
}//end of while loop
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
catch(Exception e)
{
e.printStackTrace();
}
return retString;
}
/*---------------------------------------------------------------------------------------------*/
public int totDelayActivity(String purcOrder,Connection conn)
{
String resultString="",sql="";
PreparedStatement pstmt = null,pstmt1 = null;
ResultSet rs=null;
Timestamp dueDateOrg = null,compDateOrg=null,reschDate=null;
int delayDays=0,totDelayDays=0;
try
{
sql = "select task_code,due_date,compl_date from pur_milstn where purc_order = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,purcOrder);
rs = pstmt.executeQuery();
while ( rs.next() )
{
dueDateOrg=rs.getTimestamp("due_date");
compDateOrg=rs.getTimestamp("compl_date");
System.out.println("dueDateOrg :"+dueDateOrg);
System.out.println("compDateOrg :"+compDateOrg);
delayDays = (int)utilmethod.DaysAfter(dueDateOrg, compDateOrg); //(int)countDaysBetween(dueDateOrg,complDateNew);
System.out.println("delayed days-----"+delayDays);
totDelayDays = totDelayDays + delayDays;
//reschDate = utilmethod.RelativeDate(dueDateOrg, delayDays);
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
}
catch(Exception e)
{
e.printStackTrace();
}
return totDelayDays;
}
/*--------------------------------------------------------------------------------------------------*/
/*
public String calDelayDueDate_old(Date mistnDueDate,Date mistnComplDate,String taskCodePrv,String tranIdMilestn,String tranIdCurr,Date dueDateCurr,String lineNoPrev,Connection conn)
{
String detailsXmlString ="",sql="",taskCodePen="",result="";
int delayDays=0,lineNo=0,inserCnt=0,updCnt=0;
Date reschDateHeader = null,dueDatePen=null,reschDate=null;
PreparedStatement pstmt = null,pstmt1=null,pstmt2=null,pstmt3=null,pstmt4=null;
ResultSet rs = null,rs1=null,rs2=null,rs3=null,rs4=null;
StringBuffer xmlBuff = null;
Date currentDate = new Date();
SimpleDateFormat sdf;
try
{
System.out.println("calDelayDueDate called.....");
System.out.println("mistnDueDate : "+mistnDueDate);
System.out.println("mistnComplDate :"+mistnComplDate);
sdf= new SimpleDateFormat(e12GenericUtility.getDBDateFormat());
if(mistnDueDate.before(mistnComplDate))//if completion date is greater than or before due date original
{
System.out.println("completion date is greater than due date!!");
//delayDays = (int)countDaysBetween(mistnDueDate,mistnComplDate);
java.sql.Timestamp mistnDueDate1=java.sql.Timestamp.valueOf(sdf.format(mistnDueDate).toString() + " 00:00:00.0");
java.sql.Timestamp mistnComplDate1=java.sql.Timestamp.valueOf(sdf.format(mistnComplDate).toString() + " 00:00:00.0");
delayDays = (int)utilmethod.DaysAfter(mistnDueDate1,mistnComplDate1);
System.out.println("delayed days :- "+delayDays);
xmlBuff = new StringBuffer();
//sdf= new SimpleDateFormat(e12GenericUtility.getDBDateFormat());
sql = "select max(line_no) as lineNoTot from pur_milstn_resch";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while ( rs.next() )
{
lineNo = rs.getInt("lineNoTot");
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
sql = "select task_code,due_date from pur_milstn where purc_order in(select purc_order " +
"from pur_milstn where tran_id = ? and task_status = 'P') and line_no__ord > ?";
System.out.println("To find no. of pending activity against purchase order.... ");
sql = "select task_code,due_date from pur_milstn where purc_order in(select purc_order " +
" from pur_milstn where tran_id = ? ) and line_no__ord > ? and task_status = 'P' ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranIdMilestn);
pstmt.setInt(2,Integer.parseInt(lineNoPrev));
rs = pstmt.executeQuery();
while (rs.next())
{
lineNo=lineNo++;
taskCodePen = rs.getString("task_code");
dueDatePen = rs.getDate("due_date");
System.out.println("pending activity will be :"+taskCodePen+ " on duedate :"+dueDatePen );
System.out.println("delayed days-----"+delayDays);
//added the delayed days to the date to get the next date
// reschDate = addDays(dueDateHeader, delayDays);
reschDate = utilmethod.RelativeDate(dueDatePen, delayDays);
System.out.println("reschedule due date : "+reschDate);
java.sql.Date dueDateHeader1 = new java.sql.Date(dueDateHeader.getTime());
java.sql.Date reschDate1 = new java.sql.Date(reschDate.getTime());
java.sql.Timestamp dueDatePenTstm=java.sql.Timestamp.valueOf(sdf.format(dueDatePen).toString() + " 00:00:00.0");
java.sql.Timestamp reschDateTstm=java.sql.Timestamp.valueOf(sdf.format(reschDate).toString() + " 00:00:00.0");
System.out.println("dueDateHeader1 afer timestamp :"+dueDatePenTstm);
System.out.println("reschDate1 afer timestamp :"+reschDateTstm);
System.out.println("Inserting into detail table of pending activity");
sql = "Insert into pur_milstn_resch (TRAN_ID,LINE_NO,DELAY_DAYS,TASK_CODE__DELAY,DUE_DATE_ORG,DUE_DATE_RESCH) values (?,?,?,?,?,?)";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1,tranIdMilestn);//previous activity tran id
pstmt1.setInt(2,lineNo);
pstmt1.setInt(3,delayDays);
pstmt1.setString(4,taskCodePen);
pstmt1.setTimestamp(5,dueDatePenTstm);
pstmt1.setTimestamp(6,reschDateTstm);
inserCnt = pstmt1.executeUpdate();
pstmt1.close();
pstmt1 = null;
System.out.println("NO. OF RECORDS INSERTED : "+inserCnt);
}//end of while
rs.close();
rs=null;
pstmt.close();
pstmt=null;
if(inserCnt > 0)
{
//reschDateHeader = addDays(dueDateCurr, delayDays);
reschDateHeader = utilmethod.RelativeDate(dueDateCurr, delayDays);
System.out.println("Updated current saved activity due date in header :- "+reschDateHeader);
java.sql.Timestamp reschDateHdTstm=java.sql.Timestamp.valueOf(sdf.format(reschDateHeader).toString() + " 00:00:00.0");
sql = "update pur_milstn set due_date = ? where tran_id = ?";
pstmt1 = conn.prepareStatement(sql);
//pstmt1.setDate(1,(java.sql.Date)reschDate);
pstmt1.setTimestamp(1,reschDateHdTstm);
pstmt1.setString(2,tranIdCurr);
updCnt = pstmt1.executeUpdate();
pstmt1.close();
pstmt1 = null;
conn.commit();
System.out.println("NO. OF RECORDS updated==== "+updCnt);
result="Success";
}
}//END OF IF completion date is greater than or before due date original
}
catch(Exception e)
{
e.printStackTrace();
}
return result;
}*/
private String saveData(String siteCode,String xmlString, Connection conn) throws ITMException
{
System.out.println("saving data...........");
InitialContext ctx = null;
String retString = null;
MasterStatefulLocal masterStateful = null; // for ejb3
Connection connLocal = null;
ConnDriver connDriver = new ConnDriver();
try
{
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
masterStateful = (MasterStatefulLocal)ctx.lookup("ibase/MasterStatefulEJB/local");
System.out.println("-----------masterStateful------- " + masterStateful);
String [] authencate = new String[2];
authencate[0] = "";
authencate[1] = "";
System.out.println("xmlString to masterstateful [" + xmlString + "]");
retString = masterStateful.processRequest(authencate, siteCode, true, xmlString,true,conn);
System.out.println("--retString - -"+retString);
}
catch(ITMException itme)
{
System.out.println("ITMException :CreateDistOrder :saveData :==>");
throw itme;
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Exception :CreateDistOrder :saveData :==>");
throw new ITMException(e);
}
return retString;
}
private String checkNull(String input)
{
if (input == null)
{
input = "";
}
return input;
}
}
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