Commit 0898e2b0 authored by dpawar's avatar dpawar

changes in code for pending qty


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@95233 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 65da8abd
......@@ -81,10 +81,10 @@ public class ProofOfDelivery extends ValidatorEJB implements ProofOfDeliveryLoca
String errString = "",errorType="",loginSite="",status="",invoiceID="",sreturnTranID="",sql1="",userId="";
String errCode="";
Connection conn = null;
PreparedStatement pstmt;
PreparedStatement pstmt;
ResultSet rs=null;
int cnt=0;
int currentFormNo=0;
int currentFormNo=0,miscCount=0;
int childNodeListLength;
ConnDriver connDriver = new ConnDriver();
//ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
......@@ -146,8 +146,15 @@ public class ProofOfDelivery extends ValidatorEJB implements ProofOfDeliveryLoca
}
status=getNameOrDescrForCode(conn, "spl_sales_por_hdr", "wf_status", "invoice_id", invoiceID);
status=status==null ? "" : status.trim();
System.out.println("Status for reject ---->>$$$$["+status+"]");
System.out.println("Status for reject2 ---->>$$$$["+status+"]");
// check if selected invoice id already generated debit note
if(isRecordPresentInMiscDrCrRcp(conn,invoiceID))
{
errCode = "VTPODARI"; //Proof of Delivery already received for this invoice ID
errList.add( errCode );
errFields.add( childNodeName.toLowerCase() );
}
//end check
if (!(editFlag.equals("E")))
{
......@@ -179,6 +186,8 @@ public class ProofOfDelivery extends ValidatorEJB implements ProofOfDeliveryLoca
errFields.add( childNodeName.toLowerCase() );
}
}
}
if (childNodeName.equalsIgnoreCase("site_code"))
{
......@@ -870,13 +879,22 @@ public class ProofOfDelivery extends ValidatorEJB implements ProofOfDeliveryLoca
if( currentColumn.trim().equalsIgnoreCase( "itm_default" ) )
{
System.out.println("------------in itm_default--------->");
String confirm="N",wfStatus="O";
String confirm="N",wfStatus="O",loginSite="",siteDescr1="";
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat simpleDateFormatObj = new SimpleDateFormat(genericUtility.getApplDateFormat());
String tranDate = simpleDateFormatObj.format(currentDate.getTime());
valueXmlString.append("<tran_date>").append("<![CDATA[" + tranDate + "]]>").append("</tran_date>");
valueXmlString.append("<confirmed>").append("<![CDATA[" + confirm + "]]>").append("</confirmed>");
valueXmlString.append("<wf_status>").append("<![CDATA[" + wfStatus + "]]>").append("</wf_status>");
loginSite = getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
loginSite=loginSite==null ? "" :loginSite.trim();
System.out.println("loginSite ----->>["+loginSite+"]");
if(loginSite.length() > 0){
siteDescr1=getNameOrDescrForCode(conn, "SITE", "DESCR", "SITE_CODE", loginSite);
}
valueXmlString.append("<site_code>").append("<![CDATA[" + loginSite + "]]>").append("</site_code>");
valueXmlString.append("<site_descr>").append("<![CDATA[" + siteDescr1 + "]]>").append("</site_descr>");
}
if((currentColumn.trim().equalsIgnoreCase("invoice_id")))
......@@ -984,28 +1002,59 @@ public class ProofOfDelivery extends ValidatorEJB implements ProofOfDeliveryLoca
if (currentColumn.trim().equals("quantity__resale"))
{
System.out.println("-------item chnage quantity__resale-------------");
String rateResale="",podQty="",aprvRate="";
double rateResaleD=0.0,podQtyD=0.0;
double debitNoteAmt=0,aprvRateD=0;
String rateResale="",podQty="",aprvRate="",invQtyS="",pendQtyS="",pendTempS="";
double rateResaleD=0.0,podQtyD=0.0,debitNoteAmt=0,aprvRateD=0,invQtyD=0,
pendQtyD=0,tempQty=0,pendTempD=0;
aprvRate=genericUtility.getColumnValue("aprv_rate",dom);
rateResale=genericUtility.getColumnValue("rate__resale",dom);
podQty=genericUtility.getColumnValue("quantity__resale",dom);
podQty=genericUtility.getColumnValue("quantity__resale",dom);
invQtyS=genericUtility.getColumnValue("quantity__inv",dom);
pendQtyS=genericUtility.getColumnValue("pend_qty",dom);
pendTempS=genericUtility.getColumnValue("pend_temp",dom);
rateResaleD=Double.parseDouble(checkSpaceNull(rateResale));
podQtyD=Double.parseDouble(checkSpaceNull(podQty));
aprvRateD=Double.parseDouble(checkSpaceNull(aprvRate));
invQtyD=Double.parseDouble(checkSpaceNull(invQtyS));
pendQtyD=Double.parseDouble(checkSpaceNull(pendQtyS));
pendTempD=Double.parseDouble(checkSpaceNull(pendTempS));
System.out.println("aprvRate ------>>"+aprvRateD);
System.out.println("rateResaleD ------>>"+rateResaleD);
System.out.println("qty resale ------>>"+podQtyD);
System.out.println("Invoice Qty ------>>"+invQtyD);
System.out.println("qty resale(POD) ------>>"+podQtyD);
System.out.println("pending Qty------>>"+pendQtyD);
System.out.println("qty pend_temp ------>>"+pendTempD);
/*tempQty =invQtyD - pendQtyD;// 200 - 80 =120 // 0
tempQty=tempQty + podQtyD;//120 + 30 = 150//120
pendQtyD=invQtyD - tempQty; //200 -150 =50 */
if(pendQtyD > 0){
System.out.println("Pending qty greater than zero..........");
tempQty= invQtyD - pendTempD; //200 -80 =120
tempQty=tempQty + podQtyD; //120 +30 =150
pendQtyD=invQtyD - tempQty; // 200 -150 =50
}else{
System.out.println("Pending qty less than zero..........");
pendQtyD=invQtyD - podQtyD; // 200 -150 =50
}
System.out.println("pendQty ------>>"+pendQtyD);
if(rateResaleD > 0.0 && podQtyD > 0.0)
{
debitNoteAmt=(rateResaleD - aprvRateD) * podQtyD;
}
valueXmlString.append("<pend_qty>").append("<![CDATA["+pendQtyD+"]]>").append("</pend_qty>");
System.out.println("debitNoteAmt ------>>"+debitNoteAmt);
if(debitNoteAmt > 0)
valueXmlString.append("<debit_note_amt>").append("<![CDATA["+debitNoteAmt+"]]>").append("</debit_note_amt>");
......@@ -1643,6 +1692,124 @@ public class ProofOfDelivery extends ValidatorEJB implements ProofOfDeliveryLoca
return findValue;
}
protected boolean isRecordPresentInMiscDrCrRcp(Connection conn,String invoiceID)
{
ResultSet rs=null,rs1=null;
PreparedStatement pstmt=null,pstmt1=null;
String sql="",itemCodeT="",lotNoT="",lotSlT="",lineNoT="",itemCodeM="",lotNoM="",lotSlM="",lineNoM="";
double quantityT=0,quantityM=0;
int count =0,noOfRecordMatched=0,noOfRecords=0;
try{
sql="select count(*) from invoice_trace where invoice_id = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, invoiceID);
rs=pstmt.executeQuery();
if(rs.next()){
noOfRecords=rs.getInt(1);
}
if(rs!=null){
rs.close();
rs=null;
}
if(pstmt!=null){
pstmt.close();
pstmt=null;
}
System.out.println("NoOfRecords---->>["+noOfRecords+"]");
sql="select sum(quantity),item_code,lot_no,lot_sl,inv_line_no from invoice_trace "
+ "where invoice_id = ? group by item_code,lot_no,lot_sl,inv_line_no";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, invoiceID);
rs=pstmt.executeQuery();
while(rs.next()){
count++;
quantityT=rs.getDouble(1);
itemCodeT=rs.getString(2);
lotNoT=rs.getString(3);
lotSlT=rs.getString(4);
lineNoT=rs.getString(5);
itemCodeT=itemCodeT==null ? "" :itemCodeT.trim();
lotNoT=lotNoT==null ? "" :lotNoT.trim();
lotSlT=lotSlT==null ? "" :lotSlT.trim();
lineNoT=lineNoT==null ? "" :lineNoT.trim();
System.out.println("count--------------->>["+count+"]");
System.out.println("itemCodeT-->["+itemCodeT+"] lotNoT->["+lotNoT+"]");
System.out.println("lotSlT-->["+lotSlT+"] lineNoT->["+lineNoT+"]");
//checked in misc_drcr_rcp
sql="select sum(d.quantity) as Quantity,d.item_code,d.lot_no,d.lot_sl,d.line_no__invtrace from misc_drcr_rcp h,misc_drcr_rdet d "
+ "where h.tran_id = d.tran_id and h.remarks like ? and quantity is not null "
+ "group by d.item_code,d.lot_no,d.lot_sl,d.line_no__invtrace";
pstmt1=conn.prepareStatement(sql);
pstmt1.setString(1, "%POD%"+invoiceID);
rs1=pstmt1.executeQuery();
while(rs1.next()){
quantityM=rs1.getDouble(1);
itemCodeM=rs1.getString(2);
lotNoM=rs1.getString(3);
lotSlM=rs1.getString(4);
lineNoM=rs1.getString(5);
itemCodeM=itemCodeT==null ? "" :itemCodeT.trim();
lotNoM=lotNoM==null ? "" :lotNoM.trim();
lotSlM=lotSlM==null ? "" :lotSlM.trim();
lineNoM=lineNoM==null ? "" :lineNoM.trim();
System.out.println("QuantityT----->>["+quantityT+"]");
System.out.println("QuantityM----->>["+quantityM+"]");
System.out.println("itemCodeM-->["+itemCodeM+"] lotNoM-->["+lotNoM+"]");
System.out.println("lotSlM-->["+lotSlM+"] lineNoM-->["+lineNoM+"]");
if(itemCodeT.equalsIgnoreCase(itemCodeM) && lotNoT.equalsIgnoreCase(lotNoM)){
if(lotSlT.equalsIgnoreCase(lotSlM) && lineNoT.equalsIgnoreCase(lineNoM)){
if(quantityT == quantityM )
{
System.out.println("record matched........at count "+count);
noOfRecordMatched++;
}
}
}
} //inner while end
if(rs1!=null){
rs1.close();
rs1=null;
}
if(pstmt1!=null){
pstmt1.close();
pstmt1=null;
}
}//end main while
System.out.println("noOfRecords End----->>["+noOfRecords+"]");
System.out.println("noOfRecordMatched----->>["+noOfRecordMatched+"]");
if(noOfRecords == noOfRecordMatched)
{
return true;
}
if(rs!=null){
rs.close();
rs=null;
}
if(pstmt!=null){
pstmt.close();
pstmt=null;
}
}
catch(Exception e)
{
System.out.println("Exception : checkInMiscDrCrRcp : "+e.getMessage());
e.printStackTrace();
}
return false;
}
protected String getSalesReturnTranID(Connection conn, String table_name, String tranID,String whrCondCol, String whrCondVal)
{
......
......@@ -67,11 +67,12 @@ public class ProofOfDeliveryConf extends ActionHandlerEJB implements ProofOfDeli
ConnDriver ConnDriver = new ConnDriver();
PreparedStatement pstmt=null;
String errString="",sql="",loginSite="",wfStatus="",itemCode="",regulatedPrice="",itemActive="";
String itmCodeDt2="",lotNo="",lotSl="", detail2xmlString="";
String itmCodeDt2="",lotNo="",lotSl="", detail2xmlString="",invoiceID="";
double aprvRate=0.0,PODrate=0.0,PODqty=0.0,allowedAmt=0.0,stockistAmt=0.0,debitNoteAmtDetail=0.0;
double debitNoteAmtHdr=0;
int updCnt=0,lineNo=0,lineNotrace=0;
ITMDBAccessEJB itmdbAccess=new ITMDBAccessEJB();
ProofOfDelivery podObj=null;
HashMap<Integer,Double> mapDebitNoteAmt=new HashMap<Integer,Double>();
try
{
......@@ -80,7 +81,7 @@ public class ProofOfDeliveryConf extends ActionHandlerEJB implements ProofOfDeli
conn = connDriver.getConnectDB("DriverValidator");
conn.setAutoCommit(false);
String confirmed="";
sql = "select confirmed,wf_status from spl_sales_por_hdr WHERE tran_id = ?";
sql = "select confirmed,wf_status,invoice_id from spl_sales_por_hdr WHERE tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
......@@ -88,6 +89,7 @@ public class ProofOfDeliveryConf extends ActionHandlerEJB implements ProofOfDeli
{
confirmed =rs.getString(1)==null ? "N":rs.getString(1);
wfStatus=rs.getString(2)==null ? "O" : rs.getString(2);
invoiceID=rs.getString(3);
}
if( pstmt != null )
{
......@@ -117,6 +119,14 @@ public class ProofOfDeliveryConf extends ActionHandlerEJB implements ProofOfDeli
errString = itmdbAccess.getErrorString("", "VTALCONF", "", "", conn);
return errString;
}
//check in misc_drcr_rcp POD already received or not
podObj=new ProofOfDelivery();
if(podObj.isRecordPresentInMiscDrCrRcp(conn, invoiceID))
{
errString = itmdbAccess.getErrorString("", "VTPODARI", "", "", conn);
return errString;
}
System.out.println("-------wfStatus before confirm -------"+wfStatus);
//Only submitted transaction allowed to confirm
if(wfStatus.trim().equalsIgnoreCase("S"))
......
package ibase.webitm.ejb.dis;
import ibase.system.config.ConnDriver;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ProcessEJB;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.ejb.fin.MiscDrCrRcpConf;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import ibase.webitm.ejb.ValidatorEJB;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.ejb.Stateless;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class ProofOfDeliveryProcess {
String siteCodeG="",invTypeG="",xtraParamsG="",schemeCodeG="",multipleScheme="";
Map<String,Double> partialInvoiceMapG = new HashMap <String,Double>();
Map <String,Double>partialInvMap=new HashMap<String,Double>();
int invdoneCnt=0;
public String process(String xmlString, String xmlString2, String windowName, String xtraParams) throws RemoteException,ITMException{
System.out.println("enter in process(212....................");
String retStr = "";
Document detailDom = null;
Document headerDom = null;
GenericUtility genericUtility = GenericUtility.getInstance();
try{
if(xmlString != null && xmlString.trim().length()!=0){
headerDom = genericUtility.parseString(xmlString);
System.out.println("xmlString--->>" + xmlString);
}
if(xmlString2 != null && xmlString2.trim().length()!=0){
detailDom = genericUtility.parseString(xmlString2);
System.out.println("xmlString2 --->>" + xmlString2);
}
xtraParamsG=xtraParams;
retStr = process(headerDom, detailDom, windowName, xtraParams);
}
catch (Exception e)
{
System.out.println("Exception :PODProcess :process(String xmlString, String xmlString2, String windowName, String xtraParams):" + e.getMessage() + ":");
e.printStackTrace();
retStr = e.getMessage();
}
return retStr;
}
public String process(Document dom, Document dom2, String windowName, String xtraParams) throws RemoteException,ITMException
{
System.out.println("enter in process(dom) ");
ArrayList <String>inv45dayList=new ArrayList<String>();
ArrayList<String> podProcessInvIDList=new ArrayList<String>();
ArrayList<String> podNotConfList=new ArrayList<String>();
ArrayList<String> podTraceInvList=new ArrayList<String>();
ArrayList<String> miscDrCrInvList=new ArrayList<String>();
ArrayList<String> PodHdrInvList=new ArrayList<String>();
Connection conn = null;
ConnDriver connDriver = null;
GenericUtility genericUtility = null;
ProofOfDelivery podObject=null;
ITMDBAccessEJB itmdbAccess = null;
ValidatorEJB vdt=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
int cnt=0;
double ExchRate=0;
String siteCode="",custCodeFrm="",custCodeTo="",invType="",errorString="",errCode="",userId="",custCode="";
String sql="",invoiceId="",priceList="",currCode="";
try{
genericUtility = GenericUtility.getInstance();
itmdbAccess=new ITMDBAccessEJB();
podObject=ProofOfDelivery.getInstance();
vdt=new ValidatorEJB();
connDriver = new ConnDriver();
conn = connDriver.getConnectDB("DriverITM");
connDriver = null;
userId = vdt.getValueFromXTRA_PARAMS(xtraParams,"loginCode");
siteCode=genericUtility.getColumnValue("site_code", dom);
custCodeFrm=genericUtility.getColumnValue("cust_code_from", dom);
custCodeTo=genericUtility.getColumnValue("cust_code_to", dom);
invType=genericUtility.getColumnValue("inv_type", dom);
siteCode=siteCode==null ? "" :siteCode.trim();
custCodeFrm=custCodeFrm==null ? "" :custCodeFrm.trim();
custCodeTo=custCodeTo==null ? "" :custCodeTo.trim();
invType=invType==null ? "" :invType.trim();
System.out.println("SiteCode-133-->>["+siteCode+"]");
System.out.println("custCodeFrm--->>["+custCodeFrm+"]");
System.out.println("custCodeTo--->>["+custCodeTo+"]");
System.out.println("invType--->>["+invType+"]");
//Validation for Site code
if (siteCode.length() == 0 ){
errCode = "VTSITECNE";
errorString = vdt.getErrorString("site_code",errCode,userId);
return errorString;
}else{
cnt=podObject.getDBRowCount(conn,"site","site_code",siteCode);
if(cnt == 0){
System.out.println("site_code not exist validation fire");
errCode = "VTSITENEX";
errorString = vdt.getErrorString("site_code",errCode,userId);
return errorString;
}
}
//Validation for Customer Code From
if (custCodeFrm.length() == 0 ){
errCode = "VTCUSTCNE";
errorString = vdt.getErrorString("cust_code_from",errCode,userId);
return errorString;
}else{
System.out.println("custCodeFrm--->>["+custCodeFrm+"]");
if(!("00".equalsIgnoreCase(custCodeFrm))){
cnt=podObject.getDBRowCount(conn,"customer","cust_code",custCodeFrm);
if(cnt == 0){
System.out.println("custCodeFrom not exist validation fire");
errCode = "VTCUSTNEX";
errorString = vdt.getErrorString("cust_code_from",errCode,userId);
return errorString;
}
}
}
//Validation for Customer Code To
if (custCodeTo.length() == 0 ){
errCode = "VTCUSTCNE";
errorString = vdt.getErrorString("cust_code_to",errCode,userId);
return errorString;
}else{
System.out.println("custCodeTo --->>["+custCodeTo+"]");
if(!("ZZ".equalsIgnoreCase(custCodeTo))){
cnt=podObject.getDBRowCount(conn,"customer","cust_code",custCodeTo);
if(cnt == 0){
System.out.println("custCodeFrom not exist validation fire");
errCode = "VTCUSTNEX";
errorString = vdt.getErrorString("cust_code_to",errCode,userId);
return errorString;
}
}
}
//Validation for invoice type. only DM or IS invoice type allowed.
if(invType.length() == 0){
errCode = "VTINVTNN";
errorString = vdt.getErrorString("inv_type",errCode,userId);
return errorString;
}else{
if(!("DM".equalsIgnoreCase(invType) || "IS".equalsIgnoreCase(invType)) ){
errCode = "VTINVTI";
errorString = vdt.getErrorString("inv_type",errCode,userId);
return errorString;
}
}
if(custCodeFrm.length() > 0 && custCodeTo.length() > 0 && siteCode.length() > 0){
siteCodeG=siteCode;
invTypeG=invType;
if("00".equalsIgnoreCase(custCodeFrm) && "ZZ".equalsIgnoreCase(custCodeTo))
{
sql="select invoice_id from invoice where site_code = ? and confirmed = ?"
+ " and sysdate - conf_date > 45 and inv_type = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, "Y");
pstmt.setString(3,invType);
}else{
sql="select invoice_id from invoice where cust_code__bil between ? and ? and site_code = ? and confirmed = ?"
+ " and sysdate - conf_date > 45 and inv_type = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, custCodeFrm);
pstmt.setString(2, custCodeTo);
pstmt.setString(3, siteCode);
pstmt.setString(4, "Y");
pstmt.setString(5,invType);
}
rs=pstmt.executeQuery();
while(rs.next()){
invoiceId=rs.getString(1);
invoiceId=invoiceId==null ? "" :invoiceId.trim();
inv45dayList.add(invoiceId);
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
System.out.println("Size of arrayList inv45dayList----->>["+inv45dayList.size()+"]");
System.out.println("Actual inv45dayList-->>["+inv45dayList+"]");
PodHdrInvList=getDoneInvoiceIDFromPODHdr(conn,inv45dayList);
System.out.println("POD done arrayList---->>["+PodHdrInvList+"]");
miscDrCrInvList=getDoneInvoiceIDFromMiscDrCrRcp(conn, PodHdrInvList);
System.out.println("miscDrCrInvList11121---->>["+miscDrCrInvList+"]");
if(miscDrCrInvList.contains("Error")){
errCode="VTPRCNCP";
errorString = itmdbAccess.getErrorString("", errCode, "", "", conn);
return errorString;
}
if(miscDrCrInvList.size() > 0){
podProcessInvIDList.addAll(miscDrCrInvList);
}
if(podProcessInvIDList.size()<=0 && partialInvoiceMapG.size() <= 0){
errCode="VTDNFIN"; //Data not found
errorString = itmdbAccess.getErrorString("", errCode, "", "", conn);
return errorString;
}
}
} //end try
catch(Exception e)
{
System.out.println("Exception : POD Process : "+e.getMessage());
e.printStackTrace();
}
return "";
}
private ArrayList<String> getDoneInvoiceIDFromPODHdr(Connection conn,ArrayList<String>inv45dayListL)
{
System.out.println("------in getDoneInvoiceIDFromPODHdr------");
PreparedStatement pstmt=null,pstmt1=null;
ResultSet rs=null,rs1=null;
String sql="",remarks="",subInvId="",TranId="",sql1="",itemCode="",itemCodeM="",confirmed="",
lotNo="",lotSl="",lotNoM="",lotSlM="",traceLineNoS="";
int lineNoTrace=0,lineNoTraceM=0,deleteId=0,traceLineNo=0;
double sumQuantityMisc=0,sumQuantityInv=0,pendQty=0,qtyM=0;
HashSet<String> unqInvID=new HashSet <String>();
ArrayList<String> tranIDList=new ArrayList <String>();
ArrayList<String> InvIDList=new ArrayList <String>();
ArrayList<String> InvIDTemp=new ArrayList <String>();
ProofOfDelivery podL=ProofOfDelivery.getInstance();
try{
Iterator<String> it=inv45dayListL.iterator();
while(it.hasNext())
{
deleteId=1;
String id=it.next();
confirmed=podL.getColumnDescr(conn,"confirmed","spl_sales_por_hdr","invoice_id",id);
confirmed=confirmed==null ? "N" :confirmed.trim();
System.out.println("confirmed-->["+confirmed+"] invID-->["+id+"]");
if("Y".equalsIgnoreCase(confirmed)){
sql1="select d.quantity__resale,d.item_code,d.lot_no,d.lot_sl,d.pend_qty, "
+ "line_no__trace,d.loc_code from spl_sales_por_hdr h,spl_sales_por_det d "
+ "where h.tran_id = d.tran_id and h.invoice_id = ? "
+ " and d.pend_qty > 0";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, id);
rs1=pstmt1.executeQuery();
while(rs1.next()){
//lineNoTraceM=rs1.getInt(1);
qtyM=rs1.getDouble(1);
itemCodeM=rs1.getString(2);
lotNoM=rs1.getString(3);
lotSlM=rs1.getString(4);
pendQty=rs1.getDouble(5);
traceLineNo=rs1.getInt(6);
traceLineNoS=String.valueOf(traceLineNo);
itemCodeM=itemCodeM==null ? "" :itemCodeM.trim();
lotNoM=lotNoM==null ? "" :lotNoM.trim();
lotSlM=lotSlM==null ? "" :lotSlM.trim();
InvIDTemp.add(id);
partialInvoiceMapG.put(traceLineNoS+":"+id+":"+itemCode+":"+lotNoM+":"+lotSlM, pendQty);
}
} //confirmed id cond. end
} // end while 1
System.out.println("unqInvID addAll--->>["+unqInvID+"]");
System.out.println("InvIDTemp --->>["+InvIDTemp+"]");
if(InvIDTemp.size() > 0){
unqInvID.addAll(InvIDTemp);
InvIDList.clear();
InvIDList.addAll(unqInvID);
System.out.println("InvIDList addAll--->>["+InvIDList+"]");
//partialInvoice.addAll(InvIDList);
}
System.out.println("partialInvoiceMapG --->>["+partialInvoiceMapG+"]");
if(inv45dayListL.size() > 0){
Iterator <String>it1=InvIDList.iterator();
while (it1.hasNext()) {
String podPrcId=it1.next();
if(inv45dayListL.contains(podPrcId))
System.out.println("---in misc arrayList------"+podPrcId);
it1.remove();
inv45dayListL.remove(podPrcId);
}
}
}
catch(Exception e)
{
e.printStackTrace();
inv45dayListL.add("Error");
}
System.out.println("inv45dayListL addAll--->>["+inv45dayListL+"]");
return inv45dayListL;
}
private ArrayList<String> getDoneInvoiceIDFromMiscDrCrRcp(Connection conn,ArrayList<String>inv45dayListL)
{
System.out.println("------in getDoneInvoiceIDFromMiscDrCrRcp1234------");
PreparedStatement pstmt=null,pstmt1=null;
ResultSet rs=null,rs1=null;
String sql="",remarks="",subInvId="",TranId="",sql1="",itemCode="",itemCodeM="",confirmed="",
lotNo="",lotSl="",lotNoM="",lotSlM="",traceNo="";
int lineNoTrace=0,lineNoTraceM=0;
double sumQuantityMisc=0,sumQuantityInv=0,qty=0,qtyM=0;
HashSet<String> unqInvID=new HashSet <String>();
ArrayList<String> tranIDList=new ArrayList <String>();
ArrayList<String> InvIDList=new ArrayList <String>();
ArrayList<String> InvIDTemp=new ArrayList <String>();
ProofOfDelivery podL=ProofOfDelivery.getInstance();
boolean isDuplicate=false,isDuplicate1=false;
try{
Iterator<String> it=inv45dayListL.iterator();
while(it.hasNext())
{
String id=it.next();
/*confirmed=podL.getColumnDescr(conn,"confirmed","spl_sales_por_hdr","invoice_id",id);
confirmed=confirmed==null ? "N" :confirmed.trim();
System.out.println("confirmed-->["+confirmed+" invID-->["+id+"]");*/
sql="select quantity,item_code,lot_no,lot_sl,line_no__trace from invoice_trace where invoice_id = ? "
+ "group by item_code,lot_no, lot_sl,line_no__trace";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, id);
rs=pstmt.executeQuery();
while(rs.next()){
//lineNoTrace=rs.getInt(1);
isDuplicate=false;
qty=rs.getDouble(1);
itemCode=rs.getString(2);
lotNo=rs.getString(3);
lotSl=rs.getString(4);
lineNoTrace=rs.getInt(5);
itemCode=itemCode==null ? "" :itemCode.trim();
lotNo=lotNo==null ? "" :lotNo.trim();
lotSl=lotSl==null ? "" :lotSl.trim();
sql1="select sum(nvl(d.quantity,0)) as Quantity,d.item_code,d.lot_sl, d.lot_no,d.line_no__invtrace"
+" from misc_drcr_rcp h,misc_drcr_rdet d where h.tran_id=d.tran_id and h.remarks"
+" like ? and Quantity <> 0 group by d.item_code,d.lot_sl,d.lot_no,d.line_no__invtrace";
/*sql1="select sum(nvl(d.quantity__resale,0)),d.item_code from spl_sales_por_hdr h,spl_sales_por_det d "
+ "where h.tran_id = d.tran_id and h.invoice_id = ? group by d.item_code";*/
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, "%POD%"+id);
rs1=pstmt1.executeQuery();
while(rs1.next()){
//lineNoTraceM=rs1.getInt(1);
qtyM=rs1.getDouble(1);
itemCodeM=rs1.getString(2);
lotSlM=rs1.getString(3);
lotNoM=rs1.getString(4);
lineNoTraceM=rs.getInt(5);
traceNo=String.valueOf(lineNoTraceM);
itemCodeM=itemCodeM==null ? "" :itemCodeM.trim();
lotNoM=lotNoM==null ? "" :lotNoM.trim();
lotSlM=lotSlM==null ? "" :lotSlM.trim();
System.out.println("itemCodeM-->>["+itemCodeM+" itemCodeM-->["+itemCodeM+"]");
System.out.println("qtyMisc-->>["+qtyM+" qtyInvoice-->["+qty+"]");
if(qtyM < qty && itemCode.equalsIgnoreCase(itemCodeM)){
if(lotNoM.equalsIgnoreCase(lotNo) && lotSlM.equalsIgnoreCase(lotSl)){
InvIDTemp.add(id);
partialInvoiceMapG.put(traceNo+":"+id+":"+itemCode+":"+lotNoM+":"+lotSlM, qty- qtyM);
}
}else{
it.remove();
inv45dayListL.remove(id);
isDuplicate=true;
break;
}
}
if(isDuplicate){
System.out.println("isDuplicate continue......isDuplicate true");
isDuplicate1=true;
break;
}
if(rs1!=null){
rs1.close();
rs1=null;
}
}
System.out.println("InvTemp --->>["+InvIDTemp+"]");
if(isDuplicate1){
System.out.println("isDuplicate1 continue......isDuplicate true");
continue;
}
}
System.out.println("unqInvID addAll--->>["+unqInvID+"]");
System.out.println("InvIDTemp --->>["+InvIDTemp+"]");
if(InvIDTemp.size() > 0){
unqInvID.addAll(InvIDTemp);
InvIDList.clear();
InvIDList.addAll(unqInvID);
System.out.println("InvIDList addAll--->>["+InvIDList+"]");
//partialInvoice.addAll(InvIDList);
}
System.out.println("partialInvoiceMapG --->>["+partialInvoiceMapG+"]");
if(inv45dayListL.size() > 0){
Iterator <String>it1=InvIDList.iterator();
while (it1.hasNext()) {
String podPrcId=it1.next();
if(inv45dayListL.contains(podPrcId))
System.out.println("---in misc arrayList------"+podPrcId);
it1.remove();
inv45dayListL.remove(podPrcId);
}
}
}
catch(Exception e)
{
e.printStackTrace();
inv45dayListL.clear();
inv45dayListL.add("Error");
}
System.out.println("inv45dayListL addAll--->>["+inv45dayListL+"]");
return inv45dayListL;
}
}
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