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
String userId = null;
String chgTerm = null, chgUser = null, loginSiteCode = null, siteCode = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
PreparedStatement pstmtGrp =null, pstmt = null;
ResultSet rsGrp =null, rs = null;
String sql = null;
String errString = "";
......@@ -50,7 +50,6 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc
ConnDriver connDriver = new ConnDriver();
conn = connDriver.getConnectDB( "DriverITM" );
connDriver = null;
conn.setAutoCommit( false );
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "logincode");
chgTerm = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "chg_term");
......@@ -59,8 +58,6 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc
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= ?";
pstmt = conn.prepareStatement(sql);
......@@ -91,308 +88,307 @@ public class BudgetGrpAcctGenPrc extends ActionHandlerEJB implements BudgetGrpAc
String budgetGrpCode = null;
Float budgetAmt = 0.00f;
sql= null;
sql = "select bgd.bud_group_code,bgd.budget_amt "+
" from bud_grp_acct bga, bud_grp_acctdet bgd "+
"where bgd.tran_id = ? " +
" and bga.budget_id = ? " +
"and bga.tran_id = bgd.tran_id ";
System.out.println("\n sql1 :"+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;
System.out.println("\n sql => "+sql);
/*
* 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
*/
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 = ? ";*/
pstmtGrp = conn.prepareStatement(sql);
pstmtGrp.setString(1,tranID);
pstmtGrp.setString(2,budgetId);
rsGrp = pstmtGrp.executeQuery();
pstmt = conn.prepareStatement(sql);
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();
conn.setAutoCommit(false);
if(rs.next())
{
cntExist = rs.getInt(1);
}
System.out.println("\n cntExist acct budget : "+cntExist);
while(rsGrp.next()){ // This loop will iterate through multiple budget group codes for a budget id
this.closeResources(pstmt, rs);
sql = null;
budgetGrpCode = rsGrp.getString(1);
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, ");
errString = itmDBAccessEJB.getErrorString("","VTBUACEXST",chgUser);
return errString;
sql = null;
}
//---------------------------------------------------------------------------
// 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);
/*
* 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
*/
}
System.out.println("\n siteCode : "+siteCode);
this.closeResources(pstmt, rs);
sql = null;
if(siteCode==null){
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 = ? ";*/
errString = itmDBAccessEJB.getErrorString("","VTSITCODER",chgUser);
return errString;
pstmt = conn.prepareStatement(sql);
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();
}
sql = "select acct_prd,prd_code,fin_entity,from_date,to_date from budgets where budget_id= ?";
pstmt = conn.prepareStatement(sql);
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){
if(rs.next())
{
cntExist = rs.getInt(1);
}
System.out.println("\n cntExist acct budget : "+cntExist);
//Error : Required data not found from budgets
errString = itmDBAccessEJB.getErrorString("","VTBUDINFNF",chgUser);
return errString;
this.closeResources(pstmt, rs);
sql = null;
}
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());*/
if(cntExist>0){
// Error : Account already generated for selected budget group code, budget_id,
System.out.println("\n Error : Account already generated for selected budget group code, budget_id, ");
errString = itmDBAccessEJB.getErrorString("","VTBUACEXST",chgUser);
return errString;
}
//---------------------------------------------------------------------------
// 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();
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+"]");
siteCode = rs.getString(1);
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.setString(1,budgetGrpCode);
pstmt.setString(1,budgetId);
rs = pstmt.executeQuery();
int rowcnt = 0;
String acctPrd = null, prdCode = null;
String finEntity = null;
Date fromDate = null ,todate = null;
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;
}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 sum(alloc_perc) from bud_group_det where bud_group_code = ?";
pstmt = conn.prepareStatement(sql);
sql = "select count(*) from bud_group_det where bud_group_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,budgetGrpCode);
rs = pstmt.executeQuery();
int sumAllocPerc = 0;
int rowcnt = 0;
if(rs.next()){
sumAllocPerc = rs.getInt(1);
rowcnt = 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);
sql = "select dept_code, anal_code, cctr_code, alloc_perc, acct_code from bud_group_det where bud_group_code = ?";
psStatement = conn.prepareStatement(sql);
psStatement.setString(1,budgetGrpCode);
rsData = psStatement.executeQuery();
Float final_budget_amt = 0.00f;
String sqlCurrCode = null;
String currCode = null;
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(rowcnt==0){
errString = itmDBAccessEJB.getErrorString("","VTACCODENF",chgUser);
return errString;
}else{
// 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 sum(alloc_perc) from bud_group_det where bud_group_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,budgetGrpCode);
rs = pstmt.executeQuery();
if(deptCode==null||analCode==null||cctrCode==null||acctCode==null){
int sumAllocPerc = 0;
if(rs.next()){
//Error : Required data not found from budget group details
errString = itmDBAccessEJB.getErrorString("","VTBUDGRPNF",chgUser);
sumAllocPerc = rs.getInt(1);
}
if(sumAllocPerc!=100){
//Error : Allocation percentage for budget group code is not 100
errString = itmDBAccessEJB.getErrorString("","VTACPERERR",chgUser);
return errString;
}
sqlCurrCode = "select curr_code from accounts where acct_code= ?";
psStmtCCode = conn.prepareStatement(sqlCurrCode);
psStmtCCode.setString(1,acctCode);
rsCCode = psStmtCCode.executeQuery();
if(rsCCode.next()){
currCode = rsCCode.getString(1);
}
if(currCode!=null)
currCode = currCode.trim();
System.out.println("\n deptCode: "+deptCode+" analCode : "+analCode+" cctrCode: "+cctrCode+" allocPerc : "+allocPerc+" acctCode: "+acctCode+" currCode: "+currCode);
this.closeResources(psStmtCCode, rsCCode);
final_budget_amt = (budgetAmt * allocPerc)/100;
System.out.println("\n final_budget_amt = (budgetAmt * allocPerc)/100");
System.out.println("\n final_budget_amt : "+final_budget_amt);
String sqlInsert = "Insert into ACCTBUDGET "+
"(BUDGET_ID,FIN_ENTITY,ACCT_PRD,PRD_CODE,ACCT_CODE,CCTR_CODE,BUDGET_AMT,CON_AMT,"+
"FROM_DATE,TO_DATE,CHG_DATE,CHG_TERM,CHG_USER,SITE_CODE,ANAL_CODE,CURR_CODE,"+
"DEPT_CODE,BUD_GROUP_CODE) "+
" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement pstmtInsert = conn.prepareStatement(sqlInsert);
pstmtInsert.setString(1,budgetId);
pstmtInsert.setString(2,finEntity);
pstmtInsert.setString(3,acctPrd);
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();
/*if(rowInserted > 0)
conn.commit(); */
System.out.println(rowInserted + " row(s) inserted in ACCTBUDGET table.");
sqlInsert = null;
if(pstmtInsert!=null){
pstmtInsert.close();
pstmtInsert=null;
}
} // while loop end
conn.commit();
System.out.println("Committed...");
errString = itmDBAccessEJB.getErrorString("","VTBUDACSUC",chgUser);
return errString;
} // End of else
this.closeResources(pstmt, rs);
sql = "select dept_code, anal_code, cctr_code, alloc_perc, acct_code from bud_group_det where bud_group_code = ?";
psStatement = conn.prepareStatement(sql);
psStatement.setString(1,budgetGrpCode);
rsData = psStatement.executeQuery();
Float final_budget_amt = 0.00f;
String sqlCurrCode = null;
String currCode = null;
while(rsData.next()){ // This loop will iterate through multiple account codes for a budget group code in current iteration
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){
//Error : Required data not found from budget group details
errString = itmDBAccessEJB.getErrorString("","VTBUDGRPNF",chgUser);
return errString;
}
sqlCurrCode = "select curr_code from accounts where acct_code= ?";
psStmtCCode = conn.prepareStatement(sqlCurrCode);
psStmtCCode.setString(1,acctCode);
rsCCode = psStmtCCode.executeQuery();
if(rsCCode.next()){
currCode = rsCCode.getString(1);
}
if(currCode!=null)
currCode = currCode.trim();
System.out.println("\n deptCode: "+deptCode+" analCode : "+analCode+" cctrCode: "+cctrCode+" allocPerc : "+allocPerc+" acctCode: "+acctCode+" currCode: "+currCode);
this.closeResources(psStmtCCode, rsCCode);
final_budget_amt = (budgetAmt * allocPerc)/100;
System.out.println("\n final_budget_amt = (budgetAmt * allocPerc)/100");
System.out.println("\n final_budget_amt : "+final_budget_amt);
String sqlInsert = "Insert into ACCTBUDGET "+
"(BUDGET_ID,FIN_ENTITY,ACCT_PRD,PRD_CODE,ACCT_CODE,CCTR_CODE,BUDGET_AMT,CON_AMT,"+
"FROM_DATE,TO_DATE,CHG_DATE,CHG_TERM,CHG_USER,SITE_CODE,ANAL_CODE,CURR_CODE,"+
"DEPT_CODE,BUD_GROUP_CODE) "+
" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement pstmtInsert = conn.prepareStatement(sqlInsert);
pstmtInsert.setString(1,budgetId);
pstmtInsert.setString(2,finEntity);
pstmtInsert.setString(3,acctPrd);
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
{
try
{
if(rsGrp!=null){
rsGrp.close();
rsGrp = null;
}
if (pstmtGrp != null)
{
pstmtGrp.close();
pstmtGrp = null;
}
if( rs != null )
{
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