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;
@Stateless
public class PODProcess extends ProcessEJB implements PODProcessLocal,PODProcessRemote
{
String siteCodeG="",invTypeG="";
ArrayList<String> partialInvHDR = new ArrayList <String>();
String siteCodeG="",invTypeG="",xtraParamsG="";
Map<String,Double> partialInvoiceMapG = 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
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
detailDom = genericUtility.parseString(xmlString2);
System.out.println("xmlString2 --->>" + xmlString2);
}
xtraParamsG=xtraParams;
retStr = process(headerDom, detailDom, windowName, xtraParams);
}
......@@ -99,6 +100,7 @@ public String process(Document dom, Document dom2, String windowName, String xtr
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="";
......@@ -147,6 +149,8 @@ public String process(Document dom, Document dom2, String windowName, String xtr
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");
......@@ -156,6 +160,8 @@ public String process(Document dom, Document dom2, String windowName, String xtr
}
}
}
//Validation for Customer Code To
if (custCodeTo.length() == 0 ){
errCode = "VTCUSTCNE";
......@@ -163,14 +169,17 @@ public String process(Document dom, Document dom2, String windowName, String xtr
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("custCodeTo not exist validation fire");
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";
......@@ -178,7 +187,7 @@ public String process(Document dom, Document dom2, String windowName, String xtr
return errorString;
}else{
if(!("DM".equalsIgnoreCase(invType) || "IS".equalsIgnoreCase(invType))){
if(!("DM".equalsIgnoreCase(invType) || "IS".equalsIgnoreCase(invType)) ){
errCode = "VTINVTI";
errorString = vdt.getErrorString("inv_type",errCode,userId);
return errorString;
......@@ -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){
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 IN('DM','IS')";
+ " 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()){
......@@ -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);
System.out.println("miscDrCrInvList123---->>["+miscDrCrInvList+"]");
/*Iterator<String> it1 = podProcessInvIDList.iterator();
......@@ -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)
{
invdoneCnt=0;
ResultSet rs=null,rs1=null;
Connection conn1=null;
PreparedStatement pstmt=null,pstmt1=null;
......@@ -330,10 +352,11 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
HashMap<String,String> partialMap=new HashMap();
Set<String> splitPartial=new HashSet<String>();
Map<String,Double> schemeQty=null;
String partialError="";
String sql="",lotNo="",lotSl="",itemCode="",itemCodeOrd="",itemActive="",detail2xmlString="",errString="";
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 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;
pod=ProofOfDelivery.getInstance();
podC=ProofOfDeliveryConf.getInstance();
......@@ -398,7 +421,7 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
pstmt1.setString(2, itemCode);
rs1=pstmt1.executeQuery();
if(rs1.next()){
sreturnQuantity=rs.getDouble(2);
sreturnQuantity=rs1.getDouble(2);
}
if(rs1!=null){
rs1.close();
......@@ -411,11 +434,9 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
System.out.println("Sales return------>>["+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";
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("Actual inv qty in inv trace---->>["+invQty+"]");
System.out.println("inv. qty done in POD screen---->>["+pod.partialQty+"]");
......@@ -423,8 +444,11 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
partial="Y";
partialMap.put(invoiceId+","+itemCode, scheme);
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.
itemActive=pod.getColumnDescr(conn,"active","item","item_code",itemCode);
......@@ -470,8 +494,15 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
System.out.println("Net PTS rate----->>["+netPTS+"]");
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;
System.out.println("Debit note amount-------->>["+detail3Amt+"]");
detail3AmtT=detail3AmtT + detail3Amt;
lineNo++;
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
System.out.println("-------Scheme not apply -----------");
schemeMap.put(invoiceId+","+itemCode, scheme);
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;
System.out.println("Debit note amount-------->>["+detail3Amt+"]");
......@@ -498,7 +536,6 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
pstmt.close();
pstmt=null;
System.out.println("Detail2 xml-------->>[["+detail2xmlString+"]");
System.out.println("detail3AmtT-------->>[["+detail3AmtT+"]");
if(detail3AmtT > 0){
invoiceDetailsMap=pod.getDetailsFromInvoice(conn, invoiceId);
custCode=invoiceDetailsMap.get("cust_code").toString();
......@@ -517,22 +554,17 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
int cnt=insertDataInPodTrace(conn1, invoiceId, podC.xmlStringAll, schemeMap, partialMap,"Y");
noOfInvoicePrc++;
if(noOfInvoicePrc==totalInvoice){
errCode="VTPRCCSF";
invdoneCnt=1;
/*errCode="VTPRCCSF";
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
return errString;
return errString; */
}
if(cnt > 0){
conn1.commit();
}
//conn.commit();------------commited when partial invoice end
conn.commit();
/*errCode="VTPRCCSF";
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
return errString; */
//return "Success";
}else{
conn.rollback();
int cnt=insertDataInPodTrace(conn1, invoiceId, podC.xmlStringAll, schemeMap, partialMap,"N");
......@@ -551,23 +583,24 @@ private String generateDebitNote(Connection conn,ArrayList<String> podProcessInv
}
}else {// end detail3AmtT > 0 condition
int cnt2=0;
System.out.println("Debit note gennerated for Rs.0- Invoice ID----->> ["+invoiceId+"]");
if((podC.xmlStringAll)!=null && (podC.xmlStringAll).length() > 0){
cnt2=insertDataInPodTrace(conn1, invoiceId, podC.xmlStringAll, schemeMap, partialMap,"Y");
}
if(cnt2 > 1)
conn1.commit();
errCode="VTNGAMTE"; //negative amount
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
errString=newErrorMessage(errString, invoiceId);
return errString;
}
} //end invoice id for loop
}else{
errCode="VTDNFFP"; //No data found for processing
errString = itmdbAccess1.getErrorString("", errCode, "", "", conn);
conn.rollback();
return errString;
}
if(errString.length() > 0){
errString =actualQtyPODProcessPartial(conn); //partialInvoiceMapV
System.out.println("Returing STring from actualQtyPODProcessPartial-->>["+errString+"]");
}
}catch(Exception e)
{
......@@ -889,7 +922,7 @@ private Map<String,Double> schemeApply(Connection conn,String invoiceID,String i
}
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;
ResultSet rs=null;
......@@ -922,7 +955,7 @@ private int insertDataInPodTrace(Connection conn,String invID,String xmlDataAll,
sql="select tran_id from podtrace order by tran_id DESC";
pstmt=conn.prepareStatement(sql);
pstmt=conn1.prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next()){
tranID=Long.parseLong(rs.getString(1).trim());
......@@ -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,"
+ "db_rate,debit_note_amt,partial,scheme,chg_date,chg_user,chg_term,success) "
+ "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt=conn.prepareStatement(sql);
pstmt=conn1.prepareStatement(sql);
pstmt.setString(1, Long.toString(++tranID));
pstmt.setInt(2, Integer.parseInt(lineNoS));
pstmt.setTimestamp(3, new java.sql.Timestamp(new java.util.Date().getTime()) );
......@@ -1031,7 +1064,7 @@ private ArrayList<String> getDoneInvoiceIDFromMiscDrCrRcp(Connection conn,ArrayL
}*/
Iterator<String> it=inv45dayListL.iterator();
//for(String id : inv45dayListL)
if(it.hasNext())
while(it.hasNext())
{
String id=it.next();
sql="select sum(quantity),item_code from invoice_trace where invoice_id = ? group by item_code,invoice_id";
......@@ -1062,6 +1095,7 @@ private ArrayList<String> getDoneInvoiceIDFromMiscDrCrRcp(Connection conn,ArrayL
System.out.println("qtyM-->>["+qtyM+" qtyM-->["+qty+"]");
if(qtyM < qty && itemCode.equalsIgnoreCase(itemCodeM)){
InvIDTemp.add(id);
partialInvoiceMapG.put(id+":"+itemCode.trim(), qty- qtyM);
}else{
it.remove();
inv45dayListL.remove(id);
......@@ -1077,22 +1111,37 @@ private ArrayList<String> getDoneInvoiceIDFromMiscDrCrRcp(Connection conn,ArrayL
}
System.out.println("inv45dayListL in -MISC-->>"+inv45dayListL);
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);
}
System.out.println("unqInvID --->>["+unqInvID+"]");
unqInvID.addAll(inv45dayListL);
inv45dayListL.clear();
inv45dayListL.addAll(unqInvID);
}
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("inv45dayListL addAll--->>["+inv45dayListL+"]");
return inv45dayListL;
}
private String newErrorMessage(String errString,String invid)
......@@ -1161,6 +1210,343 @@ private String newErrorMessage(String errString,String invid)
}
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
{
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