Commit a65e0215 authored by kshinde's avatar kshinde

Pricelist wizard added logic to update previous pricelist while inserting new pricelist

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@177201 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 03c7ce4d
...@@ -5,7 +5,10 @@ import java.sql.Connection; ...@@ -5,7 +5,10 @@ import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Set; import java.util.Set;
...@@ -300,7 +303,7 @@ public class PricelistGenEJB extends ValidatorEJB ...@@ -300,7 +303,7 @@ public class PricelistGenEJB extends ValidatorEJB
PreparedStatement insertPstmt = null, pstmt = null; PreparedStatement insertPstmt = null, pstmt = null;
ResultSet rs = null; ResultSet rs = null;
int insertCnt[] = null; int insertCnt[] = null;
boolean isError = false; boolean isError = false,insert=false;
try try
{ {
...@@ -344,35 +347,39 @@ public class PricelistGenEJB extends ValidatorEJB ...@@ -344,35 +347,39 @@ public class PricelistGenEJB extends ValidatorEJB
rs.close(); rs.close();
rs = null; rs = null;
} }
insert=updatePricelist(itemCode,(String) eachInsHMap.get("price_list"), getTimeStamp(eachInsHMap.get("eff_from")),getTimeStamp(eachInsHMap.get("valid_upto")),eachInsHMap.get("rate"),conn);
insertPstmt.setString(1, eachInsHMap.get("price_list")); System.out.println("Insert Flag"+insert);
insertPstmt.setString(2, eachInsHMap.get("item_code")); if(insert)
insertPstmt.setString(3, eachInsHMap.get("unit")); {
insertPstmt.setString(4, eachInsHMap.get("list_type")); insertPstmt.setString(1, eachInsHMap.get("price_list"));
insertPstmt.setInt(5, slabNo); insertPstmt.setString(2, eachInsHMap.get("item_code"));
insertPstmt.setTimestamp(6, getTimeStamp(eachInsHMap.get("eff_from"))); insertPstmt.setString(3, eachInsHMap.get("unit"));
insertPstmt.setTimestamp(7, getTimeStamp(eachInsHMap.get("valid_upto"))); insertPstmt.setString(4, eachInsHMap.get("list_type"));
insertPstmt.setString(8, "00"); insertPstmt.setInt(5, slabNo);
insertPstmt.setString(9, "ZZ"); insertPstmt.setTimestamp(6, getTimeStamp(eachInsHMap.get("eff_from")));
insertPstmt.setDouble(10, 0); insertPstmt.setTimestamp(7, getTimeStamp(eachInsHMap.get("valid_upto")));
insertPstmt.setDouble(11, 999999999); insertPstmt.setString(8, "00");
insertPstmt.setDouble(12, getDoubleValue(eachInsHMap.get("rate"))); insertPstmt.setString(9, "ZZ");
insertPstmt.setString(13, "F"); insertPstmt.setDouble(10, 0);
insertPstmt.setDouble(14, getDoubleValue(eachInsHMap.get("rate"))); insertPstmt.setDouble(11, 999999999);
insertPstmt.setTimestamp(15, java.sql.Timestamp.valueOf(genericUtility.getValidDateString(new Date(), genericUtility.getDBDateTimeFormat()))); insertPstmt.setDouble(12, getDoubleValue(eachInsHMap.get("rate")));
insertPstmt.setString(16, loginCode); insertPstmt.setString(13, "F");
insertPstmt.setString(17, chgTerm); insertPstmt.setDouble(14, getDoubleValue(eachInsHMap.get("rate")));
insertPstmt.setDouble(18, getDoubleValue(eachInsHMap.get("rate"))); insertPstmt.setTimestamp(15, java.sql.Timestamp.valueOf(genericUtility.getValidDateString(new Date(), genericUtility.getDBDateTimeFormat())));
insertPstmt.setString(19, null); insertPstmt.setString(16, loginCode);
insertPstmt.setString(20, null); insertPstmt.setString(17, chgTerm);
insertPstmt.setString(21, eachInsHMap.get("price_list_parent")); insertPstmt.setDouble(18, getDoubleValue(eachInsHMap.get("rate")));
insertPstmt.setString(22, null); insertPstmt.setString(19, null);
insertPstmt.setString(23, null); insertPstmt.setString(20, null);
insertPstmt.setString(24, null); insertPstmt.setString(21, eachInsHMap.get("price_list_parent"));
insertPstmt.setString(22, null);
insertPstmt.addBatch(); insertPstmt.setString(23, null);
insertPstmt.clearParameters(); insertPstmt.setString(24, null);
insertPstmt.addBatch();
}
insertPstmt.clearParameters();
} }
} }
...@@ -482,5 +489,165 @@ public class PricelistGenEJB extends ValidatorEJB ...@@ -482,5 +489,165 @@ public class PricelistGenEJB extends ValidatorEJB
} }
return value; return value;
} }
public boolean updatePricelist(String itemCode,String pricelist,Timestamp effFrom,Timestamp validUpto,String rate,Connection conn) throws ITMException
{
boolean retFlag = false;
PreparedStatement pstmt,pstmt1;
ResultSet rs,rs1;
Timestamp dbEffrom=null,dbValidUpto=null,updValidUpto=null;
String dbPricelist=null,dbitemCode=null,dbUnit=null,dblistType=null,dbslabNo=null;
try
{
String sql="select * from PRICELIST where ITEM_CODE = ? and PRICE_LIST = ? "
+ "and ( EFF_FROM between ? and ? or "
+ "VALID_UPTO between ? and ? or "
+ "EFF_FROM <= ? AND VALID_UPTO >= ?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, itemCode);
pstmt.setString(2, pricelist);
pstmt.setTimestamp(3, effFrom);
pstmt.setTimestamp(4, validUpto);
pstmt.setTimestamp(5, effFrom);
pstmt.setTimestamp(6, validUpto);
pstmt.setTimestamp(7, effFrom);
pstmt.setTimestamp(8, validUpto);
rs=pstmt.executeQuery();
if(rs.next())
{
dbEffrom=rs.getTimestamp("eff_from");
dbValidUpto=rs.getTimestamp("valid_upto");
dbPricelist=rs.getString("price_list");
dbitemCode=rs.getString("item_code");
dbUnit=rs.getString("unit");
dblistType=rs.getString("list_type");
dbslabNo=rs.getString("slab_no");
//updValidUpto=getPreviousDay(effFrom);
if(effFrom.after(dbEffrom) && (validUpto.equals(dbValidUpto)|| validUpto.before(dbValidUpto) || validUpto.after(dbValidUpto)) )
{
updValidUpto=getNextPreviousDay(effFrom,0);
String sqlUpd="Update pricelist set valid_upto = ? where price_list= ? and item_code= ? and unit = ? and list_type = ? and slab_no = ?";
pstmt1=conn.prepareStatement(sqlUpd);
pstmt1.setTimestamp(1, updValidUpto);
pstmt1.setString(2, pricelist);
pstmt1.setString(3, itemCode);
pstmt1.setString(4, dbUnit);
pstmt1.setString(5, dblistType);
pstmt1.setString(6, dbslabNo);
int updcnt=pstmt1.executeUpdate();
pstmt1.close();
pstmt1=null;
if(updcnt>0)
{
retFlag = true;
}
}
else if( effFrom.equals(dbEffrom) && (validUpto.equals(dbValidUpto)|| validUpto.before(dbValidUpto)))
{
Timestamp updeffFrom=getNextPreviousDay(effFrom,1);
String sqlUpd="Update pricelist set eff_from = ? where price_list= ? and item_code= ? and unit = ? and list_type = ? and slab_no = ?";
pstmt1=conn.prepareStatement(sqlUpd);
pstmt1.setTimestamp(1, updeffFrom);
pstmt1.setString(2, pricelist);
pstmt1.setString(3, itemCode);
pstmt1.setString(4, dbUnit);
pstmt1.setString(5, dblistType);
pstmt1.setString(6, dbslabNo);
int updcnt=pstmt1.executeUpdate();
pstmt1.close();
pstmt1=null;
if(updcnt>0)
{
retFlag = true;
}
}
else if( effFrom.equals(dbEffrom) && validUpto.after(dbValidUpto) )
{
String sqlUpd="Update pricelist set valid_upto = ?, rate = ? where price_list= ? and item_code= ? and unit = ? and list_type = ? and slab_no = ?";
pstmt1=conn.prepareStatement(sqlUpd);
pstmt1.setTimestamp(1, validUpto);
pstmt1.setDouble(2, getDoubleValue(rate));
pstmt1.setString(3, pricelist);
pstmt1.setString(4, itemCode);
pstmt1.setString(5, dbUnit);
pstmt1.setString(6, dblistType);
pstmt1.setString(7, dbslabNo);
int updcnt=pstmt1.executeUpdate();
pstmt1.close();
pstmt1=null;
if(updcnt>0)
{
retFlag = false;
}
}
}
else
{
retFlag = true;
}
pstmt.close();
pstmt=null;
rs.close();
rs=null;
}
catch(Exception e)
{
e.getMessage();
e.printStackTrace();
throw new ITMException(e);
}
System.out.println("retFlag["+retFlag+"]");
return retFlag;
}
public Timestamp getNextPreviousDay(Timestamp d1,int pn) throws ITMException
{
Timestamp prevDate=null;
String transformDt;
try
{
SimpleDateFormat appdtfr = new SimpleDateFormat(genericUtility.getApplDateFormat());
SimpleDateFormat dbDtfr = new SimpleDateFormat(genericUtility.getDBDateFormat());
transformDt=appdtfr.format(d1);
Calendar preCalc = Calendar.getInstance();
System.out.println("preCalc::"+preCalc);
preCalc.setTime( getDateObject( transformDt ) );
if(pn==0)
{
preCalc.add( Calendar.DAY_OF_MONTH , -1);
}
else
{
preCalc.add( Calendar.DAY_OF_MONTH , +1);
}
java.util.Date prvDate = preCalc.getTime();
prevDate=Timestamp.valueOf(dbDtfr.format(prvDate) + " 00:00:00.00");
System.out.println("Source Date["+d1+"] Formatted Date["+prevDate+"]");
}
catch(Exception e)
{
e.getMessage();
e.printStackTrace();
}
return prevDate;
}
} }
\ No newline at end of file
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