Commit dd3c4f31 authored by ngadkari's avatar ngadkari

changes in undo receivables adj process

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@198021 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 7c5b0136
......@@ -8,6 +8,7 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import javax.ejb.Stateless;
import javax.naming.InitialContext;
......@@ -17,6 +18,7 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ibase.system.config.AppConnectParm;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.ITMDBAccessEJB;
......@@ -24,6 +26,7 @@ import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.webitm.ejb.ProcessEJB;
import ibase.webitm.ejb.fin.adv.UndoRecievableAdjConf;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
@Stateless
public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAdjPrcLocal ,UndoRecievableAdjPrcRemote{
String siteCode = "";
......@@ -81,7 +84,7 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
String sql = "";
SimpleDateFormat sdf=null;
double netAmt =0 ,totAmt=0 , adjAmt=0;
String refNoHeader="",tranType="",tranId="",remarks="",refNo="",refSer="";
String refNoHeader="",tranType="",tranId="",remarks="",refNo="",refSer="",custCode="",itemSer="";
int rows = 0;
try
{
......@@ -115,8 +118,15 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
tranType = "S-INV";
}*/
custCode = genericUtility.getColumnValue("cust_code",headerDom);
if ( custCode == null || custCode.equals("null") || custCode.trim().length() == 0 )
{
custCode = "";
}
try
{
......@@ -160,6 +170,64 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
//while
rs.close();rs = null;
pstmt.close();pstmt = null;
sql = " select item_ser from invoice where invoice_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refNoHeader);
rs = pstmt.executeQuery();
if(rs.next())
{
itemSer = rs.getString("item_ser");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
getDataSql1 = "select ref_no,tran_ser, adj_amt,tot_amt from receivables "
+ " where tran_ser in ('CRNRCP','MDRCRC', 'R-ADV') and ref_no not in ( ? ) "
+ " and tot_amt - adj_amt < 0 and (fin_scheme is null or fin_scheme = ' ') "
+ " and ( site_code = ? "
+ " and cust_code = ? "
+ " and item_ser = ? )";
pstmt = conn.prepareStatement(getDataSql1);
System.out.println("The getDataSql2 becomes2 .................:"+getDataSql1);
pstmt.setString(1, refNoHeader);
pstmt.setString(2, siteCode);
pstmt.setString(3, custCode);
pstmt.setString(4, itemSer);
rs = pstmt.executeQuery();
while (rs.next())
{
refNo=rs.getString(1);
refSer=rs.getString(2);
adjAmt =rs.getDouble(3);
totAmt =rs.getDouble(4);
netAmt =totAmt-adjAmt;
//retTabSepStrBuff.append("<Detail2>");
retTabSepStrBuff.append("<Detail2 domID=\""+cnt+"\" selected=\""+"N"+"\" > \r\n");
retTabSepStrBuff.append("<attribute selected=\""+"N"+"\" updateFlag=\"\" status=\"N\" pkNames=\"\" />\r\n");
cnt++;
//
retTabSepStrBuff.append("<ref_no>").append("<![CDATA[").append(refNo).append("]]>").append("</ref_no>\r\n");
retTabSepStrBuff.append("<ref_ser>").append("<![CDATA[").append(refSer).append("]]>").append("</ref_ser>\r\n");
retTabSepStrBuff.append("<tot_amt>").append("<![CDATA[").append(totAmt).append("]]>").append("</tot_amt>\r\n");
retTabSepStrBuff.append("<adj_amt>").append("<![CDATA[").append(adjAmt).append("]]>").append("</adj_amt>\r\n");
retTabSepStrBuff.append("<net_amt>").append("<![CDATA[").append(netAmt).append("]]>").append("</net_amt>\r\n");
retTabSepStrBuff.append("</Detail2>");
retTabSepStrBuff.append("\n");
rows ++;
}
//while
rs.close();rs = null;
pstmt.close();pstmt = null;
retTabSepStrBuff.append("</Header0>\r\n");
retTabSepStrBuff.append("</group0>\r\n");
retTabSepStrBuff.append("</DocumentRoot>\r\n");
......@@ -249,15 +317,15 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
String custCode = "",sundryCode="",tranSer="",sTranDate="",refNo="",sRefDate="",sTotAmt="",sAdjAmt="",acctCode="",status="";
String cctrCode = "",currCode="",sExchRate="",sDueDate="",finEntity="",bankCode="",refSerPay="",keyString="",recvTranID="";
double totAmt=0,adjAmt=0,fTotAmt=0,fAdjAmt=0,trfAmt=0;
String errCode = "";
double totAmt=0,adjAmt=0,drAmt=0,fAdjAmt=0,headDrAmt=0;
String errCode = "",sql1="",sqlStr="",tranID="";
String errString = "";
String insertSql = "",sql="";
String tranId = null,paytoRecAutoConf="";
Connection conn = null;
Statement st = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
PreparedStatement pstmt = null,pstmtInsert=null,pstmt1=null;
ResultSet rs = null,rs1 = null;
java.sql.Timestamp instr_Date = null;
Timestamp dueDate = null;
Timestamp refDate = null;
......@@ -267,7 +335,7 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
int updCnt = 0,cnt=0;
int parentNodeListLength = 0;
int childNodeListLength = 0;
String refNoHeader="",tranType="",remarks="";
String refNoHeader="",tranType="",remarks="",refNoadj="";
NodeList parentNodeList = null;
NodeList childNodeList = null;
Node parentNode = null;
......@@ -275,7 +343,10 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
boolean flag = false;
Timestamp tranDate = null;
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
ArrayList<String> refNoAdjList = new ArrayList<String>();
ArrayList<String> selectedRefNoList = new ArrayList<String>();
ArrayList<String> removedRefNoList = new ArrayList<String>();
String xmlValues = null,keystr="",nextID="",adjTranSer="";
try
{
......@@ -327,26 +398,99 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
xmlBuff.append("<ref_no><![CDATA["+refNoHeader+"]]></ref_no>");
xmlBuff.append("</Detail1>");
for (int selectedRow = 0; selectedRow < parentNodeListLength; selectedRow++)
//added by nandkumar
sql1 = "select ref_no from receivables_adj where ref_no_adj= ? ";
pstmt = conn.prepareStatement(sql1);
System.out.println("The process becomes .................:"+sql1);
pstmt.setString(1, refNoHeader);
rs = pstmt.executeQuery();
while (rs.next())
{
refNo=rs.getString(1);
refNoAdjList.add(refNo);
}
//while
rs.close();rs = null;
pstmt.close();pstmt = null;
// end
int size = refNoAdjList.size();
System.out.println("refNoAdjList1============"+size);
for(int i=0;i<size-1;i++)
{
refNoadj = refNoAdjList.get(i);
for (int selectedRow = 0; selectedRow < parentNodeListLength; selectedRow++)
{
parentNode = parentNodeList.item(selectedRow);
refNo=checkNull(genericUtility.getColumnValueFromNode("ref_no", parentNode));
tranSer=checkNull(genericUtility.getColumnValueFromNode("ref_ser", parentNode));
System.out.println("genericUtility============"+refNo);
if(refNo.equalsIgnoreCase(refNoadj))
{
refNoAdjList.remove(i);
removedRefNoList.add(refNoadj);
System.out.println("refNoAdjList===removedRefNoList.add(refNoadj);========="+refNoadj);
}
}
}
System.out.println("refNoAdjList NEXT============"+size);
for (int selectedRow = 0; selectedRow < parentNodeListLength; selectedRow++)
{
parentNode = parentNodeList.item(selectedRow);
refNo=checkNull(genericUtility.getColumnValueFromNode("ref_no", parentNode));
selectedRefNoList.add(refNo);
}
/* tranSer=checkNull(genericUtility.getColumnValueFromNode("ref_ser", parentNode));
refNo=checkNull(genericUtility.getColumnValueFromNode("ref_no", parentNode));
adjAmt=checkDoubleNull(genericUtility.getColumnValueFromNode("adj_amt", parentNode));
adjAmt=checkDoubleNull(genericUtility.getColumnValueFromNode("adj_amt", parentNode));*/
size = refNoAdjList.size();
System.out.println("refNoAdjList============"+size);
for(int i=0;i<=size-1;i++)
{
refNoadj = refNoAdjList.get(i);
sql1 = "select ref_no,ref_ser,adj_amt from receivables_adj where ref_no_adj= ? and ref_no =? ";
pstmt = conn.prepareStatement(sql1);
System.out.println("The process refNoadj .................:"+sql1);
pstmt.setString(1, refNoHeader);
pstmt.setString(2, refNoadj);
rs = pstmt.executeQuery();
if (rs.next())
{
refNo=rs.getString(1);
tranSer=rs.getString(2);
adjAmt =rs.getDouble(3);
}
//while
rs.close();rs = null;
pstmt.close();pstmt = null;
xmlBuff.append("<Detail2 dbID='' domID=\"1\" objName=\"undo_rec_adj\" objContext=\"2\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" updateFlag=\"A\" status=\"N\" />");
xmlBuff.append("<tran_id/>");
lineNo++;
xmlBuff.append("<line_no><![CDATA["+ lineNo +"]]></line_no>");
xmlBuff.append("<ref_no><![CDATA["+ refNo +"]]></ref_no>");
xmlBuff.append("<ref_ser><![CDATA["+ tranSer +"]]></ref_ser>");
xmlBuff.append("<adj_amt><![CDATA["+ adjAmt +"]]></adj_amt>");
xmlBuff.append("</Detail2>");
xmlBuff.append("<Detail2 dbID='' domID=\"1\" objName=\"undo_rec_adj\" objContext=\"2\">");
xmlBuff.append("<attribute pkNames=\"\" selected=\"N\" updateFlag=\"A\" status=\"N\" />");
xmlBuff.append("<tran_id/>");
lineNo++;
xmlBuff.append("<line_no><![CDATA["+ lineNo +"]]></line_no>");
xmlBuff.append("<ref_no><![CDATA["+ refNo +"]]></ref_no>");
xmlBuff.append("<ref_ser><![CDATA["+ tranSer +"]]></ref_ser>");
xmlBuff.append("<adj_amt><![CDATA["+ adjAmt +"]]></adj_amt>");
xmlBuff.append("</Detail2>");
}
xmlBuff.append("</Header0>");
xmlBuff.append("</group0>");
xmlBuff.append("</DocumentRoot>");
......@@ -369,6 +513,325 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
undoRecAdjConf = null;
if( errString.indexOf("VTCNFSUCC") > -1)
{
//added by nandkumar
for (String rRefNo : removedRefNoList)
{
for (String sRefNO : selectedRefNoList)
{
if (rRefNo.equals(sRefNO))
{
selectedRefNoList.remove(sRefNO);
break;
}
}
}
sqlStr ="select key_String from transetup "
+ "where upper(tran_window) = 'W_REC_ADJ' " ;
pstmt = conn.prepareStatement(sqlStr);
rs = pstmt.executeQuery();
if(rs.next())
{
keystr = rs.getString("key_string");
}
else
{
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sqlStr ="select key_String from transetup "
+ "where upper(tran_window) = 'GENERAL' " ;
pstmt = conn.prepareStatement(sqlStr);
rs = pstmt.executeQuery();
if(rs.next())
{
keystr = rs.getString("key_string");
}
else
{
rs.close();
rs = null;
pstmt.close();
pstmt = null;
errString = itmDBAccessEJB.getErrorString("","VTNOINV","","",conn);
return errString ;
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
adjTranSer = "S-INV";
sql1 = "select tot_amt, adj_amt from receivables "
+ " where ref_no= ? and tran_ser= ? ";
pstmt = conn.prepareStatement(sql1);
System.out.println("The process header amount .................:"+sql1);
pstmt.setString(1, refNoHeader);
pstmt.setString(2, adjTranSer);
rs = pstmt.executeQuery();
if (rs.next())
{
totAmt= rs.getDouble("tot_amt");
adjAmt= rs.getDouble("adj_amt");
}
//while
rs.close();rs = null;
pstmt.close();pstmt = null;
headDrAmt=totAmt-adjAmt;
size = selectedRefNoList.size();
for(int i=0;i<=size-1;i++)
{
refNo = selectedRefNoList.get(i);
if(headDrAmt > 0)
{
sql1 = "select tran_id, tran_ser, ref_no, tot_amt, adj_amt from receivables "
+ " where tran_ser in ('CRNRCP','MDRCRC', 'R-ADV') and ref_no= ? ";
pstmt = conn.prepareStatement(sql1);
System.out.println("The process selectedRefNoList .................:"+sql1);
pstmt.setString(1, refNo);
rs = pstmt.executeQuery();
if (rs.next())
{
tranID = rs.getString("tran_id");
tranSer= rs.getString("tran_ser");
refNo= rs.getString("ref_no");
totAmt= rs.getDouble("tot_amt");
adjAmt= rs.getDouble("adj_amt");
}
//while
rs.close();rs = null;
pstmt.close();pstmt = null;
drAmt=totAmt-adjAmt;
System.out.println("@@@@@@@@292 mDrAmt["+drAmt+"]");
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id></tran_id>";
xmlValues = xmlValues + "<site_code>" + siteCode + "</site_code>";
xmlValues = xmlValues +"</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
nextID = tg.generateTranSeqID("R-ADJ", "tran_id", keystr, conn);
System.out.println("nextID ["+nextID + "]");
sqlStr = "insert into receivables_adj "
+ "(tran_id, ref_ser, ref_no, tot_amt, adj_amt, net_amt,ref_ser_adj,ref_no_adj, tran_id__rcv) "
+ " values (?, ?, ?, ?, ?, ?, ?, ? ,?) ";
pstmtInsert = conn.prepareStatement(sqlStr);
pstmtInsert.setString(1,nextID);
pstmtInsert.setString(2,tranSer);
pstmtInsert.setString(3,refNo);
if( headDrAmt >= Math.abs(drAmt) )
{
pstmtInsert.setDouble(4,drAmt);
pstmtInsert.setDouble(5,drAmt);
pstmtInsert.setDouble(6,(drAmt-drAmt));
}
else
{
pstmtInsert.setDouble(4,drAmt);
pstmtInsert.setDouble(5,(headDrAmt * -1));
pstmtInsert.setDouble(6,(drAmt -(headDrAmt * -1)));
}
pstmtInsert.setString(7,adjTranSer);
pstmtInsert.setString(8,refNoHeader);
pstmtInsert.setString(9,tranID);
int insert=pstmtInsert.executeUpdate();
pstmtInsert.close();
pstmtInsert = null;
if(insert > 0)
{
sql1=" update receivables_adj set adj_amt= adj_amt - ? where ref_no= ? and ref_ser= ?";
pstmt1 = conn.prepareStatement(sql1);
if( drAmt < headDrAmt )
{
pstmt1.setDouble(1, drAmt);
}
else
{
pstmt1.setDouble(1, headDrAmt);
}
pstmt1.setString(2, refNoHeader);
pstmt1.setString(3, adjTranSer);
updCnt = pstmt1.executeUpdate();
pstmt1.close();
pstmt1= null;
sql1=" update receivables set adj_amt =adj_amt -? where ref_no= ? and tran_ser=?";
pstmt1 = conn.prepareStatement(sql1);
if( drAmt < headDrAmt )
{
pstmt1.setDouble(1, drAmt);
}
else
{
pstmt1.setDouble(1, headDrAmt);
}
pstmt1.setString(2, refNo);
pstmt1.setString(3, tranSer);
updCnt = pstmt1.executeUpdate();
pstmt1.close();
pstmt1 = null;
System.out.println("@@@updCnt========["+updCnt+"]");
System.out.println("Status Checking*********");
sql1="select tot_amt,adj_amt,status from receivables where ref_no= ? and tran_ser=?";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, refNo);
pstmt1.setString(2, tranSer);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
totAmt=Math.abs(rs1.getDouble("tot_amt"));
adjAmt=Math.abs(rs1.getDouble("adj_amt"));
status=rs1.getString("status");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("totalAmt1============"+totAmt);
System.out.println("adjAmt1============"+adjAmt);
System.out.println("statusBef============"+status);
if(adjAmt==totAmt)
{
System.out.println("adjAmt1==totalAmt1*********");
status="A";
}
else if(adjAmt!=0 && totAmt>adjAmt)
{
System.out.println("totalAmt1>adjAmt1*********");
status="P";
}
System.out.println("status=****-========="+status);
System.out.println("refNo=-========="+refNo);
System.out.println("refSer=-========="+tranSer);
sql1=" update receivables set status = ? where ref_no= ? and tran_ser=?";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, status);
pstmt1.setString(2, refNo);
pstmt1.setString(3, tranSer);
updCnt = pstmt1.executeUpdate();
pstmt1.close();
pstmt1= null;
//update end for inserted receivable_adj records
sql1=" update receivables set adj_amt =adj_amt - ? where ref_no= ? and tran_ser=?";
pstmt1 = conn.prepareStatement(sql1);
if( drAmt < headDrAmt )
{
pstmt1.setDouble(1, drAmt);
}
else
{
pstmt1.setDouble(1, headDrAmt);
}
pstmt1.setString(2, refNoHeader);
pstmt1.setString(3, adjTranSer);
updCnt = pstmt1.executeUpdate();
pstmt1.close();
pstmt1 = null;
System.out.println("@@@updCnt=receivables header=======["+updCnt+"]");
sql1="update INVOICE set adj_amount= adj_amount - ? WHERE invoice_id= ?";
pstmt = conn.prepareStatement(sql1);
if( drAmt < headDrAmt )
{
pstmt.setDouble(1, drAmt);
}
else
{
pstmt.setDouble(1, headDrAmt);
}
pstmt.setString(2, refNoHeader);
updCnt = pstmt.executeUpdate();
pstmt.close();
pstmt= null;
System.out.println("@@@updCnt=== INVOICE ["+updCnt+"]");
}
headDrAmt=headDrAmt-drAmt;
}
}
// upfdate for header ref no in recievables
System.out.println("Status Checking*********");
sql1="select tot_amt,adj_amt,status from receivables where ref_no= ? and tran_ser=?";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, refNoHeader);
pstmt1.setString(2, adjTranSer);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
totAmt=Math.abs(rs1.getDouble("tot_amt"));
adjAmt=Math.abs(rs1.getDouble("adj_amt"));
status=rs1.getString("status");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
System.out.println("totalAmt1============"+totAmt);
System.out.println("adjAmt1============"+adjAmt);
System.out.println("statusBef============"+status);
if(adjAmt==totAmt)
{
System.out.println("adjAmt1==totalAmt1*********");
status="A";
}
else if(adjAmt!=0 && totAmt>adjAmt)
{
System.out.println("totalAmt1>adjAmt1*********");
status="P";
}
System.out.println("status=****-========="+status);
System.out.println("refNo=-========="+refNo);
System.out.println("refSer=-========="+tranSer);
sql1=" update receivables set status = ? where ref_no= ? and tran_ser=?";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, status);
pstmt1.setString(2, refNoHeader);
pstmt1.setString(3, adjTranSer);
updCnt = pstmt1.executeUpdate();
pstmt1.close();
pstmt1= null;
//end
errString = itmDBAccessEJB.getErrorString("","VTCOMPL","","",conn);
if(conn != null){
conn.commit();
......@@ -385,12 +848,11 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
}
return errString;
}
}//try end
catch(Exception e)
{
System.out.println("Exception :UndoRecievableAdjPrc ::" + e.getMessage() + ":");
try
{
conn.rollback();
......@@ -402,6 +864,11 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
errString = d.getMessage();
throw new ITMException(d);
}
System.out.println("Exception :UndoRecievableAdjPrc ::" + e.getMessage() + ":");
e.printStackTrace();
//throw new ITMException(e);
}
finally
{
......@@ -413,7 +880,7 @@ public class UndoRecievableAdjPrc extends ProcessEJB implements UndoRecievableAd
}
catch(Exception se){}
}
System.out.println("errString: "+errString);
//System.out.println("errString: "+errString);
return errString;
}
private String saveData(String xtraParams,String siteCode, String xmlString, Connection conn) throws ITMException
......
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