Commit d1b93746 authored by steurwadkar's avatar steurwadkar

Sales return changes to check current form data in detail dom


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@105477 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 5959c47e
......@@ -396,6 +396,11 @@ public class SalesReturn extends ValidatorEJB implements SalesReturnLocal, Sales
String valStr = null;
String siteCode3 = null;
int cntItemLotInfo=0;
//Added by Santosh on 27/04/2017 to get available invoice Id [Start]
String invoiceQty = "", adjQty = "";
HashMap<String, String> curFormItemLotHMap = new HashMap<String, String>();
HashMap<String, String> curRecordItemLotHMap = new HashMap<String, String>();
//Added by Santosh on 27/04/2017 to get available invoice Id [End]
try
{
// Changed by Sneha on 22-07-2016 for exchange rate [Start]
......@@ -3094,7 +3099,7 @@ public class SalesReturn extends ValidatorEJB implements SalesReturnLocal, Sales
//Added by Santosh on 06/12/2016 to append invoice id to itemChange retStr [Start]
if(invoiceId == null || invoiceId.trim().length() == 0)
{
int noSchemeHist = 0;
/*int noSchemeHist = 0;
String schemeKey = "", disParmVarValue = "", docKey = "", docValue = "";
String sNoSchemeHist = distCommon.getDisparams("999999","SCHEME_HIST_NUM",conn);
System.out.println( "sNoSchemeHist :: " + sNoSchemeHist );
......@@ -3116,6 +3121,12 @@ public class SalesReturn extends ValidatorEJB implements SalesReturnLocal, Sales
{
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom1).trim();
}
//Added by Santosh on 26/04/2017 for missing site_code condition [Start]
else if("site_code".equalsIgnoreCase(varValueArry[i].trim()))
{
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom1).trim();
}
//Added by Santosh on 26/04/2017 for missing site_code condition [End]
else if("item_code".equalsIgnoreCase(varValueArry[i].trim()))
{
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom).trim();
......@@ -3192,10 +3203,105 @@ public class SalesReturn extends ValidatorEJB implements SalesReturnLocal, Sales
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}*/
curFormItemLotHMap.put("cust_code", genericUtility.getColumnValue("cust_code", dom1));
curFormItemLotHMap.put("item_code", itemCode);
curFormItemLotHMap.put("lot_no", lotNo);
curFormItemLotHMap.put("site_code", siteCode);
curFormItemLotHMap.put("quantity", genericUtility.getColumnValue("quantity", dom));
custCode = genericUtility.getColumnValue("cust_code", dom1);
slineNo = genericUtility.getColumnValue("line_no", dom);
lineNo = Integer.parseInt(slineNo);
sql = " SELECT MRH.INVOICE_ID,MRH.QUANTITY, MRH.CUST_CODE, MRH.ITEM_CODE, MRH.LOT_NO, MRH.SITE_CODE,"
+ " SUM( CASE WHEN SRDET.QUANTITY IS NULL THEN 0 ELSE SRDET.QUANTITY END) AS QTY_ADJ, MRH.EFF_COST"
+ " FROM MIN_RATE_HISTORY MRH, SRETURNDET SRDET"
+ " WHERE MRH.INVOICE_ID =SRDET.INVOICE_ID(+) AND MRH.CUST_CODE = ?"
+ " AND MRH.ITEM_CODE = ? AND MRH.LOT_NO = ?"
+ " AND MRH.SITE_CODE = ? AND MRH.QUANTITY-MRH.QUANTITY_ADJ > 0"
+ " AND MRH.QUANTITY IS NOT NULL"
+ " GROUP BY MRH.INVOICE_ID, MRH.QUANTITY, MRH.EFF_COST,MRH.CUST_CODE,MRH.ITEM_CODE,MRH.LOT_NO, MRH.SITE_CODE"
+ " HAVING MRH.QUANTITY-SUM( CASE WHEN SRDET.QUANTITY IS NULL THEN 0 ELSE SRDET.QUANTITY END) > 0"
+ " ORDER BY MRH.EFF_COST";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
pstmt.setString(2, itemCode);
pstmt.setString(3, lotNo);
pstmt.setString(4, siteCode);
rs = pstmt.executeQuery();
while(rs.next())
{
invoiceId = checkNull(rs.getString("INVOICE_ID"));
invoiceQty = checkNull(rs.getString("QUANTITY"));
adjQty = checkNull(rs.getString("QTY_ADJ"));
curRecordItemLotHMap.put("cust_code", checkNull(rs.getString("CUST_CODE")));
curRecordItemLotHMap.put("item_code", checkNull(rs.getString("ITEM_CODE")));
curRecordItemLotHMap.put("lot_no", checkNull(rs.getString("LOT_NO")));
curRecordItemLotHMap.put("site_code", checkNull(rs.getString("SITE_CODE")));
curRecordItemLotHMap.put("quantity", invoiceQty);
if(lineNo > 1)
{
invoiceId = getAvailableInvId(dom2, curFormItemLotHMap, curRecordItemLotHMap, invoiceId, adjQty);
}
if( invoiceId != null && invoiceId.trim().length() > 0)
{
break;
}
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
if( invoiceId != null && invoiceId.trim().length() > 0 )
{
valueXmlString.append("<invoice_id>").append("<![CDATA[" + invoiceId + "]]>").append("</invoice_id>");
setNodeValue(dom1, "invoice_id", invoiceId);
sql = "SELECT INV_LINE_NO, LINE_NO FROM INVOICE_TRACE WHERE INVOICE_ID = ? AND ITEM_CODE = ? AND LOT_NO = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, invoiceId);
pstmt.setString(2, itemCode);
pstmt.setString(3, lotNo);
rs = pstmt.executeQuery();
if(rs.next())
{
String liLineNoStr = getNumString( rs.getString("INV_LINE_NO"));
lineNoInv = Integer.parseInt(liLineNoStr);
String lineNoInvTrace = getNumString(rs.getString("LINE_NO"));
int ilineNoInvTrace = Integer.parseInt(lineNoInvTrace);
valueXmlString.append("<line_no__inv>").append("<![CDATA[" + lineNoInv + "]]>").append("</line_no__inv>");
valueXmlString.append("<line_no__invtrace>").append("<![CDATA[" + ilineNoInvTrace + "]]>").append("</line_no__invtrace>");
System.out.println("lineNoInv before >>> " + lineNoInv);
setNodeValue( dom, "line_no__inv", lineNoInv );
setNodeValue( dom, "line_no__invtrace", ilineNoInvTrace );
invoiceId = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
}
}
//Added by Santosh on 06/12/2016 to append invoice id to itemChange retStr [End]
infoMap = new HashMap();
......@@ -7543,6 +7649,12 @@ public class SalesReturn extends ValidatorEJB implements SalesReturnLocal, Sales
{
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom1).trim();
}
//Added by Santosh on 28/04/2017 for missing site_code condition [Start]
else if("site_code".equalsIgnoreCase(varValueArry[i].trim()))
{
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom1).trim();
}
//Added by Santosh on 28/04/2017 for missing site_code condition [End]
else if("item_code".equalsIgnoreCase(varValueArry[i].trim()))
{
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom).trim();
......@@ -9361,6 +9473,104 @@ public class SalesReturn extends ValidatorEJB implements SalesReturnLocal, Sales
return mainStr;
}
//Added by Santosh on 06/12/2016 to format error string [End]
//Added by Santosh on 27/04/2017 to get next available invoide id [Start]
private String getAvailableInvId(Document allDom, HashMap<String, String> curFormItemLotHMap, HashMap<String, String> curRecordItemLotHMap, String invoiceId, String adjQty)
{
String retInvoiceId = "";
NodeList detail1NList = null;
NodeList detail2NList = null;
Node detail1Node = null;
String curFormCustCode = "", curFormItemCode = "", curFormLotNo = "", curFormSiteCode = "", curFormQuantity = "";
String domCustCode = "", domItemCode = "", domLotNo = "", domSiteCode = "", domQuantity = "", domInvoiceId = "";
String curRecCustCode = "", curRecItemCode = "", curRecLotNo = "", curRecSiteCode = "", curRecInvQuantity = "", curRecInvoiceId = "";
double dQtyAdj = 0.0, dCurRecInvQty = 0.0, dDomQty = 0.0, dTotalDomQty = 0.0;
boolean isCurFormDataInDom = false;
try
{
E12GenericUtility genericUtility= new E12GenericUtility();
curFormCustCode = curFormItemLotHMap.get("cust_code").trim();
curFormItemCode = curFormItemLotHMap.get("item_code").trim();
curFormLotNo = curFormItemLotHMap.get("lot_no").trim();
curFormSiteCode = curFormItemLotHMap.get("site_code").trim();
curFormQuantity = curFormItemLotHMap.get("quantity").trim();
curRecCustCode = curRecordItemLotHMap.get("cust_code").trim();
curRecItemCode = curRecordItemLotHMap.get("item_code").trim();
curRecLotNo = curRecordItemLotHMap.get("lot_no").trim();
curRecSiteCode = curRecordItemLotHMap.get("site_code").trim();
curRecInvQuantity = curRecordItemLotHMap.get("quantity").trim();
System.out.println("adjQty["+adjQty+"] curRecQuantity["+curRecInvQuantity+"]");
dQtyAdj = Double.parseDouble(adjQty);
dCurRecInvQty = Double.parseDouble(curRecInvQuantity);
System.out.println("dQtyAdj["+dQtyAdj+"] dCurRecInvQty["+dCurRecInvQty+"]");
detail1NList = allDom.getElementsByTagName("Detail1");
detail1Node = detail1NList.item(0);
detail2NList = allDom.getElementsByTagName("Detail2");
for(int i=0; i< detail2NList.getLength() - 1; i++)
{
Node eachDetail2Node = detail2NList.item(i);
domCustCode = genericUtility.getColumnValueFromNode("cust_code", detail1Node).trim();
domItemCode = genericUtility.getColumnValueFromNode("item_code", eachDetail2Node).trim();
domLotNo = genericUtility.getColumnValueFromNode("lot_no", eachDetail2Node).trim();
domSiteCode = genericUtility.getColumnValueFromNode("site_code", detail1Node).trim();
domQuantity = genericUtility.getColumnValueFromNode("quantity", eachDetail2Node).trim();
domInvoiceId = genericUtility.getColumnValueFromNode("invoice_id", eachDetail2Node).trim();
dDomQty = Double.parseDouble(domQuantity);
if( curFormCustCode.equalsIgnoreCase(domCustCode) &&
curFormItemCode.equalsIgnoreCase(domItemCode) &&
curFormLotNo.equalsIgnoreCase(domLotNo) &&
curFormSiteCode.equalsIgnoreCase(domSiteCode))
{
isCurFormDataInDom = true;
System.out.println("Record is matching need to check availability");
if( invoiceId.equalsIgnoreCase(domInvoiceId) &&
curRecCustCode.equalsIgnoreCase(domCustCode) &&
curRecItemCode.equalsIgnoreCase(domItemCode) &&
curRecLotNo.equalsIgnoreCase(domLotNo) &&
curRecSiteCode.equalsIgnoreCase(domSiteCode) )
{
dTotalDomQty += dDomQty;
double totalQty = dQtyAdj + dTotalDomQty;
System.out.println("totalQty["+totalQty+"]");
if ( totalQty < dCurRecInvQty)
{
retInvoiceId = invoiceId;
}
else if (totalQty >= dCurRecInvQty)
{
retInvoiceId = "";
}
}
else
{
System.out.println("giving next availabe invoiceid["+invoiceId+"]");
retInvoiceId = invoiceId;
}
}
}
if( !isCurFormDataInDom )
{
retInvoiceId = invoiceId;
}
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("SalesReturn.getAvailableInvId()["+e.getMessage()+"]");
}
return retInvoiceId;
}
//Added by Santosh on 27/04/2017 to get next available invoide id [End]
}// END OF MAIN CLASS
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