Commit 0f2ba867 authored by ssurve's avatar ssurve

Code enhanced which generates Accounts when multiple budget group code added...

Code enhanced which generates Accounts when multiple budget group code added at a time for a budget id in Budget Account Group Screen -> FI2KSUN004


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@93195 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 0ad845c3
...@@ -28,8 +28,8 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc ...@@ -28,8 +28,8 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc
String userId = null; String userId = null;
String chgTerm = null, chgUser = null, loginSiteCode = null, siteCode = null; String chgTerm = null, chgUser = null, loginSiteCode = null, siteCode = null;
PreparedStatement pstmt = null; PreparedStatement pstmtGrp =null, pstmt = null;
ResultSet rs = null; ResultSet rsGrp =null, rs = null;
String sql = null; String sql = null;
String errString = ""; String errString = "";
...@@ -50,7 +50,6 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc ...@@ -50,7 +50,6 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc
ConnDriver connDriver = new ConnDriver(); ConnDriver connDriver = new ConnDriver();
conn = connDriver.getConnectDB( "DriverITM" ); conn = connDriver.getConnectDB( "DriverITM" );
connDriver = null; connDriver = null;
conn.setAutoCommit( false );
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "logincode"); userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "logincode");
chgTerm = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "chg_term"); chgTerm = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "chg_term");
...@@ -59,8 +58,6 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc ...@@ -59,8 +58,6 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc
System.out.println("\n userId "+userId+"\t chgTerm : "+chgTerm+" chgUser : "+chgUser+" loginSiteCode : "+loginSiteCode); System.out.println("\n userId "+userId+"\t chgTerm : "+chgTerm+" chgUser : "+chgUser+" loginSiteCode : "+loginSiteCode);
//fromDateStr = genericUtility.getValidDateString( fromDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat() );
sql = "select confirmed,budget_id from bud_grp_acct where tran_id= ?"; sql = "select confirmed,budget_id from bud_grp_acct where tran_id= ?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
...@@ -91,308 +88,307 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc ...@@ -91,308 +88,307 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc
String budgetGrpCode = null; String budgetGrpCode = null;
Float budgetAmt = 0.00f; Float budgetAmt = 0.00f;
sql= null;
sql = "select bgd.bud_group_code,bgd.budget_amt "+ sql = "select bgd.bud_group_code,bgd.budget_amt "+
" from bud_grp_acct bga, bud_grp_acctdet bgd "+ " from bud_grp_acct bga, bud_grp_acctdet bgd "+
"where bgd.tran_id = ? " + "where bgd.tran_id = ? " +
" and bga.budget_id = ? " + " and bga.budget_id = ? " +
"and bga.tran_id = bgd.tran_id "; "and bga.tran_id = bgd.tran_id ";
System.out.println("\n sql1 :"+sql); System.out.println("\n sql => "+sql);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranID);
pstmt.setString(2,budgetId);
rs = pstmt.executeQuery();
if(rs.next()){
budgetGrpCode = rs.getString(1);
budgetAmt = rs.getFloat(2);
}
if(budgetGrpCode!=null)
budgetGrpCode = budgetGrpCode.trim();
System.out.println("\n budgetGrpCode "+budgetGrpCode+"\t budgetAmt : "+budgetAmt);
this.closeResources(pstmt, rs);
sql = null;
/* pstmtGrp = conn.prepareStatement(sql);
* Code to check budget account already generated for given budget group code, budget_id, pstmtGrp.setString(1,tranID);
* fin_entity,acct_code,cctr_code,anal_code,from_date,dept_code pstmtGrp.setString(2,budgetId);
*/ rsGrp = pstmtGrp.executeQuery();
int cntExist = 0;
sql =" select count(*) from acctbudget "+
"where bud_group_code = ? "+
"and budget_id = ? ";
/*"and fin_entity = ? "+
"and acct_code = ? "+
"and cctr_code = ? "+
"and anal_code = ? "+
"and from_date= ? "+
"and dept_code = ? ";*/
pstmt = conn.prepareStatement(sql); conn.setAutoCommit(false);
pstmt.setString(1,budgetGrpCode);
pstmt.setString(2,budgetId);
/*pstmt.setString(3,finEntity);
pstmt.setString(4,acctCode);
pstmt.setString(5,cctrCode);
pstmt.setString(6,analCode);
pstmt.setDate(7,(java.sql.Date)fromDate);
pstmt.setString(8,deptCode);
*/
rs = pstmt.executeQuery();
if(rs.next()) while(rsGrp.next()){ // This loop will iterate through multiple budget group codes for a budget id
{
cntExist = rs.getInt(1);
}
System.out.println("\n cntExist acct budget : "+cntExist);
this.closeResources(pstmt, rs); budgetGrpCode = rsGrp.getString(1);
sql = null; budgetAmt = rsGrp.getFloat(2);
if(cntExist>0){ if(budgetGrpCode!=null)
budgetGrpCode = budgetGrpCode.trim();
// Error : Account already generated for selected budget group code, budget_id, System.out.println("\n budgetGrpCode "+budgetGrpCode+"\t budgetAmt : "+budgetAmt);
System.out.println("\n Error : Account already generated for selected budget group code, budget_id, "); sql = null;
errString = itmDBAccessEJB.getErrorString("","VTBUACEXST",chgUser);
return errString;
} /*
* Code to check budget account already generated for given budget group code, budget_id,
//--------------------------------------------------------------------------- * fin_entity,acct_code,cctr_code,anal_code,from_date,dept_code
*/
// Getting site code against loginSiteCode from XTRA PARAMS
sql = "select site_code__budget from site where site_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,loginSiteCode);
rs = pstmt.executeQuery();
if(rs.next()){
siteCode = rs.getString(1);
} int cntExist = 0;
System.out.println("\n siteCode : "+siteCode);
sql =" select count(*) from acctbudget "+
this.closeResources(pstmt, rs); "where bud_group_code = ? "+
sql = null; "and budget_id = ? ";
/*"and fin_entity = ? "+
if(siteCode==null){ "and acct_code = ? "+
"and cctr_code = ? "+
"and anal_code = ? "+
"and from_date= ? "+
"and dept_code = ? ";*/
errString = itmDBAccessEJB.getErrorString("","VTSITCODER",chgUser); pstmt = conn.prepareStatement(sql);
return errString; pstmt.setString(1,budgetGrpCode);
pstmt.setString(2,budgetId);
/*pstmt.setString(3,finEntity);
pstmt.setString(4,acctCode);
pstmt.setString(5,cctrCode);
pstmt.setString(6,analCode);
pstmt.setDate(7,(java.sql.Date)fromDate);
pstmt.setString(8,deptCode);
*/
rs = pstmt.executeQuery();
} if(rs.next())
{
sql = "select acct_prd,prd_code,fin_entity,from_date,to_date from budgets where budget_id= ?"; cntExist = rs.getInt(1);
}
pstmt = conn.prepareStatement(sql); System.out.println("\n cntExist acct budget : "+cntExist);
pstmt.setString(1,budgetId);
rs = pstmt.executeQuery();
String acctPrd = null, prdCode = null;
String finEntity = null;
Date fromDate = null ,todate = null;
if(rs.next()){
acctPrd = rs.getString(1);
prdCode = rs.getString(2);
finEntity = rs.getString(3);
fromDate = rs.getDate(4);
todate = rs.getDate(5);
}
System.out.println("\n acctPrd "+acctPrd+" prdCode : "+prdCode+" finEntity: "+finEntity+" fromDate: "+fromDate+" todate: "+todate);
if(acctPrd==null||prdCode==null||finEntity==null||fromDate==null||todate==null){
//Error : Required data not found from budgets this.closeResources(pstmt, rs);
errString = itmDBAccessEJB.getErrorString("","VTBUDINFNF",chgUser); sql = null;
return errString;
} if(cntExist>0){
if(finEntity!=null) // Error : Account already generated for selected budget group code, budget_id,
finEntity = finEntity.trim();
System.out.println("\n Error : Account already generated for selected budget group code, budget_id, ");
this.closeResources(pstmt, rs);
sql = null; errString = itmDBAccessEJB.getErrorString("","VTBUACEXST",chgUser);
return errString;
/*Calendar currentDate = Calendar.getInstance();
SimpleDateFormat simpleDateFormatObj = new SimpleDateFormat(genericUtility.getApplDateFormat()); }
String systemDate = simpleDateFormatObj.format(currentDate.getTime());*/
//---------------------------------------------------------------------------
// Getting site code against loginSiteCode from XTRA PARAMS
sql = "select site_code__budget from site where site_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,loginSiteCode);
rs = pstmt.executeQuery();
if(rs.next()){
java.util.Date currentDate = new java.util.Date(); siteCode = rs.getString(1);
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getDBDateFormat());
//String sysDate = sdf.format(currentDate.getTime());
Timestamp newsysDate = Timestamp.valueOf( sdf.format(currentDate)+" 00:00:00.0");
System.out.println("Now the date is :=> ["+newsysDate+"]");
String deptCode = null,analCode = null,cctrCode = null, acctCode = null; }
Float allocPerc =0.00f; System.out.println("\n siteCode : "+siteCode);
this.closeResources(pstmt, rs);
sql = null;
if(siteCode==null){
errString = itmDBAccessEJB.getErrorString("","VTSITCODER",chgUser);
return errString;
}
sql = "select acct_prd,prd_code,fin_entity,from_date,to_date from budgets where budget_id= ?";
sql = "select count(*) from bud_group_det where bud_group_code = ?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1,budgetGrpCode); pstmt.setString(1,budgetId);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
int rowcnt = 0; String acctPrd = null, prdCode = null;
String finEntity = null;
Date fromDate = null ,todate = null;
if(rs.next()){ if(rs.next()){
rowcnt = rs.getInt(1);
acctPrd = rs.getString(1);
prdCode = rs.getString(2);
finEntity = rs.getString(3);
fromDate = rs.getDate(4);
todate = rs.getDate(5);
} }
this.closeResources(pstmt, rs); System.out.println("\n acctPrd "+acctPrd+" prdCode : "+prdCode+" finEntity: "+finEntity+" fromDate: "+fromDate+" todate: "+todate);
if(rowcnt==0){ if(acctPrd==null||prdCode==null||finEntity==null||fromDate==null||todate==null){
errString = itmDBAccessEJB.getErrorString("","VTACCODENF",chgUser); //Error : Required data not found from budgets
errString = itmDBAccessEJB.getErrorString("","VTBUDINFNF",chgUser);
return errString; return errString;
}else{ }
if(finEntity!=null)
finEntity = finEntity.trim();
this.closeResources(pstmt, rs);
sql = null;
/*Calendar currentDate = Calendar.getInstance();
SimpleDateFormat simpleDateFormatObj = new SimpleDateFormat(genericUtility.getApplDateFormat());
String systemDate = simpleDateFormatObj.format(currentDate.getTime());*/
java.util.Date currentDate = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getDBDateFormat());
//String sysDate = sdf.format(currentDate.getTime());
Timestamp newsysDate = Timestamp.valueOf( sdf.format(currentDate)+" 00:00:00.0");
System.out.println("Now the date is :=> ["+newsysDate+"]");
String deptCode = null,analCode = null,cctrCode = null, acctCode = null;
Float allocPerc =0.00f;
// Code to check allocation percentage for a budget group code is 100 or not. If it is other than 100 system will give error sql = "select count(*) from bud_group_det where bud_group_code = ?";
pstmt = conn.prepareStatement(sql);
sql = "select sum(alloc_perc) from bud_group_det where bud_group_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,budgetGrpCode); pstmt.setString(1,budgetGrpCode);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
int sumAllocPerc = 0; int rowcnt = 0;
if(rs.next()){ if(rs.next()){
rowcnt = rs.getInt(1);
sumAllocPerc = rs.getInt(1);
} }
if(sumAllocPerc!=100){
//Error : Allocation percentage for budget group code is not 100
errString = itmDBAccessEJB.getErrorString("","VTACPERERR",chgUser);
return errString;
}
this.closeResources(pstmt, rs); this.closeResources(pstmt, rs);
if(rowcnt==0){
sql = "select dept_code, anal_code, cctr_code, alloc_perc, acct_code from bud_group_det where bud_group_code = ?";
errString = itmDBAccessEJB.getErrorString("","VTACCODENF",chgUser);
psStatement = conn.prepareStatement(sql); return errString;
psStatement.setString(1,budgetGrpCode);
}else{
rsData = psStatement.executeQuery();
// Code to check allocation percentage for a budget group code is 100 or not. If it is other than 100 system will give error
Float final_budget_amt = 0.00f;
sql = "select sum(alloc_perc) from bud_group_det where bud_group_code = ?";
String sqlCurrCode = null; pstmt = conn.prepareStatement(sql);
String currCode = null; pstmt.setString(1,budgetGrpCode);
rs = pstmt.executeQuery();
conn.setAutoCommit(false);
while(rsData.next()){
deptCode = rsData.getString(1);
analCode = rsData.getString(2);
cctrCode = rsData.getString(3);
allocPerc = rsData.getFloat(4);
acctCode = rsData.getString(5);
if(acctCode!=null)
acctCode = acctCode.trim();
if(deptCode!=null)
deptCode = deptCode.trim();
if(deptCode==null||analCode==null||cctrCode==null||acctCode==null){ int sumAllocPerc = 0;
if(rs.next()){
//Error : Required data not found from budget group details sumAllocPerc = rs.getInt(1);
errString = itmDBAccessEJB.getErrorString("","VTBUDGRPNF",chgUser); }
if(sumAllocPerc!=100){
//Error : Allocation percentage for budget group code is not 100
errString = itmDBAccessEJB.getErrorString("","VTACPERERR",chgUser);
return errString; return errString;
} }
this.closeResources(pstmt, rs);
sqlCurrCode = "select curr_code from accounts where acct_code= ?";
psStmtCCode = conn.prepareStatement(sqlCurrCode);
psStmtCCode.setString(1,acctCode); sql = "select dept_code, anal_code, cctr_code, alloc_perc, acct_code from bud_group_det where bud_group_code = ?";
rsCCode = psStmtCCode.executeQuery(); psStatement = conn.prepareStatement(sql);
psStatement.setString(1,budgetGrpCode);
if(rsCCode.next()){
currCode = rsCCode.getString(1); rsData = psStatement.executeQuery();
}
if(currCode!=null) Float final_budget_amt = 0.00f;
currCode = currCode.trim();
String sqlCurrCode = null;
System.out.println("\n deptCode: "+deptCode+" analCode : "+analCode+" cctrCode: "+cctrCode+" allocPerc : "+allocPerc+" acctCode: "+acctCode+" currCode: "+currCode); String currCode = null;
this.closeResources(psStmtCCode, rsCCode); while(rsData.next()){ // This loop will iterate through multiple account codes for a budget group code in current iteration
final_budget_amt = (budgetAmt * allocPerc)/100; deptCode = rsData.getString(1);
analCode = rsData.getString(2);
System.out.println("\n final_budget_amt = (budgetAmt * allocPerc)/100"); cctrCode = rsData.getString(3);
System.out.println("\n final_budget_amt : "+final_budget_amt); allocPerc = rsData.getFloat(4);
acctCode = rsData.getString(5);
String sqlInsert = "Insert into ACCTBUDGET "+
"(BUDGET_ID,FIN_ENTITY,ACCT_PRD,PRD_CODE,ACCT_CODE,CCTR_CODE,BUDGET_AMT,CON_AMT,"+ if(acctCode!=null)
"FROM_DATE,TO_DATE,CHG_DATE,CHG_TERM,CHG_USER,SITE_CODE,ANAL_CODE,CURR_CODE,"+ acctCode = acctCode.trim();
"DEPT_CODE,BUD_GROUP_CODE) "+
" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; if(deptCode!=null)
deptCode = deptCode.trim();
PreparedStatement pstmtInsert = conn.prepareStatement(sqlInsert);
if(deptCode==null||analCode==null||cctrCode==null||acctCode==null){
pstmtInsert.setString(1,budgetId);
pstmtInsert.setString(2,finEntity); //Error : Required data not found from budget group details
pstmtInsert.setString(3,acctPrd); errString = itmDBAccessEJB.getErrorString("","VTBUDGRPNF",chgUser);
pstmtInsert.setString(4,prdCode); return errString;
pstmtInsert.setString(5,acctCode);
pstmtInsert.setString(6,cctrCode); }
pstmtInsert.setFloat(7,final_budget_amt);
pstmtInsert.setFloat(8,0); sqlCurrCode = "select curr_code from accounts where acct_code= ?";
pstmtInsert.setDate(9,(java.sql.Date) fromDate); psStmtCCode = conn.prepareStatement(sqlCurrCode);
pstmtInsert.setDate(10,(java.sql.Date) todate); psStmtCCode.setString(1,acctCode);
pstmtInsert.setTimestamp(11,newsysDate);
pstmtInsert.setString(12,chgTerm); rsCCode = psStmtCCode.executeQuery();
pstmtInsert.setString(13,chgUser);
pstmtInsert.setString(14,siteCode); if(rsCCode.next()){
pstmtInsert.setString(15,analCode); currCode = rsCCode.getString(1);
pstmtInsert.setString(16,currCode); }
pstmtInsert.setString(17,deptCode); if(currCode!=null)
pstmtInsert.setString(18,budgetGrpCode); currCode = currCode.trim();
System.out.println("sqlInsert ------>>: "+sqlInsert); System.out.println("\n deptCode: "+deptCode+" analCode : "+analCode+" cctrCode: "+cctrCode+" allocPerc : "+allocPerc+" acctCode: "+acctCode+" currCode: "+currCode);
int rowInserted = pstmtInsert.executeUpdate(); this.closeResources(psStmtCCode, rsCCode);
/*if(rowInserted > 0)
conn.commit(); */ final_budget_amt = (budgetAmt * allocPerc)/100;
System.out.println(rowInserted + " row(s) inserted in ACCTBUDGET table."); System.out.println("\n final_budget_amt = (budgetAmt * allocPerc)/100");
sqlInsert = null; System.out.println("\n final_budget_amt : "+final_budget_amt);
if(pstmtInsert!=null){ String sqlInsert = "Insert into ACCTBUDGET "+
pstmtInsert.close(); "(BUDGET_ID,FIN_ENTITY,ACCT_PRD,PRD_CODE,ACCT_CODE,CCTR_CODE,BUDGET_AMT,CON_AMT,"+
pstmtInsert=null; "FROM_DATE,TO_DATE,CHG_DATE,CHG_TERM,CHG_USER,SITE_CODE,ANAL_CODE,CURR_CODE,"+
} "DEPT_CODE,BUD_GROUP_CODE) "+
" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
} // while loop end
conn.commit(); PreparedStatement pstmtInsert = conn.prepareStatement(sqlInsert);
System.out.println("Committed...");
pstmtInsert.setString(1,budgetId);
errString = itmDBAccessEJB.getErrorString("","VTBUDACSUC",chgUser); pstmtInsert.setString(2,finEntity);
return errString; pstmtInsert.setString(3,acctPrd);
} // End of else pstmtInsert.setString(4,prdCode);
pstmtInsert.setString(5,acctCode);
pstmtInsert.setString(6,cctrCode);
pstmtInsert.setFloat(7,final_budget_amt);
pstmtInsert.setFloat(8,0);
pstmtInsert.setDate(9,(java.sql.Date) fromDate);
pstmtInsert.setDate(10,(java.sql.Date) todate);
pstmtInsert.setTimestamp(11,newsysDate);
pstmtInsert.setString(12,chgTerm);
pstmtInsert.setString(13,chgUser);
pstmtInsert.setString(14,siteCode);
pstmtInsert.setString(15,analCode);
pstmtInsert.setString(16,currCode);
pstmtInsert.setString(17,deptCode);
pstmtInsert.setString(18,budgetGrpCode);
System.out.println("sqlInsert ------>>: "+sqlInsert);
int rowInserted = pstmtInsert.executeUpdate();
System.out.println(rowInserted + " row(s) inserted in ACCTBUDGET table for budgetId : "+budgetId+" and budgetGrpCode : "+budgetGrpCode);
sqlInsert = null;
if(pstmtInsert!=null){
pstmtInsert.close();
pstmtInsert=null;
}
} // inner while loop end
} // End of else
} // End of outer while loop
conn.commit();
System.out.println("Committed...");
errString = itmDBAccessEJB.getErrorString("","VTBUDACSUC",chgUser);
return errString;
} }
} }
...@@ -418,6 +414,15 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc ...@@ -418,6 +414,15 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc
{ {
try try
{ {
if(rsGrp!=null){
rsGrp.close();
rsGrp = null;
}
if (pstmtGrp != null)
{
pstmtGrp.close();
pstmtGrp = null;
}
if( rs != null ) if( rs != null )
{ {
rs.close(); rs.close();
......
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