Commit b428283a authored by ngadkari's avatar ngadkari

CHNAGES FOR NEW POINT BASE SCHEME

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@201538 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 7c429dcd
...@@ -231,14 +231,14 @@ public class GroupSchemeIC extends ValidatorEJB implements GroupSchemeICLocal,Gr ...@@ -231,14 +231,14 @@ public class GroupSchemeIC extends ValidatorEJB implements GroupSchemeICLocal,Gr
if(childNodeName.equalsIgnoreCase("purc_base")) if(childNodeName.equalsIgnoreCase("purc_base"))
{ {
schemeType=checkNull(this.genericUtility.getColumnValue("scheme_type", dom));
purchaseBaser = genericUtility.getColumnValue("purc_base", dom); purchaseBaser = genericUtility.getColumnValue("purc_base", dom);
if (purchaseBaser!=null ) if (purchaseBaser!=null )
{ {
purc_base= Double.parseDouble(purchaseBaser); purc_base= Double.parseDouble(purchaseBaser);
} }
if( purchaseBaser == null || purc_base <= 0) if( (purchaseBaser == null || purc_base <= 0) && !"3".equalsIgnoreCase(schemeType))
{ {
errCode = "UVGPSCHPB"; errCode = "UVGPSCHPB";
errList.add(errCode); errList.add(errCode);
...@@ -251,13 +251,14 @@ public class GroupSchemeIC extends ValidatorEJB implements GroupSchemeICLocal,Gr ...@@ -251,13 +251,14 @@ public class GroupSchemeIC extends ValidatorEJB implements GroupSchemeICLocal,Gr
if(childNodeName.equalsIgnoreCase("sch_allowence")) if(childNodeName.equalsIgnoreCase("sch_allowence"))
{ {
schemeType=checkNull(this.genericUtility.getColumnValue("scheme_type", dom));
schemeAllowence = genericUtility.getColumnValue("sch_allowence", dom); schemeAllowence = genericUtility.getColumnValue("sch_allowence", dom);
if (schemeAllowence !=null ) if (schemeAllowence !=null )
{ {
sch_allowence= Double.parseDouble(schemeAllowence); sch_allowence= Double.parseDouble(schemeAllowence);
} }
if( schemeAllowence == null || sch_allowence <= 0) if( (schemeAllowence == null || sch_allowence <= 0) && !"3".equalsIgnoreCase(schemeType))
{ {
errCode = "UVGPSCHSA"; errCode = "UVGPSCHSA";
errList.add(errCode); errList.add(errCode);
......
...@@ -195,7 +195,7 @@ public class PostOrdDespatchGen ...@@ -195,7 +195,7 @@ public class PostOrdDespatchGen
+ "SORDDET.CONV__RTUOM_STDUOM,SORDDET.UNIT__STD,SORDDET.QUANTITY__STDUOM,SORDDET.RATE__STDUOM,SORDDET.RATE__STD," + "SORDDET.CONV__RTUOM_STDUOM,SORDDET.UNIT__STD,SORDDET.QUANTITY__STDUOM,SORDDET.RATE__STDUOM,SORDDET.RATE__STD,"
+ "SORDDET.NO_ART,SORDDET.ITEM_CODE,SORDDET.ITEM_SER, SORDER.ORDER_TYPE,SORDDET.LINE_NO," + "SORDDET.NO_ART,SORDDET.ITEM_CODE,SORDDET.ITEM_SER, SORDER.ORDER_TYPE,SORDDET.LINE_NO,"
+ "SORDER.TRANS_MODE,SORDER.REMARKS,SORDER.EXCH_RATE, SORDER.EXCH_RATE__FRT,SORDER.CURR_CODE__FRT," + "SORDER.TRANS_MODE,SORDER.REMARKS,SORDER.EXCH_RATE, SORDER.EXCH_RATE__FRT,SORDER.CURR_CODE__FRT,"
+ "SORDER.EXCH_RATE__INS,SORDER.CURR_CODE__INS,SORDER.FRT_AMT,SORDER.INS_AMT " + "SORDER.EXCH_RATE__INS,SORDER.CURR_CODE__INS,SORDER.FRT_AMT,SORDER.INS_AMT,SORDDET.NATURE,SORDDET.ITEM_CODE__ORD "// NATURE AND ITEM_CODE ORD COLUMN ADDED BY NANDKUMAR 03/06/19
+ "FROM SORDER,SORDDET " + "FROM SORDER,SORDDET "
+ "WHERE ( SORDER . SALE_ORDER = SORDDET . SALE_ORDER ) " + "WHERE ( SORDER . SALE_ORDER = SORDDET . SALE_ORDER ) "
+ "and ( sorder.sale_order >= ? ) " + "and ( sorder.sale_order >= ? ) "
...@@ -267,7 +267,14 @@ public class PostOrdDespatchGen ...@@ -267,7 +267,14 @@ public class PostOrdDespatchGen
orderType = rs.getString("ORDER_TYPE"); orderType = rs.getString("ORDER_TYPE");
lineNo = rs.getString("LINE_NO"); lineNo = rs.getString("LINE_NO");
transMode = rs.getString("TRANS_MODE"); transMode = rs.getString("TRANS_MODE");
if("P".equalsIgnoreCase(rs.getString("NATURE")))
{
itemCode = rs.getString("ITEM_CODE__ORD");
}
else
{
itemCode = rs.getString("item_code"); itemCode = rs.getString("item_code");
}
remarks = rs.getString("remarks"); remarks = rs.getString("remarks");
exchrate = rs.getDouble("EXCH_RATE"); exchrate = rs.getDouble("EXCH_RATE");
currCodeFrt = rs.getString("CURR_CODE__FRT"); currCodeFrt = rs.getString("CURR_CODE__FRT");
......
...@@ -4698,8 +4698,11 @@ public class PostOrderActivity { ...@@ -4698,8 +4698,11 @@ public class PostOrderActivity {
ResultSet rs8=null,rs9=null; ResultSet rs8=null,rs9=null;
//double quentityschm =0,freeValue=0, rateschm=0 ,freequentity = 0 ,balValBfr = 0 ,balQtyBfr = 0 ,balQutAfr =0 ,balValAfr = 0 ,RembalVAl =0,RembalQty =0 ,balFreeVal = 0 ,balFreeQty=0; //double quentityschm =0,freeValue=0, rateschm=0 ,freequentity = 0 ,balValBfr = 0 ,balQtyBfr = 0 ,balQutAfr =0 ,balValAfr = 0 ,RembalVAl =0,RembalQty =0 ,balFreeVal = 0 ,balFreeQty=0;
String tranId = "" ,tranIdbal = "", invLineType = ""; // Added By PriyankaC on 7OCt2018. String tranId = "" ,tranIdbal = "", invLineType = ""; // Added By PriyankaC on 7OCt2018.
int update = 0 ,invLineNo= 0; // Added By PriyankaC on 7OCt2018. int update = 0 ,invLineNo= 0,cnt=0; // Added By PriyankaC on 7OCt2018.
String sordNoschm = "",lotNoschm = "" , priceListschm ="",itemCodeschm ="" ,rtlSchmRateBase="",mrpPriceList = "" , errString = ""; // Added By PriyankaC2018 String sordNoschm = "",lotNoschm = "" , priceListschm ="",itemCodeschm ="" ,rtlSchmRateBase="",mrpPriceList = "" , errString = ""; // Added By PriyankaC2018
String stateCodeDlv="",schemeCodePur="",schemeCodeOffer="",itemCodeOrd="",sordNoDet="";//added by nandkumar gadkari on 31/05/19
double offerPoints=0,totalpoints=0,freePoints=0,reqPoints=0,totalusedpoints=0,quantityStduom=0,balFreeValue=0;//added by nandkumar gadkari on 31/05/19
try try
{ {
GenericUtility genericUtility = GenericUtility.getInstance(); GenericUtility genericUtility = GenericUtility.getInstance();
...@@ -4982,6 +4985,331 @@ public class PostOrderActivity { ...@@ -4982,6 +4985,331 @@ public class PostOrderActivity {
rs=null; rs=null;
pstmt.close(); pstmt.close();
pstmt=null; pstmt=null;
//added by nandkumar gadkari on 31/05/19---------------for point base scheme -------------Start-----------
sql = " Insert into FREE_BALANCE_TRACE (tran_id, bal_qty_before, bal_qty_after ,val_bal_before ,val_bal_after ,sale_order , invoice_id , tran_id__bal ,cust_code , line_no__sord ,item_code , used_qty, used_amount, scheme_code,line_no_invoicetrace) "
+" values (?, ?, ?, ?,?,?, ?,?,?,?,?, ?,?,?,?)" ;
pstmt90 = conn.prepareStatement(sql);
sql=" select sord_line_no, sord_no, item_code, quantity__stduom, line_type,inv_line_no from invoice_trace where invoice_id =? "
+ " order by INV_LINE_NO ";
pstmt8=conn.prepareStatement(sql);
pstmt8.setString(1,invoiceId);
rs8=pstmt8.executeQuery();
while(rs8.next())
{
itemCodeOrd=checkNullAndTrim(rs8.getString("item_code"));
sordNoDet=checkNullAndTrim(rs8.getString("sord_no"));
soLineNo=checkNull(rs8.getString("sord_line_no"));
quantityStduom=rs8.getDouble("quantity__stduom");
nature=checkNull(rs8.getString("line_type"));
sql = "select order_date,state_code__dlv,count_code__dlv,site_code from sorder where sale_order = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sordNoDet);
rs = pstmt.executeQuery();
if(rs.next())
{
orderDate = rs.getTimestamp(1);
stateCodeDlv = rs.getString(2);
countCodeDlv = rs.getString(3);
siteCode = rs.getString(4);
}
pstmt.close();
pstmt = null;
rs.close();
rs = null;
cnt= 0;
sql = "select a.scheme_code from scheme_applicability a,scheme_applicability_det b "
+ " where a.scheme_code= b.scheme_code and a.app_from <= ? and a.valid_upto>= ? "
+ " and (b.site_code= ? or b.state_code = ? or b.count_code= ?) and PROD_SCH = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setTimestamp(1, orderDate);
pstmt1.setTimestamp(2, orderDate);
pstmt1.setString(3, siteCode);
pstmt1.setString(4, stateCodeDlv);
pstmt1.setString(5, countCodeDlv);
pstmt1.setString(6, "Y");
rs1 = pstmt1.executeQuery();
while (rs1.next()) {
schemeCode = rs1.getString("scheme_code");
if(schemeCode !=null && schemeCode.trim().length() > 0)
{
if("C".equalsIgnoreCase(nature) )
{
sql = "select count (*) as cnt from SCH_PUR_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, itemCodeOrd);
rs = pstmt.executeQuery();
if (rs.next())
{
cnt = rs.getInt("cnt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(cnt==0)
{
continue;
}
}
if("P".equalsIgnoreCase(nature) )
{
sql = "select count (*) as cnt from SCH_OFFER_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, itemCodeOrd);
rs = pstmt.executeQuery();
if (rs.next())
{
cnt = rs.getInt("cnt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(cnt==0)
{
continue;
}
}
}
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1= null;
if(cnt > 0)
{
if("C".equalsIgnoreCase(nature) )
{
sql = "select offer_points from SCH_PUR_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, itemCodeOrd);
rs = pstmt.executeQuery();
if (rs.next())
{
offerPoints = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
schemeCodePur=schemeCode;
totalpoints =totalpoints + (quantityStduom * offerPoints);
tranId = generateTranId("t_free_balance_trace",siteCode,conn);
System.out.println("tranId :" +tranId);
pstmt90.setString(1,tranId);
pstmt90.setDouble(2,0);
pstmt90.setDouble(3,0);
pstmt90.setDouble(4,(quantityStduom * offerPoints));
pstmt90.setDouble(5,totalpoints);
pstmt90.setString(6,sordNoDet);
pstmt90.setString(7,invoiceId);
pstmt90.setString(8,"");
pstmt90.setString(9,custCode);
pstmt90.setString(10,soLineNo);
pstmt90.setString(11,itemCodeOrd);
pstmt90.setDouble(12,quantityStduom);
pstmt90.setDouble(13,offerPoints);
pstmt90.setString(14,schemeCode);
pstmt90.setInt(15,invLineNo);
update = pstmt90.executeUpdate();
pstmt90.clearParameters();
}
if("P".equalsIgnoreCase(nature) )
{
sql = "select required_points from SCH_OFFER_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, itemCodeOrd);
rs = pstmt.executeQuery();
if (rs.next())
{
reqPoints = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
schemeCodeOffer=schemeCode;
totalusedpoints =totalusedpoints + integralPartQty(quantityStduom * reqPoints);
tranId = generateTranId("t_free_balance_trace",siteCode,conn);
System.out.println("tranId :" +tranId);
pstmt90.setString(1,tranId);
pstmt90.setDouble(2,0);
pstmt90.setDouble(3,0);
pstmt90.setDouble(4, integralPartQty(quantityStduom * reqPoints));
pstmt90.setDouble(5,totalusedpoints);
pstmt90.setString(6,sordNoDet);
pstmt90.setString(7,invoiceId);
pstmt90.setString(8,"");
pstmt90.setString(9,custCode);
pstmt90.setString(10,soLineNo);
pstmt90.setString(11,itemCodeOrd);
pstmt90.setDouble(12,quantityStduom);
pstmt90.setDouble(13,reqPoints);
pstmt90.setString(14,schemeCode);
pstmt90.setInt(15,invLineNo);
update = pstmt90.executeUpdate();
pstmt90.clearParameters();
}
}
}
if (rs8 != null)
{
rs8.close();
//rs9=null;
rs8=null; //[nulled rs8 by Pavan R]
}
if (pstmt8 != null) {
pstmt8.close();
pstmt8=null; //[nulled rs8 by Pavan R]
}
if (pstmt90 != null)
{
pstmt90.close();
pstmt90=null;
}
if(totalpoints > 0)
{
sql = "SELECT count (*) as cnt FROM SCHEME_BALANCE WHERE CUST_CODE = ? AND ITEM_CODE= ? and ? >= EFF_FROM and ? <= VALID_UPTO ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
pstmt.setString(2, "X");
pstmt.setTimestamp(3, orderDate);
pstmt.setTimestamp(4, orderDate);
rs = pstmt.executeQuery();
if (rs.next())
{
cnt = rs.getInt("cnt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(cnt==0)
{
sql = "select APP_FROM,VALID_UPTO from scheme_applicability WHERE SCHEME_CODE= ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
rs = pstmt.executeQuery();
if (rs.next())
{
effFrom = rs.getTimestamp(1);
validUpto = rs.getTimestamp(2);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
String transId = generateTranId("w_schema_balance",siteCode,conn);
StringBuilder schemebalsb = new StringBuilder();
schemebalsb.append("INSERT INTO SCHEME_BALANCE(TRAN_ID,SCHEME_CODE,CUST_CODE,ITEM_CODE,EFF_FROM,VALID_UPTO,BALANCE_FREE_QTY,");
schemebalsb.append("BALANCE_FREE_VALUE,USED_FREE_QTY,USED_FREE_VALUE,CHG_USER,CHG_DATE,CHG_TERM,ENTRY_SOURCE, SITE_CODE)");
schemebalsb.append("VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
pstmt90 = conn.prepareStatement(schemebalsb.toString());
pstmt90.setString(1, transId);
pstmt90.setString(2, schemeCode);
pstmt90.setString(3, custCode);
pstmt90.setString(4, "X");
pstmt90.setTimestamp(5, effFrom);
pstmt90.setTimestamp(6, validUpto);
pstmt90.setDouble(7, 0);
pstmt90.setDouble(8, 0);
pstmt90.setDouble(9, 0);
pstmt90.setDouble(10,0);
pstmt90.setString(11, chgUser);
pstmt90.setTimestamp(12, sysdate);
pstmt90.setString(13, chgTerm);
pstmt90.setString(14, "A");
pstmt90.setString(15,siteCode);
count = pstmt90.executeUpdate();
if(pstmt90!=null)
{
pstmt90.close();
pstmt90 = null;
}
}
sql="UPDATE SCHEME_BALANCE SET BALANCE_FREE_VALUE = BALANCE_FREE_VALUE + ? WHERE CUST_CODE = ? AND ITEM_CODE= ?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setDouble(1, totalpoints);
pstmt1.setString(2, custCode);
pstmt1.setString(3, "X");
pstmt1.executeUpdate();
if (pstmt1 != null){
pstmt1.close();
pstmt1=null;
}
}
if(totalusedpoints > 0)
{
sql = "select balance_free_value-used_free_value from scheme_balance where cust_code = ? "
+ " and Item_code = ? and ? >= EFF_FROM and ? <= VALID_UPTO for update nowait ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
pstmt.setString(2, "X");
pstmt.setTimestamp(3, orderDate);
pstmt.setTimestamp(4, orderDate);
rs = pstmt.executeQuery();
if (rs.next())
{
balFreeValue = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(totalusedpoints > balFreeValue )
{
retString = itmDBAccessEJB.getErrorString("","VTFREEPOIN","","",conn);
}
else {
sql="UPDATE SCHEME_BALANCE SET USED_FREE_VALUE = USED_FREE_VALUE + ? WHERE CUST_CODE = ? AND ITEM_CODE= ?";
pstmt1=conn.prepareStatement(sql);
pstmt1.setDouble(1, totalusedpoints);
pstmt1.setString(2, custCode);
pstmt1.setString(3, "X");
pstmt1.executeUpdate();
if (pstmt1 != null){
pstmt1.close();
pstmt1=null;
}
}
}
//added by nandkumar gadkari on 31/05/19---------------for point base scheme -------------end-----------
}catch(Exception e) }catch(Exception e)
{ {
...@@ -5038,5 +5366,11 @@ public class PostOrderActivity { ...@@ -5038,5 +5366,11 @@ public class PostOrderActivity {
} }
return retString; return retString;
} }
private double integralPartQty(double value) {
double fractionalPart = value % 1;
double integralPart = value - fractionalPart;
System.out.println(integralPart +" integralPart "+ fractionalPart);
return integralPart;
}
// Added By PriyankaC update scheme_balance as per the nature [END]. // Added By PriyankaC update scheme_balance as per the nature [END].
} }
...@@ -83,7 +83,12 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -83,7 +83,12 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
errorString=""; errorString="";
} }
if("P".equalsIgnoreCase(freeBalOrd) && freeBalValue == 0)
{
System.out.println("in PointBaseschemeFreeQtyAdd postSave ----");
errorString= pointBaseScheme(dom,tranId,xtraParams,conn);
errorString="";
}
//added by nandkumar gadkari on 11/02/19------------------------end-------------------------------- //added by nandkumar gadkari on 11/02/19------------------------end--------------------------------
System.out.println("sale_order--->>["+tranId+"]"); System.out.println("sale_order--->>["+tranId+"]");
sql="select quantity__stduom,rate__stduom,discount,tax_amt,line_no,ord_value," sql="select quantity__stduom,rate__stduom,discount,tax_amt,line_no,ord_value,"
...@@ -136,7 +141,7 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -136,7 +141,7 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
totOrdValueH=totOrdValueH + ordValue; totOrdValueH=totOrdValueH + ordValue;
//condition added by nandkuar gadkari on 11/02/19------------start------------- //condition added by nandkuar gadkari on 11/02/19------------start-------------
if("I".equalsIgnoreCase(nature) || "V".equalsIgnoreCase(nature)) if("I".equalsIgnoreCase(nature) || "V".equalsIgnoreCase(nature) || "P".equalsIgnoreCase(nature))// P TYPE ADDED BY NANDKUMAR GADKARI
{ {
totFreeBalValue= totFreeBalValue + ordValue; totFreeBalValue= totFreeBalValue + ordValue;
} }
...@@ -723,6 +728,584 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -723,6 +728,584 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
} }
return errorString; return errorString;
} }
//added by nandkumar gadkari on 29/05/19-------------------start--------------------
private String pointBaseScheme(Document dom,String tranId,String xtraParams,Connection conn) throws ITMException
{
ResultSet rs=null,rs1=null,rs2=null;
PreparedStatement pstmt=null,pstmt1=null,pstmt2=null,pStmt=null;
String sql="",sql1="",errorString="";
double quantityStduom = 0,rateStduom=0,discount=0,taxAmt=0,netAmt=0,taxAmtH=0,totAmtH=0,ordValue=0;
int count=0,lineNo=0;
String freeBalOrd="",freeBalOrdPerStr="",itemCodeOrd="",custCode="",siteCode="",priceList="",lsListType="",unit="",lsRefNo="",orderDateStr="";//added by nandkumar gadkari on 06/02/19
double freeBalOrdPer=0.0,freeBalValue=0.0,schemeBalFreeQty=0.0,unConfTotFreeQty=0.0,freeValue=0.0,freeQtyToadd=0.0,convRtuomStduom=0.0,convQtyStduom=0.0,rateClg=0.0;//added by nandkumar gadkari on 06/02/19
Timestamp orderDate=null,currDate = null,validUpto=null,appFrom=null;
int llPlcount=0,minShelfLife=0,lineNos=0,cnt=0,updatedCount=0,schCnt=0;
String itemFlag="",lineNoSord="",chgUser="",chgTerm="",taxChap="",taxEnv="",taxClass="",unitRate="",itemDesc="",status="",unitStd="",packCode="",itemCode="";
String itemSer="",itemSerProm="",locType="",holdflag="",nature="",unitSal="",mType="";
String schemeCode="",countCodeDlv="",stateCodeDlv="";
double offerPoints=0,totalpoints=0,freePoints=0,reqPoints=0,availQty=0,unConfFreeQty=0,unconfreqPoints=0,unConfTotFreePoints=0,quantity=0;
boolean schemeUsedInDetail=false;
try {
chgUser = (genericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginCode"));
chgTerm = (genericUtility.getValueFromXTRA_PARAMS(xtraParams,"termId"));
currDate = getCurrtDate();
SimpleDateFormat sdfAppl = new SimpleDateFormat(genericUtility.getApplDateFormat());
String currDateStr = sdfAppl.format(currDate);
currDate = getCurrtDate();
custCode = genericUtility.getColumnValue("cust_code",dom);
orderDate = Timestamp.valueOf(
genericUtility.getValidDateString(genericUtility.getColumnValue("order_date", dom),
genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat())
+ " 00:00:00.0");
orderDateStr = genericUtility.getColumnValue("order_date", dom);
siteCode = (genericUtility.getColumnValue("site_code", dom));
countCodeDlv = (genericUtility.getColumnValue("count_code__dlv", dom));
stateCodeDlv = (genericUtility.getColumnValue("state_code__dlv", dom));
priceList = (genericUtility.getColumnValue("price_list", dom));
lsListType = distCommon.getPriceListType(priceList, conn);
sql="select item_code__ord,ord_value,unit,quantity__stduom,ITEM_FLG,TAX_CLASS,TAX_CHAP,TAX_ENV,STATUS,ITEM_DESCR,UNIT__RATE,"
+ "CONV__QTY_STDUOM,CONV__RTUOM_STDUOM,UNIT__STD,PACK_CODE,ITEM_CODE,MIN_SHELF_LIFE,ITEM_SER,RATE__CLG,ITEM_SER__PROM,LOC_TYPE,HOLD_FLAG,"
+ "NATURE "
+ "from sorddet where sale_order = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs=pstmt.executeQuery();
while(rs.next())
{
schemeBalFreeQty=0.0;
itemCodeOrd=rs.getString(1);
ordValue=rs.getDouble(2);
quantityStduom=rs.getDouble(4);
itemFlag=rs.getString(5);
taxChap=rs.getString("TAX_CHAP");
taxEnv=rs.getString("TAX_ENV");
taxClass=rs.getString("TAX_CLASS");
status=rs.getString("STATUS");
convQtyStduom=rs.getDouble("CONV__QTY_STDUOM");
convRtuomStduom=rs.getDouble("CONV__RTUOM_STDUOM");
minShelfLife=rs.getInt("MIN_SHELF_LIFE");
rateClg=rs.getDouble("RATE__CLG");
holdflag=rs.getString("HOLD_FLAG");
nature=rs.getString("NATURE");
System.out.println("itemCodeOrd-->["+itemCodeOrd+"]");
if("P".equalsIgnoreCase(nature) )
{
schemeUsedInDetail=true;
}
if("C".equalsIgnoreCase(nature) )
{
cnt= 0;
sql = "select a.scheme_code from scheme_applicability a,scheme_applicability_det b "
+ " where a.scheme_code= b.scheme_code and a.app_from <= ? and a.valid_upto>= ? "
+ " and (b.site_code= ? or b.state_code = ? or b.count_code= ?) and PROD_SCH = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setTimestamp(1, orderDate);
pstmt1.setTimestamp(2, orderDate);
pstmt1.setString(3, siteCode);
pstmt1.setString(4, stateCodeDlv);
pstmt1.setString(5, countCodeDlv);
pstmt1.setString(6, "Y");
rs1 = pstmt1.executeQuery();
while (rs1.next()) {
schemeCode = rs1.getString("scheme_code");
if(schemeCode !=null && schemeCode.trim().length() > 0)
{
sql = "select count (*) as cnt from SCH_PUR_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt2 = conn.prepareStatement(sql);
pstmt2.setString(1, schemeCode);
pstmt2.setString(2, itemCodeOrd);
rs2 = pstmt2.executeQuery();
if (rs2.next())
{
cnt = rs2.getInt("cnt");
}
rs2.close();
rs2 = null;
pstmt2.close();
pstmt2 = null;
if(cnt==0)
{
continue;
}
else {
schCnt++;
}
}
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1= null;
}
}
if (rs !=null)
{
rs.close();
rs=null;
}
if (pstmt != null)
{
pstmt.close();
pstmt=null;
}
if(!schemeUsedInDetail)
{
if(schemeCode !=null && schemeCode.trim().length() > 0 && schCnt > 0)
{
sql = " SELECT BALANCE_FREE_VALUE - USED_FREE_VALUE FROM SCHEME_BALANCE WHERE BALANCE_FREE_VALUE - USED_FREE_VALUE > 0 "
+ " AND CUST_CODE = ? AND ITEM_CODE= ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,custCode);
pstmt.setString(2,"X");
rs = pstmt.executeQuery();
if (rs.next())
{
freePoints = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(freePoints > 0)
{
sql = " select b.item_code__ord ,b.quantity " +
" from sorder a,sorddet b where a.sale_order = b.sale_order and a.site_code = ? "
+ " and a.cust_code = ? and a.order_date between ? and ?"
+ " and (case when a.confirmed is null then 'N' else a.confirmed end )= 'N' and b.nature in ('P')";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, siteCode);
pstmt1.setString(2, custCode);
pstmt1.setTimestamp(3, orderDate);
pstmt1.setTimestamp(4, orderDate);
rs1 = pstmt1.executeQuery();
while (rs1.next()) {
itemCodeOrd=rs1.getString(1);
unConfFreeQty = rs1.getDouble(2);
System.out.println("unConfFreeQty" + unConfFreeQty);
sql = "select count (*) as cnt from SCH_OFFER_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, itemCodeOrd);
rs = pstmt.executeQuery();
if (rs.next())
{
cnt = rs.getInt("cnt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(cnt > 0)
{
sql = "select required_points from SCH_OFFER_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, itemCodeOrd);
rs = pstmt.executeQuery();
if (rs.next())
{
unconfreqPoints = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
unConfTotFreePoints = unConfTotFreePoints + integralPartQty(unConfFreeQty * unconfreqPoints);
}
}
pstmt1.close();
rs1.close();
pstmt1 = null;
rs1 = null;
freePoints= freePoints - unConfTotFreePoints;
sql = "select item_code, required_points from SCH_OFFER_ITEMS where SCHEME_CODE =? ";
pstmt2 = conn.prepareStatement(sql);
pstmt2.setString(1, schemeCode);
rs2 = pstmt2.executeQuery();
while (rs2.next())
{
if(freePoints > 0)
{
itemCodeOrd = rs2.getString(1);
reqPoints = rs2.getDouble(2);
sql="SELECT SUM(a.QUANTITY - a.ALLOC_QTY - CASE WHEN a.HOLD_QTY IS NULL THEN 0 ELSE a.HOLD_QTY END ) AVAIL_QTY "
+" FROM STOCK A, "
+"LOCATION B, "
+"INVSTAT C "
+"WHERE A.LOC_CODE = B.LOC_CODE "
+"AND B.INV_STAT = C.INV_STAT "
+"AND A.ITEM_CODE = ? "
+"AND A.SITE_CODE = ? "
+"AND C.AVAILABLE = 'Y' "
+"AND C.STAT_TYPE = 'M' ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, itemCodeOrd);
pstmt.setString(2, siteCode);
rs = pstmt.executeQuery();
if (rs.next())
{
availQty = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(availQty <= 0)
{
continue;
}
quantity=integralPartQty(freePoints/reqPoints);
if(quantity <= 0)
{
continue;
}
sql="select descr , loc_type ,pack_code,unit,unit__rate,unit__sal,item_stru from item where item_code =?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, itemCodeOrd);
rs=pstmt.executeQuery();
if(rs.next())
{
itemDesc = rs.getString("descr");
locType = rs.getString("loc_type");
packCode = rs.getString("pack_code");
unit = rs.getString("unit");
unitRate = rs.getString("unit__rate");
unitSal = rs.getString("unit__sal");
mType = rs.getString("item_stru");
}
if (rs !=null)
{
rs.close();
rs=null;
}
if (pstmt != null)
{
pstmt.close();
pstmt=null;
}
if (unitSal == null || unitSal.trim().length() == 0) {
unitSal = unit;
}
sql = "select count(1) as llPlcount from pricelist where price_list=?"
+ " and item_code= ? and unit= ? and list_type=? and eff_from<=? and valid_upto >=? and min_qty<=? and max_qty>= ?"
+ " and (ref_no is not null)";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, priceList);
pstmt1.setString(2, itemCodeOrd);
pstmt1.setString(3, unitSal);
pstmt1.setString(4, lsListType);
pstmt1.setTimestamp(5, orderDate);
pstmt1.setTimestamp(6, orderDate);
pstmt1.setDouble(7, quantityStduom);
pstmt1.setDouble(8, quantityStduom);
rs1 = pstmt1.executeQuery();
if (rs1.next()) {
llPlcount = rs1.getInt("llPlcount");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
if (llPlcount >= 1) {
sql = "select max(ref_no)from pricelist where price_list =? and item_code= ? and unit=? and list_type= ?"
+ " and eff_from<=? and valid_upto>=? and min_qty<=? and max_qty>=? and (ref_no is not null)";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, priceList);
pstmt1.setString(2, itemCodeOrd);
pstmt1.setString(3, unitSal);
pstmt1.setString(4, lsListType);
pstmt1.setTimestamp(5, orderDate);
pstmt1.setTimestamp(6, orderDate);
pstmt1.setDouble(7, quantityStduom);
pstmt1.setDouble(8, quantityStduom);
rs1 = pstmt1.executeQuery();
if (rs1.next()) {
lsRefNo = rs1.getString(1);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
rateStduom = distCommon.pickRateRefnoWise(priceList, orderDateStr, itemCodeOrd, lsRefNo, lsListType, quantityStduom,
conn);
}
if (rateStduom <= 0) {
rateStduom = distCommon.pickRate(priceList, orderDateStr, itemCodeOrd, "", "L", quantityStduom, conn);
}
System.out.println("freePoints " + freePoints);
System.out.println("quantity" + quantity);
System.out.println("rateStduom " + rateStduom);
sql="select trim(max(cast(line_no as number))) from sorddet where sale_order = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs=pstmt.executeQuery();
if(rs.next())
{
lineNos=rs.getInt(1);
}
if (rs !=null)
{
rs.close();
rs=null;
}
if (pstmt != null)
{
pstmt.close();
pstmt=null;
}
lineNos ++;
lineNoSord= Integer.toString(lineNos);
if ("F".equalsIgnoreCase(mType)) {
itemFlag="B";
} else {
itemFlag="I";
}
itemSer = distCommon.getItemSer(itemCodeOrd, siteCode, orderDate, custCode, "C", conn);
itemSerProm = distCommon.getItemSer(itemCodeOrd, siteCode, orderDate, custCode, "O",
conn);
sql = "select count(*) as cnt from customer_series where cust_code = ? and item_ser =?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
pstmt.setString(2, itemSerProm);
rs = pstmt.executeQuery();
if (rs.next()) {
cnt = rs.getInt("cnt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("cnt=========[" + cnt + "]");
if (cnt == 0) {
sql = "select item_ser from item_credit_perc where item_code = ?"
+ " and item_ser in ( select item_ser from customer_series where cust_code = ?"
+ " and item_ser = item_credit_perc.item_ser)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, itemCodeOrd);
pstmt.setString(2, custCode);
rs = pstmt.executeQuery();
if (rs.next()) {
itemSerProm = rs.getString("item_ser");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if (itemSerProm != null && itemSerProm.trim().length() > 0) {
sql = "select item_ser__inv from customer_series where cust_code = ? and item_ser =?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
pstmt.setString(2, itemSerProm);
rs = pstmt.executeQuery();
if (rs.next()) {
itemSer = rs.getString("item_ser__inv");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
}
sql="insert into SORDDET (SALE_ORDER,LINE_NO,SITE_CODE,ITEM_FLG,QUANTITY,UNIT,DSP_DATE,RATE,DISCOUNT,TAX_AMT,TAX_CLASS,"//11
+ "TAX_CHAP,TAX_ENV,NET_AMT,STATUS,CHG_DATE,CHG_USER,CHG_TERM,ITEM_DESCR,UNIT__RATE,CONV__QTY_STDUOM,"//21
+ "CONV__RTUOM_STDUOM,UNIT__STD,QUANTITY__STDUOM,RATE__STDUOM,NO_ART,PACK_CODE,ITEM_CODE,MIN_SHELF_LIFE,ITEM_SER,"//30
+ "RATE__CLG,ORD_VALUE,ITEM_SER__PROM,"//33
+ "ITEM_CODE__ORD,OVER_SHIP_PERC,COMM_PERC_1,COMM_PERC_2,COMM_PERC_3,"//38
+ "SALES_PERS_COMM_1,SALES_PERS_COMM_2,SALES_PERS_COMM_3,RATE__STD,"//42
+ "LOC_TYPE,QUANTITY__FC,NATURE,"//45
+ "BILLBACK_AMT,OFFINV_AMT,HOLD_FLAG,NET_TOT_AMT,SCH_ATTR) " //50
+ "values(?,?,?,?,?,?,?,?,?,?,"
+ "?,?,?,?,?,?,?,?,?,?,"
+"?,?,?,?,?,?,?,?,?,?,"
+"?,?,?,?,?,?,?,?,?,?,"
+"?,?,?,?,?,?,?,?,?,?)"; //50
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, tranId);
lineNoSord = " " + lineNoSord;
lineNoSord = lineNoSord.substring(lineNoSord.length()-3);
pstmt1.setString(2, lineNoSord);
pstmt1.setString(3, siteCode);
pstmt1.setString(4, itemFlag);
//pstmt1.setDouble(5, schemeBalFreeQty);
pstmt1.setString(6, unitSal);
pstmt1.setTimestamp(7, currDate); //dsp_date
pstmt1.setDouble(8, 0);
pstmt1.setDouble(9, 0);
pstmt1.setDouble(10, 0);
pstmt1.setString(11, taxClass);
pstmt1.setString(12, taxChap);
pstmt1.setString(13, taxEnv);
pstmt1.setDouble(14, 0);
pstmt1.setString(15, status);
pstmt1.setTimestamp(16, currDate); //chgDate
pstmt1.setString(17, chgUser);
pstmt1.setString(18, chgTerm);
pstmt1.setString(19, itemDesc);
pstmt1.setString(20, unitRate);
pstmt1.setDouble(21, convQtyStduom);
pstmt1.setDouble(22, convRtuomStduom);
pstmt1.setString(23, unit);
//pstmt1.setDouble(24, schemeBalFreeQty);
pstmt1.setDouble(25, 0);
pstmt1.setDouble(26,0);//NO_ART
pstmt1.setString(27,packCode);
pstmt1.setString(28,schemeCode);//
pstmt1.setInt(29,minShelfLife);//
pstmt1.setString(30,itemSer);//
pstmt1.setDouble(31,rateClg);//
// ordValue=schemeBalFreeQty * rateStduom;
// System.out.println("ordValue--->>"+ordValue +" ("+schemeBalFreeQty +" * "+rateStduom+")");
// pstmt1.setDouble(32,ordValue);//ord_value
pstmt1.setString(33,itemSerProm);
pstmt1.setString(34,itemCodeOrd);
pstmt1.setDouble(35,0);
pstmt1.setDouble(36,0);//
pstmt1.setDouble(37,0);
pstmt1.setDouble(38,0);
pstmt1.setDouble(39,0);
pstmt1.setDouble(40,0);
pstmt1.setDouble(41,0);
pstmt1.setDouble(42,0);//RATE__STD
pstmt1.setString(43,locType);
// pstmt1.setDouble(44,schemeBalFreeQty);
pstmt1.setString(45,"P");
pstmt1.setDouble(46,0);
pstmt1.setDouble(47,0);
pstmt1.setString(48,holdflag);
pstmt1.setDouble(49,0);
pstmt1.setString(50,"N");
if(quantity < availQty)
{
pstmt1.setDouble(5, quantity);
pstmt1.setDouble(24, quantity);
ordValue=quantity * rateStduom;
System.out.println("ordValue--->>"+ordValue +" ("+quantity +" * "+rateStduom+")");
pstmt1.setDouble(32,ordValue);//ord_value
pstmt1.setDouble(44,quantity);
}
else
{
pstmt1.setDouble(5, availQty);
pstmt1.setDouble(24, availQty);
ordValue=availQty * rateStduom;
System.out.println("ordValue--->>"+ordValue +" ("+availQty +" * "+rateStduom+")");
pstmt1.setDouble(32,ordValue);//ord_value
pstmt1.setDouble(44,availQty);
}
int rows=pstmt1.executeUpdate();
System.out.println("rows in detail ----["+rows+"]");
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
if(rows > 0)
{
errorString="Success";
if(quantity < availQty)
{
freePoints=freePoints - (quantity * reqPoints);
}
else
{
freePoints=freePoints - (availQty * reqPoints);
}
}
}
}
rs2.close();
rs2 = null;
pstmt2.close();
pstmt2 = null;
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
throw new ITMException(ex);
} finally {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
} catch (Exception e) {
e.printStackTrace();
throw new ITMException(e);
}
}
return errorString;
}
private java.sql.Timestamp getCurrtDate() throws RemoteException,ITMException private java.sql.Timestamp getCurrtDate() throws RemoteException,ITMException
{ {
String currAppdate = ""; String currAppdate = "";
......
...@@ -3059,6 +3059,278 @@ public class SalesOrderIC extends ValidatorEJB implements SalesOrderICLocal, Sal ...@@ -3059,6 +3059,278 @@ public class SalesOrderIC extends ValidatorEJB implements SalesOrderICLocal, Sal
} }
//added by nandkumar gadkari on 28/05/19-----------------------start------------------------------
if ("P".equalsIgnoreCase(nature.trim()))
{
int cnt1=0;
double reqPoints=0,freePoints=0,unconfreqPoints=0,unConfFreeQty=0,unConfTotFreePoints=0,prvFreePoints=0,currentPoints=0;
stateCodeDlv = checkNull(genericUtility.getColumnValue("state_code__dlv", dom1));
countCodeDlv = checkNull(genericUtility.getColumnValue("count_code__dlv", dom1));
if (itemCodeOrd.trim().length() > 0) {
if (orderType == null) {
orderType = "";
}
if (siteCode == null) {
siteCode = "";
}
if (stateCodeDlv == null) {
stateCodeDlv = "";
}
if (countCodeDlv == null) {
countCodeDlv = "";
}
sql = "select a.scheme_code from scheme_applicability a,scheme_applicability_det b where a.scheme_code= b.scheme_code and a.app_from <= ? and a.valid_upto>= ? and (b.site_code= ? or b.state_code = ? or b.count_code= ?) and PROD_SCH = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setTimestamp(1, orderDate);
pstmt1.setTimestamp(2, orderDate);
pstmt1.setString(3, siteCode);
pstmt1.setString(4, stateCodeDlv);
pstmt1.setString(5, countCodeDlv);
pstmt1.setString(6, "Y");
rs1 = pstmt1.executeQuery();
while (rs1.next()) {
schemeCode = rs1.getString("scheme_code");
if(schemeCode !=null && schemeCode.trim().length() > 0)
{
sql = "select count (*) as cnt from SCH_OFFER_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, itemCodeOrd);
rs = pstmt.executeQuery();
if (rs.next())
{
cnt = rs.getInt("cnt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(cnt==0)
{
continue;
}
if (cnt > 1 )
{
errCode = "VTITEM10";
errList.add(errCode);
errFields.add(checkNull(" ".toLowerCase()));
}
}
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1= null;
if (cnt == 0) {
errCode = "VTINFEEQTY";// Scheme is not applicable for the
errList.add(errCode);
System.out.println("errList" + errList + "]");
errFields.add(checkNull(" ".toLowerCase()));
System.out.println("invalid free quantity for this item code ");
}
sql = "select required_points from SCH_OFFER_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, itemCodeOrd);
rs = pstmt.executeQuery();
if (rs.next())
{
reqPoints = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(reqPoints > 0)
{
currentPoints = qty * reqPoints;
}
sql = " SELECT BALANCE_FREE_VALUE - USED_FREE_VALUE FROM SCHEME_BALANCE WHERE BALANCE_FREE_VALUE - USED_FREE_VALUE > 0 "
+ " AND CUST_CODE = ? AND ITEM_CODE= ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,custCode);
pstmt.setString(2,"X");
rs = pstmt.executeQuery();
if (rs.next())
{
freePoints = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(freePoints > 0)
{
sql = " select b.item_code__ord ,b.quantity " +
" from sorder a,sorddet b where a.sale_order = b.sale_order and a.site_code = ? "
+ " and a.cust_code = ? and a.sale_order <> ? and a.order_date between ? and ?"
+ " and (case when a.confirmed is null then 'N' else a.confirmed end )= 'N' and b.nature in ('P')";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, siteCode);
pstmt1.setString(2, custCode);
pstmt1.setString(3, saleOrder);
pstmt1.setTimestamp(4, orderDate);
pstmt1.setTimestamp(5, orderDate);
rs1 = pstmt1.executeQuery();
while (rs1.next()) {
itemCode=rs1.getString(1);
unConfFreeQty = rs1.getDouble(2);
System.out.println("unConfFreeQty" + unConfFreeQty);
sql = "select count (*) as cnt from SCH_OFFER_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, itemCode);
rs = pstmt.executeQuery();
if (rs.next())
{
cnt = rs.getInt("cnt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(cnt > 0)
{
sql = "select required_points from SCH_OFFER_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, itemCode);
rs = pstmt.executeQuery();
if (rs.next())
{
unconfreqPoints = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
unConfTotFreePoints = unConfTotFreePoints + unConfFreeQty * unconfreqPoints;
}
}
pstmt1.close();
rs1.close();
pstmt1 = null;
rs1 = null;
System.out.println("unConfTotFreePoints" + unConfTotFreePoints+ "]");
//---------------------------
Node currDetail1 = null;
prvFreeQty = 0;
int count = 0;
currLineNo = checkNull(genericUtility.getColumnValue("line_no", dom));
NodeList detailList1 = dom2.getElementsByTagName("Detail2");
int noOfDetails = detailList1.getLength();
for (int ctr1 = 0; ctr1 < noOfDetails; ctr1++) {
currDetail1 = detailList1.item(ctr1);
lineNo = checkNullandTrim(genericUtility.getColumnValueFromNode("line_no", currDetail1));
nature = checkNull(genericUtility.getColumnValueFromNode("nature", currDetail1));
browItemCode = checkNull(genericUtility.getColumnValueFromNode("item_code__ord", currDetail1));
quantity = checkDoubleNull(genericUtility.getColumnValueFromNode("quantity", currDetail1));
System.out.println("rate1: ====" + rate1 + "]lineNo" + lineNo + "quantity"+quantity);
System.out.println("currLineNo: ====" + currLineNo + "]lineNo" + lineNo + "");
if (!currLineNo.trim().equalsIgnoreCase(lineNo.trim())) {
System.out.println("Insideif00000forSCHEME_BALANCE ");
if (nature.equals("P")) {
sql = "select count (*) as cnt from SCH_OFFER_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, browItemCode);
rs = pstmt.executeQuery();
if (rs.next())
{
cnt = rs.getInt("cnt");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(cnt > 0)
{
sql = "select required_points from SCH_OFFER_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, schemeCode);
pstmt.setString(2, browItemCode);
rs = pstmt.executeQuery();
if (rs.next())
{
unconfreqPoints = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
prvFreePoints = prvFreePoints + quantity * unconfreqPoints;
}
}
System.out.println("prvFreePoints insdie P[" + prvFreePoints+ "]");
}
}
if ((currentPoints +unConfTotFreePoints + prvFreePoints ) > freePoints) {
errCode = "VTFREEQTY1";// Entered free POINTS is
// greater than scheme's free
// POINTS
System.out.println("before ....errList.." + errList);
errList.add(errCode);
System.out.println("after ....errList.." + errList);
System.out.println("errFields..[" + errFields + "][" + childNodeName + "]");
errFields.add(checkNull(" ".toLowerCase()));
// errFields.add(checkNull(childNodeName.toLowerCase()));
System.out.println(
"Entered free quantity is POINTS than sCHEME_BALANCE POINTS" + errFields);
}
}
else
{
errCode = "VTQTYSCBAL";// Entered free POINTS is
// greater than scheme's free
// POINTS
System.out.println("before ....errList.." + errList);
errList.add(errCode);
System.out.println("after ....errList.." + errList);
System.out.println("errFields..[" + errFields + "][" + childNodeName + "]");
errFields.add(checkNull(" ".toLowerCase()));
// errFields.add(checkNull(childNodeName.toLowerCase()));
System.out.println(
"Entered free POINTS is greater than sCHEME_BALANCE POINTS" + errFields);
}
}
}
//added by nandkumar gadkari on 28/05/19-----------------------end------------------------------
} }
// ---------------------------- Nandkumar Gadkari -------------on 03/10/18----------end---------------------- // ---------------------------- Nandkumar Gadkari -------------on 03/10/18----------end----------------------
// unit // unit
...@@ -11640,7 +11912,7 @@ public class SalesOrderIC extends ValidatorEJB implements SalesOrderICLocal, Sal ...@@ -11640,7 +11912,7 @@ public class SalesOrderIC extends ValidatorEJB implements SalesOrderICLocal, Sal
double mVal= 0.0; double mVal= 0.0;
String nature=""; String nature="";
nature = checkNull(genericUtility.getColumnValue("nature", dom)); nature = checkNull(genericUtility.getColumnValue("nature", dom));
if ("V".equalsIgnoreCase(nature) || "I".equalsIgnoreCase(nature)) if ("V".equalsIgnoreCase(nature) || "I".equalsIgnoreCase(nature) || "P".equalsIgnoreCase(nature))// type p added by nandkumar gadkari on 28/05/19
{ {
...@@ -14412,8 +14684,8 @@ public class SalesOrderIC extends ValidatorEJB implements SalesOrderICLocal, Sal ...@@ -14412,8 +14684,8 @@ public class SalesOrderIC extends ValidatorEJB implements SalesOrderICLocal, Sal
//// nandkumar Start //// nandkumar Start
System.out.println(" after if cnt1 " + cnt + "]"); System.out.println(" after if cnt1 " + cnt + "]");
valueXmlString.append("<sch_attr>").append("<![CDATA[" + 'Y' + "]]>").append("</sch_attr>"); /*valueXmlString.append("<sch_attr>").append("<![CDATA[" + 'Y' + "]]>").append("</sch_attr>");
setNodeValue(dom, "sch_attr", getAbsString("Y")); setNodeValue(dom, "sch_attr", getAbsString("Y"));*/// commented by nandkumar gadkari on 03/06/19
String descr = "", schemeType = ""; String descr = "", schemeType = "";
double discount = 0; double discount = 0;
// lsSchemeCode = checkNull(genericUtility.getColumnValue("item_code", dom)); // lsSchemeCode = checkNull(genericUtility.getColumnValue("item_code", dom));
...@@ -14433,9 +14705,14 @@ public class SalesOrderIC extends ValidatorEJB implements SalesOrderICLocal, Sal ...@@ -14433,9 +14705,14 @@ public class SalesOrderIC extends ValidatorEJB implements SalesOrderICLocal, Sal
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
if(!"3".equalsIgnoreCase(schemeType))// condintion added by nandkumar gadkari on 03/06/19
{
valueXmlString.append("<sch_attr>").append("<![CDATA[" + 'Y' + "]]>").append("</sch_attr>");
setNodeValue(dom, "sch_attr", getAbsString("Y"));
valueXmlString.append("<item_descr>").append("<![CDATA[" + descr + "]]>") valueXmlString.append("<item_descr>").append("<![CDATA[" + descr + "]]>")
.append("</item_descr>"); .append("</item_descr>");
setNodeValue(dom, "item_descr", getAbsString(descr)); setNodeValue(dom, "item_descr", getAbsString(descr));
}
// valueXmlString.append("<item_code>").append("<![CDATA[" + lsSchemeCode + // valueXmlString.append("<item_code>").append("<![CDATA[" + lsSchemeCode +
// "]]>").append("</item_code>"); // "]]>").append("</item_code>");
// setNodeValue( dom, "item_code", getAbsString(lsSchemeCode)); // setNodeValue( dom, "item_code", getAbsString(lsSchemeCode));
......
...@@ -1318,9 +1318,20 @@ public class SorderConf extends ActionHandlerEJB implements SorderConfLocal, Sor ...@@ -1318,9 +1318,20 @@ public class SorderConf extends ActionHandlerEJB implements SorderConfLocal, Sor
pstmt1.setString(1,saleOrder); pstmt1.setString(1,saleOrder);
pstmt1.setString(2,lineNo); pstmt1.setString(2,lineNo);
pstmt1.setString(3,siteCode); pstmt1.setString(3,siteCode);
// CONDITON ADDED BY NANDKUMAR GADKARI ON 03/06/19
if("P".equalsIgnoreCase(nature))
{
pstmt1.setString(4,itemCodeOrd);
pstmt1.setString(5,itemCodeOrd);
pstmt1.setString(6,itemCodeOrd);
}
else {
pstmt1.setString(4,itemCode); pstmt1.setString(4,itemCode);
pstmt1.setString(5,itemCode); pstmt1.setString(5,itemCode);
pstmt1.setString(6,itemCode); pstmt1.setString(6,itemCode);
}
pstmt1.setString(7,itemFlg); pstmt1.setString(7,itemFlg);
pstmt1.setString(8,itemFlg); pstmt1.setString(8,itemFlg);
pstmt1.setString(9,unit); pstmt1.setString(9,unit);
......
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