[Home] [Help]
PACKAGE: APPS.QP_CALCULATE_PRICE_PUB
Source
1 PACKAGE QP_Calculate_Price_PUB AUTHID CURRENT_USER AS
2 /* $Header: QPXPCLPS.pls 120.4 2010/12/23 11:03:17 kdurgasi 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 ROUNDING_FACTOR NUMBER); --10093463
52
53 TYPE l_related_request_line_rec IS RECORD (
54 LINE_DETAIL_INDEX NUMBER, -- Parent Line Index
55 CHILD_LINE_DETAIL_INDEX NUMBER, -- Child Line Detail Index
56 RELATED_LIST_LINE_TYPE VARCHAR2(30),
57 VALUE_FROM NUMBER,
58 VALUE_TO NUMBER,
59 PRICING_GROUP_SEQUENCE NUMBER,
60 OPERAND_CALCULATION_CODE VARCHAR2(30),
61 OPERAND_VALUE NUMBER,
62 ACCRUAL_FLAG VARCHAR2(1),
63 RECURRING_VALUE NUMBER, -- block pricing
64 LINE_QTY NUMBER,
65 ADJUSTMENT_AMOUNT NUMBER, --adjustment amount
66 PRICE_BREAK_TYPE_CODE VARCHAR2(30)); -- Point or Range
67
68 TYPE l_request_line_details_tbl IS TABLE OF l_request_line_detail_rec
69 INDEX BY BINARY_INTEGER;
70
71 TYPE l_related_request_lines_tbl IS TABLE OF l_related_request_line_rec
72 INDEX BY BINARY_INTEGER;
73
74 /* PROCEDURE Calculate_Price
75 (p_request_line l_request_line_rec,
76 p_request_line_details l_request_line_details_tbl,
77 p_related_request_lines l_related_request_lines_tbl,
78 x_request_line OUT NOCOPY l_request_line_rec,
79 x_request_line_details OUT NOCOPY l_request_line_details_tbl,
80 x_related_request_lines OUT NOCOPY l_related_request_lines_tbl,
81 x_return_status OUT NOCOPY VARCHAR2,
82 x_return_status_txt OUT NOCOPY VARCHAR2); */
83
84 PROCEDURE Calculate_Price
85 (p_request_line IN OUT NOCOPY l_request_line_rec,
86 p_request_line_details IN OUT NOCOPY l_request_line_details_tbl,
87 p_related_request_lines IN OUT NOCOPY l_related_request_lines_tbl,
88 x_return_status OUT NOCOPY VARCHAR2,
89 x_return_status_txt OUT NOCOPY VARCHAR2);
90
91 -- overloaded 2388011_latest
92 PROCEDURE Price_Break_Calculation(p_list_line_id NUMBER,
93 p_break_type VARCHAR2,
94 p_line_index NUMBER,
95 p_req_value_per_unit NUMBER, -- Item qty,group qty,group value
96 p_applied_req_value_per_unit NUMBER, -- [julin/4112395]
97 p_total_value NUMBER, -- Total value (Group amount or item amount)
98 p_list_price NUMBER,
99 p_line_quantity NUMBER, -- Acutal quantity on order line
100 p_bucketed_adjustment NUMBER,
101 p_bucketed_flag VARCHAR2,
102 p_automatic_flag VARCHAR2, -- 5328123
103 x_adjustment_amount OUT NOCOPY NUMBER,
104 x_return_status OUT NOCOPY VARCHAR2,
105 x_return_status_text OUT NOCOPY VARCHAR2);
106
107
108 PROCEDURE Price_Break_Calculation(p_list_line_id NUMBER,
109 p_break_type VARCHAR2,
110 p_line_index NUMBER,
111 p_request_qty NUMBER,
112 p_list_price NUMBER,
113 x_adjustment_amount OUT NOCOPY NUMBER,
114 x_return_status OUT NOCOPY VARCHAR2,
115 x_return_status_text OUT NOCOPY VARCHAR2);
116
117 PROCEDURE Calculate_Adjustment(p_price NUMBER
118 ,p_operand_calculation_code VARCHAR2
119 ,p_operand_value NUMBER
120 ,p_priced_quantity NUMBER
121 ,x_calc_adjustment OUT NOCOPY NUMBER
122 ,x_return_status OUT NOCOPY VARCHAR2
123 ,x_return_status_text OUT NOCOPY VARCHAR2);
124
125 PROCEDURE Get_Satisfied_Range(p_value_from NUMBER,
126 p_value_to NUMBER,
127 p_qualifier_value NUMBER,
128 p_list_line_id NUMBER := null, -- for accum range break
129 p_continuous_flag VARCHAR := 'N', -- 4061138, continuous price break
130 p_prorated_flag VARCHAR := 'N', -- 4061138
131 x_satisfied_value OUT NOCOPY NUMBER);
132
133 PROCEDURE Calculate_List_Price (p_operand_calc_code VARCHAR2,
134 p_operand_value NUMBER,
135 p_request_qty NUMBER,
136 p_rltd_item_price NUMBER,
137 p_service_duration NUMBER,
138 p_rounding_flag VARCHAR2,
139 p_rounding_factor NUMBER,
140 x_list_price OUT NOCOPY NUMBER,
141 x_percent_price OUT NOCOPY NUMBER,
142 x_return_status OUT NOCOPY VARCHAR2,
143 x_return_status_txt OUT NOCOPY VARCHAR2);
144
145
146 END QP_Calculate_Price_PUB;