Commit 48da70ef authored by ngadkari's avatar ngadkari

added validation of scheme check

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@202253 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 1daa2aee
package ibase.webitm.ejb.dis; package ibase.webitm.ejb.dis;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ibase.utility.CommonConstants; import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility; import ibase.utility.E12GenericUtility;
...@@ -87,7 +89,12 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -87,7 +89,12 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
{ {
System.out.println("in PointBaseschemeFreeQtyAdd postSave ----"); System.out.println("in PointBaseschemeFreeQtyAdd postSave ----");
errorString= pointBaseScheme(dom,tranId,xtraParams,conn); errorString= pointBaseScheme(dom,tranId,xtraParams,conn);
errorString=""; //errorString="";
if(errorString!=null && errorString.trim().length() > 0)
{
return 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+"]");
...@@ -742,7 +749,7 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -742,7 +749,7 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
int llPlcount=0,minShelfLife=0,lineNos=0,cnt=0,updatedCount=0,schCnt=0; 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 itemFlag="",lineNoSord="",chgUser="",chgTerm="",taxChap="",taxEnv="",taxClass="",unitRate="",itemDesc="",status="",unitStd="",packCode="",itemCode="";
String itemSer="",itemSerProm="",locType="",holdflag="",nature="",unitSal="",mType=""; String itemSer="",itemSerProm="",locType="",holdflag="",nature="",unitSal="",mType="";
String schemeCode="",countCodeDlv="",stateCodeDlv=""; String schemeCode="",countCodeDlv="",stateCodeDlv="",schemeCode1="",SordlineNo="";
double offerPoints=0,totalpoints=0,freePoints=0,reqPoints=0,availQty=0,unConfFreeQty=0,unconfreqPoints=0,unConfTotFreePoints=0,quantity=0; double offerPoints=0,totalpoints=0,freePoints=0,reqPoints=0,availQty=0,unConfFreeQty=0,unconfreqPoints=0,unConfTotFreePoints=0,quantity=0;
boolean schemeUsedInDetail=false; boolean schemeUsedInDetail=false;
try { try {
...@@ -767,7 +774,7 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -767,7 +774,7 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
sql="select item_code__ord,ord_value,unit,quantity__stduom,ITEM_FLG,TAX_CLASS,TAX_CHAP,TAX_ENV,STATUS,ITEM_DESCR,UNIT__RATE," 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," + "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 " + "NATURE,LINE_NO "
+ "from sorddet where sale_order = ?"; + "from sorddet where sale_order = ?";
pstmt=conn.prepareStatement(sql); pstmt=conn.prepareStatement(sql);
pstmt.setString(1, tranId); pstmt.setString(1, tranId);
...@@ -789,10 +796,16 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -789,10 +796,16 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
rateClg=rs.getDouble("RATE__CLG"); rateClg=rs.getDouble("RATE__CLG");
holdflag=rs.getString("HOLD_FLAG"); holdflag=rs.getString("HOLD_FLAG");
nature=rs.getString("NATURE"); nature=rs.getString("NATURE");
SordlineNo=rs.getString("LINE_NO");
System.out.println("itemCodeOrd-->["+itemCodeOrd+"]"); System.out.println("itemCodeOrd-->["+itemCodeOrd+"]");
if("P".equalsIgnoreCase(nature) ) if("P".equalsIgnoreCase(nature) )
{ {
schemeUsedInDetail=true; schemeUsedInDetail=true;
errorString= pointSchemeValidation(custCode,orderDate,tranId,siteCode,stateCodeDlv,countCodeDlv,quantityStduom,itemCodeOrd,SordlineNo,conn);
if(errorString !=null && errorString.trim().length()> 0)
{
return errorString;
}
} }
if("C".equalsIgnoreCase(nature) ) if("C".equalsIgnoreCase(nature) )
{ {
...@@ -809,13 +822,13 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -809,13 +822,13 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
pstmt1.setString(6, "Y"); pstmt1.setString(6, "Y");
rs1 = pstmt1.executeQuery(); rs1 = pstmt1.executeQuery();
while (rs1.next()) { while (rs1.next()) {
schemeCode = rs1.getString("scheme_code"); schemeCode1 = rs1.getString("scheme_code");
if(schemeCode !=null && schemeCode.trim().length() > 0) if(schemeCode1 !=null && schemeCode1.trim().length() > 0)
{ {
sql = "select count (*) as cnt from SCH_PUR_ITEMS where SCHEME_CODE =? and item_code=?"; sql = "select count (*) as cnt from SCH_PUR_ITEMS where SCHEME_CODE =? and item_code=?";
pstmt2 = conn.prepareStatement(sql); pstmt2 = conn.prepareStatement(sql);
pstmt2.setString(1, schemeCode); pstmt2.setString(1, schemeCode1);
pstmt2.setString(2, itemCodeOrd); pstmt2.setString(2, itemCodeOrd);
rs2 = pstmt2.executeQuery(); rs2 = pstmt2.executeQuery();
if (rs2.next()) if (rs2.next())
...@@ -833,6 +846,7 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -833,6 +846,7 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
} }
else { else {
schCnt++; schCnt++;
schemeCode=schemeCode1;
} }
...@@ -1259,7 +1273,7 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -1259,7 +1273,7 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
} }
if(rows > 0) if(rows > 0)
{ {
errorString="Success"; /*errorString="Success";*/
if(quantity < availQty) if(quantity < availQty)
{ {
...@@ -1307,7 +1321,279 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave ...@@ -1307,7 +1321,279 @@ public class SaleOrderPostSave extends ValidatorEJB implements SaleOrderPostSave
} }
return errorString; return errorString;
} }
private String pointSchemeValidation(String custCode,Timestamp orderDate,String saleOrder,String siteCode,String stateCodeDlv,String countCodeDlv,double quantityStduom,String itemCodeOrd,String currLineNo,Connection conn) throws ITMException
{
int cnt1=0,cnt=0;
double reqPoints=0,freePoints=0,unconfreqPoints=0,unConfFreeQty=0,unConfTotFreePoints=0,prvFreePoints=0,currentPoints=0,prvFreeQty=0,quantity=0;
ResultSet rs=null,rs1=null,rs2=null;
PreparedStatement pstmt=null,pstmt1=null,pstmt2=null,pStmt=null;
String sql="",sql1="",errorString="",schemeCode="",schemeCode1="",itemCode="";
String lineNo = "", browItemCode = "",nature="";
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
try {
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()) {
schemeCode1 = rs1.getString("scheme_code");
if(schemeCode1 !=null && schemeCode1.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, schemeCode1);
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 )
{
errorString=itmDBAccessEJB.getErrorString("","VTITEM10","","",conn);
return errorString;
}
if(cnt== 1)
{
schemeCode=schemeCode1;
}
}
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1= null;
if (cnt == 0) {
errorString=itmDBAccessEJB.getErrorString("","VTINFEEQTY","","",conn);
System.out.println("invalid free quantity for this item code ");
}
if(schemeCode !=null && schemeCode.trim().length() > 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())
{
reqPoints = rs.getDouble(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(reqPoints > 0)
{
currentPoints = quantityStduom * 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= ? 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())
{
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+ "]");
//---------------------------
prvFreeQty = 0;
int count = 0;
sql="select item_code__ord,quantity__stduom,NATURE,LINE_NO "
+ "from sorddet where sale_order = ?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, saleOrder);
rs1 = pstmt1.executeQuery();
while (rs1.next()) {
browItemCode=rs1.getString(1);
quantity = rs1.getDouble(2);
nature=rs1.getString(3);
lineNo=rs1.getString(4);
System.out.println("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+ "]");
}
}
pstmt1.close();
rs1.close();
pstmt1 = null;
rs1 = null;
if ((currentPoints +unConfTotFreePoints + prvFreePoints ) > freePoints) {
errorString=itmDBAccessEJB.getErrorString("","VTFREEQTY1","","",conn);
return errorString;
}
}
else
{
errorString=itmDBAccessEJB.getErrorString("","VTQTYSCBAL","","",conn);
return errorString;
}
}
} 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 = "";
......
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