[Home] [Help]
PACKAGE BODY: APPS.PA_FORECAST_DTLS_PKG
Source
1 PACKAGE BODY PA_FORECAST_DTLS_PKG as
2 --/* $Header: PARFFIDB.pls 120.1 2005/08/19 16:51:13 mwasowic noship $ */
3
4 l_empty_tab_record EXCEPTION; -- Variable to raise the exception if the passing table of records is empty
5
6 -- This procedure will insert the record in pa_forecast_items table
7 -- Input parameters
8 -- Parameters Type Required Description
9 -- P_Forecast_Dtls_Tab FIDtlTabTyp YES It contains the forecast items record for details
10 --
11
12 PROCEDURE insert_rows ( p_forecast_dtls_tab IN PA_FORECAST_GLOB.FIDtlTabTyp,
13 x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
14 x_msg_count OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
15 x_msg_data OUT NOCOPY VARCHAR2 ) --File.Sql.39 bug 4440895
16 IS
17
18 l_forecast_item_id PA_PLSQL_DATATYPES.IdTabTyp;
19 l_amount_type_id PA_PLSQL_DATATYPES.IdTabTyp;
20 l_line_num PA_PLSQL_DATATYPES.NumTabTyp;
21 l_resource_type_code PA_PLSQL_DATATYPES.Char30TabTyp;
22 l_person_billable_flag PA_PLSQL_DATATYPES.Char1TabTyp;
23 l_item_date PA_PLSQL_DATATYPES.DateTabTyp;
24 l_item_uom PA_PLSQL_DATATYPES.Char30TabTyp;
25 l_item_quantity PA_PLSQL_DATATYPES.NumTabTyp;
26 l_expenditure_org_id PA_PLSQL_DATATYPES.IdTabTyp;
27 l_project_org_id PA_PLSQL_DATATYPES.IdTabTyp;
28 l_PJI_SUMMARIZED_FLAG PA_PLSQL_DATATYPES.Char1TabTyp;
29 l_CAPACITY_QUANTITY PA_PLSQL_DATATYPES.NumTabTyp;
30 l_OVERCOMMITMENT_QTY PA_PLSQL_DATATYPES.NumTabTyp;
31 l_OVERPROVISIONAL_QTY PA_PLSQL_DATATYPES.NumTabTyp;
32 l_OVER_PROV_CONF_QTY PA_PLSQL_DATATYPES.NumTabTyp;
33 l_CONFIRMED_QTY PA_PLSQL_DATATYPES.NumTabTyp;
34 l_PROVISIONAL_QTY PA_PLSQL_DATATYPES.NumTabTyp;
35 l_JOB_ID PA_PLSQL_DATATYPES.NumTabTyp;
36 l_PROJECT_ID PA_PLSQL_DATATYPES.NumTabTyp;
37 l_RESOURCE_ID PA_PLSQL_DATATYPES.NumTabTyp;
38 l_EXPENDITURE_ORGANIZATION_ID PA_PLSQL_DATATYPES.NumTabTyp;
39 l_pvdr_acct_curr_code PA_PLSQL_DATATYPES.Char30TabTyp;
40 l_pvdr_acct_amount PA_PLSQL_DATATYPES.NumTabTyp;
41 l_rcvr_acct_curr_code PA_PLSQL_DATATYPES.Char30TabTyp;
42 l_rcvr_acct_amount PA_PLSQL_DATATYPES.NumTabTyp;
43 l_proj_currency_code PA_PLSQL_DATATYPES.Char30TabTyp;
44 l_proj_amount PA_PLSQL_DATATYPES.NumTabTyp;
45 l_denom_currency_code PA_PLSQL_DATATYPES.Char30TabTyp;
46 l_denom_amount PA_PLSQL_DATATYPES.NumTabTyp;
47 l_tp_amount_type PA_PLSQL_DATATYPES.Char30TabTyp;
48 l_billable_flag PA_PLSQL_DATATYPES.Char1TabTyp;
49 l_forecast_summarized_code PA_PLSQL_DATATYPES.Char30TabTyp;
50 l_util_summarized_code PA_PLSQL_DATATYPES.Char30TabTyp;
51 l_work_type_id PA_PLSQL_DATATYPES.IdTabTyp;
52 l_resource_util_category_id PA_PLSQL_DATATYPES.IdTabTyp;
53 l_org_util_category_id PA_PLSQL_DATATYPES.IdTabTyp;
54 l_resource_util_weighted PA_PLSQL_DATATYPES.NumTabTyp;
55 l_org_util_weighted PA_PLSQL_DATATYPES.NumTabTyp;
56 l_provisional_flag PA_PLSQL_DATATYPES.Char1TabTyp;
57 l_reversed_flag PA_PLSQL_DATATYPES.Char1TabTyp;
58 l_net_zero_flag PA_PLSQL_DATATYPES.Char1TabTyp;
59 l_reduce_capacity_flag PA_PLSQL_DATATYPES.Char1TabTyp;
60 l_line_num_reversed PA_PLSQL_DATATYPES.NumTabTyp;
61
62
63 BEGIN
64 PA_DEBUG.Init_err_stack( 'PA_FORECAST_DTLS_PKG.Insert_Rows');
65 x_return_status := FND_API.G_RET_STS_SUCCESS;
66
67 /* Checking for the empty table of record */
68 IF (p_forecast_dtls_tab.count = 0 ) THEN
69 PA_FORECAST_ITEMS_UTILS.log_message('count 0 ... before return ... ');
70 RAISE l_empty_tab_record;
71 END IF;
72
73 PA_FORECAST_ITEMS_UTILS.log_message('start of the forecast inser row .... ');
74
75 FOR l_J IN p_forecast_dtls_tab.FIRST..p_forecast_dtls_tab.LAST LOOP
76 l_forecast_item_id(l_j) := p_forecast_dtls_tab(l_j).forecast_item_id;
77 l_amount_type_id(l_j) := p_forecast_dtls_tab(l_j).amount_type_id;
78 l_line_num(l_j) := p_forecast_dtls_tab(l_j).line_num;
79 l_resource_type_code(l_j) := p_forecast_dtls_tab(l_j).resource_type_code;
80 l_person_billable_flag(l_j) := p_forecast_dtls_tab(l_j).person_billable_flag;
81 l_item_uom(l_j) := p_forecast_dtls_tab(l_j).item_uom;
82 l_item_date(l_j) := p_forecast_dtls_tab(l_j).item_date;
83 l_item_quantity(l_j) := p_forecast_dtls_tab(l_j).item_quantity;
84 l_expenditure_org_id(l_j) := p_forecast_dtls_tab(l_j).expenditure_org_id;
85 l_project_org_id(l_j) := p_forecast_dtls_tab(l_j).project_org_id;
86 l_PJI_SUMMARIZED_FLAG(l_j) := p_forecast_dtls_tab(l_j).PJI_SUMMARIZED_FLAG;
87 l_CAPACITY_QUANTITY(l_j) := p_forecast_dtls_tab(l_j).CAPACITY_QUANTITY;
88 l_OVERCOMMITMENT_QTY(l_j) := p_forecast_dtls_tab(l_j).OVERCOMMITMENT_QTY;
89 l_OVERPROVISIONAL_QTY(l_j) := p_forecast_dtls_tab(l_j).OVERPROVISIONAL_QTY;
90 l_OVER_PROV_CONF_QTY(l_j) := p_forecast_dtls_tab(l_j).OVER_PROV_CONF_QTY;
91 l_CONFIRMED_QTY(l_j) := p_forecast_dtls_tab(l_j).CONFIRMED_QTY;
92 l_PROVISIONAL_QTY(l_j) := p_forecast_dtls_tab(l_j).PROVISIONAL_QTY;
93 l_JOB_ID(l_j) := p_forecast_dtls_tab(l_j).JOB_ID;
94 l_PROJECT_ID(l_j) := p_forecast_dtls_tab(l_j).PROJECT_ID;
95 l_RESOURCE_ID(l_j) := p_forecast_dtls_tab(l_j).RESOURCE_ID;
96 l_EXPENDITURE_ORGANIZATION_ID(l_j) := p_forecast_dtls_tab(l_j).EXPENDITURE_ORGANIZATION_ID;
97 l_pvdr_acct_curr_code(l_j) := p_forecast_dtls_tab(l_j).pvdr_acct_curr_code;
98 l_pvdr_acct_amount(l_j) := p_forecast_dtls_tab(l_j).pvdr_acct_amount;
99 l_rcvr_acct_curr_code(l_j) := p_forecast_dtls_tab(l_j).rcvr_acct_curr_code;
100 l_rcvr_acct_amount(l_j) := p_forecast_dtls_tab(l_j).rcvr_acct_amount;
101 l_proj_currency_code(l_j) := p_forecast_dtls_tab(l_j).proj_currency_code;
102 l_proj_amount(l_j) := p_forecast_dtls_tab(l_j).proj_amount;
103 l_denom_currency_code(l_j) := p_forecast_dtls_tab(l_j).denom_currency_code;
104 l_denom_amount(l_j) := p_forecast_dtls_tab(l_j).denom_amount;
105 l_tp_amount_type(l_j) := p_forecast_dtls_tab(l_j).tp_amount_type;
106 l_billable_flag(l_j) := p_forecast_dtls_tab(l_j).billable_flag;
107 l_forecast_summarized_code(l_j) := p_forecast_dtls_tab(l_j).forecast_summarized_code;
108 l_util_summarized_code(l_j) := p_forecast_dtls_tab(l_j).util_summarized_code;
109 l_work_type_id(l_j) := p_forecast_dtls_tab(l_j).work_type_id;
110 l_resource_util_category_id(l_j) := p_forecast_dtls_tab(l_j).resource_util_category_id;
111 l_org_util_category_id(l_j) := p_forecast_dtls_tab(l_j).org_util_category_id;
112 l_resource_util_weighted(l_j) := p_forecast_dtls_tab(l_j).resource_util_weighted;
113 l_org_util_weighted(l_j) := p_forecast_dtls_tab(l_j).org_util_weighted;
114 l_provisional_flag(l_j) := p_forecast_dtls_tab(l_j).provisional_flag;
115 l_reversed_flag(l_j) := p_forecast_dtls_tab(l_j).reversed_flag;
116 l_net_zero_flag(l_j) := p_forecast_dtls_tab(l_j).net_zero_flag;
117 l_reduce_capacity_flag(l_j) := p_forecast_dtls_tab(l_j).reduce_capacity_flag;
118 l_line_num_reversed(l_j) := p_forecast_dtls_tab(l_j).line_num_reversed;
119
120 END LOOP;
121
122 FORALL l_J IN p_forecast_dtls_tab.FIRST..p_forecast_dtls_tab.LAST
123 INSERT INTO PA_FORECAST_ITEM_DETAILS
124 (
125 forecast_item_id ,
126 amount_type_id ,
127 line_num ,
128 resource_type_code ,
129 person_billable_flag ,
130 item_uom ,
131 item_date ,
132 item_quantity ,
133 expenditure_org_id ,
134 project_org_id ,
135 PJI_SUMMARIZED_FLAG ,
136 CAPACITY_QUANTITY ,
137 OVERCOMMITMENT_QTY ,
138 OVERPROVISIONAL_QTY ,
139 OVER_PROV_CONF_QTY ,
140 CONFIRMED_QTY ,
141 PROVISIONAL_QTY ,
142 JOB_ID ,
143 PROJECT_ID ,
144 RESOURCE_ID ,
145 EXPENDITURE_ORGANIZATION_ID ,
146 pvdr_acct_curr_code ,
147 pvdr_acct_amount ,
148 rcvr_acct_curr_code ,
149 rcvr_acct_amount ,
150 proj_currency_code ,
151 proj_amount ,
152 denom_currency_code ,
153 denom_amount ,
154 tp_amount_type ,
155 billable_flag ,
156 forecast_summarized_code ,
157 util_summarized_code ,
158 work_type_id ,
159 resource_util_category_id ,
160 org_util_category_id ,
161 resource_util_weighted ,
162 org_util_weighted ,
163 provisional_flag ,
164 reversed_flag ,
165 net_zero_flag ,
166 reduce_capacity_flag ,
167 line_num_reversed ,
168 creation_date ,
169 created_by ,
170 last_update_date ,
171 last_updated_by ,
172 last_update_login ,
173 request_id ,
174 program_application_id ,
175 program_id ,
176 program_update_date )
177 -- Start Bug 2592045: Need to select expenditure_organization_id from pa_forecast_items table
178 select
179 -- End Bug 2592045
180 l_forecast_item_id(l_j) ,
181 l_amount_type_id(l_j) ,
182 l_line_num(l_j) ,
183 l_resource_type_code(l_j) ,
184 l_person_billable_flag(l_j) ,
185 l_item_uom(l_j) ,
186 l_item_date(l_j) ,
187 l_item_quantity(l_j) ,
188 l_expenditure_org_id(l_j) ,
189 l_project_org_id(l_j) ,
190 l_PJI_SUMMARIZED_FLAG(l_j) ,
191 l_CAPACITY_QUANTITY(l_j) ,
192 l_OVERCOMMITMENT_QTY(l_j) ,
193 l_OVERPROVISIONAL_QTY(l_j) ,
194 l_OVER_PROV_CONF_QTY(l_j) ,
195 l_CONFIRMED_QTY(l_j) ,
196 l_PROVISIONAL_QTY(l_j) ,
197 l_JOB_ID(l_j) ,
198 l_PROJECT_ID(l_j) ,
199 l_RESOURCE_ID(l_j) ,
200 -- Start Bug 2592045: Need to select expenditure_organization_id from pa_forecast_items table
201 expenditure_organization_id,
202 --l_EXPENDITURE_ORGANIZATION_ID(l_j) ,
203 -- End Bug 2592045
204 l_pvdr_acct_curr_code(l_j) ,
205 l_pvdr_acct_amount(l_j) ,
206 l_rcvr_acct_curr_code(l_j) ,
207 l_rcvr_acct_amount(l_j) ,
208 l_proj_currency_code(l_j) ,
209 l_proj_amount(l_j) ,
210 l_denom_currency_code(l_j) ,
211 l_denom_amount(l_j) ,
212 l_tp_amount_type(l_j) ,
213 l_billable_flag(l_j) ,
214 l_forecast_summarized_code(l_j) ,
215 l_util_summarized_code(l_j) ,
216 l_work_type_id(l_j) ,
217 l_resource_util_category_id(l_j) ,
218 l_org_util_category_id(l_j) ,
219 l_resource_util_weighted(l_j) ,
220 l_org_util_weighted(l_j) ,
221 l_provisional_flag(l_j) ,
222 l_reversed_flag(l_j) ,
223 l_net_zero_flag(l_j) ,
224 l_reduce_capacity_flag(l_j) ,
225 l_line_num_reversed(l_j) ,
226 sysdate ,
227 fnd_global.user_id ,
228 sysdate ,
229 fnd_global.user_id ,
230 fnd_global.login_id ,
231 fnd_global.conc_request_id() ,
232 fnd_global.prog_appl_id () ,
233 fnd_global.conc_program_id() ,
234 trunc(sysdate)
235 -- Start Bug 2592045: Finish select statement.
236 from pa_forecast_items fi
237 where fi.forecast_item_id = l_forecast_item_id(l_j);
238 -- End Bug 2592045
239
240 PA_FORECAST_ITEMS_UTILS.log_message('start of the forecast inser row .... ');
241 PA_DEBUG.Reset_Err_Stack;
242 EXCEPTION
243 WHEN l_empty_tab_record THEN
244 NULL;
245 WHEN OTHERS THEN
246 x_msg_count := 1;
247 x_msg_data := SQLERRM;
248 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
249 FND_MSG_PUB.add_exc_msg
250 (p_pkg_name => 'PA_FORECAST_DTLS_PKG.Insert_Rows',
251 p_procedure_name => PA_DEBUG.G_Err_Stack);
252
253 RAISE;
254
255 PA_FORECAST_ITEMS_UTILS.log_message('ERROR ....'||sqlerrm);
256 END insert_rows;
257
258 -- This procedure will update the record in pa_forecast_items table
259 -- Input parameters
260 -- Parameters Type Required Description
261 -- P_Forecast_Dtls_Tab FIHDRTABTYP YES It contains the forecast items record for details
262 --
263 PROCEDURE update_rows ( p_forecast_dtls_tab IN PA_FORECAST_GLOB.FIDtlTabTyp,
264 x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
265 x_msg_count OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
266 x_msg_data OUT NOCOPY VARCHAR2 ) --File.Sql.39 bug 4440895
267
268 IS
269 l_forecast_item_id PA_PLSQL_DATATYPES.IdTabTyp;
270 l_amount_type_id PA_PLSQL_DATATYPES.IdTabTyp;
271 l_line_num PA_PLSQL_DATATYPES.NumTabTyp;
272 l_resource_type_code PA_PLSQL_DATATYPES.Char30TabTyp;
273 l_person_billable_flag PA_PLSQL_DATATYPES.Char1TabTyp;
274 l_item_uom PA_PLSQL_DATATYPES.Char30TabTyp;
275 l_item_date PA_PLSQL_DATATYPES.DateTabTyp;
276 l_item_quantity PA_PLSQL_DATATYPES.NumTabTyp;
277 l_expenditure_org_id PA_PLSQL_DATATYPES.IdTabTyp;
278 l_project_org_id PA_PLSQL_DATATYPES.IdTabTyp;
279 l_PJI_SUMMARIZED_FLAG PA_PLSQL_DATATYPES.Char1TabTyp;
280 l_CAPACITY_QUANTITY PA_PLSQL_DATATYPES.NumTabTyp;
281 l_OVERCOMMITMENT_QTY PA_PLSQL_DATATYPES.NumTabTyp;
282 l_OVERPROVISIONAL_QTY PA_PLSQL_DATATYPES.NumTabTyp;
283 l_OVER_PROV_CONF_QTY PA_PLSQL_DATATYPES.NumTabTyp;
284 l_CONFIRMED_QTY PA_PLSQL_DATATYPES.NumTabTyp;
285 l_PROVISIONAL_QTY PA_PLSQL_DATATYPES.NumTabTyp;
286 l_JOB_ID PA_PLSQL_DATATYPES.NumTabTyp;
287 l_PROJECT_ID PA_PLSQL_DATATYPES.NumTabTyp;
288 l_RESOURCE_ID PA_PLSQL_DATATYPES.NumTabTyp;
289 l_EXPENDITURE_ORGANIZATION_ID PA_PLSQL_DATATYPES.NumTabTyp;
290 l_pvdr_acct_curr_code PA_PLSQL_DATATYPES.Char30TabTyp;
291 l_pvdr_acct_amount PA_PLSQL_DATATYPES.NumTabTyp;
292 l_rcvr_acct_curr_code PA_PLSQL_DATATYPES.Char30TabTyp;
293 l_rcvr_acct_amount PA_PLSQL_DATATYPES.NumTabTyp;
294 l_proj_currency_code PA_PLSQL_DATATYPES.Char30TabTyp;
295 l_proj_amount PA_PLSQL_DATATYPES.NumTabTyp;
296 l_denom_currency_code PA_PLSQL_DATATYPES.Char30TabTyp;
297 l_denom_amount PA_PLSQL_DATATYPES.NumTabTyp;
298 l_tp_amount_type PA_PLSQL_DATATYPES.Char30TabTyp;
299 l_billable_flag PA_PLSQL_DATATYPES.Char1TabTyp;
300 l_forecast_summarized_code PA_PLSQL_DATATYPES.Char30TabTyp;
301 l_util_summarized_code PA_PLSQL_DATATYPES.Char30TabTyp;
302 l_work_type_id PA_PLSQL_DATATYPES.IdTabTyp;
303 l_resource_util_category_id PA_PLSQL_DATATYPES.IdTabTyp;
304 l_org_util_category_id PA_PLSQL_DATATYPES.IdTabTyp;
305 l_resource_util_weighted PA_PLSQL_DATATYPES.NumTabTyp;
306 l_org_util_weighted PA_PLSQL_DATATYPES.NumTabTyp;
307 l_provisional_flag PA_PLSQL_DATATYPES.Char1TabTyp;
308 l_reversed_flag PA_PLSQL_DATATYPES.Char1TabTyp;
309 l_net_zero_flag PA_PLSQL_DATATYPES.Char1TabTyp;
310 l_reduce_capacity_flag PA_PLSQL_DATATYPES.Char1TabTyp;
311 l_line_num_reversed PA_PLSQL_DATATYPES.NumTabTyp;
312
313
314 BEGIN
315
316 PA_DEBUG.Init_err_stack( 'PA_FORECAST_DTLS_PKG.Update_Rows');
317 x_return_status := FND_API.G_RET_STS_SUCCESS;
318
319 /* Checking for the empty table of record */
320 IF (p_forecast_dtls_tab.count = 0 ) THEN
321 PA_FORECAST_ITEMS_UTILS.log_message('count 0 ... before return ... ');
322 RAISE l_empty_tab_record;
323 END IF;
324
325 PA_FORECAST_ITEMS_UTILS.log_message('start of the forecast inser row .... ');
326
327 FOR l_j IN p_forecast_dtls_tab.FIRST..p_forecast_dtls_tab.LAST LOOP
328 l_forecast_item_id(l_j) := p_forecast_dtls_tab(l_j).forecast_item_id;
329 l_amount_type_id(l_j) := p_forecast_dtls_tab(l_j).amount_type_id;
330 l_line_num(l_j) := p_forecast_dtls_tab(l_j).line_num;
331 l_resource_type_code(l_j) := p_forecast_dtls_tab(l_j).resource_type_code;
332 l_person_billable_flag(l_j) := p_forecast_dtls_tab(l_j).person_billable_flag;
333 l_item_uom(l_j) := p_forecast_dtls_tab(l_j).item_uom;
334 l_item_date(l_j) := p_forecast_dtls_tab(l_j).item_date;
335 l_item_quantity(l_j) := p_forecast_dtls_tab(l_j).item_quantity;
336 l_expenditure_org_id(l_j) := p_forecast_dtls_tab(l_j).expenditure_org_id;
337 l_project_org_id(l_j) := p_forecast_dtls_tab(l_j).project_org_id;
338 l_PJI_SUMMARIZED_FLAG(l_j) := p_forecast_dtls_tab(l_j).PJI_SUMMARIZED_FLAG;
339 l_CAPACITY_QUANTITY(l_j) := p_forecast_dtls_tab(l_j).CAPACITY_QUANTITY;
340 l_OVERCOMMITMENT_QTY(l_j) := p_forecast_dtls_tab(l_j).OVERCOMMITMENT_QTY;
341 l_OVERPROVISIONAL_QTY(l_j) := p_forecast_dtls_tab(l_j).OVERPROVISIONAL_QTY;
342 l_OVER_PROV_CONF_QTY(l_j) := p_forecast_dtls_tab(l_j).OVER_PROV_CONF_QTY;
343 l_CONFIRMED_QTY(l_j) := p_forecast_dtls_tab(l_j).CONFIRMED_QTY;
344 l_PROVISIONAL_QTY(l_j) := p_forecast_dtls_tab(l_j).PROVISIONAL_QTY;
345 l_JOB_ID(l_j) := p_forecast_dtls_tab(l_j).JOB_ID;
346 l_PROJECT_ID(l_j) := p_forecast_dtls_tab(l_j).PROJECT_ID;
347 l_RESOURCE_ID(l_j) := p_forecast_dtls_tab(l_j).RESOURCE_ID;
348 l_EXPENDITURE_ORGANIZATION_ID(l_j) := p_forecast_dtls_tab(l_j).EXPENDITURE_ORGANIZATION_ID;
349 l_pvdr_acct_curr_code(l_j) := p_forecast_dtls_tab(l_j).pvdr_acct_curr_code;
350 l_pvdr_acct_amount(l_j) := p_forecast_dtls_tab(l_j).pvdr_acct_amount;
351 l_rcvr_acct_curr_code(l_j) := p_forecast_dtls_tab(l_j).rcvr_acct_curr_code;
352 l_rcvr_acct_amount(l_j) := p_forecast_dtls_tab(l_j).rcvr_acct_amount;
353 l_proj_currency_code(l_j) := p_forecast_dtls_tab(l_j).proj_currency_code;
354 l_proj_amount(l_j) := p_forecast_dtls_tab(l_j).proj_amount;
355 l_denom_currency_code(l_j) := p_forecast_dtls_tab(l_j).denom_currency_code;
356 l_denom_amount(l_j) := p_forecast_dtls_tab(l_j).denom_amount;
357 l_tp_amount_type(l_j) := p_forecast_dtls_tab(l_j).tp_amount_type;
358 l_billable_flag(l_j) := p_forecast_dtls_tab(l_j).billable_flag;
359 l_forecast_summarized_code(l_j) := p_forecast_dtls_tab(l_j).forecast_summarized_code;
360 l_util_summarized_code(l_j) := p_forecast_dtls_tab(l_j).util_summarized_code;
361 l_work_type_id(l_j) := p_forecast_dtls_tab(l_j).work_type_id;
362 l_resource_util_category_id(l_j) := p_forecast_dtls_tab(l_j).resource_util_category_id;
363 l_org_util_category_id(l_j) := p_forecast_dtls_tab(l_j).org_util_category_id;
364 l_resource_util_weighted(l_j) := p_forecast_dtls_tab(l_j).resource_util_weighted;
365 l_org_util_weighted(l_j) := p_forecast_dtls_tab(l_j).org_util_weighted;
366 l_provisional_flag(l_j) := p_forecast_dtls_tab(l_j).provisional_flag;
367 l_reversed_flag(l_j) := p_forecast_dtls_tab(l_j).reversed_flag;
368 l_net_zero_flag(l_j) := p_forecast_dtls_tab(l_j).net_zero_flag;
369 l_reduce_capacity_flag(l_j) := p_forecast_dtls_tab(l_j).reduce_capacity_flag;
370 l_line_num_reversed(l_j) := p_forecast_dtls_tab(l_j).line_num_reversed;
371
372 END LOOP;
373
374 FORALL l_J IN p_forecast_dtls_tab.FIRST..p_forecast_dtls_tab.LAST
375 UPDATE PA_FORECAST_ITEM_DETAILS
376 SET
377 forecast_item_id = l_forecast_item_id(l_j) ,
378 amount_type_id = l_amount_type_id(l_j) ,
379 line_num = l_line_num(l_j) ,
380 resource_type_code = l_resource_type_code(l_j) ,
381 person_billable_flag = l_person_billable_flag(l_j) ,
382 item_uom = l_item_uom(l_j) ,
383 item_date = l_item_date(l_j) ,
384 item_quantity = l_item_quantity(l_j) ,
385 expenditure_org_id = l_expenditure_org_id(l_j) ,
386 project_org_id = l_project_org_id(l_j) ,
387 PJI_SUMMARIZED_FLAG = l_PJI_SUMMARIZED_FLAG(l_j) ,
388 CAPACITY_QUANTITY = l_CAPACITY_QUANTITY(l_j) ,
389 OVERCOMMITMENT_QTY = l_OVERCOMMITMENT_QTY(l_j) ,
390 OVERPROVISIONAL_QTY = l_OVERPROVISIONAL_QTY(l_j) ,
391 OVER_PROV_CONF_QTY = l_OVER_PROV_CONF_QTY(l_j) ,
392 CONFIRMED_QTY = l_CONFIRMED_QTY(l_j) ,
393 PROVISIONAL_QTY = l_PROVISIONAL_QTY(l_j) ,
394 JOB_ID = l_JOB_ID(l_j) ,
395 PROJECT_ID = l_PROJECT_ID(l_j) ,
396 RESOURCE_ID = l_RESOURCE_ID(l_j) ,
397 -- Start Bug 2592045
398 --EXPENDITURE_ORGANIZATION_ID = l_EXPENDITURE_ORGANIZATION_ID(l_j) ,
399 EXPENDITURE_ORGANIZATION_ID =
400 (select expenditure_organization_id from pa_forecast_items fi
401 where fi.forecast_item_id = l_forecast_item_id(l_j)),
402 -- End Bug 2592045
403 pvdr_acct_curr_code = l_pvdr_acct_curr_code(l_j) ,
404 pvdr_acct_amount = l_pvdr_acct_amount(l_j) ,
405 rcvr_acct_curr_code = l_rcvr_acct_curr_code(l_j) ,
406 rcvr_acct_amount = l_rcvr_acct_amount(l_j) ,
407 proj_currency_code = l_proj_currency_code(l_j) ,
408 proj_amount = l_proj_amount(l_j) ,
409 denom_currency_code = l_denom_currency_code(l_j) ,
410 denom_amount = l_denom_amount(l_j) ,
411 tp_amount_type = l_tp_amount_type(l_j) ,
412 billable_flag = l_billable_flag(l_j) ,
413 forecast_summarized_code = l_forecast_summarized_code(l_j),
414 util_summarized_code = l_util_summarized_code(l_j) ,
415 work_type_id = l_work_type_id(l_j) ,
416 resource_util_category_id = l_resource_util_category_id(l_j),
417 org_util_category_id = l_org_util_category_id(l_j) ,
418 resource_util_weighted = l_resource_util_weighted(l_j) ,
419 org_util_weighted = l_org_util_weighted(l_j) ,
420 provisional_flag = l_provisional_flag(l_j) ,
421 reversed_flag = l_reversed_flag(l_j) ,
422 reduce_capacity_flag = l_reduce_capacity_flag(l_j) ,
423 net_zero_flag = l_net_zero_flag(l_j) ,
424 line_num_reversed = l_line_num_reversed(l_j) ,
425 last_update_date = sysdate ,
426 last_updated_by = fnd_global.user_id ,
427 last_update_login = fnd_global.login_id
428 WHERE forecast_item_id = l_forecast_item_id(l_j)
429 AND line_num = l_line_num(l_j);
430
431 PA_FORECAST_ITEMS_UTILS.log_message('end of update row .... ');
432 PA_DEBUG.Reset_Err_Stack;
433 EXCEPTION
434 WHEN l_empty_tab_record THEN
435 NULL;
436 WHEN OTHERS THEN
437 x_msg_count := 1;
438 x_msg_data := SQLERRM;
439 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
440 FND_MSG_PUB.add_exc_msg
441 (p_pkg_name => 'PA_FORECAST_DTLS_PKG.Update_Rows',
442 p_procedure_name => PA_DEBUG.G_Err_Stack);
443 RAISE;
444
445 PA_FORECAST_ITEMS_UTILS.log_message('ERROR in update row '||sqlerrm);
446 END update_rows;
447
448 END PA_FORECAST_DTLS_PKG;