1 PACKAGE pn_var_rent_calc_pkg AS
2 -- $Header: PNVRCALS.pls 120.0 2007/10/03 14:28:19 rthumma noship $
3 /* --------------------------------------------------------------------------
4 ---------------------------- GLOBAL VARIABLES ----------------------------
5 -------------------------------------------------------------------------- */
6 /* calculation methods */
7 G_CALC_CUMULATIVE VARCHAR2(30) := 'C';
8 G_CALC_NON_CUMULATIVE VARCHAR2(30) := 'N';
9 G_CALC_YTD VARCHAR2(30) := 'Y';
10 G_CALC_TRUE_UP VARCHAR2(30) := 'T';
11
12 /* proration rules */
13 G_PRORUL_NP VARCHAR2(30) := 'NP';
14 G_PRORUL_STD VARCHAR2(30) := 'STD';
15 G_PRORUL_FY VARCHAR2(30) := 'FY';
16 G_PRORUL_LY VARCHAR2(30) := 'LY';
17 G_PRORUL_FLY VARCHAR2(30) := 'FLY';
18 G_PRORUL_CYP VARCHAR2(30) := 'CYP';
19 G_PRORUL_CYNP VARCHAR2(30) := 'CYNP';
20
21 /* breakpoint types */
22 G_BKPT_TYP_FLAT VARCHAR2(30) := 'FLAT';
23 G_BKPT_TYP_SLIDING VARCHAR2(30) := 'SLIDING';
24 G_BKPT_TYP_STRATIFIED VARCHAR2(30) := 'STRATIFIED';
25
26 /* sales volume status */
27 G_SALESVOL_STATUS_APPROVED VARCHAR2(30) := 'APPROVED';
28 G_SALESVOL_STATUS_DRAFT VARCHAR2(30) := 'DRAFT';
29 G_SALESVOL_STATUS_ON_HOLD VARCHAR2(30) := 'ON_HOLD';
30
31 /* term status */
32 G_TERM_STATUS_APPROVED VARCHAR2(30) := 'APPROVED';
33 G_TERM_STATUS_DRAFT VARCHAR2(30) := 'DRAFT';
34
35 /* frequency codes */
36 G_FREQ_MON VARCHAR2(30) := 'MON';
37 G_FREQ_QTR VARCHAR2(30) := 'QTR';
38 G_FREQ_SA VARCHAR2(30) := 'SA';
39 G_FREQ_YR VARCHAR2(30) := 'YR';
40
41 /* number of calc periods for different calc freq */
42 G_CALC_PRD_IN_FREQ_MON NUMBER := 12;
43 G_CALC_PRD_IN_FREQ_QTR NUMBER := 4;
44 G_CALC_PRD_IN_FREQ_SA NUMBER := 2;
45 G_CALC_PRD_IN_FREQ_YR NUMBER := 1;
46
47 /*Number of months per period*/
48 G_FREQ_MON NUMBER := 1;
49 G_FREQ_QTR NUMBER := 3;
50 G_FREQ_SA NUMBER := 6;
51 G_FREQ_YR NUMBER := 12;
52
53 /* invoice ON */
54 G_INV_ON_ACTUAL VARCHAR2(30) := 'ACTUAL';
55 G_INV_ON_FORECASTED VARCHAR2(30) := 'FORECASTED';
56 G_INV_ON_VARIANCE VARCHAR2(30) := 'VARIANCE';
57
58 /* period status */
59 G_PERIOD_ACTIVE_STATUS VARCHAR2(30) := 'ACTIVE';
60 G_PERIOD_REVERSED_STATUS VARCHAR2(30) := 'REVERSED';
61
62 /*Calculation types*/
63 G_CALC_TYPE_CALCULATE VARCHAR2(30) := 'CALCULATE';
64 G_CALC_TYPE_RECONCILE VARCHAR2(30) := 'RECONCILE';
65
66
67 /*Allowance application order*/
68 G_ALLOWANCE_FIRST VARCHAR(30) := 'AL';
69 G_ABATEMENT_FIRST VARCHAR(30) := 'AB';
70
71 /*Negative_rent*/
72 G_NEG_RENT_IGNORE VARCHAR(30) := 'IGNORE';
73 G_NEG_RENT_CREDIT VARCHAR(30) := 'CREDIT';
74 G_NEG_RENT_DEFER VARCHAR(30) := 'DEFER';
75
76 /*Excess abatements*/
77 G_EXC_ABAT_IGNORE VARCHAR(30) :='I';
78 G_EXC_ABAT_NEG_RENT VARCHAR(30) :='NR';
79
80 /*Fixed abatement/ Rolling Allowance*/
81 G_ABAT_TYPE_CODE_ABAT VARCHAR(30) := 'AB';
82 G_ABAT_TYPE_CODE_ALLO VARCHAR(30) := 'AL';
83 /* -------------------------------------------------------------------------
84 ------------------------- PACKAGE LEVEL CURSORS -------------------------
85 ------------------------------------------------------------------------- */
86
87 /* get VR info */
88 CURSOR vr_c(p_vr_id IN NUMBER) IS
89 SELECT
90 vr.org_id
91 ,vr.var_rent_id
92 ,vr.commencement_date
93 ,vr.termination_date
94 ,vr.proration_rule
95 ,vr.cumulative_vol
96 ,vr.negative_rent
97 FROM
98 pn_var_rents_all vr
99 WHERE
100 vr.var_rent_id = p_vr_id;
101
102 /* get trx headers */
103 CURSOR trx_hdr_c( p_vr_id IN NUMBER
104 ,p_prd_id IN NUMBER) IS
105 SELECT
106 trx_header_id
107 ,var_rent_id
108 ,period_id
109 ,line_item_id
110 ,grp_date_id
111 ,calc_prd_start_date
112 ,calc_prd_end_date
113 ,line_item_group_id
114 ,reset_group_id
115 ,proration_factor
116 ,reporting_group_sales
117 ,prorated_group_sales
118 ,ytd_sales
119 ,invoice_flag
120 ,calculated_rent
121 ,prorated_rent_due
122 ,percent_rent_due
123 ,ytd_percent_rent
124 ,reporting_group_deductions
125 ,prorated_group_deductions
126 ,ytd_deductions
127 ,first_yr_rent
128 ,'N' AS update_flag
129 FROM
130 pn_var_trx_headers_all
131 WHERE
132 var_rent_id = p_vr_id AND
133 period_id = p_prd_id
134 ORDER BY
135 line_item_id,
136 calc_prd_start_date;
137
138 /* get trx headers for forecasted data*/
139 CURSOR trx_hdr_for_c( p_vr_id IN NUMBER
140 ,p_prd_id IN NUMBER) IS
141 SELECT
142 trx_header_id
143 ,var_rent_id
144 ,period_id
145 ,line_item_id
146 ,grp_date_id
147 ,calc_prd_start_date
148 ,calc_prd_end_date
149 ,line_item_group_id
150 ,reset_group_id
151 ,proration_factor
152 ,reporting_group_sales_for
153 ,prorated_group_sales_for
154 ,ytd_sales_for
155 ,invoice_flag
156 ,calculated_rent_for
157 ,percent_rent_due_for
158 ,ytd_percent_rent_for
159 ,'N' AS update_flag
160 FROM
161 pn_var_trx_headers_all
162 WHERE
163 var_rent_id = p_vr_id AND
164 period_id = p_prd_id
165 ORDER BY
166 line_item_id,
167 calc_prd_start_date;
168
169 /* get trx details */
170 CURSOR trx_dtl_c( p_hdr_id IN NUMBER) IS
171 SELECT
172 trx_detail_id
173 ,trx_header_id
174 ,bkpt_detail_id
175 ,bkpt_rate
176 ,prorated_grp_vol_start
177 ,prorated_grp_vol_end
178 ,fy_pr_grp_vol_start
179 ,fy_pr_grp_vol_end
180 ,ly_pr_grp_vol_start
181 ,ly_pr_grp_vol_end
182 ,pr_grp_blended_vol_start
183 ,pr_grp_blended_vol_end
184 ,ytd_group_vol_start
185 ,ytd_group_vol_end
186 ,blended_period_vol_start
187 ,blended_period_vol_end
188 FROM
189 pn_var_trx_details_all
190 WHERE
191 trx_header_id = p_hdr_id
192 ORDER BY
193 prorated_grp_vol_start;
194
195 /* -------------------------------------------------------------------------
196 --------------------- PACKAGE LEVEL DATA STRUCTURES ---------------------
197 ------------------------------------------------------------------------- */
198
199 TYPE TRX_HDR_TBL IS TABLE OF trx_hdr_c%ROWTYPE INDEX BY BINARY_INTEGER;
200 TYPE TRX_DTL_TBL IS TABLE OF trx_dtl_c%ROWTYPE INDEX BY BINARY_INTEGER;
201 TYPE TRX_HEADER_TBL IS TABLE OF trx_hdr_for_c%ROWTYPE INDEX BY BINARY_INTEGER;
202
203 TYPE TRX_HDR_RENT_REC IS RECORD
204 (
205 percent_rent_due pn_var_trx_headers_all.percent_rent_due%TYPE
206 ,ytd_percent_rent pn_var_trx_headers_all.ytd_percent_rent%TYPE
207 ,calculated_rent pn_var_trx_headers_all.calculated_rent%TYPE
208 ,prorated_rent_due pn_var_trx_headers_all.prorated_rent_due%TYPE
209 );
210
211 TYPE TRX_HDR_RENT_TBL IS TABLE OF TRX_HDR_RENT_REC INDEX BY BINARY_INTEGER;
212
213 g_org_id pn_var_rents_all.org_id%TYPE;
214 g_vr_commencement_date pn_var_rents_all.commencement_date%TYPE;
215 g_vr_termination_date pn_var_rents_all.termination_date%TYPE;
216 g_proration_rule pn_var_rents_all.proration_rule%TYPE;
217 g_calculation_method pn_var_rents_all.cumulative_vol%TYPE;
218 g_negative_rent pn_var_rents_all.negative_rent%TYPE;
219 /* --------------------------------------------------------------------------
220 ------------------------ PROCEDURES AND FUNCTIONS ------------------------
221 -------------------------------------------------------------------------- */
222
223 PROCEDURE cache_vr_details(p_var_rent_id IN NUMBER);
224
225 FUNCTION get_fy_proration_factor(p_var_rent_id IN NUMBER)
226 RETURN NUMBER;
227
228 FUNCTION get_ly_proration_factor(p_var_rent_id IN NUMBER)
229 RETURN NUMBER;
230
231 FUNCTION exists_approved_sales( p_line_item_id IN NUMBER
232 ,p_grp_date_id IN NUMBER)
233 RETURN BOOLEAN;
234
235 FUNCTION find_prev_billed( p_var_rent_id IN NUMBER
236 ,p_period_id IN NUMBER
237 ,p_line_item_id IN NUMBER
238 ,p_calc_prd_st_dt IN DATE
239 ,p_calc_prd_end_dt IN DATE
240 ,p_reset_grp_id IN NUMBER)
241 RETURN NUMBER;
242
243 FUNCTION find_prev_billed( p_var_rent_id IN NUMBER
244 ,p_line_item_grp_id IN NUMBER
245 ,p_calc_prd_st_dt IN DATE
246 ,p_calc_prd_end_dt IN DATE
247 ,p_reset_grp_id IN NUMBER)
248 RETURN NUMBER;
249
250 PROCEDURE get_rent_applicable
251 (p_trx_hdr_rec IN OUT NOCOPY pn_var_rent_calc_pkg.trx_hdr_c%ROWTYPE) ;
252
253 PROCEDURE post_summary ( p_var_rent_id IN NUMBER
254 ,p_period_id IN NUMBER
255 ,p_line_item_id IN NUMBER
256 ,p_grp_date_id IN NUMBER);
257
258 PROCEDURE post_summary ( p_var_rent_id IN NUMBER
259 ,p_period_id IN NUMBER);
260
261 PROCEDURE insert_invoice( p_var_rent_id IN NUMBER
262 ,p_period_id IN NUMBER);
263
264 PROCEDURE calculate_rent( p_var_rent_id IN NUMBER
265 ,p_period_id IN NUMBER);
266 /*procedures to insert forecasted data*/
267 PROCEDURE insert_invoice_for( p_var_rent_id IN NUMBER
268 ,p_period_id IN NUMBER);
269 PROCEDURE get_rent_applicable_for
270 (p_trx_hdr_rec IN OUT NOCOPY pn_var_rent_calc_pkg.trx_hdr_for_c%ROWTYPE);
271
272 FUNCTION find_prev_billed_for( p_var_rent_id IN NUMBER
273 ,p_period_id IN NUMBER
274 ,p_line_item_id IN NUMBER
275 ,p_calc_prd_st_dt IN DATE
276 ,p_calc_prd_end_dt IN DATE
277 ,p_reset_grp_id IN NUMBER)
278 RETURN NUMBER;
279
280 PROCEDURE post_summary_for ( p_var_rent_id IN NUMBER
281 ,p_period_id IN NUMBER
282 ,p_line_item_id IN NUMBER
283 ,p_grp_date_id IN NUMBER);
284 PROCEDURE post_summary_for ( p_var_rent_id IN NUMBER
285 ,p_period_id IN NUMBER);
286 /*Procedure to apply constraints*/
287 FUNCTION apply_constraints(p_period_id IN NUMBER,
288 p_invoice_date IN DATE,
289 p_actual_rent IN NUMBER)
290 RETURN NUMBER;
291 FUNCTION apply_constraints_fy(p_period_id IN NUMBER,
292 p_invoice_date IN DATE,
293 p_actual_rent IN NUMBER)
294 RETURN NUMBER;
295
296 /*Procedures to apply abatements*/
297 PROCEDURE apply_abatements(p_var_rent_id NUMBER,
298 p_period_id IN NUMBER,
299 p_flag IN VARCHAR2);
300 PROCEDURE apply_allow(p_var_rent_id IN NUMBER,
301 p_period_id IN NUMBER,
302 p_inv_id IN NUMBER,
303 x_abated_rent IN OUT NOCOPY NUMBER);
304 PROCEDURE apply_abat(p_var_rent_id IN NUMBER,
305 p_period_id IN NUMBER,
306 p_inv_id IN NUMBER,
307 x_abated_rent IN OUT NOCOPY NUMBER);
308 PROCEDURE populate_abat(p_var_rent_id IN NUMBER,
309 p_period_id IN NUMBER,
310 p_inv_id IN NUMBER);
311 PROCEDURE reset_abatements(p_var_rent_id IN NUMBER
312 );
313 PROCEDURE apply_def_neg_rent(p_var_rent_id IN NUMBER,
314 p_period_id IN NUMBER
315 ,p_inv_id IN NUMBER,
316 x_abated_rent IN OUT NOCOPY NUMBER);
317 PROCEDURE populate_neg_rent(p_var_rent_id IN NUMBER,
318 p_period_id IN NUMBER
319 ,p_inv_id IN NUMBER,
320 x_abated_rent IN OUT NOCOPY NUMBER);
321 FUNCTION overage_cal(p_proration_rule IN VARCHAR2,
322 p_calculation_method IN VARCHAR2,
323 detail_id IN NUMBER) RETURN NUMBER;
324
325 FUNCTION overage_cal_for( p_proration_rule IN VARCHAR2,
326 p_calculation_method IN VARCHAR2,
327 detail_id IN NUMBER)
328 RETURN NUMBER ;
329
330 FUNCTION First_Day ( p_Date DATE )
331
332 RETURN DATE;
333
334 FUNCTION inv_end_date( inv_start_date IN DATE
335 ,vr_id IN NUMBER
336 ,p_period_id NUMBER DEFAULT NULL)
337 RETURN DATE;
338
339 FUNCTION inv_start_date( inv_start_date IN DATE
340 ,vr_id IN NUMBER
341 ,p_period_id NUMBER DEFAULT NULL)
342 RETURN DATE;
343
344 FUNCTION inv_sch_date(inv_start_date IN DATE
345 ,vr_id IN NUMBER
346 ,p_period_id NUMBER DEFAULT NULL)
347
348 RETURN DATE;
349
350 FUNCTION END_BREAKPOINT(bkpt_start IN NUMBER, bkpt_end IN NUMBER)
351 RETURN NUMBER;
352
353 FUNCTION prev_invoiced_amt(p_var_rent_inv_id NUMBER, p_period_id NUMBER, p_invoice_date DATE)
354 RETURN NUMBER;
355
356 /* procedure called from concurent manager */
357 PROCEDURE process_rent_batch (errbuf OUT NOCOPY VARCHAR2,
358 retcode OUT NOCOPY VARCHAR2,
359 p_property_code IN VARCHAR2,
360 p_property_name IN VARCHAR2,
361 p_lease_num_from IN VARCHAR2,
362 p_lease_num_to IN VARCHAR2,
363 p_location_code_from IN VARCHAR2,
364 p_location_code_to IN VARCHAR2,
365 p_vrent_num_from IN VARCHAR2,
366 p_vrent_num_to IN VARCHAR2,
367 p_period_num_from IN NUMBER,
368 p_period_num_to IN NUMBER,
369 p_responsible_user IN NUMBER,
370 p_invoice_on IN VARCHAR2 DEFAULT NULL,
371 p_var_rent_id IN NUMBER,
372 p_period_id IN NUMBER,
373 p_line_item_id IN NUMBER,
374 p_invoice_date IN DATE,
375 p_calc_type IN VARCHAR2,
376 p_period_date IN VARCHAR2 DEFAULT NULL,
377 p_org_id IN NUMBER DEFAULT NULL);
378
379
380 PROCEDURE first_year_bkpt( p_vr_id IN NUMBER
381 ,p_vr_comm_date IN DATE
382 ,p_line_item_grp_id IN NUMBER
383 ,p_bkpt_rate IN NUMBER
384 ,p_start_bkpt OUT NOCOPY NUMBER
385 ,p_end_bkpt OUT NOCOPY NUMBER);
386
387 PROCEDURE last_year_bkpt( p_vr_id IN NUMBER
388 ,p_vr_comm_date IN DATE
389 ,p_line_item_grp_id IN NUMBER
390 ,p_bkpt_rate IN NUMBER
391 ,p_start_bkpt OUT NOCOPY NUMBER
392 ,p_end_bkpt OUT NOCOPY NUMBER);
393
394 FUNCTION ytd_start_bkpt( p_proration_rule IN VARCHAR2
395 ,p_trx_detail_id IN NUMBER) RETURN NUMBER ;
396
397 FUNCTION ytd_end_bkpt( p_proration_rule IN VARCHAR2
398 ,p_trx_detail_id IN NUMBER) RETURN NUMBER ;
399
400 FUNCTION first_year_sales( p_vr_id IN NUMBER
401 ,p_vr_comm_date IN DATE
402 ,p_line_item_grp_id IN NUMBER)
403 RETURN NUMBER;
404
405 FUNCTION last_year_sales( p_vr_id IN NUMBER
406 ,p_vr_comm_date IN DATE
407 ,p_line_item_grp_id IN NUMBER)
408 RETURN NUMBER;
409
410 FUNCTION group_sales( p_proration_rule IN VARCHAR2,
411 p_trx_detail_id IN NUMBER,
412 p_calculation_type IN VARCHAR2)
413 RETURN NUMBER;
414
415 FUNCTION net_volume( p_proration_rule IN VARCHAR2,
416 p_trx_detail_id IN NUMBER,
417 p_calculation_type IN VARCHAR2)
418 RETURN NUMBER ;
419
420 FUNCTION group_deductions( p_proration_rule IN VARCHAR2,
421 p_trx_detail_id IN NUMBER,
422 p_calculation_type IN VARCHAR2)
423 RETURN NUMBER ;
424
425 FUNCTION cumulative_volume( p_proration_rule IN VARCHAR2,
426 p_trx_detail_id IN NUMBER,
427 p_calculation_type IN VARCHAR2)
428 RETURN NUMBER ;
429
430 FUNCTION annual_end_bkpt( p_proration_rule IN VARCHAR2
431 ,p_cumulative_vol IN VARCHAR2
432 ,p_trx_detail_id IN NUMBER)
433 RETURN NUMBER;
434
435 FUNCTION annual_start_bkpt( p_proration_rule IN VARCHAR2
436 ,p_cumulative_vol IN VARCHAR2
437 ,p_trx_detail_id IN NUMBER)
438 RETURN NUMBER;
439
440 FUNCTION prorated_start_bkpt( p_proration_rule IN VARCHAR2
441 ,p_trx_detail_id IN NUMBER)
442 RETURN NUMBER;
443
444 FUNCTION prorated_end_bkpt( p_proration_rule IN VARCHAR2
445 ,p_trx_detail_id IN NUMBER)
446 RETURN NUMBER;
447
448 FUNCTION current_gross_vr( p_proration_rule IN VARCHAR2,
449 p_trx_detail_id IN NUMBER)
450 RETURN NUMBER;
451
452 FUNCTION cumulative_gross_vr( p_proration_rule IN VARCHAR2,
453 p_trx_detail_id IN NUMBER)
454 RETURN NUMBER ;
455
456 FUNCTION fy_net_sales (p_var_rent_id IN NUMBER
457 ,p_line_item_id IN NUMBER)
458 RETURN NUMBER;
459
460 FUNCTION first_yr_sales (p_var_rent_id IN NUMBER
461 ,p_line_item_id IN NUMBER)
462 RETURN NUMBER;
463
464 FUNCTION first_yr_deductions( p_var_rent_id IN NUMBER
465 ,p_line_item_id IN NUMBER)
466 RETURN NUMBER;
467
468 PROCEDURE true_up_details ( p_var_rent_id IN NUMBER
469 ,p_trx_detail_id IN NUMBER
470 ,p_rate IN NUMBER
471 ,p_trueup_bkpt_vol_start OUT NOCOPY NUMBER
472 ,p_trueup_bkpt_vol_end OUT NOCOPY NUMBER
473 ,p_trueup_volume OUT NOCOPY NUMBER
474 ,p_deductions OUT NOCOPY NUMBER
475 ,p_overage OUT NOCOPY NUMBER);
476
477 PROCEDURE true_up_summary ( p_period_id IN NUMBER
478 ,p_true_up_rent OUT NOCOPY NUMBER
479 ,p_trueup_volume OUT NOCOPY NUMBER
480 ,p_deductions OUT NOCOPY NUMBER);
481
482 PROCEDURE pop_inv_date_tab (p_var_rent_id IN NUMBER
483 ,p_status IN VARCHAR2);
484
485 PROCEDURE POP_INV_DATE_TAB_FIRSTYR(p_var_rent_id IN NUMBER,
486 p_status IN VARCHAR2);
487
488 PROCEDURE ROLL_FWD_SELECNS (p_var_rent_id IN NUMBER);
489
490 PROCEDURE INCLUDE_INCREASES (p_var_rent_id IN NUMBER);
491
492 PROCEDURE ROLL_FWD_PARTIAL_PRD (p_var_rent_id IN NUMBER);
493
494 PROCEDURE ROLL_FWD_LST_PARTIAL_PRD(p_var_rent_id IN NUMBER);
495
496 PROCEDURE INCLUDE_INCREASES_FIRSTYR(p_var_rent_id IN NUMBER);
497
498 FUNCTION forecasted_var_rent ( p_var_rent_id IN NUMBER
499 , p_period_id IN NUMBER )
500 RETURN NUMBER;
501
502 FUNCTION get_currency_precision (p_org_id NUMBER DEFAULT NULL)
503 RETURN NUMBER;
504
505 FUNCTION check_last_calc_prd(p_trx_hdr_id IN NUMBER,
506 p_prorul IN VARCHAR2
507 )
508 RETURN NUMBER ;
509
510 FUNCTION get_rent_due(p_trx_hdr_id IN NUMBER,
511 p_prorul IN VARCHAR2
512 )
513 RETURN NUMBER ;
514
515 FUNCTION get_cum_rent_due(p_trx_hdr_id IN NUMBER,
516 p_prorul IN VARCHAR2
517 )
518 RETURN NUMBER ;
519 FUNCTION include_prd_no_term(p_prd_id IN NUMBER
520 )
521 RETURN VARCHAR2 ;
522
523 PROCEDURE delete_draft_terms( p_var_rent_id IN NUMBER);
524
525 FUNCTION actual_rent ( p_period_id IN NUMBER, p_invoice_date IN DATE, p_true_up_amt IN NUMBER, p_var_rent_inv_id IN NUMBER)
526 RETURN NUMBER;
527
528
529 FUNCTION VALIDATE_LY_CALC (p_varRentId NUMBER, p_periodId IN NUMBER)
530 RETURN NUMBER;
531
532 PROCEDURE full_yr_summary ( p_line_item_id IN NUMBER
533 ,p_yr_volume OUT NOCOPY NUMBER
534 ,p_deductions OUT NOCOPY NUMBER);
535
536 FUNCTION trueup_rent ( p_var_rent_id IN NUMBER
537 ,p_period_id IN NUMBER
538 ,p_grp_date_id IN NUMBER)
539 RETURN NUMBER;
540
541 PROCEDURE true_up_bkpt ( p_period_id IN NUMBER
542 ,p_bkpt_rate IN NUMBER
543 ,p_bkpt_vol_start OUT NOCOPY NUMBER
544 ,p_bkpt_vol_end OUT NOCOPY NUMBER);
545
546 FUNCTION new_term_amount ( p_invoice_date IN DATE
547 ,p_period_id IN NUMBER
548 ,p_var_rent_inv_id IN NUMBER)
549 RETURN NUMBER;
550
551 FUNCTION true_up_header ( p_period_id IN NUMBER
552 ,p_trx_hdr_id IN NUMBER
553 ,p_calc_prd_end_date IN DATE)
554 RETURN VARCHAR2;
555
556 END pn_var_rent_calc_pkg;