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;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Set;
......@@ -300,7 +303,7 @@ public class PricelistGenEJB extends ValidatorEJB
PreparedStatement insertPstmt = null, pstmt = null;
ResultSet rs = null;
int insertCnt[] = null;
boolean isError = false;
boolean isError = false,insert=false;
try
{
......@@ -345,7 +348,10 @@ public class PricelistGenEJB extends ValidatorEJB
rs = null;
}
insert=updatePricelist(itemCode,(String) eachInsHMap.get("price_list"), getTimeStamp(eachInsHMap.get("eff_from")),getTimeStamp(eachInsHMap.get("valid_upto")),eachInsHMap.get("rate"),conn);
System.out.println("Insert Flag"+insert);
if(insert)
{
insertPstmt.setString(1, eachInsHMap.get("price_list"));
insertPstmt.setString(2, eachInsHMap.get("item_code"));
insertPstmt.setString(3, eachInsHMap.get("unit"));
......@@ -372,6 +378,7 @@ public class PricelistGenEJB extends ValidatorEJB
insertPstmt.setString(24, null);
insertPstmt.addBatch();
}
insertPstmt.clearParameters();
}
}
......@@ -482,5 +489,165 @@ public class PricelistGenEJB extends ValidatorEJB
}
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