1 PACKAGE PA_FP_CALC_PLAN_PKG AUTHID CURRENT_USER AS
2 --$Header: PAFPCALS.pls 120.12.12020000.3 2013/04/19 10:44:14 krkondur ship $
3
4 -- Package level global variables
5 g_spread_from_date DATE;
6 G_populate_mrc_tab_flag VARCHAR2(10) := 'N';
7
8 --For Bug 6722414
9 g_from_etc_client_extn_flag VARCHAR2(1);
10 -- Package variables for PJI reporting APIs
11 /* global system tables declared for calling reporting api at the end */
12 g_rep_budget_line_id_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
13 g_rep_res_assignment_id_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
17 g_rep_txn_curr_code_tab SYSTEM.pa_varchar2_15_tbl_type := SYSTEM.pa_varchar2_15_tbl_type();
14 g_rep_start_date_tab SYSTEM.pa_date_tbl_type := SYSTEM.pa_date_tbl_type();
15 g_rep_end_date_tab SYSTEM.pa_date_tbl_type := SYSTEM.pa_date_tbl_type();
16 g_rep_period_name_tab SYSTEM.pa_varchar2_30_tbl_type := SYSTEM.pa_varchar2_30_tbl_type();
18 g_rep_quantity_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
19 g_rep_txn_raw_cost_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
20 g_rep_txn_burdened_cost_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
21 g_rep_txn_revenue_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
22 g_rep_project_curr_code_tab SYSTEM.pa_varchar2_15_tbl_type := SYSTEM.pa_varchar2_15_tbl_type();
23 g_rep_project_raw_cost_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
24 g_rep_project_burden_cost_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
25 g_rep_project_revenue_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
26 g_rep_projfunc_curr_code_tab SYSTEM.pa_varchar2_15_tbl_type := SYSTEM.pa_varchar2_15_tbl_type();
27 g_rep_projfunc_raw_cost_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
28 g_rep_projfunc_burden_cost_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
29 g_rep_projfunc_revenue_tab SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
30 /*bug fix:5116157 */
31 g_rep_line_mode_tab SYSTEM.pa_varchar2_15_tbl_type := SYSTEM.pa_varchar2_15_tbl_type();
32 g_rep_rate_base_flag_tab SYSTEM.pa_varchar2_15_tbl_type := SYSTEM.pa_varchar2_15_tbl_type();
33
34 /* Initialize reporting tbls */
35 PROCEDURE Init_reporting_Tbls ;
36
37 /* This API calls the PJI reporting procedures to rollup of the budget lines
38 * to the task and project level
39 */
40 PROCEDURE Add_Toreporting_Tabls
41 (p_calling_module IN Varchar2 Default 'CALCULATE_API'
42 ,p_activity_code IN Varchar2 Default 'UPDATE'
43 ,p_budget_version_id IN Number
44 ,p_budget_line_id IN Number
45 ,p_resource_assignment_id IN Number
46 ,p_start_date IN Date
47 ,p_end_date IN Date
48 ,p_period_name IN Varchar2
49 ,p_txn_currency_code IN Varchar2
50 ,p_quantity IN Number
51 ,p_txn_raw_cost IN Number
52 ,p_txn_burdened_cost IN Number
53 ,p_txn_revenue IN Number
54 ,p_project_currency_code IN Varchar2
55 ,p_project_raw_cost IN Number
56 ,p_project_burdened_cost IN Number
57 ,p_project_revenue IN Number
58 ,p_projfunc_currency_code IN Varchar2
59 ,p_projfunc_raw_cost IN Number
60 ,p_projfunc_burdened_cost IN Number
61 ,p_projfunc_revenue IN Number
62 ,p_rep_line_mode IN Varchar2
63 ,x_msg_data OUT NOCOPY Varchar2
64 ,x_return_status OUT NOCOPY Varchar2
65 );
66
67 PROCEDURE delete_budget_lines (p_budget_version_id IN pa_budget_lines.budget_version_id%type
68 ,p_resource_assignment_id IN pa_resource_assignments.resource_assignment_id%TYPE
69 ,p_txn_currency_code IN pa_budget_lines.txn_currency_code%TYPE
70 ,p_line_start_date IN pa_budget_lines.start_date%TYPE
71 ,p_line_end_date IN pa_budget_lines.end_date%TYPE
72 ,p_source_context IN varchar2
73 ,x_return_status OUT NOCOPY VARCHAR2
74 ,x_msg_count OUT NOCOPY NUMBER
75 ,x_msg_data OUT NOCOPY VARCHAR2
76 ,x_num_rowsdeleted OUT NOCOPY NUMBER
77 );
78
79 PROCEDURE chk_req_rate_api_inputs ( p_budget_version_id IN pa_budget_versions.budget_version_id%TYPE
80 ,p_budget_version_type IN pa_budget_versions.version_type%TYPE
81 ,p_person_id IN pa_resource_assignments.person_id%TYPE
82 ,p_job_id IN pa_resource_assignments.job_id%TYPE
83 ,p_resource_class IN pa_resource_assignments.resource_class_code%TYPE
84 ,p_rate_based_flag IN pa_resource_assignments.rate_based_flag%TYPE
85 ,p_uom IN pa_resource_assignments.unit_of_measure%TYPE
86 ,p_quantity IN pa_budget_lines.quantity%TYPE
87 ,p_item_date IN pa_budget_lines.start_date%TYPE
88 ,p_non_labor_resource IN pa_resource_assignments.non_labor_resource%TYPE
89 ,p_expenditure_org_id IN pa_resource_assignments.rate_expenditure_org_id%TYPE
90 ,p_nlr_organization_id IN pa_resource_assignments.organization_id%TYPE
91 ,p_cost_override_rate IN pa_fp_res_assignments_tmp.rw_cost_rate_override%TYPE
95 ,p_raw_revenue IN pa_fp_res_assignments_tmp.txn_revenue%TYPE
92 ,p_revenue_override_rate IN pa_fp_res_assignments_tmp.bill_rate_override%TYPE
93 ,p_raw_cost IN pa_fp_res_assignments_tmp.txn_raw_cost%TYPE
94 ,p_burden_cost IN pa_fp_res_assignments_tmp.txn_burdened_cost%TYPE
96 ,p_override_currency_code IN pa_fp_res_assignments_tmp.txn_currency_code%TYPE
97 ,x_return_status OUT NOCOPY VARCHAR2
98 ,x_msg_count OUT NOCOPY NUMBER
99 ,x_msg_data OUT NOCOPY VARCHAR2
100 );
101
102
103 PROCEDURE populate_rollup_tmp ( p_budget_version_id IN NUMBER
104 ,x_return_status OUT NOCOPY VARCHAR2
105 ,x_msg_count OUT NOCOPY NUMBER
106 ,x_msg_data OUT NOCOPY VARCHAR2);
107
108 -- gboomina for AAI Requirement - Start
109 -- Modifying this procedure to take calling mode as a parameter
110 -- so that this api can be called from Collect actuals flow
111 PROCEDURE rollup_pf_pfc_to_ra ( p_budget_version_id IN NUMBER
112 ,p_calling_module IN VARCHAR2 DEFAULT 'CALCULATE_API'
113 ,x_return_status OUT NOCOPY VARCHAR2
114 ,x_msg_count OUT NOCOPY NUMBER
115 ,x_msg_data OUT NOCOPY VARCHAR2);
116 -- gboomina for AAI Requirement - End
117
118 PROCEDURE rollup_pf_pfc_to_bv ( p_budget_version_id IN pa_budget_versions.budget_version_id%TYPE
119 ,x_return_status OUT NOCOPY VARCHAR2
120 ,x_msg_count OUT NOCOPY NUMBER
121 ,x_msg_data OUT NOCOPY VARCHAR2);
122
123 PROCEDURE convert_ra_txn_currency
124 ( p_budget_version_id IN pa_budget_versions.budget_version_id%TYPE
125 ,p_resource_assignment_id IN pa_resource_assignments.resource_assignment_id%TYPE
126 ,p_txn_currency_code IN pa_budget_lines.txn_currency_code%TYPE
127 ,p_budget_line_id IN pa_budget_lines.budget_line_id%TYPE
128 ,p_txn_raw_cost IN pa_fp_rollup_tmp.txn_raw_cost%TYPE
129 ,p_txn_burdened_cost IN pa_fp_rollup_tmp.txn_burdened_cost%TYPE
130 ,p_txn_revenue IN pa_fp_rollup_tmp.txn_revenue%TYPE
131 ,x_projfunc_currency_code OUT NOCOPY pa_fp_rollup_tmp.projfunc_currency_code%TYPE
132 ,x_projfunc_raw_cost OUT NOCOPY pa_fp_rollup_tmp.projfunc_raw_cost%TYPE
133 ,x_projfunc_burdened_cost OUT NOCOPY pa_fp_rollup_tmp.projfunc_burdened_cost%TYPE
134 ,x_projfunc_revenue OUT NOCOPY pa_fp_rollup_tmp.projfunc_revenue%TYPE
135 ,x_projfunc_rejection_code OUT NOCOPY pa_fp_rollup_tmp.pfc_cur_conv_rejection_code%TYPE
136 ,x_project_currency_code OUT NOCOPY pa_fp_rollup_tmp.project_currency_code%TYPE
137 ,x_project_raw_cost OUT NOCOPY pa_fp_rollup_tmp.project_raw_cost%TYPE
138 ,x_project_burdened_cost OUT NOCOPY pa_fp_rollup_tmp.project_burdened_cost%TYPE
139 ,x_project_revenue OUT NOCOPY pa_fp_rollup_tmp.project_revenue%TYPE
140 ,x_project_rejection_code OUT NOCOPY pa_fp_rollup_tmp.pc_cur_conv_rejection_code%TYPE
141 ,x_return_status OUT NOCOPY VARCHAR2
142 ,x_msg_count OUT NOCOPY NUMBER
143 ,x_msg_data OUT NOCOPY VARCHAR2);
144
145
146 PROCEDURE calculate ( p_project_id IN pa_projects_all.project_id%TYPE
147 ,p_budget_version_id IN pa_budget_versions.budget_version_id%TYPE
148 ,p_refresh_rates_flag IN VARCHAR2 := 'N'
149 ,p_refresh_conv_rates_flag IN VARCHAR2 := 'N'
150 ,p_spread_required_flag IN VARCHAR2 := 'Y'
151 ,p_conv_rates_required_flag IN VARCHAR2 := 'Y'
152 ,p_rollup_required_flag IN VARCHAR2 := 'Y'
153 ,p_mass_adjust_flag IN VARCHAR2 := 'N'
154 ,p_apply_progress_flag IN VARCHAR2 := 'N'
155 ,p_wp_cost_changed_flag IN VARCHAR2 := 'N'
156 ,p_time_phase_changed_flag IN VARCHAR2 := 'N'
157 ,p_quantity_adj_pct IN NUMBER := NULL
158 ,p_cost_rate_adj_pct IN NUMBER := NULL
159 ,p_burdened_rate_adj_pct IN NUMBER := NULL
160 ,p_bill_rate_adj_pct IN NUMBER := NULL
161 ,p_raw_cost_adj_pct IN NUMBER := NULL
162 ,p_burden_cost_adj_pct IN NUMBER := NULL
163 ,p_revenue_adj_pct IN NUMBER := NULL
164 ,p_source_context IN pa_fp_res_assignments_tmp.source_context%TYPE
165 ,p_calling_module IN VARCHAR2 DEFAULT 'UPDATE_PLAN_TRANSACTION'
166 ,p_activity_code IN VARCHAR2 DEFAULT 'CALCULATE'
167 ,p_resource_assignment_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
168 ,p_delete_budget_lines_tab IN SYSTEM.pa_varchar2_1_tbl_type DEFAULT SYSTEM.pa_varchar2_1_tbl_type()
169 ,p_spread_amts_flag_tab IN SYSTEM.pa_varchar2_1_tbl_type DEFAULT SYSTEM.pa_varchar2_1_tbl_type()
173 ,p_addl_qty_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
170 ,p_txn_currency_code_tab IN SYSTEM.pa_varchar2_15_tbl_type DEFAULT SYSTEM.pa_varchar2_15_tbl_type()
171 ,p_txn_currency_override_tab IN SYSTEM.pa_varchar2_15_tbl_type DEFAULT SYSTEM.pa_varchar2_15_tbl_type()
172 ,p_total_qty_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
174 ,p_total_raw_cost_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
175 ,p_addl_raw_cost_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
176 ,p_total_burdened_cost_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
177 ,p_addl_burdened_cost_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
178 ,p_total_revenue_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
179 ,p_addl_revenue_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
180 ,p_raw_cost_rate_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
181 ,p_rw_cost_rate_override_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
182 ,p_b_cost_rate_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
183 ,p_b_cost_rate_override_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
184 ,p_bill_rate_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
185 ,p_bill_rate_override_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
186 ,p_line_start_date_tab IN SYSTEM.pa_date_tbl_type DEFAULT SYSTEM.pa_date_tbl_type()
187 ,p_line_end_date_tab IN SYSTEM.pa_date_tbl_type DEFAULT SYSTEM.pa_date_tbl_type()
188 ,p_mfc_cost_type_id_old_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
189 ,p_mfc_cost_type_id_new_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
190 ,p_spread_curve_id_old_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
191 ,p_spread_curve_id_new_tab IN SYSTEM.pa_num_tbl_type DEFAULT SYSTEM.pa_num_tbl_type()
192 ,p_sp_fixed_date_old_tab IN SYSTEM.pa_date_tbl_type DEFAULT SYSTEM.pa_date_tbl_type()
193 ,p_sp_fixed_date_new_tab IN SYSTEM.pa_date_tbl_type DEFAULT SYSTEM.pa_date_tbl_type()
194 ,p_plan_start_date_old_tab IN SYSTEM.pa_date_tbl_type DEFAULT SYSTEM.pa_date_tbl_type()
195 ,p_plan_start_date_new_tab IN SYSTEM.pa_date_tbl_type DEFAULT SYSTEM.pa_date_tbl_type()
196 ,p_plan_end_date_old_tab IN SYSTEM.pa_date_tbl_type DEFAULT SYSTEM.pa_date_tbl_type()
197 ,p_plan_end_date_new_tab IN SYSTEM.pa_date_tbl_type DEFAULT SYSTEM.pa_date_tbl_type()
198 ,p_re_spread_flag_tab IN SYSTEM.pa_varchar2_1_tbl_type DEFAULT SYSTEM.pa_varchar2_1_tbl_type()
199 ,p_rlm_id_change_flag_tab IN SYSTEM.pa_varchar2_1_tbl_type DEFAULT SYSTEM.pa_varchar2_1_tbl_type()
200 ,p_del_spread_calc_tmp1_flg IN VARCHAR2 := 'Y' /* Bug: 4309290.Added the parameter to identify if
201 PA_FP_SPREAD_CALC_TMP1 table */
202 ,p_fp_task_billable_flag_tab IN SYSTEM.pa_varchar2_1_tbl_type DEFAULT SYSTEM.pa_varchar2_1_tbl_type() /* default 'D' */
203 ,p_clientExtn_api_call_flag IN VARCHAR2 DEFAULT 'Y'
204 ,p_raTxn_rollup_api_call_flag IN VARCHAR2 DEFAULT 'Y' /* Bug fix:4900436 */
205 ,x_return_status OUT NOCOPY VARCHAR2
206 ,x_msg_count OUT NOCOPY NUMBER
207 ,x_msg_data OUT VARCHAR2);
208
209 /* Compare the In params value with the existsing budget line values
210 * and populate the changed flags. Based on these flag apply the
211 * precedence and set the addl variables to pass it to spread api
212 */
213 PROCEDURE Compare_With_BdgtLine_Values
214 (p_resource_ass_id IN Number
215 ,p_txn_currency_code IN Varchar2
216 ,p_line_start_date IN Date
217 ,p_line_end_date IN Date
218 ,p_bdgt_version_type IN Varchar2
219 ,p_rate_based_flag IN Varchar2
220 ,p_apply_progress_flag IN Varchar2
221 ,p_resAttribute_changed_flag IN Varchar2
222 /* Bug fix:4263265 Added these param to avoid deriving rate overrides */
223 ,p_qty_changed_flag IN Varchar2
224 ,p_raw_cost_changed_flag IN Varchar2
225 ,p_rw_cost_rate_changed_flag IN Varchar2
226 ,p_burden_cost_changed_flag IN Varchar2
227 ,p_b_cost_rate_changed_flag IN Varchar2
228 ,p_rev_changed_flag IN Varchar2
229 ,p_bill_rate_changed_flag IN Varchar2
230 ,p_revenue_only_entry_flag IN Varchar2
231 /* end of bug fix 4263265 */
232 ,p_txn_currency_code_ovr IN OUT NOCOPY Varchar2
233 ,p_txn_plan_quantity IN OUT NOCOPY Number
234 ,p_txn_raw_cost IN OUT NOCOPY Number
235 ,p_txn_raw_cost_rate IN OUT NOCOPY Number
236 ,p_txn_rw_cost_rate_override IN OUT NOCOPY Number
237 ,p_txn_burdened_cost IN OUT NOCOPY Number
238 ,p_txn_b_cost_rate IN OUT NOCOPY Number
242 ,p_txn_bill_rate_override IN OUT NOCOPY Number
239 ,p_txn_b_cost_rate_override IN OUT NOCOPY Number
240 ,p_txn_revenue IN OUT NOCOPY Number
241 ,p_txn_bill_rate IN OUT NOCOPY Number
243 ,x_qty_changed_flag OUT NOCOPY Varchar2
244 ,x_raw_cost_changed_flag OUT NOCOPY Varchar2
245 ,x_rw_cost_rate_changed_flag OUT NOCOPY Varchar2
246 ,x_burden_cost_changed_flag OUT NOCOPY Varchar2
247 ,x_b_cost_rate_changed_flag OUT NOCOPY Varchar2
248 ,x_rev_changed_flag OUT NOCOPY Varchar2
249 ,x_bill_rate_changed_flag OUT NOCOPY Varchar2
250 ,x_bill_rt_ovr_changed_flag OUT NOCOPY Varchar2
251 ,x_txn_revenue_addl OUT NOCOPY Number
252 ,x_txn_raw_cost_addl OUT NOCOPY Number
253 ,x_txn_plan_quantity_addl OUT NOCOPY Number
254 ,x_txn_burdened_cost_addl OUT NOCOPY Number
255 ,x_init_raw_cost OUT NOCOPY Number
256 ,x_init_burdened_cost OUT NOCOPY Number
257 ,x_init_revenue OUT NOCOPY Number
258 ,x_init_quantity OUT NOCOPY Number
259 ,x_bl_raw_cost OUT NOCOPY Number
260 ,x_bl_burdened_cost OUT NOCOPY Number
261 ,x_bl_revenue OUT NOCOPY Number
262 ,x_bl_quantity OUT NOCOPY Number
263 );
264
265
266 /* This API calls the main wrapper RATE api and converts the amounts from txn to txn currency if
267 * cost rate and revenue rate currencies are different
268 * Note: Before calling this API, pa_fp_rollup_tmp should be populated
269 */
270 PROCEDURE Get_Res_RATEs
271 (p_calling_module IN varchar2
272 ,p_activity_code IN varchar2
273 ,p_budget_version_id IN Number
274 ,p_mass_adjust_flag IN varchar2
275 ,p_apply_progress_flag IN varchar2 DEFAULT 'N'
276 ,p_precedence_progress_flag IN varchar2 DEFAULT 'N'
277 ,x_return_status OUT NOCOPY varchar2
278 ,x_msg_data OUT NOCOPY varchar2
279 ,x_msg_count OUT NOCOPY Number
280 );
281
282 /* This API will apply the precedence rules on Rate Based planning transactions */
283 PROCEDURE Apply_NON_RATE_BASE_precedence(
284 p_txn_currency_code IN Varchar2
285 ,p_rate_based_flag IN Varchar2
286 ,p_budget_version_type IN Varchar2
287 ,p_qty_changed_flag IN Varchar2
288 ,p_raw_cost_changed_flag IN Varchar2
289 ,p_rw_cost_rate_changed_flag IN Varchar2
290 ,p_burden_cost_changed_flag IN Varchar2
291 ,p_b_cost_rate_changed_flag IN Varchar2
292 ,p_rev_changed_flag IN Varchar2
293 ,p_bill_rate_changed_flag IN Varchar2
294 ,p_bill_rt_ovr_changed_flag IN Varchar2
295 ,p_init_raw_cost IN Number
296 ,p_init_burdened_cost IN Number
297 ,p_init_revenue IN Number
298 ,p_init_quantity IN Number
299 ,p_bl_raw_cost IN Number
300 ,p_bl_burdened_cost IN Number
301 ,p_bl_revenue IN Number
302 ,p_bl_quantity IN Number
303 ,p_curr_cost_rate IN Number
304 ,p_curr_burden_rate IN Number
305 ,p_curr_bill_rate IN Number
306 ,p_revenue_only_entry_flag IN Varchar2
307 ,x_txn_plan_quantity IN OUT NOCOPY Number
308 ,x_txn_raw_cost IN OUT NOCOPY Number
309 ,x_txn_raw_cost_rate IN OUT NOCOPY Number
310 ,x_txn_rw_cost_rate_override IN OUT NOCOPY Number
311 ,x_txn_burdened_cost IN OUT NOCOPY Number
312 ,x_txn_b_cost_rate IN OUT NOCOPY Number
313 ,x_txn_b_cost_rate_override IN OUT NOCOPY Number
314 ,x_txn_revenue IN OUT NOCOPY Number
315 ,x_txn_bill_rate IN OUT NOCOPY Number
316 ,x_txn_bill_rate_override IN OUT NOCOPY Number
317 ,x_txn_revenue_addl IN OUT NOCOPY Number
318 ,x_txn_raw_cost_addl IN OUT NOCOPY Number
319 ,x_txn_plan_quantity_addl IN OUT NOCOPY Number
320 ,x_txn_burdened_cost_addl IN OUT NOCOPY Number
321 );
322
323 /* This API will apply the precedence rules on Rate Based planning transactions */
324 PROCEDURE Apply_RATE_BASE_precedence(
325 p_txn_currency_code IN Varchar2
326 ,p_rate_based_flag IN Varchar2
327 ,p_budget_version_type IN Varchar2
328 ,p_qty_changed_flag IN Varchar2
329 ,p_raw_cost_changed_flag IN Varchar2
330 ,p_rw_cost_rate_changed_flag IN Varchar2
331 ,p_burden_cost_changed_flag IN Varchar2
332 ,p_b_cost_rate_changed_flag IN Varchar2
333 ,p_rev_changed_flag IN Varchar2
334 ,p_bill_rate_changed_flag IN Varchar2
335 ,p_bill_rt_ovr_changed_flag IN Varchar2
336 ,p_init_raw_cost IN Number
337 ,p_init_burdened_cost IN Number
338 ,p_init_revenue IN Number
339 ,p_init_quantity IN Number
340 ,p_bl_raw_cost IN Number
341 ,p_bl_burdened_cost IN Number
342 ,p_bl_revenue IN Number
343 ,p_bl_quantity IN Number
347 ,x_txn_plan_quantity IN OUT NOCOPY Number
344 ,p_curr_cost_rate IN Number
345 ,p_curr_burden_rate IN Number
346 ,p_curr_bill_rate IN Number
348 ,x_txn_raw_cost IN OUT NOCOPY Number
349 ,x_txn_raw_cost_rate IN OUT NOCOPY Number
350 ,x_txn_rw_cost_rate_override IN OUT NOCOPY Number
351 ,x_txn_burdened_cost IN OUT NOCOPY Number
352 ,x_txn_b_cost_rate IN OUT NOCOPY Number
353 ,x_txn_b_cost_rate_override IN OUT NOCOPY Number
354 ,x_txn_revenue IN OUT NOCOPY Number
355 ,x_txn_bill_rate IN OUT NOCOPY Number
356 ,x_txn_bill_rate_override IN OUT NOCOPY Number
357 ,x_txn_revenue_addl IN OUT NOCOPY Number
358 ,x_txn_raw_cost_addl IN OUT NOCOPY Number
359 ,x_txn_plan_quantity_addl IN OUT NOCOPY Number
360 ,x_txn_burdened_cost_addl IN OUT NOCOPY Number
361 );
362
363
364 /* This API rounds off the amounts to currency precision level and the last budget line of resoruce per currency will be
365 * updated with the rounding discrepancy amounts
366 */
367 PROCEDURE Update_rounding_diff(
368 p_project_id IN pa_budget_versions.project_id%type
369 ,p_budget_version_id IN pa_budget_versions.budget_version_id%TYPE
370 ,p_calling_module IN VARCHAR2 DEFAULT NULL
371 ,p_source_context IN pa_fp_res_assignments_tmp.source_context%TYPE
372 ,p_wp_cost_enabled_flag IN varchar2
373 ,p_budget_version_type IN varchar2
374 ,x_return_status OUT NOCOPY VARCHAR2
375 ,x_msg_count OUT NOCOPY NUMBER
376 ,x_msg_data OUT NOCOPY VARCHAR2) ;
377
378 /* This API initializes the global variables for the given budget version Id */
379 PROCEDURE Init_Globals(
380 p_budget_version_id IN NUMBER
381 ,p_source_context IN VARCHAR2
382 ,x_return_status OUT NOCOPY VARCHAR2
383 );
384
385 /* Bug 5726773 : CheckZeroQTyNegETC API is obsoleted : remove the API from package spec to avoid confusion of making calls
386 * this API
387 * Bug fix:4395494: added the following API CheckZeroQTyNegETC in spec so that it can be used in Change order flows
388 * Bug fix: 4387004: This API is added for checking -ve ETC quantity / zero planned quantity
389 * with non-zero actual quantity for planning resource and txn currency combination
390 *
391 * Bug 4290043.Included parameters so as to pass the amounts/actuals as pl-sql tbls input.
392 * The pl-sql tbls are assumed to be ordered by resource assignment id and each record in the pl-sql
393 * tbl corresponds to a record in pa_budget_lines.p_calling_context can be GLB_TBL (Global Temp Table)
394 * or PLS_TBL(Pl-Sql tbl)
395 */
396
397 /* ERs: MRC Enhancements:This API builds plsql table of records required for MRC conversions
398 */
399 PROCEDURE Populate_MRC_plsqlTabs
400 (p_calling_module IN Varchar2 Default 'CALCULATE_API'
401 ,p_budget_version_id IN Number
402 ,p_budget_line_id IN Number
403 ,p_resource_assignment_id IN Number
404 ,p_start_date IN Date
405 ,p_end_date IN Date
406 ,p_period_name IN Varchar2 Default NULL
407 ,p_txn_currency_code IN Varchar2
408 ,p_quantity IN Number Default NULL
409 ,p_txn_raw_cost IN Number Default NULL
410 ,p_txn_burdened_cost IN Number Default NULL
411 ,p_txn_revenue IN Number Default NULL
412 ,p_project_currency_code IN Varchar2 Default NULL
413 ,p_project_raw_cost IN Number Default NULL
414 ,p_project_burdened_cost IN Number Default NULL
415 ,p_project_revenue IN Number Default NULL
416 ,p_projfunc_currency_code IN Varchar2 Default NULL
417 ,p_projfunc_raw_cost IN Number Default NULL
418 ,p_projfunc_burdened_cost IN Number Default NULL
419 ,p_projfunc_revenue IN Number Default NULL
420 ,p_delete_flag IN Varchar2 := 'N'
421 ,p_billable_flag IN Varchar2 := 'Y'
422 ,p_project_cost_rate_type IN Varchar2 default NULL
423 ,p_project_cost_exchange_rate IN Number default NULL
424 ,p_project_cost_rate_date_type IN Varchar2 default NULL
425 ,p_project_cost_rate_date IN Date default NULL
426 ,p_project_rev_rate_type IN Varchar2 default NULL
427 ,p_project_rev_exchange_rate IN Number default NULL
428 ,p_project_rev_rate_date_type IN Varchar2 default NULL
429 ,p_project_rev_rate_date IN Date default NULL
430 ,p_projfunc_cost_rate_type IN Varchar2 default NULL
431 ,p_projfunc_cost_exchange_rate IN Number default NULL
432 ,p_projfunc_cost_rate_date_type IN Varchar2 default NULL
436 ,p_projfunc_rev_rate_date_type IN Varchar2 default NULL
433 ,p_projfunc_cost_rate_date IN Date default NULL
434 ,p_projfunc_rev_rate_type IN Varchar2 default NULL
435 ,p_projfunc_rev_exchange_rate IN Number default NULL
437 ,p_projfunc_rev_rate_date IN Date default NULL
438 ,x_msg_data OUT NOCOPY Varchar2
439 ,x_return_status OUT NOCOPY Varchar2
440 );
441
442 PROCEDURE Init_MRC_plsqlTabs;
443
444 PROCEDURE SetGatherTmpTblIndxStats
445 (p_table_name IN VARCHAR2
446 ,p_numRow IN NUMBER
447 ,x_return_status OUT NOCOPY VARCHAR2 );
448
449 /* Added for bug 5028631 */
450 PROCEDURE Process_skipped_records
451 ( p_budget_version_id IN NUMBER
452 ,p_calling_mode IN VARCHAR2
453 ,p_source_context IN VARCHAR2
454 ,x_return_status OUT NOCOPY VARCHAR2
455 ,x_msg_count OUT NOCOPY NUMBER
456 ,x_msg_data OUT NOCOPY VARCHAR2);
457
458 END PA_FP_CALC_PLAN_PKG;