Commit 95810750 authored by ngadkari's avatar ngadkari

CHANGES IN VALIDATION and itemChange for doc key changes

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@192764 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 7e6799ae
......@@ -273,15 +273,23 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
pstmt.close();
pstmt = null;
rs = null;
//-----------------------Changes by --Nandkumar Gadkari on 30/10/18-Start -----------------to protect cust code
custCode = getAbsString(genericUtility.getColumnValue("cust_code",dom));
if (cnt > 0 )
{
valueXmlString.append("<ret_opt protect =\"1\">").append(retOpt).append("</ret_opt>");
valueXmlString.append("<cust_code protect =\"1\">").append(getAbsString(custCode)).append("</cust_code>");
}
else
{
valueXmlString.append("<ret_opt protect =\"0\">").append(retOpt).append("</ret_opt>");
valueXmlString.append("<cust_code protect =\"0\">").append(getAbsString(custCode)).append("</cust_code>");
}
//-------------------------Nandkumar Gadkari on 30/10/18-END -----------------to protect cust code
}
if (currentColumn.trim().equals("itm_default") )
{
......@@ -615,7 +623,10 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
setNodeValue( dom, "trans_mode", getAbsString( tranMode ) );
valueXmlString.append("<curr_code__bc>").append("<![CDATA[" + getAbsString( currCode ) + "]]>").append("</curr_code__bc>");
setNodeValue( dom, "curr_code__bc", getAbsString( currCode ) );
//cust_code__bill Added by Nandkumar Gadkari on 30OCT2018-----------start ----------
valueXmlString.append("<cust_code__bill>").append("<![CDATA[" + getAbsString( custCodeBil ) + "]]>").append("</cust_code__bill>");
setNodeValue( dom, "cust_code__bill", getAbsString( custCodeBil ) );
//cust_code__bill Added by Nandkumar Gadkari on 30OCT2018-----------END ----------
sql =" select std_exrt, descr from currency where curr_code = ? ";
pstmt= conn.prepareStatement( sql );
pstmt.setString( 1, currCode );
......@@ -1061,6 +1072,22 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
ctr = 0;
//-------------------------Nandkumar Gadkari on 30/10/18-Start -----------------to protect cust code
reStr = itemChanged(dom1, dom1, dom2, "1","itm_defaultedit", editFlag, xtraParams);
reStr=reStr.substring(reStr.indexOf("<Detail1>"), reStr.indexOf("</Detail1>"));
System.out.println("Detail 1String"+reStr);
valueXmlString = new StringBuffer(
"<?xml version = \"1.0\"?> <Root> <header> <editFlag>");
valueXmlString.append(editFlag).append("</editFlag> </header>");
valueXmlString.append(reStr);
custCode = getAbsString(genericUtility.getColumnValue("cust_code",dom1));
valueXmlString.append("<cust_code protect =\"1\">").append(getAbsString(custCode)).append("</cust_code>");
valueXmlString.append("</Detail1>");
//-------------------------Nandkumar Gadkari on 30/10/18-End -----------------to protect cust code
valueXmlString.append("<Detail2>");
childNodeListLength = childNodeList.getLength();
......@@ -1824,6 +1851,18 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
setNodeValue( dom, "conv__qty_stduom", getRequiredDecimal( convFact, 3 ) );
valueXmlString.append("<quantity__stduom>").append("<![CDATA[" + getRequiredDecimal( quantity, 3 ) + "]]>").append("</quantity__stduom>");
setNodeValue( dom, "quantity__stduom", getRequiredDecimal( quantity, 3 ) );
//added by nandkumar gadkari- on 30/10/18 start ------------
lotNo =genericUtility.getColumnValue("lot_no", dom);
if (lotNo!=null && lotNo.trim().length()>0)
{
reStr = itemChanged(dom, dom1, dom2, objContext, "lot_no", editFlag, xtraParams);
pos = reStr.indexOf("<Detail2>");
reStr = reStr.substring(pos + 9);
pos = reStr.indexOf("</Detail2>");
reStr = reStr.substring(0,pos);
valueXmlString.append(reStr);
}
//added by nandkumar gadkari---on 30/10/18 end----------
} // end of quantity
else if (currentColumn.trim().equals("rate") )
{
......@@ -2977,17 +3016,549 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
iValStr = iValStr.substring(0,iValStr.indexOf("."));
}
lineNoInv = Integer.parseInt( getNumString( iValStr ) );
/* lineNoInv = Integer.parseInt( getNumString( iValStr ) );
iValStr = genericUtility.getColumnValue( "quantity__stduom", dom);
qtyStdUom = Double.parseDouble( getNumString( iValStr ) );
lotSl = genericUtility.getColumnValue("lot_sl", dom);
locCode = genericUtility.getColumnValue("loc_code", dom);
locCode = genericUtility.getColumnValue("loc_code", dom);*/
quantity = qtyStdUom;
//Added by Nandkumar Gadkatri on 23/10/2018 to append invoice id to itemChange retStr [Start]
String invoiceQty = "", adjQty = "";
HashMap<String, String> curFormItemLotHMap = new HashMap<String, String>();
HashMap<String, String> curRecordItemLotHMap = new HashMap<String, String>();
String sreturnAdjOpt = "", orderByStr = "",slineNo="";
int lineNo=0;
String minRateDocKey = "",sql1="";
boolean isMinHisRateSet = false;
String applDateFormat = genericUtility.getApplDateFormat();
SimpleDateFormat sdf = new SimpleDateFormat(applDateFormat);
String invRefId = "",invRefDate="" ,tempInvoiceId=null;
String shExpDiscAppl="";
ArrayList<String> dokkeyList=null;
sreturnAdjOpt = distCommon.getDisparams("999999", "SRETURN_ADJ_OPT", conn);
System.out.println("sreturnAdjOpt:::["+sreturnAdjOpt+"]");
if ("M".equalsIgnoreCase(sreturnAdjOpt))
{
orderByStr = " ORDER BY MRH.EFF_COST ";
}
else if("E".equalsIgnoreCase(sreturnAdjOpt))
{
orderByStr = " ORDER BY MRH.INVOICE_DATE ASC,MRH.INVOICE_ID ASC ";
}
else if("L".equalsIgnoreCase(sreturnAdjOpt))
{
orderByStr = " ORDER BY MRH.INVOICE_DATE DESC,MRH.INVOICE_ID DESC ";
}
if( !"NULLFOUND".equalsIgnoreCase(sreturnAdjOpt))
{
if( checkNull(invoiceId).trim().length() == 0)
{
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);
sql = " SELECT MRH.INVOICE_ID,MRH.QUANTITY, MRH.CUST_CODE, MRH.ITEM_CODE, MRH.LOT_NO, MRH.SITE_CODE, MRH.INVOICE_DATE,"
+ " 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.DOC_KEY =SRDET.DOC_KEY(+) AND MRH.CUST_CODE = ?"
+ " AND MRH.ITEM_CODE = ? AND MRH.LOT_NO = ?"
+ " AND MRH.SITE_CODE = ? AND MRH.QUANTITY - CASE WHEN MRH.QUANTITY_ADJ IS NULL THEN 0 ELSE MRH.QUANTITY_ADJ END > 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, MRH.INVOICE_DATE"
+ " HAVING MRH.QUANTITY-SUM( CASE WHEN SRDET.QUANTITY IS NULL THEN 0 ELSE SRDET.QUANTITY END) > 0"
+ orderByStr;
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"));
rate = rs.getDouble("EFF_COST");
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);
dokkeyList= generateDocKey(dom1, dom, invoiceId, conn);
int size = dokkeyList.size();
System.out.println("dokkk key size: " +size);
for(int i=0;i<=1;i++)
{
cnt=0;
minRateDocKey = dokkeyList.get(i);
String docKeyvalue="";
if (minRateDocKey.trim().length() > 0) {
String[] docKeyStr = minRateDocKey.split(",");
for(int j=0; j<docKeyStr.length; j++)
{
System.out.println( "docKeyStrlength :: " + docKeyStr.length);
cnt++;
}
}
System.out.println( "cnt :: " + cnt );
if(cnt ==5)
{
sql1 = "SELECT COUNT(*) FROM MIN_RATE_HISTORY WHERE DOC_KEY =? AND QUANTITY - CASE WHEN QUANTITY_ADJ IS NULL THEN 0 ELSE QUANTITY_ADJ END > 0 ";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, minRateDocKey);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
cnt = rs1.getInt(1);
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
if(rs1 != null)
{
rs1.close();
rs1 = null;
}
if(cnt > 0)
{
invoiceId = getAvailableInvId(dom,dom2, curFormItemLotHMap, curRecordItemLotHMap, invoiceId, minRateDocKey, adjQty);// current dom added to parameters by Nandkumar Gadkari on 14/09/18
tempInvoiceId=invoiceId;
if( invoiceId != null && invoiceId.trim().length() > 0)
{
break;
}
}
}
}
if (tempInvoiceId != null && tempInvoiceId.trim().length() > 0)
{
break;
}
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
if (tempInvoiceId == null || tempInvoiceId.trim().length() == 0)
{
sql = " SELECT MRH.INVOICE_ID,MRH.QUANTITY, MRH.CUST_CODE, MRH.ITEM_CODE, MRH.LOT_NO, MRH.SITE_CODE, MRH.INVOICE_DATE,"
+ " 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.DOC_KEY =SRDET.DOC_KEY(+) AND MRH.CUST_CODE = ?"
+ " AND MRH.ITEM_CODE = ? AND MRH.LOT_NO = ?"
+ " AND MRH.SITE_CODE = ? "
+ " 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, MRH.INVOICE_DATE "
+ orderByStr;
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"));
rate = rs.getDouble("EFF_COST");
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);
dokkeyList= generateDocKey(dom1, dom, invoiceId, conn);
int size = dokkeyList.size();
System.out.println("dokkk key size: " +size);
for(int i=1;i<=size-1;i++)
{
cnt=0;
minRateDocKey = dokkeyList.get(i);
String docKeyvalue="";
if (minRateDocKey.trim().length() > 0) {
String[] docKeyStr = minRateDocKey.split(",");
for(int j=0; j<docKeyStr.length; j++)
{
System.out.println( "docKeyStr :: " + docKeyStr[j]);
System.out.println( "docKeyStrlength :: " + docKeyStr.length);
cnt++;
}
}
System.out.println( "cnt :: " + cnt );
if(cnt !=5)
{
sql1 = "SELECT COUNT(*) FROM MIN_RATE_HISTORY WHERE DOC_KEY =? ";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, minRateDocKey);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
cnt = rs1.getInt(1);
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
if(rs1 != null)
{
rs1.close();
rs1 = null;
}
if(cnt > 0)
{
invoiceId = getAvailableInvId(dom,dom2, curFormItemLotHMap, curRecordItemLotHMap, invoiceId, minRateDocKey, adjQty);// current dom added to parameters by Nandkumar Gadkari on 14/09/18
//}
tempInvoiceId=invoiceId;
if( invoiceId != null && invoiceId.trim().length() > 0)
{
break;
}
}
}
}
if (tempInvoiceId != null && tempInvoiceId.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 )
{
isMinHisRateSet = true;
valueXmlString.append("<rate>").append("<![CDATA[" + rate + "]]>").append("</rate>");
valueXmlString.append("<doc_key>").append("<![CDATA[" + minRateDocKey + "]]>").append("</doc_key>");
setNodeValue( dom, "doc_key", minRateDocKey );
String docKey = checkNull(genericUtility.getColumnValue( "doc_key", dom ));
System.out.println("dokkk key : " +docKey);
System.out.println("docKey " +docKey);
if(docKey.trim().length() > 0 || docKey != null )
{
System.out.println("inside dok key1 : " +docKey);
sqlStr = " select INVOICE_ID , INVOICE_DATE ,EFF_COST from MIN_RATE_HISTORY where DOC_KEY = ? "; //trim(:ls_itemcode);
pstmt = conn.prepareStatement( sqlStr );
pstmt.setString( 1, docKey );
rs = pstmt.executeQuery();
if( rs.next() )
{
invRefId = checkNull(rs.getString( "INVOICE_ID" ));
invRefDate = checkNull(sdf.format( rs.getTimestamp( "INVOICE_DATE" )));
rate = rs.getDouble( "EFF_COST" );
}
if( rs != null )
rs.close();
rs = null;
if( pstmt != null )
pstmt.close();
pstmt = null;
valueXmlString.append("<invoice_ref>").append("<![CDATA["+ invRefId +"]]>").append("</invoice_ref>");
valueXmlString.append("<rate>").append("<![CDATA[" + rate + "]]>").append("</rate>");
if(invRefDate != null && invRefDate.trim().length() >0)
{
valueXmlString.append("<inv_ref_date>").append("<![CDATA["+ invRefDate+"]]>").append("</inv_ref_date>");
}
//Added by Nandkumar Gadkari on 30/10/18--------start-----------for set invoice id and line_no inv trace
cnt=0;
String docKeyvalue="";
if (minRateDocKey.trim().length() > 0) {
String[] docKeyStr = minRateDocKey.split(",");
for(int j=0; j<docKeyStr.length; j++)
{
System.out.println( "docKeyStr :: " + docKeyStr[j]);
System.out.println( "docKeyStrlength :: " + docKeyStr.length);
cnt++;
}
}
System.out.println( "cnt :: " + cnt );
if(cnt ==5)
{
sqlStr = "select Count(*) cnt from INVOICE_TRACE where invoice_id = ? "; //trim(:ls_itemcode);
pstmt = conn.prepareStatement( sqlStr );
pstmt.setString( 1, invRefId );
rs = pstmt.executeQuery();
if( rs.next() )
{
cnt = rs.getInt(1);
}
if( rs != null )
rs.close();
rs = null;
if( pstmt != null )
pstmt.close();
pstmt = null;
if(cnt > 0)
{
int lineNoTraceref =0;
valueXmlString.append("<invoice_id>").append("<![CDATA["+ invRefId +"]]>").append("</invoice_id>");
sqlStr = " select INV_LINE_NO from INVOICE_TRACE WHERE INVOICE_ID= ? AND ITEM_CODE=? AND LOT_NO= ? ";
if(lotSl!=null && lotSl.trim().length() >0 )
{
sqlStr = sqlStr + "AND LOT_SL= ? ";
}
pstmt = conn.prepareStatement( sqlStr );
pstmt.setString( 1, invRefId );
pstmt.setString( 2, itemCode );
pstmt.setString( 3, lotNo );
if(lotSl!=null && lotSl.trim().length() >0 )
{
pstmt.setString( 4, lotSl );
}
rs = pstmt.executeQuery();
if( rs.next() )
{
lineNoTraceref = rs.getInt(1);
valueXmlString.append("<line_no__inv>").append("<![CDATA["+ lineNoTraceref +"]]>").append("</line_no__inv>");
valueXmlString.append("<line_no__invtrace>").append("<![CDATA["+ lineNoTraceref +"]]>").append("</line_no__invtrace>");
}
if( rs != null )
rs.close();
rs = null;
if( pstmt != null )
pstmt.close();
pstmt = null;
}
}
else
{
valueXmlString.append("<line_no__inv>").append("<![CDATA[]]>").append("</line_no__inv>");
valueXmlString.append("<line_no__invtrace>").append("<![CDATA[]]>").append("</line_no__invtrace>");
}
//Added by Nandkumar Gadkari on 30/10/18--------end-----------for set invoice id and line_no inv trace
}
invoiceId = null;
}
}
else if(invoiceId != null && invoiceId.trim().length()>0)
{
dokkeyList= generateDocKey(dom1, dom, invoiceId, conn);
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);
int size = dokkeyList.size();
for(int i=0;i<=size-1;i++)
{
minRateDocKey = dokkeyList.get(i);
System.out.println("@@@@@@@minRateDocKey ..........[" + minRateDocKey+"]");
sql = " SELECT MRH.INVOICE_ID,MRH.QUANTITY, MRH.CUST_CODE, MRH.ITEM_CODE, MRH.LOT_NO, MRH.SITE_CODE, MRH.INVOICE_DATE,"
+ " 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.DOC_KEY =SRDET.DOC_KEY(+) AND MRH.CUST_CODE = ?"
+ " AND MRH.ITEM_CODE = ? AND MRH.LOT_NO = ?"
+ " AND MRH.SITE_CODE = ? AND MRH.QUANTITY - CASE WHEN MRH.QUANTITY_ADJ IS NULL THEN 0 ELSE MRH.QUANTITY_ADJ END > 0"
+ " AND MRH.QUANTITY IS NOT NULL AND MRH.DOC_KEY = ? "
+ " GROUP BY MRH.INVOICE_ID, MRH.QUANTITY, MRH.EFF_COST,MRH.CUST_CODE,MRH.ITEM_CODE,MRH.LOT_NO, MRH.SITE_CODE, MRH.INVOICE_DATE"
+ " HAVING MRH.QUANTITY-SUM( CASE WHEN SRDET.QUANTITY IS NULL THEN 0 ELSE SRDET.QUANTITY END) > 0"
+ orderByStr;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
pstmt.setString(2, itemCode);
pstmt.setString(3, lotNo);
pstmt.setString(4, siteCode);
pstmt.setString(5, minRateDocKey);
rs = pstmt.executeQuery();
while (rs.next()) {
invoiceQty = checkNull(rs.getString("QUANTITY"));
adjQty = checkNull(rs.getString("QTY_ADJ"));
rate = rs.getDouble("EFF_COST");
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);
System.out.println("@@@@@@@@@@@@ dokkeyList["+dokkeyList+"]");
invoiceId = getAvailableInvId(dom,dom2, curFormItemLotHMap, curRecordItemLotHMap,invoiceId, minRateDocKey, adjQty);
tempInvoiceId =invoiceId;
if (invoiceId != null && invoiceId.trim().length() > 0)
{
break;
}
}
if (tempInvoiceId != null && tempInvoiceId.trim().length() > 0)
{
break;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if (rs != null) {
rs.close();
rs = null;
}
}
sql = "SELECT DOC_KEY,EFF_COST FROM MIN_RATE_HISTORY WHERE DOC_KEY = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, minRateDocKey);
rs = pstmt.executeQuery();
if(rs.next())
{
minRateDocKey = checkNull(rs.getString("DOC_KEY"));
rate = rs.getDouble("EFF_COST");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
isMinHisRateSet = true;
valueXmlString.append("<rate>").append("<![CDATA[" + rate + "]]>").append("</rate>");
valueXmlString.append("<doc_key>").append("<![CDATA[" + minRateDocKey + "]]>").append("</doc_key>");
setNodeValue( dom, "doc_key", minRateDocKey );
String docKey = checkNull(genericUtility.getColumnValue( "doc_key", dom ));
System.out.println(" dok key : " +docKey);
if(docKey.trim().length() > 0 || docKey != null )
{
System.out.println("inside dok key : " +docKey);
sqlStr = " select INVOICE_ID , INVOICE_DATE from MIN_RATE_HISTORY where DOC_KEY = ? "; //trim(:ls_itemcode);
pstmt = conn.prepareStatement( sqlStr );
pstmt.setString( 1, docKey );
rs = pstmt.executeQuery();
if( rs.next() )
{
invRefId = checkNull(rs.getString( "INVOICE_ID" ));
invRefDate = checkNull(sdf.format( rs.getTimestamp( "INVOICE_DATE" )));
}
if( rs != null )
rs.close();
rs = null;
if( pstmt != null )
pstmt.close();
pstmt = null;
valueXmlString.append("<invoice_ref>").append("<![CDATA["+ invRefId +"]]>").append("</invoice_ref>");
if(invRefDate != null && invRefDate.trim().length() >0)
{
valueXmlString.append("<inv_ref_date>").append("<![CDATA["+ invRefDate+"]]>").append("</inv_ref_date>");
}
}
//invoiceId = null;
}
//Added by Nandkumar Gadkatri on 23/10/2018 to check if invoice_id reference is available in Min_rate_history [End]
}
//Added by Nandkumar Gadkatri on 23/10/2018 to append invoice id to itemChange retStr [End]
/*quantity = qtyStdUom;
infoMap = new HashMap();*/ //COMMENTED BY NANDKUMAR GADKARI ON 05/11/18
// ADDED BY NANDKUMAR GADKARI ON 05/11/18--------------------START ----------------
infoMap = new HashMap();
//
iValStr = iValStr == null || iValStr.trim().length() == 0 ? "0" : iValStr.trim();
lineNoInv = Integer.parseInt( getNumString( iValStr ) );
iValStr = genericUtility.getColumnValue( "quantity__stduom", dom);
qtyStdUom = Double.parseDouble( getNumString( iValStr ) );
System.out.println( " qtyStdUom :1: " + qtyStdUom );
lotSl = genericUtility.getColumnValue("lot_sl", dom);
locCode = genericUtility.getColumnValue("loc_code", dom);
lineNoTrace = genericUtility.getColumnValue("line_no__invtrace", dom);
if (lineNoTrace != null )
{
if (lineNoTrace != null && lineNoTrace.indexOf(".") > 0)
{
lineNoTrace = lineNoTrace.substring(0,lineNoTrace.indexOf("."));
}
iLineNoTrace = Integer.parseInt( lineNoTrace );
infoMap.put("line_no__invtrace",lineNoTrace);
}
quantity = qtyStdUom;
// ADDED BY NANDKUMAR GADKARI ON 05/11/18--------------------END ----------------
infoMap.put("ret_repl_flag",retReplFlag);
infoMap.put("item_code", itemCode);
infoMap.put("site_code", siteCode);
......@@ -2996,8 +3567,9 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
infoMap.put("lot_sl", lotSl);
infoMap.put("tran_date", tranDate);
infoMap.put("invoice_id", invoiceId);
infoMap.put("line_no__invtrace",lineNoTrace);
infoMap.put( "quantity__stduom", new Double( -1 * quantity ) );
// infoMap.put("line_no__invtrace",lineNoTrace);
// infoMap.put( "quantity__stduom", new Double( -1 * quantity ) ); commented by nandkumar gadkari on 6/11/18 for non invoice id cost rate set as -1 due to quantity in negative
infoMap.put( "quantity__stduom", new Double(quantity ) );
priceList=getPriceList(dom1,dom,conn);//Getting PriceList Value, method added by sagar on 18/08/14..
System.out.println(">>>>>>>>>>Check priceList for getCost Rate 2:"+priceList);
infoMap.put( "price_list", priceList);
......@@ -3124,7 +3696,9 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
else
{
System.out.println( "retReplFlag :2 : " + retReplFlag );
if (retReplFlag != null && retReplFlag.equals("R"))
//Changed by Nandkumat Gadkari on 23/10/2018 to not to set rate if already set from min_rate_history
//if (retReplFlag != null && retReplFlag.equals("R"))
if (retReplFlag != null && retReplFlag.equals("R") && !isMinHisRateSet)
{
StringBuffer minRateBuff = getMinRate( dom, dom1, "lot_no", valueXmlString, conn);
System.out.println( "minRateBuff2 :: " + minRateBuff.toString() );
......@@ -3245,11 +3819,18 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
valueXmlString.append("<discount>").append("<![CDATA[" + discount + "]]>").append("</discount>");
setNodeValue( dom, "discount", discount );
System.out.println("END getMinRate start");
StringBuffer minRateBuff = getMinRate( dom, dom1, currentColumn.trim(), valueXmlString, conn );
System.out.println( "minRateBuff2 :: " + minRateBuff.toString() );
valueXmlString = minRateBuff;
valueXmlString = minRateBuff;
//Changed by Nandkumar Gadkari on 23/10/2018 to not to set rate if already set from min_rate_history [Start]
//StringBuffer minRateBuff = getMinRate( dom, dom1, currentColumn.trim(), valueXmlString, conn );
// StringBuffer minRateBuff = null;
if(!isMinHisRateSet)
{
StringBuffer minRateBuff = getMinRate( dom, dom1, currentColumn.trim(), valueXmlString, conn );
System.out.println( "minRateBuff2 :: " + minRateBuff.toString() );
valueXmlString = minRateBuff;
}
//Changed by Nandkumar Gadkari on 23/10/2018 to not to set rate if already set from min_rate_history [End]
//valueXmlString = minRateBuff;
reStr = itemChanged(dom, dom1, dom2, objContext, "lot_sl", editFlag, xtraParams);
pos = reStr.indexOf("<Detail2>");
......@@ -4762,39 +5343,616 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
}
}
}
valueXmlString.append("</Detail2>");
break;
case 3:
parentNodeList = dom1.getElementsByTagName("Detail1");
parentNode = parentNodeList.item(0);
winName = getObjName(parentNode);
System.out.println("winName 2nd :::"+winName);
parentNodeList = dom.getElementsByTagName("Detail3");
System.out.println("parent node ka size:::"+parentNodeList.getLength());
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
ctr = 0;
valueXmlString.append("<Detail3>");
childNodeListLength = childNodeList.getLength();
// Added By PriyankaC to set Reference Date. on 14JUNE2018
do
{
childNode = childNodeList.item(ctr);
childNodeName = childNode.getNodeName();
if(childNodeName.equals(currentColumn.trim()))
else if (currentColumn.trim().equals( "invoice_ref" ))
{
//Nandkumar Gadkari on 11/10/18--------------------------------------------(Start)---------------------------------
String invoiceQty = "", adjQty = "";
HashMap<String, String> curFormItemLotHMap = new HashMap<String, String>();
HashMap<String, String> curRecordItemLotHMap = new HashMap<String, String>();
String sreturnAdjOpt = "", orderByStr = "",slineNo="";
int lineNo=0;
String minRateDocKey = "",sql1="",minRateDocKeyCnt="";
boolean isMinHisRateSet = false;
String applDateFormat = genericUtility.getApplDateFormat();
SimpleDateFormat sdf = new SimpleDateFormat(applDateFormat);
String invRefId = "",invRefDate="" ,tempInvoiceId=null;
String shExpDiscAppl="";
ArrayList<String> dokkeyList=null;
boolean isInvRefDateSet = false;
System.out.println(">>>>>>>>>>In IC lot_no:");
priceList = genericUtility.getColumnValue("price_list", dom1);
priceListClg = genericUtility.getColumnValue("price_list__clg", dom1);
fullRet = genericUtility.getColumnValue("full_ret", dom1);
itemCode = genericUtility.getColumnValue("item_code", dom);
lotNo = genericUtility.getColumnValue("lot_no", dom);
tranDate = genericUtility.getColumnValue("tran_date", dom1);
siteCode = genericUtility.getColumnValue("site_code", dom1);
invoiceId = genericUtility.getColumnValue("invoice_ref", dom);
unitRate = genericUtility.getColumnValue("unit__rate", dom);
unitRate = unitRate == null ? "" : unitRate;
unitStd = genericUtility.getColumnValue("unit__std", dom);
retReplFlag = genericUtility.getColumnValue("ret_rep_flag", dom);
String iValStr = genericUtility.getColumnValue("line_no__inv", dom);
if (iValStr != null && iValStr.indexOf(".") > 0)
{
if (childNode.getFirstChild() != null)
{
columnValue = childNode.getFirstChild().getNodeValue();
}
iValStr = iValStr.substring(0,iValStr.indexOf("."));
}
ctr++;
}
while(ctr < childNodeListLength && !childNodeName.equals(currentColumn));
if(currentColumn.trim().equalsIgnoreCase("ref_no"))
{
sreturnAdjOpt = distCommon.getDisparams("999999", "SRETURN_ADJ_OPT", conn);
System.out.println("sreturnAdjOpt:::["+sreturnAdjOpt+"]");
if ("M".equalsIgnoreCase(sreturnAdjOpt))
{
orderByStr = " ORDER BY MRH.EFF_COST ";
}
else if("E".equalsIgnoreCase(sreturnAdjOpt))
{
orderByStr = " ORDER BY MRH.INVOICE_DATE ASC,MRH.INVOICE_ID ASC ";
}
else if("L".equalsIgnoreCase(sreturnAdjOpt))
{
orderByStr = " ORDER BY MRH.INVOICE_DATE DESC,MRH.INVOICE_ID DESC ";
}
if( !"NULLFOUND".equalsIgnoreCase(sreturnAdjOpt))
{
if(invoiceId != null && invoiceId.trim().length()>0)
{
dokkeyList= generateDocKey(dom1, dom, invoiceId, conn);
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);
int size = dokkeyList.size();
for(int i=0;i<=size-1;i++)
{
cnt=0;
minRateDocKeyCnt = dokkeyList.get(i);
String docKeyvalue="";
if (minRateDocKeyCnt.trim().length() > 0) {
String[] docKeyStr = minRateDocKeyCnt.split(",");
for(int j=0; j<docKeyStr.length; j++)
{
System.out.println( "docKeyStrlength :: " + docKeyStr.length);
cnt++;
}
}
System.out.println( "cnt :: " + cnt );
if(cnt == 5)
{
minRateDocKey = dokkeyList.get(i);
System.out.println("@@@@@@@minRateDocKey .......... test 123 [" + minRateDocKey+"]");
System.out.println("@@@@@@@count1 .......... test 123");
sql = " SELECT MRH.INVOICE_ID,MRH.QUANTITY, MRH.CUST_CODE, MRH.ITEM_CODE, MRH.LOT_NO, MRH.SITE_CODE, MRH.INVOICE_DATE,"
+ " 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.DOC_KEY =SRDET.DOC_KEY(+) AND MRH.CUST_CODE = ?"
+ " AND MRH.ITEM_CODE = ? AND MRH.LOT_NO = ?"
+ " AND MRH.SITE_CODE = ? "
// + "AND MRH.QUANTITY - CASE WHEN MRH.QUANTITY_ADJ IS NULL THEN 0 ELSE MRH.QUANTITY_ADJ END > 0"
+ " AND MRH.QUANTITY IS NOT NULL AND MRH.INVOICE_ID= ? AND MRH.DOC_KEY = ? "
+ " GROUP BY MRH.INVOICE_ID, MRH.QUANTITY, MRH.EFF_COST,MRH.CUST_CODE,MRH.ITEM_CODE,MRH.LOT_NO, MRH.SITE_CODE, MRH.INVOICE_DATE"
//+ " HAVING MRH.QUANTITY-SUM( CASE WHEN SRDET.QUANTITY IS NULL THEN 0 ELSE SRDET.QUANTITY END) > 0"
+ orderByStr;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
pstmt.setString(2, itemCode);
pstmt.setString(3, lotNo);
pstmt.setString(4, siteCode);
pstmt.setString(5, invoiceId);
pstmt.setString(6, minRateDocKey);
rs = pstmt.executeQuery();
while (rs.next()) {
invoiceQty = checkNull(rs.getString("QUANTITY"));
adjQty = checkNull(rs.getString("QTY_ADJ"));
rate = rs.getDouble("EFF_COST");
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);
System.out.println("@@@@@@@@@@@@ dokkeyList["+dokkeyList+"]");
//invoiceId = getAvailableInvId(dom,dom2, curFormItemLotHMap, curRecordItemLotHMap,invoiceId, minRateDocKey, adjQty);
tempInvoiceId =invoiceId;
if (invoiceId != null && invoiceId.trim().length() > 0)
{
break;
}
}
if (tempInvoiceId != null && tempInvoiceId.trim().length() > 0)
{
break;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if (rs != null) {
rs.close();
rs = null;
}
}
}
//Added by Nandkumar Gadkari on 14/09/18----------------[End]---------------------------------------
sql = "SELECT DOC_KEY,EFF_COST FROM MIN_RATE_HISTORY WHERE DOC_KEY = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, minRateDocKey);
rs = pstmt.executeQuery();
if(rs.next())
{
minRateDocKey = checkNull(rs.getString("DOC_KEY"));
rate = rs.getDouble("EFF_COST");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
isMinHisRateSet = true;
if(minRateDocKey != null && minRateDocKey.trim().length() > 0 )
{
valueXmlString.append("<rate>").append("<![CDATA[" + rate + "]]>").append("</rate>");
valueXmlString.append("<doc_key>").append("<![CDATA[" + minRateDocKey + "]]>").append("</doc_key>");
setNodeValue( dom, "doc_key", minRateDocKey );
}
String docKey = checkNull(genericUtility.getColumnValue( "doc_key", dom ));
System.out.println(" dok key : " +docKey);
if(docKey.trim().length() > 0 || docKey != null )
{
System.out.println("inside dok key : " +docKey);
sqlStr = " select INVOICE_ID , INVOICE_DATE from MIN_RATE_HISTORY where DOC_KEY = ? "; //trim(:ls_itemcode);
pstmt = conn.prepareStatement( sqlStr );
pstmt.setString( 1, docKey );
rs = pstmt.executeQuery();
if( rs.next() )
{
invRefId = checkNull(rs.getString( "INVOICE_ID" ));
invRefDate = checkNull(sdf.format( rs.getTimestamp( "INVOICE_DATE" )));
}
if( rs != null )
rs.close();
rs = null;
if( pstmt != null )
pstmt.close();
pstmt = null;
if(invRefId != null && invRefId.trim().length() >0)
{
valueXmlString.append("<invoice_ref>").append("<![CDATA["+ invRefId +"]]>").append("</invoice_ref>");
}
if(invRefDate != null && invRefDate.trim().length() >0)
{
isInvRefDateSet= true;
valueXmlString.append("<inv_ref_date>").append("<![CDATA["+ invRefDate+"]]>").append("</inv_ref_date>");
}
//Added by Nandkumar Gadkari on 30/10/18--------start-----------for set invoice id and line_no inv trace
sqlStr = "select Count(*) cnt from INVOICE_TRACE where invoice_id = ? "; //trim(:ls_itemcode);
pstmt = conn.prepareStatement( sqlStr );
pstmt.setString( 1, invRefId );
rs = pstmt.executeQuery();
if( rs.next() )
{
cnt = rs.getInt(1);
}
if( rs != null )
rs.close();
rs = null;
if( pstmt != null )
pstmt.close();
pstmt = null;
if(cnt > 0)
{
int lineNoTraceref =0;
valueXmlString.append("<invoice_id>").append("<![CDATA["+ invRefId +"]]>").append("</invoice_id>");
sqlStr = " select INV_LINE_NO from INVOICE_TRACE WHERE INVOICE_ID= ? AND ITEM_CODE=? AND LOT_NO= ? ";
if(lotSl!=null && lotSl.trim().length() >0 )
{
sqlStr = sqlStr + "AND LOT_SL= ? ";
}
pstmt = conn.prepareStatement( sqlStr );
pstmt.setString( 1, invRefId );
pstmt.setString( 2, itemCode );
pstmt.setString( 3, lotNo );
if(lotSl!=null && lotSl.trim().length() >0 )
{
pstmt.setString( 4, lotSl );
}
rs = pstmt.executeQuery();
if( rs.next() )
{
lineNoTraceref = rs.getInt(1);
valueXmlString.append("<line_no__inv>").append("<![CDATA["+ lineNoTraceref +"]]>").append("</line_no__inv>");
valueXmlString.append("<line_no__invtrace>").append("<![CDATA["+ lineNoTraceref +"]]>").append("</line_no__invtrace>");
}
if( rs != null )
rs.close();
rs = null;
if( pstmt != null )
pstmt.close();
pstmt = null;
}
else
{
valueXmlString.append("<invoice_id>").append("<![CDATA[]]>").append("</invoice_id>");
valueXmlString.append("<line_no__inv>").append("<![CDATA[]]>").append("</line_no__inv>");
valueXmlString.append("<line_no__invtrace>").append("<![CDATA[]]>").append("</line_no__invtrace>");
}
//Added by Nandkumar Gadkari on 30/10/18--------end-----------for set invoice id and line_no inv trace
}
//invoiceId = null;
}
}
// ADDED BY NANDKUMAR GADKARI ON 05/11/18--------------------START ----------------
infoMap = new HashMap();
//
iValStr = iValStr == null || iValStr.trim().length() == 0 ? "0" : iValStr.trim();
lineNoInv = Integer.parseInt( getNumString( iValStr ) );
iValStr = genericUtility.getColumnValue( "quantity__stduom", dom);
qtyStdUom = Double.parseDouble( getNumString( iValStr ) );
System.out.println( " qtyStdUom :1: " + qtyStdUom );
lotSl = genericUtility.getColumnValue("lot_sl", dom);
locCode = genericUtility.getColumnValue("loc_code", dom);
lineNoTrace = genericUtility.getColumnValue("line_no__invtrace", dom);
if (lineNoTrace != null )
{
if (lineNoTrace != null && lineNoTrace.indexOf(".") > 0)
{
lineNoTrace = lineNoTrace.substring(0,lineNoTrace.indexOf("."));
}
iLineNoTrace = Integer.parseInt( lineNoTrace );
infoMap.put("line_no__invtrace",lineNoTrace);
}
quantity = qtyStdUom;
// ADDED BY NANDKUMAR GADKARI ON 05/11/18--------------------END ----------------
infoMap.put("ret_repl_flag",retReplFlag);
infoMap.put("item_code", itemCode);
infoMap.put("site_code", siteCode);
infoMap.put("loc_code",locCode);
infoMap.put("lot_no", lotNo);
infoMap.put("lot_sl", lotSl);
infoMap.put("tran_date", tranDate);
infoMap.put("invoice_id", invoiceId);
// infoMap.put("line_no__invtrace",lineNoTrace);
infoMap.put( "quantity__stduom", new Double( -1 * quantity ) );
priceList=getPriceList(dom1,dom,conn);//Getting PriceList Value, method added by sagar on 18/08/14..
System.out.println(">>>>>>>>>>Check priceList for getCost Rate 2:"+priceList);
infoMap.put( "price_list", priceList);
costRate = getCostRate(infoMap, conn);
infoMap = null;
valueXmlString.append("<cost_rate>").append("<![CDATA[" + costRate + "]]>").append("</cost_rate>");
setNodeValue( dom, "cost_rate", Double.toString( costRate ) );
System.out.println( " invoiceId :1: " + invoiceId );
if (invoiceId != null && invoiceId.trim().length() > 0 && !"null".equalsIgnoreCase( invoiceId.trim() ) )
{
System.out.println( " retReplFlag :2: " + retReplFlag );
if (retReplFlag.equals("R"))
{
sql = "select sord_no, sord_line_no "
+ " from invoice_trace "
+ " where invoice_id = ? "
+ " and line_no = ? ";
pstmt= conn.prepareStatement( sql );
pstmt.setString( 1, invoiceId );
pstmt.setInt( 2, iLineNoTrace );
rs = pstmt.executeQuery();
if( rs.next() )
{
sorder = rs.getString(1);
sordLineNo = rs.getString(2);
}
rs.close();
pstmt.close();
pstmt = null;
rs = null;
sql = "select count(1) from invoice_trace "
+ " where invoice_id = ? "
+ " and item_code = ? "
+ " and sord_no = ? "
+ " and sord_line_no = ? "
+ " and item_code <> item_code__ord " ;
pstmt= conn.prepareStatement( sql );
pstmt.setString( 1, invoiceId );
pstmt.setString( 2, itemCode );
pstmt.setString( 3, sorder );
pstmt.setString( 4, sordLineNo );
rs = pstmt.executeQuery();
cnt = 0;
if( rs.next() )
{
cnt = rs.getInt(1);
}
rs.close();
pstmt.close();
pstmt = null;
rs = null;
System.out.println( " cnt :1: " + cnt );
if (cnt > 0)
{
sql = "select sum((case when quantity is null then 0 else quantity end) * "
+ " (case when rate is null then 0 else rate end)), "
+ " sum(case when quantity is null then 0 else quantity end) from invoice_trace "
+ " where invoice_id = ? "
+ " and item_code = ? "
+ " and sord_no = ? "
+ " and sord_line_no = ? ";
pstmt = conn.prepareStatement( sql );
pstmt.setString( 1, invoiceId );
pstmt.setString( 2, itemCode );
pstmt.setString( 3, sorder );
pstmt.setString( 4, sordLineNo );
rs = pstmt.executeQuery();
cnt = 0;
if( rs.next() )
{
amount = rs.getDouble(1);
quantity = rs.getDouble(2);
}
rs.close();
pstmt.close();
pstmt = null;
rs = null;
totFreeCost = 0;
}
else
{
System.out.println( "else 1 " );
sql = "select rate, discount, rate__clg "
+ " from invoice_trace "
+ " where invoice_id = ? "
+ " and line_no = ? ";
pstmt= conn.prepareStatement( sql );
pstmt.setString( 1, invoiceId);
pstmt.setInt( 2, iLineNoTrace);
rs = pstmt.executeQuery();
if( rs.next() )
{
rate = rs.getDouble(1);
discount = rs.getDouble(2);
rateClg = rs.getDouble(3);
}
rs.close();
pstmt.close();
pstmt = null;
rs = null;
}
} // retReplFlag = R
else
{
priceList=getPriceList(dom1,dom,conn);//Getting PriceList Value, method added by sagar on 19/08/14..
System.out.println(">>>>>>>>>>Check priceList in lot_no:"+priceList);
if (priceList != null && !priceList.equals("null") && priceList.trim().length() > 0)
{
tranDate = tranDate == null ? ( genericUtility.getValidDateString( new Timestamp( System.currentTimeMillis() ).toString(), genericUtility.getDBDateFormat(), genericUtility.getApplDateFormat() ) ).toString() : tranDate;
itemCode = itemCode == null ? "" : itemCode;
lotNo = lotNo == null ? "" : lotNo;
rate = distCommon.pickRate(priceList,tranDate,itemCode,lotNo,"D",qtyStdUom, conn);
System.out.println(">>>>>>>>>>Check rate in lot_no:"+rate);
System.out.println( "rate pic rate LOt NO :: " + rate );
}
}
} //invoice_id
else
{
System.out.println( "retReplFlag :2 : " + retReplFlag );
//Changed by Nandkumat Gadkari on 23/10/2018 to not to set rate if already set from min_rate_history
//if (retReplFlag != null && retReplFlag.equals("R"))
if (retReplFlag != null && retReplFlag.equals("R") && !isMinHisRateSet)
{
StringBuffer minRateBuff = getMinRate( dom, dom1, "lot_no", valueXmlString, conn);
System.out.println( "minRateBuff2 :: " + minRateBuff.toString() );
//valueXmlString = minRateBuff;
String rateValStr = getTagValue( minRateBuff.toString(), "rate" );
System.out.println( "rateValStr LOt NO :: " + rateValStr );
rate = getRequiredDecimal( Double.parseDouble( getNumString( rateValStr ) ), 4 );
}
System.out.println( "rate before If :1: " + rate );
if (rate <= 0)
{
rate = 0;
priceList=getPriceList(dom1,dom,conn);//Getting PriceList Value, method added by sagar on 19/08/14..
System.out.println(">>>>>>>>>>Check priceList in lot_no 2:"+priceList);
if (priceList != null && !priceList.equals("null") && priceList.trim().length() > 0)
{
tranDate = tranDate == null ? ( genericUtility.getValidDateString( new Timestamp( System.currentTimeMillis() ).toString(), genericUtility.getDBDateFormat(), genericUtility.getApplDateFormat() ) ).toString() : tranDate;
itemCode = itemCode == null ? "" : itemCode;
lotNo = lotNo == null ? "" : lotNo;
rate = distCommon.pickRate(priceList,tranDate,itemCode,lotNo,"D",qtyStdUom, conn);
System.out.println(">>>>>>>>>>Check rate in lot_no 2:"+rate);
System.out.println( "rate in If :1: " + rate );
}
}
}
pickLowerRate = distCommon.getDisparams("999999","PICK_LOWER_RATE", conn);
if (pickLowerRate.equals("NULLFOUND"))
{
pickLowerRate = "N";
}
if ( pickLowerRate != null && pickLowerRate.equals("Y"))
{
priceList=getPriceList(dom1,dom,conn);//Getting PriceList Value, method added by sagar on 19/08/14..
System.out.println(">>>>>>>>>>Check priceList in lot_no 3:"+priceList);
if (priceList !=null && priceList.trim().length() > 0)
{
tranDate = tranDate == null ? ( genericUtility.getValidDateString( new Timestamp( System.currentTimeMillis() ).toString(), genericUtility.getDBDateFormat(), genericUtility.getApplDateFormat() ) ).toString() : tranDate;
itemCode = itemCode == null ? "" : itemCode;
lotNo = lotNo == null ? "" : lotNo;
priceListRate = distCommon.pickRate(priceList,tranDate,itemCode,lotNo,"D", quantity, conn);
System.out.println(">>>>>>>>>>Check priceListRate in lot_no 3:"+priceListRate);
System.out.println( "priceListRate LOt NO :: " + priceListRate );
if (priceListRate < rate && priceListRate > 0 )
{
rate = priceListRate;
System.out.println( "rate priceListRate < rate && priceListRate > 0 :1: " + rate );
}
}
}
System.out.println( "Rate LOt NO :: " + rate );
valueXmlString.append("<rate>").append("<![CDATA[" + rate + "]]>").append("</rate>");
setNodeValue( dom, "rate", rate );
rateClg = sRateClg;
if (rateClg <= 0 )
{
priceListClg = genericUtility.getColumnValue("price_list__clg", dom1);//added by sagar on 19/08/14..
System.out.println(">>>>>>>>>>Check priceListClg in lot_no 4:"+priceListClg);
if ( priceListClg != null && priceListClg.trim().length() > 0 && !"null".equalsIgnoreCase( priceListClg.trim() ) )
{
tranDate = tranDate == null ? ( genericUtility.getValidDateString( new Timestamp( System.currentTimeMillis() ).toString(), genericUtility.getDBDateFormat(), genericUtility.getApplDateFormat() ) ).toString() : tranDate;
itemCode = itemCode == null ? "" : itemCode;
lotNo = lotNo == null ? "" : lotNo;
rateClg = distCommon.pickRate(priceListClg,tranDate,itemCode,lotNo,"L", quantity, conn);
System.out.println(">>>>>>>>>>Check rateClg in lot_no 4:"+rateClg);
if (rateClg == -1)
{
rateClg = 0 ;
}
}
if (rateClg == 0 )
{
valueXmlString.append("<rate__clg>").append("<![CDATA[" + rate + "]]>").append("</rate__clg>");
setNodeValue( dom, "rate__clg", rate );
}
else
{
valueXmlString.append("<rate__clg>").append("<![CDATA[" + rateClg + "]]>").append("</rate__clg>");
setNodeValue( dom, "rate__clg", rateClg );
}
}
unit = genericUtility.getColumnValue( "unit", dom );
if ( unitRate != null && unit != null && unit.trim().equals( unitRate.trim() ) )
{
System.out.println("manohar rate__stduom 5 [" + rate + "]");
valueXmlString.append("<rate__stduom>").append("<![CDATA[" + rate + "]]>").append("</rate__stduom>");
setNodeValue( dom, "rate__stduom", rate );
valueXmlString.append("<conv__rtuom_stduom>").append("<![CDATA[1]]>").append("</conv__rtuom_stduom>");
setNodeValue( dom, "conv__rtuom_stduom", "1" );
}
else if ( unitRate != null && unit != null && !unit.trim().equals( unitRate.trim() ) )
{
System.out.println( "unit :: " + unit );
System.out.println( "unitRate :: " + unitRate );
System.out.println( "itemCode :: " + itemCode );
System.out.println( "rate :: " + rate );
System.out.println( "fact :: " + fact );
convAr = distCommon.getConvQuantityFact(unit, unitRate, itemCode, rate, (double) fact, conn);
convFact = Double.parseDouble( convAr.get(0).toString() );
rateStd = Double.parseDouble( convAr.get(1).toString() );
System.out.println("manohar rate__stduom 6 [" + rateStd + "]");
valueXmlString.append("<rate__stduom>").append("<![CDATA[" + rateStd + "]]>").append("</rate__stduom>");
setNodeValue( dom, "rate__stduom", rateStd );
valueXmlString.append("<conv__rtuom_stduom>").append("<![CDATA[" + convFact + "]]>").append("</conv__rtuom_stduom>");
setNodeValue( dom, "conv__rtuom_stduom", convFact );
}
sQuantity = Double.parseDouble( getNumString( genericUtility.getColumnValue("quantity", dom) ) );
quantity = sQuantity;
valueXmlString.append("<mrp_value>").append("<![CDATA[" + quantity * rateClg + "]]>").append("</mrp_value>");
setNodeValue( dom, "mrp_value", quantity * rateClg );
valueXmlString.append("<discount>").append("<![CDATA[" + discount + "]]>").append("</discount>");
setNodeValue( dom, "discount", discount );
System.out.println("END getMinRate start");
//Changed by Nandkumar Gadkari on 23/10/2018 to not to set rate if already set from min_rate_history [Start]
//StringBuffer minRateBuff = getMinRate( dom, dom1, currentColumn.trim(), valueXmlString, conn );
// StringBuffer minRateBuff = null;
if(!isMinHisRateSet)
{
StringBuffer minRateBuff = getMinRate( dom, dom1, currentColumn.trim(), valueXmlString, conn );
System.out.println( "minRateBuff2 :: " + minRateBuff.toString() );
valueXmlString = minRateBuff;
}
//Changed by Nandkumar Gadkari on 23/10/2018 to not to set rate if already set from min_rate_history [End]
//valueXmlString = minRateBuff;
reStr = itemChanged(dom, dom1, dom2, objContext, "lot_sl", editFlag, xtraParams);
pos = reStr.indexOf("<Detail2>");
reStr = reStr.substring(pos + 9);
pos = reStr.indexOf("</Detail2>");
reStr = reStr.substring(0,pos);
valueXmlString.append(reStr);
}
//
valueXmlString.append("</Detail2>");
break;
case 3:
parentNodeList = dom1.getElementsByTagName("Detail1");
parentNode = parentNodeList.item(0);
winName = getObjName(parentNode);
System.out.println("winName 2nd :::"+winName);
parentNodeList = dom.getElementsByTagName("Detail3");
System.out.println("parent node ka size:::"+parentNodeList.getLength());
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
ctr = 0;
valueXmlString.append("<Detail3>");
childNodeListLength = childNodeList.getLength();
do
{
childNode = childNodeList.item(ctr);
childNodeName = childNode.getNodeName();
if(childNodeName.equals(currentColumn.trim()))
{
if (childNode.getFirstChild() != null)
{
columnValue = childNode.getFirstChild().getNodeValue();
}
}
ctr++;
}
while(ctr < childNodeListLength && !childNodeName.equals(currentColumn));
if(currentColumn.trim().equalsIgnoreCase("ref_no"))
{
mCode = genericUtility.getColumnValue("ref_no",dom);
mCode1 = genericUtility.getColumnValue("ref_ser",dom);
......@@ -5027,7 +6185,7 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
}
}
} // end of tran_date
if( childNodeName.equalsIgnoreCase( "cust_code" ))
if( childNodeName.equalsIgnoreCase( "cust_code" ) || childNodeName.equalsIgnoreCase( "cust_code__bill" ))// cust_code__bill condition added by Nandkumar gadkari on 30/10/18
{
errCode = null;
......@@ -6111,7 +7269,7 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
{
if( mdateStr == null || mdateStr.trim().length() == 0 )
{
System.out.println("@@@@@ mdateStr in if :["+mdateStr+"]["+mdateStr.length());
//System.out.println("@@@@@ mdateStr in if :["+mdateStr+"]["+mdateStr.length()); // COMENTED BY NANDKUMAR GADKARI ON 30/10/18
errCode = "VTEXPDATE1";
//errString = getErrorString( childNodeName, errCode, userId );
//break;
......@@ -6411,6 +7569,10 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
{
lsInvoiceId = genericUtility.getColumnValue( "invoice_id", dom ); // dw_detedit[ii_currformno].getitemstring(dw_detedit[ii_currformno].GetRow(),"invoice_id")
String llLineNoStr = getNumString( genericUtility.getColumnValue( "line_no__inv", dom ) );//dw_detedit[ii_currformno].getitemnumber(dw_detedit[ii_currformno].GetRow(),"line_no__inv")
if (llLineNoStr != null && llLineNoStr.indexOf(".") > 0)// if condition added by nandkumar gadkari on 05/11/18
{
llLineNoStr = llLineNoStr.substring(0,llLineNoStr.indexOf("."));
}
llLineNo = Integer.parseInt( llLineNoStr == null || llLineNoStr.trim().length() == 0 ? "0" : llLineNoStr );
if( lsInvoiceId != null && lsInvoiceId.trim().length() > 0 && !"null".equalsIgnoreCase( lsInvoiceId.trim() ) )
{
......@@ -6454,6 +7616,193 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
errList.add( errCode );
errFields.add( childNodeName.toLowerCase() );
}
//Added by Nandkumar gadkari on 02/12/2016 to split quantity in multiple line as per min_rate_history[Start]
String lcQtyStr = genericUtility.getColumnValue( "quantity", dom );
lcQty = Double.parseDouble( lcQtyStr == null || lcQtyStr.trim().length() == 0 ? "0" : lcQtyStr.trim() );
lsInvoiceId = genericUtility.getColumnValue( "invoice_id", dom );
String lcRateStr = genericUtility.getColumnValue( "rate", dom );
lcRate = Double.parseDouble( lcRateStr == null || lcRateStr.trim().length() == 0 ? "0" : lcRateStr.trim() );
String llLineNoInvStr = getNumString( genericUtility.getColumnValue( "line_no__inv", dom ) );
//Added by Santosh on 02/05/2017 to get unconfirmed adjusted quantity [Start]
lineNo = genericUtility.getColumnValue( "line_no", dom ).trim();
itemCode = genericUtility.getColumnValue( "item_code", dom );
lsLotNo = genericUtility.getColumnValue( "lot_no", dom );
siteCode = genericUtility.getColumnValue("site_code", dom1);
custCode = genericUtility.getColumnValue("cust_code", dom1);
double sdetQtyAdj = 0.0, domTotalQty = 0.0;
int nLineNo = Integer.parseInt(lineNo);
String tranId = genericUtility.getColumnValue("tran_id", dom);
//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 23/05/2017
boolean isValidInvoiceId = true;
//Changed by Nandkumar gadkari on 10/05/2017 to not to validate split quantity if SRETURN_ADJ_OPT is not defined
if(! "NULLFOUND".equalsIgnoreCase(sreturnAdjOpt))
{
double invoiceQty = 0.0, qtyAdj = 0.0;
String docKey = checkNull(genericUtility.getColumnValue( "doc_key", dom ));
//Commented and changed by Santosh on 16/05/2017 to get docKey from dom [End]
if( !"".equalsIgnoreCase(docKey.trim()) && docKey.trim().length() > 0)
{
System.out.println("docKey in wfvaldata for quantity ["+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);
//Commented and changed by Santosh on 16/05/2017
//curDomDataHMap.put("invoice_id", lsInvoiceId);
curDomDataHMap.put("doc_key", docKey);
//Added by Santosh on 20/09/2017 for bug fix split qty validatoin in edit mode
curDomDataHMap.put("line_no", lineNo);
if( nLineNo > 1 )
{
domTotalQty = getDomQuantity(dom2, curDomDataHMap);
}
System.out.println("editFlag["+editFlag+"]");
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'"
//Changed by Santosh on 16/05/2017
//+ " AND SDET.INVOICE_ID IS NOT NULL"
//+ " AND SDET.INVOICE_ID = ?"
+ " AND SDET.DOC_KEY = ?"
+ " AND SDET.ITEM_CODE = ?"
+ " AND SDET.LOT_NO = ?"
+ " AND SRET.SITE_CODE = ?"
+ " AND SRET.CUST_CODE = ?";
if(editFlag != null && "E".equalsIgnoreCase(editFlag))
{
sql = sql +" AND SDET.TRAN_ID <> ?" ;
//Added by Santosh on 20/09/2017 for bug fix split qty validatoin in edit mode
sql = sql +" AND SDET.LINE_NO <> ?" ;
}
sql = sql + " GROUP BY SDET.INVOICE_ID";
pstmt = conn.prepareStatement(sql);
//Changed by Santosh on 16/05/2017
//pstmt.setString(1, lsInvoiceId);
pstmt.setString(1, docKey);
pstmt.setString(2, itemCode);
pstmt.setString(3, lsLotNo);
pstmt.setString(4, siteCode);
pstmt.setString(5, custCode);
if(editFlag != null && "E".equalsIgnoreCase(editFlag))
{
pstmt.setString(6, tranId);
//Added by Santosh on 20/09/2017 for bug fix split qty validatoin in edit mode
pstmt.setString(7, lineNo);
}
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;
}
//Added by Santosh on 23/05/2017 to check if enetered inovice id is availbel for salesreturn[Start]
if(lsInvoiceId != null && lsInvoiceId.trim().length()>0)
{
if((qtyAdj+sdetQtyAdj+domTotalQty)>0)
{
errCode = "VTINVADJ";
errList.add( errCode );
errFields.add( childNodeName.toLowerCase() );
isValidInvoiceId = false;
}
}
//Added by Santosh on 23/05/2017 to check if enetered inovice id is availbel for salesreturn[End]
System.out.println( "lcQty :: " + lcQty );
System.out.println( "qtyAdj :: " + qtyAdj );
System.out.println( "sdetQtyAdj :: " + sdetQtyAdj );
System.out.println( "domTotalQty :: " + domTotalQty );
System.out.println( "invoiceQty :: " + invoiceQty );
//-------------NANDKUMAR GADKARI ON 15/10/18---------------START----------
String docKeyvalue="";
if (docKey.trim().length() > 0) {
cnt = 0;
/*do {
docKeyStr = distCommon.getToken(docKey, ",");
System.out.println( "docKeyStr :: " + docKeyStr );
cnt++;
} while (cnt <5);
System.out.println( "cnt :: " + cnt );*/
String[] docKeyStr = docKey.split(",");
for(int i=0; i<docKeyStr.length; i++)
{
//docKeyvalue = ;
System.out.println( "docKeyStr :: " + docKeyStr[i]);
System.out.println( "docKeyStrlength :: " + docKeyStr.length);
cnt++;
}
System.out.println( "cnt :: " + cnt );
if(cnt !=5)
{
isValidInvoiceId=false;
}
}
//-------------NANDKUMAR GADKARI ON 15/10/18---------------END ----------
if(isValidInvoiceId && (lcQty+(qtyAdj+sdetQtyAdj+domTotalQty)) > invoiceQty)
{
return getError((invoiceQty - (qtyAdj+sdetQtyAdj+domTotalQty)), "VTSPLTQTY", conn);
}
}
}
//Added by Nandkumar gadkari on 02/12/2016 to split quantity in multiple line as per min_rate_history[End]
}
} // end for
......@@ -7928,4 +9277,311 @@ public class SReturnForm extends ValidatorEJB implements SReturnFormLocal, SRetu
return priceLst;
}
//added by Nandkumar Gadkari on 23/10/18-------------------Start--------------------------
private String getAvailableInvId(Document dom,Document allDom, HashMap<String, String> curFormItemLotHMap, HashMap<String, String> curRecordItemLotHMap, String invoiceId, String domDocKey, 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;
//Added by Santosh on 16/05/2017
// String domDocKey = "";
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+"]");
invoiceId=invoiceId.trim();// trim() by Nandkumar Gadkari on 25/10/18
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(); i++)// removed detail2NList.getLength() -1 condition from loop by Nandkumar Gadkari on 14/09/18
{
/*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();*/ //commented by Nandkumar Gadkari on 14/09/18
//added by Nandkumar Gadkari on 14/09/18-------[START]---------------
domCustCode = checkNullTrim(genericUtility.getColumnValueFromNode("cust_code", detail1Node));
domItemCode = checkNullTrim(genericUtility.getColumnValue("item_code", dom));
domLotNo = (genericUtility.getColumnValue("lot_no", dom)).trim();
domSiteCode = checkNullTrim(genericUtility.getColumnValueFromNode("site_code", detail1Node));
domQuantity = checkNullTrim(genericUtility.getColumnValue("quantity", dom));
//added by Nandkumar Gadkari on 14/09/18-------[END]---------------
//Commented and changed by Santosh on 16/05/2017
//domInvoiceId = genericUtility.getColumnValueFromNode("invoice_id", eachDetail2Node).trim();
//domDocKey = checkNull(genericUtility.getColumnValueFromNode("doc_key", eachDetail2Node)).trim(); //commented by Nandkumar Gadkari on 14/09/18
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");
//Changed by Santosh on 16/05/2017
//if( invoiceId.equalsIgnoreCase(domInvoiceId) &&
if( domDocKey.indexOf(invoiceId) != -1 &&
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 = "";
break;
}
}
else
{
System.out.println("giving next availabe invoiceid["+invoiceId+"]");
retInvoiceId = invoiceId;
}
}
}
System.out.println("invoiceid["+invoiceId+"]");
if( !isCurFormDataInDom )
{
retInvoiceId = invoiceId;
}
System.out.println("retInvoiceId["+retInvoiceId+"]");
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("SalesReturn.getAvailableInvId()["+e.getMessage()+"]");
}
return retInvoiceId;
}
private ArrayList<String> generateDocKey(Document headerDom, Document curDetDom, String invoiceID, Connection conn) // Change String to array list String by Nandkumar Gadkari on 14/09/18
{
//String retDocKey = "";// Commented by Nandkumar Gadkari on 14/09/18
DistCommon distCommon = new DistCommon();
String sNoOfKeys = "", schemeKey = "", varValue = "", docKey = null, docValue = "";
int noOfKeys = 0;
String col[] = new String[500];
boolean dynamicCol = true;
ArrayList<String> retDocKey = new ArrayList<String>();// added by Nandkumar Gadkari on 14/09/18
try
{
sNoOfKeys = distCommon.getDisparams("999999","SCHEME_HIST_NUM",conn);
if ( "NULLFOUND".equals( sNoOfKeys ) )
{
//retDocKey = "";
retDocKey = null; // Changes by Nandkumar Gadkari on 14/09/18
}
else
{
noOfKeys = Integer.parseInt(sNoOfKeys);
}
for(int keyCtr = 1; keyCtr <= noOfKeys; keyCtr++)
{
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 = checkNull(genericUtility.getColumnValue(varValueArry[i].trim(),headerDom)).trim();
}
else if ("cust_code__bil".equalsIgnoreCase(varValueArry[i].trim())) //if condition added by Nandkumar Gadkari on 14/09/18
{
docValue = checkNull(genericUtility.getColumnValue("cust_code__bill", headerDom)).trim();
}
else if("site_code".equalsIgnoreCase(varValueArry[i].trim()))
{
docValue = checkNull(genericUtility.getColumnValue(varValueArry[i].trim(),headerDom)).trim();
}
else if("item_code".equalsIgnoreCase(varValueArry[i].trim()))
{
docValue = checkNull(genericUtility.getColumnValue(varValueArry[i].trim(),curDetDom)).trim();
}
else if("lot_no".equalsIgnoreCase(varValueArry[i].trim()))
{
docValue = checkNull(genericUtility.getColumnValue(varValueArry[i].trim(),curDetDom)).trim();
}
else if("invoice_id".equalsIgnoreCase(varValueArry[i].trim()))
{
docValue = invoiceID.trim();
}
else
{
docValue = checkNull(genericUtility.getColumnValue(varValueArry[i].trim(),headerDom)).trim();
}
if (docKey != "" && docKey.trim().length() > 0)
{
docKey = docKey + "," + ( docValue == null || docValue.trim().length() == 0 ? "" : docValue);
}
else
{
docKey = docValue;
}
}
retDocKey.add(docKey);// added by Nandkumar Gadkari on 14/09/18
}
//retDocKey = docKey; // commented by Nandkumar Gadkari on 14/09/18
System.out.println("retDocKey["+retDocKey+"]");
}
catch (Exception e)
{
System.out.println("SalesReturn.generateDocKey()["+e.getMessage()+"]");
e.printStackTrace();
}
return retDocKey;
}
private double getDomQuantity(Document allDom, HashMap<String, String> curDomDataHMap)
{
double retDomQty = 0.0, dDomQty = 0.0;
String curDomCustCode = "", curDomItemCode = "", curDomLotNo = "", curDomSiteCode = "", curDomInvoiceId = "";
String domCustCode = "", domItemCode = "", domLotNo = "", domSiteCode = "", domQuantity = "", domInvoiceId = "";
NodeList detail1NList = null, detail2NList = null;
Node detail1Node = null;
//Added by Santosh on 16/05/2017
String curDomDocKey = "", domDocKey = "";
//Added by Santosh on 20/09/2017
String domLineNo = "", curDomLineNo = "";
try
{
curDomCustCode = curDomDataHMap.get("cust_code").trim();
curDomItemCode = curDomDataHMap.get("item_code").trim();
curDomLotNo = curDomDataHMap.get("lot_no").trim();
curDomSiteCode = curDomDataHMap.get("site_code").trim();
//Commented and changed by Santosh on 16/05/2017
//curDomInvoiceId = curDomDataHMap.get("invoice_id").trim();
curDomDocKey = curDomDataHMap.get("doc_key").trim();
//Added by Santosh on 20/09/2017 for bug fix split qty validatoin in edit mode
curDomLineNo = curDomDataHMap.get("line_no").trim();
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();
//Commented and changed by Santosh on 16/05/2017
//domInvoiceId = genericUtility.getColumnValueFromNode("invoice_id", eachDetail2Node).trim();
domDocKey = genericUtility.getColumnValueFromNode("doc_key", eachDetail2Node).trim();
//Added by Santosh on 20/09/2017 for bug fix split qty validatoin in edit mode
domLineNo = genericUtility.getColumnValueFromNode("line_no", eachDetail2Node).trim();
System.out.println("curDomDocKey["+curDomDocKey+"] domDocKey ["+domDocKey+"]");
System.out.println("curDomCustCode["+curDomCustCode+"] domCustCode ["+domCustCode+"]");
System.out.println("curDomItemCode["+curDomItemCode+"] domItemCode ["+domItemCode+"]");
System.out.println("curDomLotNo["+curDomLotNo+"] domLotNo ["+domLotNo+"]");
System.out.println("curDomSiteCode["+curDomSiteCode+"] domSiteCode ["+domSiteCode+"]");
System.out.println("curDomLineNo["+curDomLineNo+"] domLineNo ["+domLineNo+"]");
dDomQty = Double.parseDouble(domQuantity);
//Commented and changed by Santosh on 16/05/2017
//if( curDomInvoiceId.equalsIgnoreCase(domInvoiceId) &&
if( curDomDocKey.equalsIgnoreCase(domDocKey) &&
curDomCustCode.equalsIgnoreCase(domCustCode) &&
curDomItemCode.equalsIgnoreCase(domItemCode) &&
curDomLotNo.equalsIgnoreCase(domLotNo) &&
curDomSiteCode.equalsIgnoreCase(domSiteCode) &&
//Added by Santosh on 20/09/2017 for bug fix split qty validatoin in edit mode
!curDomLineNo.equalsIgnoreCase(domLineNo))
{
retDomQty += dDomQty;
}
}
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("SalesReturn.getDomQuantity()["+e.getMessage()+"]");
}
return retDomQty;
}
private String getError(double validQty, String Code, Connection conn) throws ITMException, Exception
{
String mainStr ="";
try
{
String errString = "";
errString = new ITMDBAccessEJB().getErrorString("",Code,"","",conn);
String begPart = errString.substring(0,errString.indexOf("</description>"));
String endDesc = errString.substring(errString.indexOf("</description>"),errString.length());
mainStr = begPart + " ["+validQty+"]. " + endDesc;
System.out.println("mainStr:::::::::::::::::: "+mainStr);
begPart = null;
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
return mainStr;
}
private String checkNullTrim(String input)
{
System.out.println("input Date : " +input);
if (input == null)
{
input="";
}
return input;
}
//added by Nandkumar Gadkari on 23/10/18-------------------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