[Home] [Help]
PACKAGE: APPS.QP_CALCULATE_PRICE_PUB
Source
1 PACKAGE QP_Calculate_Price_PUB AS
2 /* $Header: QPXPCLPS.pls 120.3.12010000.1 2008/07/28 11:54:55 appldev ship $ */
3
4 -- begin shu, new rounding
5 G_CHAR_Q CONSTANT VARCHAR2(30):='Q'; -- look at QP_SELLING_PRICE_ROUNDING_OPTIONS
6 G_CHAR_U CONSTANT VARCHAR2(30):='U'; -- not round list_price, not round adjs, round selling price
7
8 G_NO_ROUND CONSTANT VARCHAR2(30):='NO_ROUND'; -- selling_price = un_round list_price + un_round adjs
9 G_NO_ROUND_ADJ CONSTANT VARCHAR2(30):='NO_ROUND_ADJ'; -- selling_price = round(list_price)+ round (adjs calculated by rounded list_price)
10 G_ROUND_ADJ CONSTANT VARCHAR2(30):='ROUND_ADJ'; -- selling price = round(unrounded list_price + adjs calculated by unrounded list_price)
11 -- end shu, new rounding
12
13 TYPE l_request_line_rec IS RECORD (
14 LINE_INDEX NUMBER,
15 PRICING_EFFECTIVE_DATE DATE,
16 SOURCE_SYSTEM_CODE VARCHAR2(30),
17 LINE_QUANTITY NUMBER,
18 QUALIFIER_VALUE NUMBER,
19 UNIT_PRICE NUMBER,
20 PARENT_PRICE NUMBER, -- Applicable for service items
21 PERCENT_PRICE NUMBER,
22 SERVICE_DURATION NUMBER,
23 RELATED_ITEM_PRICE NUMBER,
24 ADJUSTED_UNIT_PRICE NUMBER,
25 GSA_QUALIFIER_FLAG VARCHAR2(1),
26 GSA_ENABLED_FLAG VARCHAR2(1),
27 ROUNDING_FACTOR NUMBER,
28 ROUNDING_FLAG VARCHAR2(1),
29 EXTENDED_PRICE NUMBER); -- block pricing
30
31 TYPE l_request_line_detail_rec IS RECORD (
32 LINE_DETAIL_INDEX NUMBER,
33 CREATED_FROM_LIST_LINE_ID NUMBER,
34 CREATED_FROM_LIST_HEADER_ID NUMBER,
35 CREATED_FROM_LIST_LINE_TYPE VARCHAR2(30),
36 CREATED_FROM_LIST_TYPE VARCHAR2(30), -- PriceList Break/Discount Break
37 PRICING_GROUP_SEQUENCE NUMBER,
38 OPERAND_CALCULATION_CODE VARCHAR2(30),
39 OPERAND_VALUE NUMBER,
40 ACCRUAL_FLAG VARCHAR2(1),
41 AUTOMATIC_FLAG VARCHAR2(1),
42 ACCRUAL_CONVERSION_RATE NUMBER,
43 ESTIM_ACCRUAL_RATE NUMBER,
44 BENEFIT_QTY NUMBER,
45 QUALIFIER_VALUE NUMBER,
46 PRICE_BREAK_TYPE_CODE VARCHAR2(30), -- Recurring
47 LINE_QUANTITY NUMBER,
48 MODIFIER_LEVEL_CODE VARCHAR2(30),-- 2388011, grp_pbh_amt
49 BUCKETED_FLAG VARCHAR2(1), -- IT, bucket, 2388011
50 ADJUSTMENT_AMOUNT NUMBER);
51
52 TYPE l_related_request_line_rec IS RECORD (
53 LINE_DETAIL_INDEX NUMBER, -- Parent Line Index
54 CHILD_LINE_DETAIL_INDEX NUMBER, -- Child Line Detail Index
55 RELATED_LIST_LINE_TYPE VARCHAR2(30),
56 VALUE_FROM NUMBER,
57 VALUE_TO NUMBER,
58 PRICING_GROUP_SEQUENCE NUMBER,
59 OPERAND_CALCULATION_CODE VARCHAR2(30),
60 OPERAND_VALUE NUMBER,
61 ACCRUAL_FLAG VARCHAR2(1),
62 RECURRING_VALUE NUMBER, -- block pricing
63 LINE_QTY NUMBER,
64 ADJUSTMENT_AMOUNT NUMBER, --adjustment amount
65 PRICE_BREAK_TYPE_CODE VARCHAR2(30)); -- Point or Range
66
67 TYPE l_request_line_details_tbl IS TABLE OF l_request_line_detail_rec
68 INDEX BY BINARY_INTEGER;
69
70 TYPE l_related_request_lines_tbl IS TABLE OF l_related_request_line_rec
71 INDEX BY BINARY_INTEGER;
72
73 /* PROCEDURE Calculate_Price
74 (p_request_line l_request_line_rec,
75 p_request_line_details l_request_line_details_tbl,
76 p_related_request_lines l_related_request_lines_tbl,
77 x_request_line OUT NOCOPY l_request_line_rec,
78 x_request_line_details OUT NOCOPY l_request_line_details_tbl,
79 x_related_request_lines OUT NOCOPY l_related_request_lines_tbl,
80 x_return_status OUT NOCOPY VARCHAR2,
81 x_return_status_txt OUT NOCOPY VARCHAR2); */
82
83 PROCEDURE Calculate_Price
84 (p_request_line IN OUT NOCOPY l_request_line_rec,
85 p_request_line_details IN OUT NOCOPY l_request_line_details_tbl,
86 p_related_request_lines IN OUT NOCOPY l_related_request_lines_tbl,
87 x_return_status OUT NOCOPY VARCHAR2,
88 x_return_status_txt OUT NOCOPY VARCHAR2);
89
90 -- overloaded 2388011_latest
91 PROCEDURE Price_Break_Calculation(p_list_line_id NUMBER,
92 p_break_type VARCHAR2,
93 p_line_index NUMBER,
94 p_req_value_per_unit NUMBER, -- Item qty,group qty,group value
95 p_applied_req_value_per_unit NUMBER, -- [julin/4112395]
96 p_total_value NUMBER, -- Total value (Group amount or item amount)
97 p_list_price NUMBER,
98 p_line_quantity NUMBER, -- Acutal quantity on order line
99 p_bucketed_adjustment NUMBER,
100 p_bucketed_flag VARCHAR2,
101 p_automatic_flag VARCHAR2, -- 5328123
102 x_adjustment_amount OUT NOCOPY NUMBER,
103 x_return_status OUT NOCOPY VARCHAR2,
104 x_return_status_text OUT NOCOPY VARCHAR2);
105
106
107 PROCEDURE Price_Break_Calculation(p_list_line_id NUMBER,
108 p_break_type VARCHAR2,
109 p_line_index NUMBER,
110 p_request_qty NUMBER,
111 p_list_price NUMBER,
112 x_adjustment_amount OUT NOCOPY NUMBER,
113 x_return_status OUT NOCOPY VARCHAR2,
114 x_return_status_text OUT NOCOPY VARCHAR2);
115
116 PROCEDURE Calculate_Adjustment(p_price NUMBER
117 ,p_operand_calculation_code VARCHAR2
118 ,p_operand_value NUMBER
119 ,p_priced_quantity NUMBER
120 ,x_calc_adjustment OUT NOCOPY NUMBER
121 ,x_return_status OUT NOCOPY VARCHAR2
122 ,x_return_status_text OUT NOCOPY VARCHAR2);
123
124 PROCEDURE Get_Satisfied_Range(p_value_from NUMBER,
125 p_value_to NUMBER,
126 p_qualifier_value NUMBER,
127 p_list_line_id NUMBER := null, -- for accum range break
128 p_continuous_flag VARCHAR := 'N', -- 4061138, continuous price break
129 p_prorated_flag VARCHAR := 'N', -- 4061138
130 x_satisfied_value OUT NOCOPY NUMBER);
131
132 PROCEDURE Calculate_List_Price (p_operand_calc_code VARCHAR2,
133 p_operand_value NUMBER,
134 p_request_qty NUMBER,
135 p_rltd_item_price NUMBER,
136 p_service_duration NUMBER,
137 p_rounding_flag VARCHAR2,
138 p_rounding_factor NUMBER,
139 x_list_price OUT NOCOPY NUMBER,
140 x_percent_price OUT NOCOPY NUMBER,
141 x_return_status OUT NOCOPY VARCHAR2,
142 x_return_status_txt OUT NOCOPY VARCHAR2);
143
144
145 END QP_Calculate_Price_PUB;