Commit ff213af8 authored by steurwadkar's avatar steurwadkar

Changes related to set rate from pricelist or min_rate_history based on...

Changes related to set rate from pricelist or min_rate_history based on disparm variable SRETURN_ADJ_OPT


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@43785 ce508802-f39f-4f6c-b175-0d175dae99d5
parent a5aa092d
...@@ -3113,7 +3113,9 @@ public class SalesReturn extends ValidatorEJB implements SalesReturnLocal, Sales ...@@ -3113,7 +3113,9 @@ public class SalesReturn extends ValidatorEJB implements SalesReturnLocal, Sales
orderByStr = " MRH.INVOICE_DATE DESC,MRH.INVOICE_ID DESC "; orderByStr = " MRH.INVOICE_DATE DESC,MRH.INVOICE_ID DESC ";
} }
if(invoiceId == null || invoiceId.trim().length() == 0) //Changed by Santosh on 10/05/2017 to not set invoice id if SRETURN_ADJ_OPT is not defined
//if(invoiceId == null || invoiceId.trim().length() == 0)
if( (invoiceId == null || invoiceId.trim().length() == 0) && !"NULLFOUND".equalsIgnoreCase(sreturnAdjOpt))
{ {
/*int noSchemeHist = 0; /*int noSchemeHist = 0;
String schemeKey = "", disParmVarValue = "", docKey = "", docValue = ""; String schemeKey = "", disParmVarValue = "", docKey = "", docValue = "";
...@@ -7650,144 +7652,153 @@ public class SalesReturn extends ValidatorEJB implements SalesReturnLocal, Sales ...@@ -7650,144 +7652,153 @@ public class SalesReturn extends ValidatorEJB implements SalesReturnLocal, Sales
int nLineNo = Integer.parseInt(lineNo); int nLineNo = Integer.parseInt(lineNo);
//Added by Santosh on 02/05/2017 to get unconfirmed adjusted quantity [End] //Added by Santosh on 02/05/2017 to get unconfirmed adjusted quantity [End]
//Added by Santosh on 10/05/2017
String sreturnAdjOpt = distCommon.getDisparams("999999", "SRETURN_ADJ_OPT", conn);
//Added by Santosh on 02/12/2016 to split quantity in multiple line as per min_rate_history[Start] //Added by Santosh on 02/12/2016 to split quantity in multiple line as per min_rate_history[Start]
String[] col = new String[500]; //Changed by Santosh on 10/05/2017 to not to validate split quantity if SRETURN_ADJ_OPT is not defined
int noSchemeHist = 0; if(! "NULLFOUND".equalsIgnoreCase(sreturnAdjOpt))
double invoiceQty = 0.0, qtyAdj = 0.0; {
boolean dynamicCol = true, colMatch = false; String[] col = new String[500];
String schemeKey = "", varValue = "", currCol = "", docKey = "", docValue = ""; int noSchemeHist = 0;
String sNoSchemeHist = distCommon.getDisparams("999999","SCHEME_HIST_NUM",conn); double invoiceQty = 0.0, qtyAdj = 0.0;
System.out.println( "sNoSchemeHist :: " + sNoSchemeHist ); boolean dynamicCol = true, colMatch = false;
noSchemeHist = Integer.parseInt(sNoSchemeHist); String schemeKey = "", varValue = "", currCol = "", docKey = "", docValue = "";
for (int keyCtr = 1; keyCtr <= noSchemeHist ; keyCtr++) String sNoSchemeHist = distCommon.getDisparams("999999","SCHEME_HIST_NUM",conn);
{ System.out.println( "sNoSchemeHist :: " + sNoSchemeHist );
schemeKey = "SCHEME_HIST_KEY" + keyCtr ; noSchemeHist = Integer.parseInt(sNoSchemeHist);
System.out.println(">>>>>>>>>In for loop schemeKey:"+schemeKey); for (int keyCtr = 1; keyCtr <= noSchemeHist ; keyCtr++)
varValue = distCommon.getDisparams("999999",schemeKey,conn); {
System.out.println(">>>>>>>>>In for loop afer schemeKey varValue:"+varValue); //Added by Santosh on 10/05/2017 to reset docKey in case of more than 1 doc keys are defined
docKey = "";
schemeKey = "SCHEME_HIST_KEY" + keyCtr ;
System.out.println(">>>>>>>>>In for loop schemeKey:"+schemeKey);
varValue = distCommon.getDisparams("999999",schemeKey,conn);
System.out.println(">>>>>>>>>In for loop afer schemeKey varValue:"+varValue);
varValue = varValue.trim();
String[] varValueArry = varValue.split(",");
for(int i=0; i<varValueArry.length; i++)
{
if("cust_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 [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();
}
else if("lot_no".equalsIgnoreCase(varValueArry[i].trim()))
{
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom).trim();
}
else if("invoice_id".equalsIgnoreCase(varValueArry[i].trim()))
{
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom).trim();
}
else
{
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom1).trim();
}
if (docKey != "" && docKey.trim().length() > 0)
{
docKey = docKey + "," + ( docValue == null || docValue.trim().length() == 0 ? "" : docValue);
}
else
{
docKey = docValue;
}
}
}
System.out.println(">>>>>>>>after for loop docKey:"+docKey);
varValue = varValue.trim(); HashMap<String,String> curDomDataHMap = new HashMap<String,String>();
curDomDataHMap.put("cust_code", custCode);
curDomDataHMap.put("item_code", itemCode);
curDomDataHMap.put("lot_no", lsLotNo);
curDomDataHMap.put("site_code", siteCode);
curDomDataHMap.put("invoice_id", lsInvoiceId);
String[] varValueArry = varValue.split(","); if( nLineNo > 1 )
{
domTotalQty = getDomQuantity(dom2, curDomDataHMap);
}
sql = " SELECT SDET.INVOICE_ID, SUM(SDET.QUANTITY) AS QTY_ADJ"
+ " FROM SRETURN SRET, SRETURNDET SDET"
+ " WHERE SRET.TRAN_ID = SDET.TRAN_ID"
+ " AND SRET.CONFIRMED = 'N'"
+ " AND SDET.INVOICE_ID IS NOT NULL"
+ " AND SDET.INVOICE_ID = ?"
+ " AND SDET.ITEM_CODE = ?"
+ " AND SDET.LOT_NO = ?"
+ " AND SRET.SITE_CODE = ?"
+ " AND SRET.CUST_CODE = ?"
+ " GROUP BY SDET.INVOICE_ID";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsInvoiceId);
pstmt.setString(2, itemCode);
pstmt.setString(3, lsLotNo);
pstmt.setString(4, siteCode);
pstmt.setString(5, custCode);
rs = pstmt.executeQuery();
for(int i=0; i<varValueArry.length; i++) if(rs.next())
{ {
if("cust_code".equalsIgnoreCase(varValueArry[i].trim())) sdetQtyAdj = rs.getDouble("QTY_ADJ");
{ }
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom1).trim();
} if(pstmt != null)
//Added by Santosh on 28/04/2017 for missing site_code condition [Start] {
else if("site_code".equalsIgnoreCase(varValueArry[i].trim())) pstmt.close();
{ pstmt = null;
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom1).trim(); }
} if(rs != null)
//Added by Santosh on 28/04/2017 for missing site_code condition [End] {
else if("item_code".equalsIgnoreCase(varValueArry[i].trim())) rs.close();
{ rs = null;
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom).trim(); }
}
else if("lot_no".equalsIgnoreCase(varValueArry[i].trim())) //Changed by Santosh on 05/05/2017 to set 0 if qty_adj is null
{ //sql = "SELECT QUANTITY, QUANTITY_ADJ FROM MIN_RATE_HISTORY WHERE DOC_KEY = ? ";
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom).trim(); sql = "SELECT QUANTITY, CASE WHEN QUANTITY_ADJ IS NULL THEN 0 ELSE QUANTITY_ADJ END AS QUANTITY_ADJ FROM MIN_RATE_HISTORY WHERE DOC_KEY = ? ";
} pstmt = conn.prepareStatement(sql);
else if("invoice_id".equalsIgnoreCase(varValueArry[i].trim())) pstmt.setString(1, docKey);
{
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom).trim(); rs = pstmt.executeQuery();
}
else if(rs.next())
{ {
docValue = genericUtility.getColumnValue(varValueArry[i].trim(),dom1).trim(); invoiceQty = rs.getDouble("QUANTITY");
} qtyAdj = rs.getDouble("QUANTITY_ADJ");
}
if (docKey != "" && docKey.trim().length() > 0)
{ if(pstmt != null)
docKey = docKey + "," + ( docValue == null || docValue.trim().length() == 0 ? "" : docValue); {
} pstmt.close();
else pstmt = null;
{ }
docKey = docValue; if(rs != null)
} {
rs.close();
rs = null;
}
if(lcQty > (invoiceQty - (qtyAdj+sdetQtyAdj+domTotalQty)))
{
return getError((invoiceQty - (qtyAdj+sdetQtyAdj+domTotalQty)), "VTSPLTQTY", conn);
} }
}
System.out.println(">>>>>>>>after for loop docKey:"+docKey);
HashMap<String,String> curDomDataHMap = new HashMap<String,String>();
curDomDataHMap.put("cust_code", custCode);
curDomDataHMap.put("item_code", itemCode);
curDomDataHMap.put("lot_no", lsLotNo);
curDomDataHMap.put("site_code", siteCode);
curDomDataHMap.put("invoice_id", lsInvoiceId);
if( nLineNo > 1 )
{
domTotalQty = getDomQuantity(dom2, curDomDataHMap);
}
sql = " SELECT SDET.INVOICE_ID, SUM(SDET.QUANTITY) AS QTY_ADJ"
+ " FROM SRETURN SRET, SRETURNDET SDET"
+ " WHERE SRET.TRAN_ID = SDET.TRAN_ID"
+ " AND SRET.CONFIRMED = 'N'"
+ " AND SDET.INVOICE_ID IS NOT NULL"
+ " AND SDET.INVOICE_ID = ?"
+ " AND SDET.ITEM_CODE = ?"
+ " AND SDET.LOT_NO = ?"
+ " AND SRET.SITE_CODE = ?"
+ " AND SRET.CUST_CODE = ?"
+ " GROUP BY SDET.INVOICE_ID";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsInvoiceId);
pstmt.setString(2, itemCode);
pstmt.setString(3, lsLotNo);
pstmt.setString(4, siteCode);
pstmt.setString(5, custCode);
rs = pstmt.executeQuery();
if(rs.next())
{
sdetQtyAdj = rs.getDouble("QTY_ADJ");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
//Changed by Santosh on 05/05/2017 to set 0 if qty_adj is null
//sql = "SELECT QUANTITY, QUANTITY_ADJ FROM MIN_RATE_HISTORY WHERE DOC_KEY = ? ";
sql = "SELECT QUANTITY, CASE WHEN QUANTITY_ADJ IS NULL THEN 0 ELSE QUANTITY_ADJ END AS QUANTITY_ADJ FROM MIN_RATE_HISTORY WHERE DOC_KEY = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, docKey);
rs = pstmt.executeQuery();
if(rs.next())
{
invoiceQty = rs.getDouble("QUANTITY");
qtyAdj = rs.getDouble("QUANTITY_ADJ");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
if(lcQty > (invoiceQty - (qtyAdj+sdetQtyAdj+domTotalQty)))
{
return getError((invoiceQty - (qtyAdj+sdetQtyAdj+domTotalQty)), "VTSPLTQTY", conn);
} }
//Added by Santosh on 02/12/2016 to split quantity in multiple line as per min_rate_history[End] //Added by Santosh on 02/12/2016 to split quantity in multiple line as per min_rate_history[End]
......
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