1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.kfs.module.bc.document.dataaccess.impl;
20
21 import java.util.ArrayList;
22
23 import org.kuali.kfs.module.bc.BCConstants;
24 import org.kuali.kfs.module.bc.batch.dataaccess.impl.SQLForStep;
25 import org.kuali.kfs.module.bc.document.dataaccess.BudgetConstructionObjectSummaryReportDao;
26
27 public class BudgetConstructionObjectSummaryReportDaoJdbc extends BudgetConstructionDaoJdbcBase implements BudgetConstructionObjectSummaryReportDao {
28
29 protected static ArrayList<SQLForStep> objectSummarySql = new ArrayList<SQLForStep>(5);
30
31 public BudgetConstructionObjectSummaryReportDaoJdbc() {
32
33 StringBuilder sqlBuilder = new StringBuilder(1500);
34 ArrayList<Integer> insertionPoints = new ArrayList<Integer>(10);
35
36
37
38 sqlBuilder.append("INSERT INTO LD_BCN_OBJT_SUMM_T\n");
39 sqlBuilder.append("(PERSON_UNVL_ID, ORG_FIN_COA_CD, ORG_CD, SUB_FUND_GRP_CD, FIN_COA_CD,\n");
40 sqlBuilder.append("INC_EXP_CD, FIN_CONS_SORT_CD, FIN_LEV_SORT_CD, FIN_OBJECT_CD, ACLN_ANNL_BAL_AMT,\n");
41 sqlBuilder.append("FIN_BEG_BAL_LN_AMT, FIN_CONS_OBJ_CD, FIN_OBJ_LEVEL_CD, APPT_RQCSF_FTE_QTY,\n");
42 sqlBuilder.append("APPT_RQST_FTE_QTY, POS_CSF_FTE_QTY, POS_CSF_LV_FTE_QTY)\n");
43 sqlBuilder.append("SELECT\n");
44 sqlBuilder.append("?,\n");
45 sqlBuilder.append("LD_BCN_CTRL_LIST_T.SEL_ORG_FIN_COA,\n");
46 sqlBuilder.append("LD_BCN_CTRL_LIST_T.SEL_ORG_CD,\n");
47 sqlBuilder.append("LD_BCN_CTRL_LIST_T.SEL_SUB_FUND_GRP,\n");
48 sqlBuilder.append("LD_BCN_CTRL_LIST_T.FIN_COA_CD,'A',\n");
49 sqlBuilder.append("CA_OBJ_CONSOLDTN_T.FIN_REPORT_SORT_CD,\n");
50 sqlBuilder.append("CA_OBJ_LEVEL_T.FIN_REPORT_SORT_CD,\n");
51 sqlBuilder.append("LD_PND_BCNSTR_GL_T.FIN_OBJECT_CD,\n");
52 sqlBuilder.append("sum(LD_PND_BCNSTR_GL_T.ACLN_ANNL_BAL_AMT),\n");
53 sqlBuilder.append("sum(LD_PND_BCNSTR_GL_T.FIN_BEG_BAL_LN_AMT),\n");
54 sqlBuilder.append("CA_OBJ_LEVEL_T.FIN_CONS_OBJ_CD,\n");
55 sqlBuilder.append("CA_OBJECT_CODE_T.FIN_OBJ_LEVEL_CD,\n");
56 sqlBuilder.append("0,0,0,0\n");
57 sqlBuilder.append(" FROM LD_BCN_SUBFUND_PICK_T,\n");
58 sqlBuilder.append(" LD_BCN_CTRL_LIST_T,\n");
59 sqlBuilder.append(" LD_PND_BCNSTR_GL_T,\n");
60 sqlBuilder.append(" CA_OBJECT_CODE_T,\n");
61 sqlBuilder.append(" CA_OBJ_LEVEL_T,\n");
62 sqlBuilder.append(" CA_OBJ_CONSOLDTN_T\n");
63 sqlBuilder.append(" WHERE (LD_BCN_SUBFUND_PICK_T.PERSON_UNVL_ID = ?)\n");
64 sqlBuilder.append(" AND (LD_BCN_SUBFUND_PICK_T.REPORT_FLAG > 0)\n");
65 sqlBuilder.append(" AND (LD_BCN_SUBFUND_PICK_T.SUB_FUND_GRP_CD = LD_BCN_CTRL_LIST_T.SEL_SUB_FUND_GRP)\n");
66 sqlBuilder.append(" AND (LD_BCN_SUBFUND_PICK_T.PERSON_UNVL_ID = LD_BCN_CTRL_LIST_T.PERSON_UNVL_ID)\n");
67 sqlBuilder.append(" AND (CA_OBJ_CONSOLDTN_T.FIN_COA_CD = CA_OBJ_LEVEL_T.FIN_COA_CD)\n");
68 sqlBuilder.append(" AND (CA_OBJ_CONSOLDTN_T.FIN_CONS_OBJ_CD = CA_OBJ_LEVEL_T.FIN_CONS_OBJ_CD)\n");
69 sqlBuilder.append(" AND (LD_PND_BCNSTR_GL_T.FDOC_NBR = LD_BCN_CTRL_LIST_T.FDOC_NBR)\n");
70 sqlBuilder.append(" AND (CA_OBJECT_CODE_T.UNIV_FISCAL_YR = LD_BCN_CTRL_LIST_T.UNIV_FISCAL_YR)\n");
71 sqlBuilder.append(" AND (CA_OBJECT_CODE_T.FIN_COA_CD = LD_BCN_CTRL_LIST_T.FIN_COA_CD)\n");
72 sqlBuilder.append(" AND (CA_OBJECT_CODE_T.FIN_OBJECT_CD = LD_PND_BCNSTR_GL_T.FIN_OBJECT_CD)\n");
73 sqlBuilder.append(" AND (CA_OBJ_LEVEL_T.FIN_COA_CD = CA_OBJECT_CODE_T.FIN_COA_CD)\n");
74 sqlBuilder.append(" AND (CA_OBJ_LEVEL_T.FIN_OBJ_LEVEL_CD = CA_OBJECT_CODE_T.FIN_OBJ_LEVEL_CD)\n");
75 sqlBuilder.append(" AND (LD_PND_BCNSTR_GL_T.FIN_OBJ_TYP_CD IN ");
76
77 insertionPoints.add(sqlBuilder.length());
78 sqlBuilder.append(")\n");
79 sqlBuilder.append("GROUP BY LD_BCN_CTRL_LIST_T.SEL_ORG_FIN_COA,\n");
80 sqlBuilder.append("LD_BCN_CTRL_LIST_T.SEL_ORG_CD,\n");
81 sqlBuilder.append("LD_BCN_CTRL_LIST_T.SEL_SUB_FUND_GRP,\n");
82 sqlBuilder.append("LD_BCN_CTRL_LIST_T.FIN_COA_CD,\n");
83 sqlBuilder.append("CA_OBJ_CONSOLDTN_T.FIN_REPORT_SORT_CD,\n");
84 sqlBuilder.append("CA_OBJ_LEVEL_T.FIN_REPORT_SORT_CD,\n");
85 sqlBuilder.append("LD_PND_BCNSTR_GL_T.FIN_OBJECT_CD,\n");
86 sqlBuilder.append("CA_OBJ_LEVEL_T.FIN_CONS_OBJ_CD,\n");
87 sqlBuilder.append("CA_OBJECT_CODE_T.FIN_OBJ_LEVEL_CD\n");
88 sqlBuilder.append("UNION ALL\n");
89 sqlBuilder.append("SELECT\n");
90 sqlBuilder.append("?,\n");
91 sqlBuilder.append("LD_BCN_CTRL_LIST_T.SEL_ORG_FIN_COA,\n");
92 sqlBuilder.append("LD_BCN_CTRL_LIST_T.SEL_ORG_CD,\n");
93 sqlBuilder.append("LD_BCN_CTRL_LIST_T.SEL_SUB_FUND_GRP,\n");
94 sqlBuilder.append("LD_BCN_CTRL_LIST_T.FIN_COA_CD,");
95 sqlBuilder.append("'B',\n");
96 sqlBuilder.append("CA_OBJ_CONSOLDTN_T.FIN_REPORT_SORT_CD,\n");
97 sqlBuilder.append("CA_OBJ_LEVEL_T.FIN_REPORT_SORT_CD,\n");
98 sqlBuilder.append("LD_PND_BCNSTR_GL_T.FIN_OBJECT_CD,\n");
99 sqlBuilder.append("sum(LD_PND_BCNSTR_GL_T.ACLN_ANNL_BAL_AMT),\n");
100 sqlBuilder.append("sum(LD_PND_BCNSTR_GL_T.FIN_BEG_BAL_LN_AMT),\n");
101 sqlBuilder.append("CA_OBJ_LEVEL_T.FIN_CONS_OBJ_CD,\n");
102 sqlBuilder.append("CA_OBJECT_CODE_T.FIN_OBJ_LEVEL_CD,\n");
103 sqlBuilder.append("0,0,0,0\n");
104 sqlBuilder.append(" FROM LD_BCN_SUBFUND_PICK_T,\n");
105 sqlBuilder.append(" LD_BCN_CTRL_LIST_T,\n");
106 sqlBuilder.append(" LD_PND_BCNSTR_GL_T,\n");
107 sqlBuilder.append(" CA_OBJECT_CODE_T,\n");
108 sqlBuilder.append(" CA_OBJ_LEVEL_T,\n");
109 sqlBuilder.append(" CA_OBJ_CONSOLDTN_T\n");
110 sqlBuilder.append(" WHERE (LD_BCN_SUBFUND_PICK_T.PERSON_UNVL_ID = ?)\n");
111 sqlBuilder.append(" AND (LD_BCN_SUBFUND_PICK_T.REPORT_FLAG > 0)\n");
112 sqlBuilder.append(" AND (LD_BCN_SUBFUND_PICK_T.SUB_FUND_GRP_CD = LD_BCN_CTRL_LIST_T.SEL_SUB_FUND_GRP)\n");
113 sqlBuilder.append(" AND (LD_BCN_SUBFUND_PICK_T.PERSON_UNVL_ID = LD_BCN_CTRL_LIST_T.PERSON_UNVL_ID)\n");
114 sqlBuilder.append(" AND (CA_OBJ_CONSOLDTN_T.FIN_COA_CD = CA_OBJ_LEVEL_T.FIN_COA_CD)\n");
115 sqlBuilder.append(" AND (CA_OBJ_CONSOLDTN_T.FIN_CONS_OBJ_CD = CA_OBJ_LEVEL_T.FIN_CONS_OBJ_CD)\n");
116 sqlBuilder.append(" AND (LD_PND_BCNSTR_GL_T.FDOC_NBR = LD_BCN_CTRL_LIST_T.FDOC_NBR)\n");
117 sqlBuilder.append(" AND (CA_OBJECT_CODE_T.UNIV_FISCAL_YR = LD_BCN_CTRL_LIST_T.UNIV_FISCAL_YR)\n");
118 sqlBuilder.append(" AND (CA_OBJECT_CODE_T.FIN_COA_CD = LD_BCN_CTRL_LIST_T.FIN_COA_CD)\n");
119 sqlBuilder.append(" AND (CA_OBJECT_CODE_T.FIN_OBJECT_CD = LD_PND_BCNSTR_GL_T.FIN_OBJECT_CD)\n");
120 sqlBuilder.append(" AND (CA_OBJ_LEVEL_T.FIN_COA_CD = CA_OBJECT_CODE_T.FIN_COA_CD)\n");
121 sqlBuilder.append(" AND (CA_OBJ_LEVEL_T.FIN_OBJ_LEVEL_CD = CA_OBJECT_CODE_T.FIN_OBJ_LEVEL_CD)\n");
122 sqlBuilder.append(" AND (LD_PND_BCNSTR_GL_T.FIN_OBJ_TYP_CD IN ");
123
124 insertionPoints.add(sqlBuilder.length());
125 sqlBuilder.append(")\n");
126 sqlBuilder.append("GROUP BY LD_BCN_CTRL_LIST_T.SEL_ORG_FIN_COA,\n");
127 sqlBuilder.append("LD_BCN_CTRL_LIST_T.SEL_ORG_CD,\n");
128 sqlBuilder.append("LD_BCN_CTRL_LIST_T.SEL_SUB_FUND_GRP,\n");
129 sqlBuilder.append("LD_BCN_CTRL_LIST_T.FIN_COA_CD,\n");
130 sqlBuilder.append("CA_OBJ_CONSOLDTN_T.FIN_REPORT_SORT_CD,\n");
131 sqlBuilder.append("CA_OBJ_LEVEL_T.FIN_REPORT_SORT_CD,\n");
132 sqlBuilder.append("LD_PND_BCNSTR_GL_T.FIN_OBJECT_CD,\n");
133 sqlBuilder.append("CA_OBJ_LEVEL_T.FIN_CONS_OBJ_CD,\n");
134 sqlBuilder.append("CA_OBJECT_CODE_T.FIN_OBJ_LEVEL_CD\n");
135
136 objectSummarySql.add(new SQLForStep(sqlBuilder,insertionPoints));
137 sqlBuilder.delete(0,sqlBuilder.length());
138 insertionPoints.clear();
139
140
141 sqlBuilder.append("INSERT INTO LD_BCN_BUILD_OBJTSUMM01_MT\n");
142 sqlBuilder.append("(SESID, ORG_FIN_COA_CD, ORG_CD, SUB_FUND_GRP_CD, FIN_COA_CD,\n");
143 sqlBuilder.append(" INC_EXP_CD, FIN_CONS_OBJ_CD, FIN_OBJ_LEVEL_CD, FIN_OBJECT_CD,\n");
144 sqlBuilder.append(" APPT_RQCSF_FTE_QTY, APPT_RQST_FTE_QTY)\n");
145 sqlBuilder.append("(SELECT\n");
146 sqlBuilder.append(" ?,\n");
147 sqlBuilder.append(" ctrl.sel_org_fin_coa,\n");
148 sqlBuilder.append(" ctrl.sel_org_cd,\n");
149 sqlBuilder.append(" ctrl.sel_sub_fund_grp,\n");
150 sqlBuilder.append(" ctrl.fin_coa_cd,\n");
151 sqlBuilder.append(" 'B',\n");
152 sqlBuilder.append( "objl.fin_cons_obj_cd,\n");
153 sqlBuilder.append(" objt.fin_obj_level_cd,\n");
154 sqlBuilder.append(" bcaf.fin_object_cd,\n");
155 sqlBuilder.append(" SUM(bcaf.appt_rqcsf_fte_qty),\n");
156 sqlBuilder.append(" SUM(bcaf.appt_rqst_fte_qty)\n");
157 sqlBuilder.append(" FROM LD_BCN_SUBFUND_PICK_T pick,\n");
158 sqlBuilder.append(" LD_BCN_CTRL_LIST_T ctrl,\n");
159 sqlBuilder.append(" LD_PNDBC_APPTFND_T bcaf,\n");
160 sqlBuilder.append(" CA_OBJECT_CODE_T objt,\n");
161 sqlBuilder.append(" CA_OBJ_LEVEL_T objl\n");
162 sqlBuilder.append(" WHERE pick.person_unvl_id = ?\n");
163 sqlBuilder.append(" AND pick.report_flag > 0\n");
164 sqlBuilder.append(" AND pick.sub_fund_grp_cd = ctrl.sel_sub_fund_grp\n");
165 sqlBuilder.append(" AND pick.person_unvl_id = ctrl.person_unvl_id\n");
166 sqlBuilder.append(" AND bcaf.univ_fiscal_yr = ctrl.univ_fiscal_yr\n");
167 sqlBuilder.append(" AND bcaf.fin_coa_cd = ctrl.fin_coa_cd\n");
168 sqlBuilder.append(" AND bcaf.account_nbr = ctrl.account_nbr\n");
169 sqlBuilder.append(" AND bcaf.sub_acct_nbr = ctrl.sub_acct_nbr\n");
170 sqlBuilder.append(" AND objt.univ_fiscal_yr = ctrl.univ_fiscal_yr\n");
171 sqlBuilder.append(" AND objt.fin_coa_cd = ctrl.fin_coa_cd\n");
172 sqlBuilder.append(" AND objt.fin_object_cd = bcaf.fin_object_cd\n");
173 sqlBuilder.append(" AND objl.fin_coa_cd = objt.fin_coa_cd\n");
174 sqlBuilder.append(" AND objl.fin_obj_level_cd = objt.fin_obj_level_cd\n");
175 sqlBuilder.append(" GROUP BY ctrl.sel_org_fin_coa,\n");
176 sqlBuilder.append(" ctrl.sel_org_cd,\n");
177 sqlBuilder.append(" ctrl.sel_sub_fund_grp,\n");
178 sqlBuilder.append(" ctrl.fin_coa_cd,\n");
179 sqlBuilder.append(" objl.fin_cons_obj_cd,\n");
180 sqlBuilder.append(" objt.fin_obj_level_cd,\n");
181 sqlBuilder.append(" bcaf.fin_object_cd)");
182 objectSummarySql.add(new SQLForStep(sqlBuilder));
183 sqlBuilder.delete(0,sqlBuilder.length());
184
185
186 sqlBuilder.append("UPDATE LD_BCN_OBJT_SUMM_T\n");
187 sqlBuilder.append("SET appt_rqcsf_fte_qty =\n");
188 sqlBuilder.append(" (SELECT SUM(fq.appt_rqcsf_fte_qty)\n");
189 sqlBuilder.append(" FROM LD_BCN_BUILD_OBJTSUMM01_MT fq\n");
190 sqlBuilder.append(" WHERE LD_BCN_OBJT_SUMM_T.PERSON_UNVL_ID = ?\n");
191 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_FIN_COA_CD = fq.org_fin_coa_cd\n");
192 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_CD = fq.org_cd\n");
193 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.SUB_FUND_GRP_CD = fq.sub_fund_grp_cd\n");
194 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_COA_CD = fq.fin_coa_cd\n");
195 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.INC_EXP_CD = fq.inc_exp_cd\n");
196 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_CONS_OBJ_CD = fq.fin_cons_obj_cd\n");
197 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJ_LEVEL_CD = fq.fin_obj_level_cd\n");
198 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJECT_CD = fq.fin_object_cd\n");
199 sqlBuilder.append(" AND fq.sesid = ?),\n");
200 sqlBuilder.append(" appt_rqst_fte_qty =\n");
201 sqlBuilder.append(" (SELECT SUM(fq.appt_rqst_fte_qty)\n");
202 sqlBuilder.append(" FROM LD_BCN_BUILD_OBJTSUMM01_MT fq\n");
203 sqlBuilder.append(" WHERE LD_BCN_OBJT_SUMM_T.PERSON_UNVL_ID = ?\n");
204 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_FIN_COA_CD = fq.org_fin_coa_cd\n");
205 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_CD = fq.org_cd\n");
206 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.SUB_FUND_GRP_CD = fq.sub_fund_grp_cd\n");
207 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_COA_CD = fq.fin_coa_cd\n");
208 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.INC_EXP_CD = fq.inc_exp_cd\n");
209 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_CONS_OBJ_CD = fq.fin_cons_obj_cd\n");
210 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJ_LEVEL_CD = fq.fin_obj_level_cd\n");
211 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJECT_CD = fq.fin_object_cd\n");
212 sqlBuilder.append(" AND fq.sesid = ?)\n");
213 sqlBuilder.append("WHERE LD_BCN_OBJT_SUMM_T.PERSON_UNVL_ID = ?\n");
214 sqlBuilder.append(" AND EXISTS (SELECT 1\n");
215 sqlBuilder.append(" FROM LD_BCN_BUILD_OBJTSUMM01_MT fq2\n");
216 sqlBuilder.append(" WHERE LD_BCN_OBJT_SUMM_T.PERSON_UNVL_ID = ?\n");
217 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_FIN_COA_CD = fq2.org_fin_coa_cd\n");
218 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_CD = fq2.org_cd\n");
219 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.SUB_FUND_GRP_CD = fq2.sub_fund_grp_cd\n");
220 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_COA_CD = fq2.fin_coa_cd\n");
221 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.INC_EXP_CD = fq2.inc_exp_cd\n");
222 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_CONS_OBJ_CD = fq2.fin_cons_obj_cd\n");
223 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJ_LEVEL_CD = fq2.fin_obj_level_cd\n");
224 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJECT_CD = fq2.fin_object_cd\n");
225 sqlBuilder.append(" AND fq2.sesid = ?)");
226
227 objectSummarySql.add(new SQLForStep(sqlBuilder));
228 sqlBuilder.delete(0,sqlBuilder.length());
229
230
231 sqlBuilder.append("INSERT INTO LD_BCN_BUILD_OBJTSUMM02_MT\n");
232 sqlBuilder.append("(SESID, ORG_FIN_COA_CD, ORG_CD, SUB_FUND_GRP_CD, FIN_COA_CD, INC_EXP_CD,\n");
233 sqlBuilder.append(" FIN_CONS_OBJ_CD, FIN_OBJ_LEVEL_CD, FIN_OBJECT_CD, POS_CSF_FNDSTAT_CD,\n");
234 sqlBuilder.append(" POS_CSF_FTE_QTY, POS_CSF_LV_FTE_QTY)\n");
235 sqlBuilder.append("SELECT\n");
236 sqlBuilder.append(" ?,\n");
237 sqlBuilder.append(" ctrl.sel_org_fin_coa,\n");
238 sqlBuilder.append(" ctrl.sel_org_cd,\n");
239 sqlBuilder.append(" ctrl.sel_sub_fund_grp,\n");
240 sqlBuilder.append(" ctrl.fin_coa_cd,\n");
241 sqlBuilder.append(" 'B',\n");
242 sqlBuilder.append(" objl.fin_cons_obj_cd,\n");
243 sqlBuilder.append(" objt.fin_obj_level_cd,\n");
244 sqlBuilder.append(" bcsf.fin_object_cd,\n");
245 sqlBuilder.append(" NULL,\n");
246 sqlBuilder.append(" SUM(bcsf.pos_csf_fte_qty),\n");
247 sqlBuilder.append(" 0\n");
248 sqlBuilder.append("FROM LD_BCN_SUBFUND_PICK_T pick,\n");
249 sqlBuilder.append(" LD_BCN_CTRL_LIST_T ctrl,\n");
250 sqlBuilder.append(" LD_BCN_CSF_TRCKR_T bcsf,\n");
251 sqlBuilder.append(" CA_OBJECT_CODE_T objt,\n");
252 sqlBuilder.append(" CA_OBJ_LEVEL_T objl\n");
253 sqlBuilder.append("WHERE pick.person_unvl_id = ?\n");
254 sqlBuilder.append(" AND pick.report_flag > 0\n");
255 sqlBuilder.append(" AND pick.sub_fund_grp_cd = ctrl.sel_sub_fund_grp\n");
256 sqlBuilder.append(" AND pick.person_unvl_id = ctrl.person_unvl_id\n");
257 sqlBuilder.append(" AND bcsf.univ_fiscal_yr = ctrl.univ_fiscal_yr\n");
258 sqlBuilder.append(" AND bcsf.fin_coa_cd = ctrl.fin_coa_cd\n");
259 sqlBuilder.append(" AND bcsf.account_nbr = ctrl.account_nbr\n");
260 sqlBuilder.append(" AND bcsf.sub_acct_nbr = ctrl.sub_acct_nbr\n");
261 sqlBuilder.append(" AND (bcsf.pos_csf_fndstat_cd <> '");
262
263 insertionPoints.add(sqlBuilder.length());
264 sqlBuilder.append("' OR bcsf.pos_csf_fndstat_cd IS NULL)\n");
265 sqlBuilder.append(" AND objt.univ_fiscal_yr = ctrl.univ_fiscal_yr\n");
266 sqlBuilder.append(" AND objt.fin_coa_cd = ctrl.fin_coa_cd\n");
267 sqlBuilder.append(" AND objt.fin_object_cd = bcsf.fin_object_cd\n");
268 sqlBuilder.append(" AND objl.fin_coa_cd = objt.fin_coa_cd\n");
269 sqlBuilder.append(" AND objl.fin_obj_level_cd = objt.fin_obj_level_cd\n");
270 sqlBuilder.append("GROUP BY ctrl.sel_org_fin_coa,\n");
271 sqlBuilder.append(" ctrl.sel_org_cd,\n");
272 sqlBuilder.append(" ctrl.sel_sub_fund_grp,\n");
273 sqlBuilder.append(" ctrl.fin_coa_cd,\n");
274 sqlBuilder.append(" objl.fin_cons_obj_cd,\n");
275 sqlBuilder.append(" objt.fin_obj_level_cd,\n");
276 sqlBuilder.append(" bcsf.fin_object_cd\n");
277 sqlBuilder.append("UNION ALL\n");
278 sqlBuilder.append("SELECT\n");
279 sqlBuilder.append("?,\n");
280 sqlBuilder.append("ctrl.sel_org_fin_coa,\n");
281 sqlBuilder.append("ctrl.sel_org_cd,\n");
282 sqlBuilder.append("ctrl.sel_sub_fund_grp,\n");
283 sqlBuilder.append("ctrl.fin_coa_cd,\n");
284 sqlBuilder.append("'B',\n");
285 sqlBuilder.append("objl.fin_cons_obj_cd,\n");
286 sqlBuilder.append("objt.fin_obj_level_cd,\n");
287 sqlBuilder.append("bcsf.fin_object_cd,\n");
288 sqlBuilder.append("'");
289
290 insertionPoints.add(sqlBuilder.length());
291 sqlBuilder.append("',\n");
292 sqlBuilder.append("0,\n");
293 sqlBuilder.append(" SUM(bcsf.pos_csf_fte_qty)\n");
294 sqlBuilder.append("FROM LD_BCN_SUBFUND_PICK_T pick,\n");
295 sqlBuilder.append(" LD_BCN_CTRL_LIST_T ctrl,\n");
296 sqlBuilder.append(" LD_BCN_CSF_TRCKR_T bcsf,\n");
297 sqlBuilder.append(" CA_OBJECT_CODE_T objt,\n");
298 sqlBuilder.append(" CA_OBJ_LEVEL_T objl\n");
299 sqlBuilder.append("WHERE pick.person_unvl_id = ?\n");
300 sqlBuilder.append(" AND pick.report_flag > 0\n");
301 sqlBuilder.append(" AND pick.sub_fund_grp_cd = ctrl.sel_sub_fund_grp\n");
302 sqlBuilder.append(" AND pick.person_unvl_id = ctrl.person_unvl_id\n");
303 sqlBuilder.append(" AND bcsf.univ_fiscal_yr = ctrl.univ_fiscal_yr\n");
304 sqlBuilder.append(" AND bcsf.fin_coa_cd = ctrl.fin_coa_cd\n");
305 sqlBuilder.append(" AND bcsf.account_nbr = ctrl.account_nbr\n");
306 sqlBuilder.append(" AND bcsf.sub_acct_nbr = ctrl.sub_acct_nbr\n");
307 sqlBuilder.append(" AND bcsf.pos_csf_fndstat_cd = '");
308
309 insertionPoints.add(sqlBuilder.length());
310 sqlBuilder.append("'\n");
311 sqlBuilder.append(" AND objt.univ_fiscal_yr = ctrl.univ_fiscal_yr\n");
312 sqlBuilder.append(" AND objt.fin_coa_cd = ctrl.fin_coa_cd\n");
313 sqlBuilder.append(" AND objt.fin_object_cd = bcsf.fin_object_cd\n");
314 sqlBuilder.append(" AND objl.fin_coa_cd = objt.fin_coa_cd\n");
315 sqlBuilder.append(" AND objl.fin_obj_level_cd = objt.fin_obj_level_cd\n");
316 sqlBuilder.append("GROUP BY ctrl.sel_org_fin_coa,\n");
317 sqlBuilder.append(" ctrl.sel_org_cd,\n");
318 sqlBuilder.append(" ctrl.sel_sub_fund_grp,\n");
319 sqlBuilder.append(" ctrl.fin_coa_cd,\n");
320 sqlBuilder.append(" objl.fin_cons_obj_cd,\n");
321 sqlBuilder.append(" objt.fin_obj_level_cd,\n");
322 sqlBuilder.append(" bcsf.fin_object_cd\n");
323
324 objectSummarySql.add(new SQLForStep(sqlBuilder,insertionPoints));
325 sqlBuilder.delete(0,sqlBuilder.length());
326 insertionPoints.clear();
327
328
329 sqlBuilder.append("UPDATE LD_BCN_OBJT_SUMM_T\n");
330 sqlBuilder.append("SET LD_BCN_OBJT_SUMM_T.POS_CSF_FTE_QTY =\n");
331 sqlBuilder.append(" (SELECT SUM(fq.pos_csf_fte_qty)\n");
332 sqlBuilder.append(" FROM LD_BCN_BUILD_OBJTSUMM02_MT fq\n");
333 sqlBuilder.append(" WHERE LD_BCN_OBJT_SUMM_T.PERSON_UNVL_ID = ?\n");
334 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_FIN_COA_CD = fq.org_fin_coa_cd\n");
335 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_CD = fq.org_cd\n");
336 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.SUB_FUND_GRP_CD = fq.sub_fund_grp_cd\n");
337 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_COA_CD = fq.fin_coa_cd\n");
338 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.INC_EXP_CD = fq.inc_exp_cd\n");
339 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_CONS_OBJ_CD = fq.fin_cons_obj_cd\n");
340 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJ_LEVEL_CD = fq.fin_obj_level_cd\n");
341 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJECT_CD = fq.fin_object_cd\n");
342 sqlBuilder.append(" AND fq.sesid = ?),\n");
343 sqlBuilder.append(" LD_BCN_OBJT_SUMM_T.POS_CSF_LV_FTE_QTY =\n");
344 sqlBuilder.append(" (SELECT SUM(fq.pos_csf_lv_fte_qty)\n");
345 sqlBuilder.append(" FROM LD_BCN_BUILD_OBJTSUMM02_MT fq\n");
346 sqlBuilder.append(" WHERE LD_BCN_OBJT_SUMM_T.PERSON_UNVL_ID = ?\n");
347 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_FIN_COA_CD = fq.org_fin_coa_cd\n");
348 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_CD = fq.org_cd\n");
349 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.SUB_FUND_GRP_CD = fq.sub_fund_grp_cd\n");
350 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_COA_CD = fq.fin_coa_cd\n");
351 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.INC_EXP_CD = fq.inc_exp_cd\n");
352 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_CONS_OBJ_CD = fq.fin_cons_obj_cd\n");
353 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJ_LEVEL_CD = fq.fin_obj_level_cd\n");
354 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJECT_CD = fq.fin_object_cd\n");
355 sqlBuilder.append(" AND fq.sesid = ?)\n");
356 sqlBuilder.append(" WHERE LD_BCN_OBJT_SUMM_T.PERSON_UNVL_ID = ?\n");
357 sqlBuilder.append(" AND EXISTS (SELECT 1\n");
358 sqlBuilder.append(" FROM LD_BCN_BUILD_OBJTSUMM02_MT fq2\n");
359 sqlBuilder.append(" WHERE LD_BCN_OBJT_SUMM_T.PERSON_UNVL_ID = ?\n");
360 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_FIN_COA_CD = fq2.org_fin_coa_cd\n");
361 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.ORG_CD = fq2.org_cd\n");
362 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.SUB_FUND_GRP_CD = fq2.sub_fund_grp_cd\n");
363 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_COA_CD = fq2.fin_coa_cd\n");
364 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.INC_EXP_CD = fq2.inc_exp_cd\n");
365 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_CONS_OBJ_CD = fq2.fin_cons_obj_cd\n");
366 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJ_LEVEL_CD = fq2.fin_obj_level_cd\n");
367 sqlBuilder.append(" AND LD_BCN_OBJT_SUMM_T.FIN_OBJECT_CD = fq2.fin_object_cd\n");
368 sqlBuilder.append(" AND fq2.sesid = ?)");
369
370 objectSummarySql.add(new SQLForStep(sqlBuilder));
371 sqlBuilder.delete(0, sqlBuilder.length());
372
373
374 }
375
376
377
378
379 @Override
380 public void cleanGeneralLedgerObjectSummaryTable(String principalName) {
381 this.clearTempTableByUnvlId("LD_BCN_OBJT_SUMM_T", "PERSON_UNVL_ID", principalName);
382 }
383
384
385
386
387
388 @Override
389 public void updateGeneralLedgerObjectSummaryTable(String principalName, String revenueINList, String expenditureINList) {
390 String idForSession = java.util.UUID.randomUUID().toString();
391 ArrayList<String> inLists = new ArrayList<String>(2);
392 inLists.add(revenueINList);
393 inLists.add(expenditureINList);
394
395
396 cleanGeneralLedgerObjectSummaryTable(principalName);
397
398
399 getSimpleJdbcTemplate().update(objectSummarySql.get(0).getSQL(inLists), principalName, principalName, principalName, principalName);
400
401
402 getSimpleJdbcTemplate().update(objectSummarySql.get(1).getSQL(), idForSession, principalName);
403
404
405 getSimpleJdbcTemplate().update(objectSummarySql.get(2).getSQL(), principalName, idForSession, principalName, idForSession, principalName, principalName, idForSession);
406
407
408 ArrayList<String> csfLeaveIndicator = new ArrayList<String>(3);
409 csfLeaveIndicator.add(BCConstants.csfFundingStatusFlag.LEAVE.getFlagValue());
410 csfLeaveIndicator.add(BCConstants.csfFundingStatusFlag.LEAVE.getFlagValue());
411 csfLeaveIndicator.add(BCConstants.csfFundingStatusFlag.LEAVE.getFlagValue());
412 getSimpleJdbcTemplate().update(objectSummarySql.get(3).getSQL(csfLeaveIndicator), idForSession, principalName, idForSession, principalName);
413
414
415 getSimpleJdbcTemplate().update(objectSummarySql.get(4).getSQL(), principalName, idForSession, principalName, idForSession, principalName, principalName, idForSession);
416
417
418 this.clearTempTableBySesId("LD_BCN_BUILD_OBJTSUMM01_MT", "SESID", idForSession);
419 this.clearTempTableBySesId("LD_BCN_BUILD_OBJTSUMM02_MT", "SESID", idForSession);
420
421 }
422
423 }