Commit d99b0f97 authored by dpawar's avatar dpawar

added cust between 00 to ZZ. and its validation


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@94338 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 0f5156d9
...@@ -37,9 +37,10 @@ import com.sun.jmx.snmp.Timestamp; ...@@ -37,9 +37,10 @@ import com.sun.jmx.snmp.Timestamp;
@Stateless @Stateless
public class PODProcess extends ProcessEJB implements PODProcessLocal,PODProcessRemote public class PODProcess extends ProcessEJB implements PODProcessLocal,PODProcessRemote
{ {
String siteCodeG="",invTypeG=""; String siteCodeG="",invTypeG="",xtraParamsG="";
ArrayList<String> partialInvHDR = new ArrayList <String>(); Map<String,Double> partialInvoiceMapG = new HashMap <String,Double>();
Map <String,Double>partialInvMap=new HashMap<String,Double>(); Map <String,Double>partialInvMap=new HashMap<String,Double>();
int invdoneCnt=0;
//in that map only partial invoice id,line_no_trace added with actual qty less partial qty //in that map only partial invoice id,line_no_trace added with actual qty less partial qty
public String process(String xmlString, String xmlString2, String windowName, String xtraParams) throws RemoteException,ITMException public String process(String xmlString, String xmlString2, String windowName, String xtraParams) throws RemoteException,ITMException
{ {
...@@ -62,7 +63,7 @@ public class PODProcess extends ProcessEJB implements PODProcessLocal,PODProcess ...@@ -62,7 +63,7 @@ public class PODProcess extends ProcessEJB implements PODProcessLocal,PODProcess
detailDom = genericUtility.parseString(xmlString2); detailDom = genericUtility.parseString(xmlString2);
System.out.println("xmlString2 --->>" + xmlString2); System.out.println("xmlString2 --->>" + xmlString2);
} }
xtraParamsG=xtraParams;
retStr = process(headerDom, detailDom, windowName, xtraParams); retStr = process(headerDom, detailDom, windowName, xtraParams);
} }
...@@ -99,6 +100,7 @@ public String process(Document dom, Document dom2, String windowName, String xtr ...@@ -99,6 +100,7 @@ public String process(Document dom, Document dom2, String windowName, String xtr
PreparedStatement pstmt=null; PreparedStatement pstmt=null;
ResultSet rs=null; ResultSet rs=null;
int cnt=0; int cnt=0;
double ExchRate=0; double ExchRate=0;
String siteCode="",custCodeFrm="",custCodeTo="",invType="",errorString="",errCode="",userId="",custCode=""; String siteCode="",custCodeFrm="",custCodeTo="",invType="",errorString="",errCode="",userId="",custCode="";
String sql="",invoiceId="",priceList="",currCode=""; String sql="",invoiceId="",priceList="",currCode="";
...@@ -146,14 +148,18 @@ public String process(Document dom, Document dom2, String windowName, String xtr ...@@ -146,14 +148,18 @@ public String process(Document dom, Document dom2, String windowName, String xtr
errorString = vdt.getErrorString("cust_code_from",errCode,userId); errorString = vdt.getErrorString("cust_code_from",errCode,userId);
return errorString; return errorString;
}else{ }else{
cnt=podObject.getDBRowCount(conn,"customer","cust_code",custCodeFrm); System.out.println("custCodeFrm--->>["+custCodeFrm+"]");
if(cnt == 0){ if(!("00".equalsIgnoreCase(custCodeFrm))){
System.out.println("custCodeFrom not exist validation fire"); cnt=podObject.getDBRowCount(conn,"customer","cust_code",custCodeFrm);
errCode = "VTCUSTNEX"; if(cnt == 0){
errorString = vdt.getErrorString("cust_code_from",errCode,userId); System.out.println("custCodeFrom not exist validation fire");
return errorString; errCode = "VTCUSTNEX";
} errorString = vdt.getErrorString("cust_code_from",errCode,userId);
return errorString;
}
}
} }
//Validation for Customer Code To //Validation for Customer Code To
...@@ -163,12 +169,15 @@ public String process(Document dom, Document dom2, String windowName, String xtr ...@@ -163,12 +169,15 @@ public String process(Document dom, Document dom2, String windowName, String xtr
return errorString; return errorString;
}else{ }else{
cnt=podObject.getDBRowCount(conn,"customer","cust_code",custCodeTo); System.out.println("custCodeTo --->>["+custCodeTo+"]");
if(cnt == 0){ if(!("ZZ".equalsIgnoreCase(custCodeTo))){
System.out.println("custCodeTo not exist validation fire"); cnt=podObject.getDBRowCount(conn,"customer","cust_code",custCodeTo);
errCode = "VTCUSTNEX"; if(cnt == 0){
errorString = vdt.getErrorString("cust_code_to",errCode,userId); System.out.println("custCodeFrom not exist validation fire");
return errorString; errCode = "VTCUSTNEX";
errorString = vdt.getErrorString("cust_code_to",errCode,userId);
return errorString;
}
} }
} }
//Validation for invoice type. only DM or IS invoice type allowed. //Validation for invoice type. only DM or IS invoice type allowed.
...@@ -178,7 +187,7 @@ public String process(Document dom, Document dom2, String windowName, String xtr ...@@ -178,7 +187,7 @@ public String process(Document dom, Document dom2, String windowName, String xtr
return errorString; return errorString;
}else{ }else{
if(!("DM".equalsIgnoreCase(invType) || "IS".equalsIgnoreCase(invType))){ if(!("DM".equalsIgnoreCase(invType) || "IS".equalsIgnoreCase(invType)) ){
errCode = "VTINVTI"; errCode = "VTINVTI";
errorString = vdt.getErrorString("inv_type",errCode,userId); errorString = vdt.getErrorString("inv_type",errCode,userId);
return errorString; return errorString;
...@@ -187,13 +196,25 @@ public String process(Document dom, Document dom2, String windowName, String xtr ...@@ -187,13 +196,25 @@ public String process(Document dom, Document dom2, String windowName, String xtr
if(custCodeFrm.length() > 0 && custCodeTo.length() > 0 && siteCode.length() > 0){ if(custCodeFrm.length() > 0 && custCodeTo.length() > 0 && siteCode.length() > 0){
siteCodeG=siteCode; siteCodeG=siteCode;
invTypeG=invType; invTypeG=invType;
sql="select invoice_id from invoice where cust_code__bil between ? and ? and site_code = ? and confirmed = ?" if("00".equalsIgnoreCase(custCodeFrm) && "ZZ".equalsIgnoreCase(custCodeTo))
+ "and sysdate - conf_date > 45 and inv_type IN('DM','IS')"; {
pstmt=conn.prepareStatement(sql); sql="select invoice_id from invoice where site_code = ? and confirmed = ?"
pstmt.setString(1, custCodeFrm); + " and sysdate - conf_date > 45 and inv_type = ?";
pstmt.setString(2, custCodeTo); pstmt=conn.prepareStatement(sql);
pstmt.setString(3, siteCode); pstmt.setString(1, siteCode);
pstmt.setString(4, "Y"); 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(); rs=pstmt.executeQuery();
while(rs.next()){ while(rs.next()){
...@@ -245,7 +266,7 @@ public String process(Document dom, Document dom2, String windowName, String xtr ...@@ -245,7 +266,7 @@ public String process(Document dom, Document dom2, String windowName, String xtr
*/ */
System.out.println("podProcessInvIDList-->>["+podProcessInvIDList+"]"); System.out.println("inv45dayList-->>["+inv45dayList+"]");
miscDrCrInvList=getDoneInvoiceIDFromMiscDrCrRcp(conn,inv45dayList); miscDrCrInvList=getDoneInvoiceIDFromMiscDrCrRcp(conn,inv45dayList);
System.out.println("miscDrCrInvList123---->>["+miscDrCrInvList+"]"); System.out.println("miscDrCrInvList123---->>["+miscDrCrInvList+"]");
/*Iterator<String> it1 = podProcessInvIDList.iterator(); /*Iterator<String> it1 = podProcessInvIDList.iterator();
...@@ -319,6 +340,7 @@ public String process(Document dom, Document dom2, String windowName, String xtr ...@@ -319,6 +340,7 @@ public String process(Document dom, Document dom2, String windowName, String xtr
private String generateDebitNote(Connection conn,ArrayList<String> podProcessInvIDListL,String priceListL,String xtraParams,String siteCode,String invType) private String generateDebitNote(Connection conn,ArrayList<String> podProcessInvIDListL,String priceListL,String xtraParams,String siteCode,String invType)
{ {
invdoneCnt=0;
ResultSet rs=null,rs1=null; ResultSet rs=null,rs1=null;
Connection conn1=null; Connection conn1=null;
PreparedStatement pstmt=null,pstmt1=null; PreparedStatement pstmt=null,pstmt1=null;
...@@ -329,11 +351,12 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv ...@@ -329,11 +351,12 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
HashMap<String,String> schemeMap=new HashMap(); HashMap<String,String> schemeMap=new HashMap();
HashMap<String,String> partialMap=new HashMap(); HashMap<String,String> partialMap=new HashMap();
Set<String> splitPartial=new HashSet<String>(); Set<String> splitPartial=new HashSet<String>();
Map<String,Double> schemeQty=null; Map<String,Double> schemeQty=null;
String partialError="";
String sql="",lotNo="",lotSl="",itemCode="",itemCodeOrd="",itemActive="",detail2xmlString="",errString=""; String sql="",lotNo="",lotSl="",itemCode="",itemCodeOrd="",itemActive="",detail2xmlString="",errString="";
String custCode="",currCode="",partial="N",QtyInvTrace="",scheme="N",errCode="",sreturnTranID="",sql1=""; String custCode="",currCode="",partial="N",QtyInvTrace="",scheme="N",errCode="",sreturnTranID="",sql1="";
double invRate=0,invQty=0,discount=0,priceListRate=0,detail3Amt=0,detail3AmtT=0,debitNoteAmtDetail=0; double invRate=0,invQty=0,discount=0,priceListRate=0,detail3Amt=0,detail3AmtT=0,debitNoteAmtDetail=0;
double debitNoteAmtHdr=0,ExchRate=0,actualRate=0,chargQty=0,freeQty=0,netPTS=0,sreturnQuantity=0; double debitNoteAmtHdr=0,ExchRate=0,actualRate=0,chargQty=0,freeQty=0,netPTS=0,sreturnQuantity=0,partialQty=0;
int lineNotrace=0,lineNo=0,noOfInvoicePrc=0,totalInvoice=0; int lineNotrace=0,lineNo=0,noOfInvoicePrc=0,totalInvoice=0;
pod=ProofOfDelivery.getInstance(); pod=ProofOfDelivery.getInstance();
podC=ProofOfDeliveryConf.getInstance(); podC=ProofOfDeliveryConf.getInstance();
...@@ -398,7 +421,7 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv ...@@ -398,7 +421,7 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
pstmt1.setString(2, itemCode); pstmt1.setString(2, itemCode);
rs1=pstmt1.executeQuery(); rs1=pstmt1.executeQuery();
if(rs1.next()){ if(rs1.next()){
sreturnQuantity=rs.getDouble(2); sreturnQuantity=rs1.getDouble(2);
} }
if(rs1!=null){ if(rs1!=null){
rs1.close(); rs1.close();
...@@ -410,12 +433,10 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv ...@@ -410,12 +433,10 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
} }
System.out.println("Sales return------>>["+sreturnQuantity+"]"); System.out.println("Sales return------>>["+sreturnQuantity+"]");
invQty=invQty-sreturnQuantity; invQty=invQty-sreturnQuantity;
} }
//check if any partially entry exist in POD HDR or not.
//if yes then minus from actual invoice qty.
partial="N"; partial="N";
scheme="N"; scheme="N";
if(pod.isPartialyInvoiceChk(conn, invoiceId,"PRC")){ /*if(pod.isPartialyInvoiceChk(conn, invoiceId,"PRC")){
System.out.println("@#@#partial condition found for invoice id----->>["+invoiceId+"]"); System.out.println("@#@#partial condition found for invoice id----->>["+invoiceId+"]");
System.out.println("Actual inv qty in inv trace---->>["+invQty+"]"); System.out.println("Actual inv qty in inv trace---->>["+invQty+"]");
System.out.println("inv. qty done in POD screen---->>["+pod.partialQty+"]"); System.out.println("inv. qty done in POD screen---->>["+pod.partialQty+"]");
...@@ -423,8 +444,11 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv ...@@ -423,8 +444,11 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
partial="Y"; partial="Y";
partialMap.put(invoiceId+","+itemCode, scheme); partialMap.put(invoiceId+","+itemCode, scheme);
System.out.println("Actual inv qty---->>["+invQty+"]"); System.out.println("Actual inv qty---->>["+invQty+"]");
} }*/
partialMap.put(invoiceId+","+itemCode, partial);
//partialQty=actualQtyPODProcessPartial(conn,invoiceId,itemCode,lineNotrace);
//System.out.println("partial qty---->>["+partialQty+"]");
//partialMap.put(invoiceId+","+itemCode, partial);
//Check if item code Active or not."N" or null then return error message. //Check if item code Active or not."N" or null then return error message.
itemActive=pod.getColumnDescr(conn,"active","item","item_code",itemCode); itemActive=pod.getColumnDescr(conn,"active","item","item_code",itemCode);
...@@ -470,8 +494,15 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv ...@@ -470,8 +494,15 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
System.out.println("Net PTS rate----->>["+netPTS+"]"); System.out.println("Net PTS rate----->>["+netPTS+"]");
actualRate=netPTS - invRate; actualRate=netPTS - invRate;
System.out.println("actualRate----->>["+actualRate+"]"); System.out.println("actualRate-------->>["+actualRate+"]");
if(actualRate <= 0){
errCode="VTNGAMTE"; //negative rate
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
errString=newErrorMessage(errString, invoiceId);
return errString;
}
detail3Amt= actualRate * invQty; detail3Amt= actualRate * invQty;
System.out.println("Debit note amount-------->>["+detail3Amt+"]");
detail3AmtT=detail3AmtT + detail3Amt; detail3AmtT=detail3AmtT + detail3Amt;
lineNo++; lineNo++;
detail2xmlString=detail2xmlString + podC.getDetailsXmlString(conn,invoiceId,lineNotrace,lineNo,actualRate,invQty,lotNo,lotSl,itemCode, detail3Amt); detail2xmlString=detail2xmlString + podC.getDetailsXmlString(conn,invoiceId,lineNotrace,lineNo,actualRate,invQty,lotNo,lotSl,itemCode, detail3Amt);
...@@ -481,6 +512,13 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv ...@@ -481,6 +512,13 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
System.out.println("-------Scheme not apply -----------"); System.out.println("-------Scheme not apply -----------");
schemeMap.put(invoiceId+","+itemCode, scheme); schemeMap.put(invoiceId+","+itemCode, scheme);
actualRate=priceListRate - invRate; actualRate=priceListRate - invRate;
System.out.println("actualRate-------->>["+actualRate+"]");
if(actualRate <= 0){
errCode="VTNGAMTE"; //negative rate
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
errString=newErrorMessage(errString, invoiceId);
return errString;
}
detail3Amt= actualRate * invQty; detail3Amt= actualRate * invQty;
System.out.println("Debit note amount-------->>["+detail3Amt+"]"); System.out.println("Debit note amount-------->>["+detail3Amt+"]");
...@@ -498,7 +536,6 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv ...@@ -498,7 +536,6 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
pstmt.close(); pstmt.close();
pstmt=null; pstmt=null;
System.out.println("Detail2 xml-------->>[["+detail2xmlString+"]"); System.out.println("Detail2 xml-------->>[["+detail2xmlString+"]");
System.out.println("detail3AmtT-------->>[["+detail3AmtT+"]");
if(detail3AmtT > 0){ if(detail3AmtT > 0){
invoiceDetailsMap=pod.getDetailsFromInvoice(conn, invoiceId); invoiceDetailsMap=pod.getDetailsFromInvoice(conn, invoiceId);
custCode=invoiceDetailsMap.get("cust_code").toString(); custCode=invoiceDetailsMap.get("cust_code").toString();
...@@ -516,23 +553,18 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv ...@@ -516,23 +553,18 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
{ {
int cnt=insertDataInPodTrace(conn1, invoiceId, podC.xmlStringAll, schemeMap, partialMap,"Y"); int cnt=insertDataInPodTrace(conn1, invoiceId, podC.xmlStringAll, schemeMap, partialMap,"Y");
noOfInvoicePrc++; noOfInvoicePrc++;
if(noOfInvoicePrc==totalInvoice){ if(noOfInvoicePrc==totalInvoice){
errCode="VTPRCCSF"; invdoneCnt=1;
/*errCode="VTPRCCSF";
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn); errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
return errString; return errString; */
} }
if(cnt > 0){ if(cnt > 0){
conn1.commit(); conn1.commit();
} }
conn.commit(); //conn.commit();------------commited when partial invoice end
/*errCode="VTPRCCSF";
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
return errString; */
//return "Success";
}else{ }else{
conn.rollback(); conn.rollback();
int cnt=insertDataInPodTrace(conn1, invoiceId, podC.xmlStringAll, schemeMap, partialMap,"N"); int cnt=insertDataInPodTrace(conn1, invoiceId, podC.xmlStringAll, schemeMap, partialMap,"N");
...@@ -551,23 +583,24 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv ...@@ -551,23 +583,24 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
} }
}else {// end detail3AmtT > 0 condition }else {// end detail3AmtT > 0 condition
int cnt2=0; errCode="VTNGAMTE"; //negative amount
System.out.println("Debit note gennerated for Rs.0- Invoice ID----->> ["+invoiceId+"]"); errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
if((podC.xmlStringAll)!=null && (podC.xmlStringAll).length() > 0){ errString=newErrorMessage(errString, invoiceId);
cnt2=insertDataInPodTrace(conn1, invoiceId, podC.xmlStringAll, schemeMap, partialMap,"Y"); return errString;
}
if(cnt2 > 1)
conn1.commit();
} }
} //end invoice id for loop } //end invoice id for loop
}else{ }else{
errCode="VTDNFFP"; //No data found for processing errCode="VTDNFFP"; //No data found for processing
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn); errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
conn.rollback();
return errString; return errString;
} }
if(errString.length() > 0){
errString =actualQtyPODProcessPartial(conn); //partialInvoiceMapV
System.out.println("Returing STring from actualQtyPODProcessPartial-->>["+errString+"]");
}
}catch(Exception e) }catch(Exception e)
{ {
...@@ -889,7 +922,7 @@ private Map<String,Double> schemeApply(Connection conn,String invoiceID,String i ...@@ -889,7 +922,7 @@ private Map<String,Double> schemeApply(Connection conn,String invoiceID,String i
} }
return schemeQtyMap; return schemeQtyMap;
} }
private int insertDataInPodTrace(Connection conn,String invID,String xmlDataAll,Map<String,String> schemeMapL,Map<String,String> partialMapL,String success) private int insertDataInPodTrace(Connection conn1,String invID,String xmlDataAll,Map<String,String> schemeMapL,Map<String,String> partialMapL,String success)
{ {
PreparedStatement pstmt=null; PreparedStatement pstmt=null;
ResultSet rs=null; ResultSet rs=null;
...@@ -922,7 +955,7 @@ private int insertDataInPodTrace(Connection conn,String invID,String xmlDataAll, ...@@ -922,7 +955,7 @@ private int insertDataInPodTrace(Connection conn,String invID,String xmlDataAll,
sql="select tran_id from podtrace order by tran_id DESC"; sql="select tran_id from podtrace order by tran_id DESC";
pstmt=conn.prepareStatement(sql); pstmt=conn1.prepareStatement(sql);
rs=pstmt.executeQuery(); rs=pstmt.executeQuery();
if(rs.next()){ if(rs.next()){
tranID=Long.parseLong(rs.getString(1).trim()); tranID=Long.parseLong(rs.getString(1).trim());
...@@ -935,7 +968,7 @@ private int insertDataInPodTrace(Connection conn,String invID,String xmlDataAll, ...@@ -935,7 +968,7 @@ private int insertDataInPodTrace(Connection conn,String invID,String xmlDataAll,
sql="insert into podtrace (tran_id,line_no,tran_date,invoice_id,site_code,item_code,inv_type,db_qty," sql="insert into podtrace (tran_id,line_no,tran_date,invoice_id,site_code,item_code,inv_type,db_qty,"
+ "db_rate,debit_note_amt,partial,scheme,chg_date,chg_user,chg_term,success) " + "db_rate,debit_note_amt,partial,scheme,chg_date,chg_user,chg_term,success) "
+ "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt=conn.prepareStatement(sql); pstmt=conn1.prepareStatement(sql);
pstmt.setString(1, Long.toString(++tranID)); pstmt.setString(1, Long.toString(++tranID));
pstmt.setInt(2, Integer.parseInt(lineNoS)); pstmt.setInt(2, Integer.parseInt(lineNoS));
pstmt.setTimestamp(3, new java.sql.Timestamp(new java.util.Date().getTime()) ); pstmt.setTimestamp(3, new java.sql.Timestamp(new java.util.Date().getTime()) );
...@@ -1031,9 +1064,9 @@ private ArrayList<String> getDoneInvoiceIDFromMiscDrCrRcp(Connection conn,ArrayL ...@@ -1031,9 +1064,9 @@ private ArrayList<String> getDoneInvoiceIDFromMiscDrCrRcp(Connection conn,ArrayL
}*/ }*/
Iterator<String> it=inv45dayListL.iterator(); Iterator<String> it=inv45dayListL.iterator();
//for(String id : inv45dayListL) //for(String id : inv45dayListL)
if(it.hasNext()) while(it.hasNext())
{ {
String id=it.next(); String id=it.next();
sql="select sum(quantity),item_code from invoice_trace where invoice_id = ? group by item_code,invoice_id"; sql="select sum(quantity),item_code from invoice_trace where invoice_id = ? group by item_code,invoice_id";
pstmt=conn.prepareStatement(sql); pstmt=conn.prepareStatement(sql);
pstmt.setString(1, id); pstmt.setString(1, id);
...@@ -1062,6 +1095,7 @@ private ArrayList<String> getDoneInvoiceIDFromMiscDrCrRcp(Connection conn,ArrayL ...@@ -1062,6 +1095,7 @@ private ArrayList<String> getDoneInvoiceIDFromMiscDrCrRcp(Connection conn,ArrayL
System.out.println("qtyM-->>["+qtyM+" qtyM-->["+qty+"]"); System.out.println("qtyM-->>["+qtyM+" qtyM-->["+qty+"]");
if(qtyM < qty && itemCode.equalsIgnoreCase(itemCodeM)){ if(qtyM < qty && itemCode.equalsIgnoreCase(itemCodeM)){
InvIDTemp.add(id); InvIDTemp.add(id);
partialInvoiceMapG.put(id+":"+itemCode.trim(), qty- qtyM);
}else{ }else{
it.remove(); it.remove();
inv45dayListL.remove(id); inv45dayListL.remove(id);
...@@ -1074,25 +1108,40 @@ private ArrayList<String> getDoneInvoiceIDFromMiscDrCrRcp(Connection conn,ArrayL ...@@ -1074,25 +1108,40 @@ private ArrayList<String> getDoneInvoiceIDFromMiscDrCrRcp(Connection conn,ArrayL
} }
System.out.println("InvTemp --->>["+InvIDTemp+"]"); System.out.println("InvTemp --->>["+InvIDTemp+"]");
} }
System.out.println("unqInvID addAll--->>["+unqInvID+"]");
System.out.println("InvIDTemp --->>["+InvIDTemp+"]");
System.out.println("inv45dayListL in -MISC-->>"+inv45dayListL);
if(InvIDTemp.size() > 0){ if(InvIDTemp.size() > 0){
unqInvID.addAll(InvIDTemp); unqInvID.addAll(InvIDTemp);
InvIDList.clear();
InvIDList.addAll(unqInvID);
System.out.println("InvIDList addAll--->>["+InvIDList+"]");
//partialInvoice.addAll(InvIDList);
} }
System.out.println("unqInvID --->>["+unqInvID+"]"); System.out.println("partialInvoiceMapG --->>["+partialInvoiceMapG+"]");
unqInvID.addAll(inv45dayListL); if(inv45dayListL.size() > 0){
inv45dayListL.clear(); Iterator <String>it1=InvIDList.iterator();
inv45dayListL.addAll(unqInvID); 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) catch(Exception e)
{ {
e.printStackTrace(); e.printStackTrace();
} }
System.out.println("inv45dayListL addAll--->>["+inv45dayListL+"]");
return inv45dayListL; return inv45dayListL;
} }
private String newErrorMessage(String errString,String invid) private String newErrorMessage(String errString,String invid)
...@@ -1161,6 +1210,343 @@ private String newErrorMessage(String errString,String invid) ...@@ -1161,6 +1210,343 @@ private String newErrorMessage(String errString,String invid)
} }
return newStr.toString(); return newStr.toString();
} }
public String actualQtyPODProcessPartial(Connection conn) //partialInvoiceMap
{
System.out.println("-------for partial invoice id Dr note1233 -----------");
ResultSet rs=null,rs1=null;
PreparedStatement pstmt=null,pstmt1=null;
String sql="",tranIdL="",sql1="",itemCodeP="";
double actQty=0,doneQty=0,invQtyP=0;
ITMDBAccessEJB itmdbAccess1=new ITMDBAccessEJB();
Map<String,Double>partialInvItem=new HashMap();
Map<String,String>partialMap=new HashMap();
ArrayList<String>partialID=new ArrayList();
ArrayList<String>partialItem=new ArrayList();
Map<String,String> invoiceDetailsMap=null;
HashMap<String,String> podTraceMap=new HashMap();
HashMap<String,String> schemeMap=new HashMap();
Set<String> splitPartial=new HashSet<String>();
Map<String,Double> schemeQty=null;
String lotNo="",lotSl="",itemCode="",itemCodeOrd="",itemActive="",detail2xmlString="",errString="";
String custCode="",currCode="",partial="N",QtyInvTrace="",scheme="N",errCode="",sreturnTranID="",priceList="";
double invRate=0,invQty=0,discount=0,priceListRate=0,detail3Amt=0,detail3AmtT=0,debitNoteAmtDetail=0;
double debitNoteAmtHdr=0,ExchRate=0,actualRate=0,chargQty=0,freeQty=0,netPTS=0,sreturnQuantity=0,partialQty=0;
int lineNotrace=0,lineNo=0,noOfInvoicePrc=0,totalInvoice=0;
ProofOfDelivery pod=ProofOfDelivery.getInstance();
ProofOfDelivery podObject=ProofOfDelivery.getInstance();
ProofOfDeliveryConf podC=ProofOfDeliveryConf.getInstance();
int count=0,cnt1=1,cnt2=0,itemCnt=0;
Connection conn1=null;
ConnDriver connDriver1 = new ConnDriver();
try{
conn1 = connDriver1.getConnectDB("DriverITM");
/*sql="select sum(d.quantity__resale),d.item_code,d.quantity__inv 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, d.quantity__inv";*/
System.out.println("partialInvoiceMapG--->>"+partialInvoiceMapG);
if(partialInvoiceMapG.size() > 0){
for (String id :partialInvoiceMapG.keySet())
{
String [] invID =id.split(":");
partialID.add(invID[cnt2]);
partialItem.add(invID[cnt1]);
cnt2++;
cnt1++;
}
}
System.out.println("partialID--->>["+partialID+"]");
System.out.println("partialItem--->>["+partialItem+"]");
totalInvoice=partialID.size();
System.out.println("totalInvoice--->>["+totalInvoice+"]");
for (String invIdPartial : partialID)
{
itemCode=partialItem.get(itemCnt)==null ? "" :partialItem.get(itemCnt).trim();
invQty=partialInvoiceMapG.get(invIdPartial+":"+itemCode);
sql1="select rate,lot_no,lot_sl,discount from invoice_trace "
+ "where invoice_id = ? and item_code = ?";
pstmt=conn.prepareStatement(sql1);
pstmt.setString(1, invIdPartial);
pstmt.setString(2, itemCode);
rs=pstmt.executeQuery();
if(rs.next()){
invRate=rs.getDouble(1);
lotNo=rs.getString(2);
lotSl=rs.getString(3);
discount=rs.getDouble(4);
}
if(rs!=null){
rs.close();
rs=null;
}
if(pstmt!=null){
pstmt.close();
pstmt=null;
}
//Discount need discussion
if(discount > 0)
{
invRate=invRate - (invRate * discount/100);
System.out.println("Discount for invoice id--->>["+invIdPartial+"]"+"inv Rate-->>["+invRate+"]");
}
//check if any sales return
sreturnTranID=pod.getSalesReturnTranID(conn, "sreturn", "tran_id", "invoice_id", invIdPartial);
sreturnTranID=sreturnTranID==null ? "" : sreturnTranID.trim();
if(sreturnTranID.length() > 0)
{
System.out.println("-----Got sales return tran id-----------");
sql1="select item_code,quantity from sreturndet where tran_id = ? and item_code = ? ";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, sreturnTranID);
pstmt1.setString(2, itemCode);
rs1=pstmt1.executeQuery();
if(rs1.next()){
sreturnQuantity=rs1.getDouble(2);
}
if(rs1!=null){
rs1.close();
rs1=null;
}
if(pstmt1!=null){
pstmt1.close();
pstmt1=null;
}
}
itemActive=pod.getColumnDescr(conn,"active","item","item_code",itemCode);
itemActive=itemActive==null ? "" :itemActive.trim();
if(itemActive.equalsIgnoreCase("N") || itemActive.length()<=0)
{
errCode="VTITMCNAC"; //Item code not active
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
errString=newErrorMessage(errString, invIdPartial);
return errString; // item code not active
}
java.util.Date tranDate=new Date();
priceList=podObject.getNameOrDescrForCode(conn, "site", "price_list", "site_code", siteCodeG);
priceListRate=getPriceListRate(priceList, tranDate,itemCode,lotNo,"", conn);
System.out.println("priceListRate----->>["+priceListRate+"]");
if(priceListRate <= 0)
{
errCode="VTPRCLNE";
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
errString=newErrorMessage(errString, invIdPartial);
return errString;
}
if(isSchemeApply(conn,itemCode)){
//java code if scheme is apply
System.out.println("-------Scheme is apply -----------");
schemeQty=schemeApply(conn,invIdPartial,itemCode);
System.out.println("schemeQty map---->>["+schemeQty+"]");
if(schemeQty.size() > 0){
if(schemeQty.get("success") < 0){
errCode="VTPRCNCP"; // Scheme related error or sql error.
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
errString=newErrorMessage(errString, invIdPartial);
return errString;
}
else if(schemeQty.get("success") == 1){
scheme="Y";
schemeMap.put(invIdPartial+","+itemCode, scheme);
chargQty=schemeQty.get("charge_qty");
freeQty=schemeQty.get("free_qty");
netPTS=chargQty / (chargQty + freeQty) * priceListRate;
System.out.println("Net PTS rate----->>["+netPTS+"]");
actualRate=netPTS - invRate;
detail3Amt= actualRate * invQty;
detail3AmtT=detail3AmtT + detail3Amt;
lineNo++;
detail2xmlString=detail2xmlString + podC.getDetailsXmlString(conn,invIdPartial,lineNotrace,lineNo,actualRate,invQty,lotNo,lotSl,itemCode, detail3Amt);
}
}
}else{
System.out.println("-------Scheme not apply -----------");
schemeMap.put(invIdPartial+","+itemCode, scheme);
actualRate=priceListRate - invRate;
detail3Amt= actualRate * invQty;
System.out.println("invQty-------->>["+invQty+"]");
System.out.println("invRate-------->>["+invRate+"]");
System.out.println("Debit note amount-------->>["+detail3Amt+"]");
System.out.println("Actual rate after deducting inv rate-------->>["+detail3Amt+"]");
detail3AmtT=detail3AmtT + detail3Amt;
lineNo++;
detail2xmlString=detail2xmlString + podC.getDetailsXmlString(conn,invIdPartial,lineNotrace,lineNo,actualRate,invQty,lotNo,lotSl,itemCode, detail3Amt);
} //end isSchemeApply
System.out.println("Detail2Xml for partial--->>["+detail2xmlString+"]");
System.out.println("detail3AmtT for partial--->>["+detail3AmtT+"]");
if(detail3AmtT > 0){
invoiceDetailsMap=pod.getDetailsFromInvoice(conn, invIdPartial);
custCode=invoiceDetailsMap.get("cust_code").toString();
currCode =pod.checkNull(invoiceDetailsMap.get("curr_code")); //xmlStringAll
ExchRate=Double.parseDouble(invoiceDetailsMap.get("exch_rate"));
errString=podC.genDebitNote("PRC",invIdPartial,custCode,siteCodeG,xtraParamsG,currCode,ExchRate,detail2xmlString,detail3AmtT,conn);
System.out.println("------Error string after DN save--->>["+errString+"]");
if (errString.indexOf("Success") > -1)
{
System.out.println("Tran id for Misc. debit note------->>["+(podC.debitNoteTranID).trim()+"]");
MiscDrCrRcpConf confDebitNote=new MiscDrCrRcpConf();
errString=confDebitNote.confirm((podC.debitNoteTranID).trim(),xtraParamsG,"",conn);
System.out.println("Error String on DB Confirmation: "+errString);
if((errString != null ) && errString.indexOf("CONFSUCCES") > -1)
{
int cnt=insertDataInPodTrace(conn1, invIdPartial, podC.xmlStringAll, schemeMap, partialMap,"Y");
noOfInvoicePrc++;
System.out.println("noOfInvoicePrc-->>["+noOfInvoicePrc+"]");
if(noOfInvoicePrc==totalInvoice){
if(invdoneCnt==1){
errCode="VTPRCCSF";
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
conn.commit();
return errString;
}
}else if(invdoneCnt==1){
System.out.println("invdoneCnt1----true");
errCode="VTPPRCSF";
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
conn.commit();
return errString;
}
if(cnt > 0){
conn1.commit();
}
/*errCode="VTPRCCSF";
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
return errString; */
//return "Success";
}else{
conn.rollback();
int cnt=insertDataInPodTrace(conn1, invIdPartial, podC.xmlStringAll, schemeMap, partialMap,"N");
if(cnt > 1)
conn1.commit();
errString=newErrorMessage(errString, invIdPartial);
return errString;
}
}else{
conn.rollback();
int cnt=insertDataInPodTrace(conn1, invIdPartial, podC.xmlStringAll, schemeMap, partialMap,"N");
if(cnt > 1)
conn1.commit();
errString=newErrorMessage(errString, invIdPartial);
return errString;
}
}else{
errCode="VTNGAMTE"; //negative amount
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
errString=newErrorMessage(errString, invIdPartial);
conn.rollback();
return errString;
}
itemCnt++;
} //end for loop for partial
}//end try
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("Done quantity---->>["+doneQty+"]");
return errString;
}
public void partialInvDebitNote(Connection conn,ArrayList<String> invIdPartial)
{
ResultSet rs=null,rs1=null;
PreparedStatement pstmt=null,pstmt1=null;
String sql="",tranIdL="",sql1="";
String lotNo="",lotSl="",itemCode="",itemCodeOrd="",itemActive="",detail2xmlString="",errString="";
String custCode="",currCode="",partial="N",QtyInvTrace="",scheme="N",errCode="",sreturnTranID="";
double invRate=0,invQty=0,discount=0,priceListRate=0,detail3Amt=0,detail3AmtT=0,debitNoteAmtDetail=0,sreturnQuantity=0;
int lineNotrace=0;
ProofOfDelivery pod=ProofOfDelivery.getInstance();
try{
for(String invId : invIdPartial){
sql="select rate,quantity,lot_no,lot_sl,item_code,inv_line_no,discount,item_code__ord,invoice_id " +
"from invoice_trace where invoice_id = ? order by inv_line_no";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, invId);
rs=pstmt.executeQuery();
while(rs.next())
{
invRate=rs.getDouble(1);
invQty=rs.getDouble(2);
lotNo=rs.getString(3);
lotSl=rs.getString(4);
itemCode=rs.getString(5);
lineNotrace=rs.getInt(6);
discount=rs.getDouble(7);
itemCodeOrd=rs.getString(8);
lotNo=lotNo==null ? "" :lotNo.trim();
lotSl=lotSl==null ? "" :lotSl.trim();
itemCode=itemCode==null ? "" :itemCode.trim();
itemCodeOrd=itemCodeOrd==null ? "" :itemCodeOrd.trim();
//Discount need discussion
if(discount > 0)
{
invRate=invRate - (invRate * discount/100);
System.out.println("Discount for invoice id--->>["+invId+"]"+"inv Rate-->>["+invRate+"]");
}
//check if any sales return
sreturnTranID=pod.getSalesReturnTranID(conn, "sreturn", "tran_id", "invoice_id", invId);
sreturnTranID=sreturnTranID==null ? "" : sreturnTranID.trim();
if(sreturnTranID.length() > 0)
{
System.out.println("-----Got sales return tran id-----------");
sql1="select item_code,quantity from sreturndet where tran_id = ? and item_code = ? ";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, sreturnTranID);
pstmt1.setString(2, itemCode);
rs1=pstmt1.executeQuery();
if(rs1.next()){
sreturnQuantity=rs.getDouble(2);
}
if(rs1!=null){
rs1.close();
rs1=null;
}
if(pstmt!=null){
pstmt1.close();
pstmt1=null;
}
System.out.println("Sales return------>>["+sreturnQuantity+"]");
invQty=invQty-sreturnQuantity;
}
} //end while
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public double getPriceListRate(String priceList, java.util.Date tranDate, String itemCode, String lotNo, String type, Connection connectionObject) throws RemoteException,ITMException public double getPriceListRate(String priceList, java.util.Date tranDate, String itemCode, String lotNo, String type, Connection connectionObject) throws RemoteException,ITMException
{ {
double rate = 0; double rate = 0;
......
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