DBA Data[Home] [Help]

PACKAGE: APPS.OKC_OC_INT_PRICING_PVT

Source


1 Package OKC_OC_INT_PRICING_PVT AUTHID CURRENT_USER AS
2 /* $Header: OKCRPRIS.pls 120.0 2005/05/25 22:36:17 appldev noship $ */
3 
4   G_EXCEPTION_HALT_VALIDATION EXCEPTION;
5   G_PKG_NAME	          CONSTANT VARCHAR2(200) := 'OKC_OC_INT_PRICING_PVT';
6   ---G_APP_NAME              CONSTANT VARCHAR2(3)   := OKO_DATATYPES.G_APP_NAME;
7   -- to be restored when this package is moved back into OKO
8 
9   G_APP_NAME              CONSTANT VARCHAR2(3)   := 'OKO';
10 
11   G_UNEXPECTED_ERROR      CONSTANT VARCHAR2(200) := 'OKC_CONTRACTS_UNEXP_ERROR';
12   G_ERROR                 CONSTANT VARCHAR2(200) := 'OKC_CONTRACTS_ERROR';
13   G_SQLERRM_TOKEN         CONSTANT VARCHAR2(200) := 'SQLERRM';
14   G_SQLCODE_TOKEN         CONSTANT VARCHAR2(200) := 'SQLCODE';
15 
16   --G_MISS_REL_LINE_TAB     OKC_K_REL_OBJS_PUB.crj_rel_line_tbl_type;
17   G_MISS_LINE_INF_TAB     OKC_OC_INT_CONFIG_PVT.line_inf_tbl_type;
18 
19   ---------------------------------------------------------------------------
20   --Procedure to contract pricing information at the header and line levels
21   ----------------------------------------------------------------------------
22 -- Bug : 1686001 Changed references to ASO_QUOTE_HEADERS_ALL.QUOTE_HEADER_ID to OKX_QUOTE_HEADERS_V.ID1
23   PROCEDURE create_k_pricing (
24     x_return_status               OUT NOCOPY VARCHAR2,
25 
26     p_chr_id                      IN  OKC_K_HEADERS_B.ID%TYPE,
27     p_o_flag                      IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
28     p_ohr_id                      IN  NUMBER DEFAULT OKC_API.G_MISS_NUM,
29     p_q_flag                      IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
30     p_qhr_id                      IN  OKX_QUOTE_HEADERS_V.ID1%TYPE
31                                       DEFAULT OKC_API.G_MISS_NUM,
32     p_line_inf_tab                IN  OKC_OC_INT_CONFIG_PVT.line_inf_tbl_type
33 			     DEFAULT  OKC_OC_INT_PRICING_PVT.G_MISS_LINE_INF_TAB
34     -- this PL/SQL table has quote (or order) lines against contract lines
35 
36 
37   );
38 
39 
40 
41   ----------------------------------------------------------------------------
42   -- Procedure creates price attribute information in OKC from
43   -- ASO or ONT pricing
44   ----------------------------------------------------------------------------
45 -- Bug : 1686001 Changed references to ASO_QUOTE_HEADERS_ALL.QUOTE_HEADER_ID to OKX_QUOTE_HEADERS_V.ID1
46   PROCEDURE get_price_attr(
47     p_chr_id                    IN  NUMBER,
48     p_q_flag                    IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
49     p_qhr_id                    IN  OKX_QUOTE_HEADERS_V.ID1%TYPE
50                                     DEFAULT OKC_API.G_MISS_NUM,
51     p_o_flag                    IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
52     p_ohr_id                    IN  NUMBER,
53     p_line_inf_tab              IN  OKC_OC_INT_CONFIG_PVT.line_inf_tbl_type
54 			    DEFAULT OKC_OC_INT_PRICING_PVT.G_MISS_LINE_INF_TAB
55     );
56 
57 
58 
59    --------------------------------------------------------------------------
60    --------get price adjustments from ASO or ONT and put in OKC pricing tables
61    --------------------------------------------------------------------------
62 -- Bug : 1686001 Changed references to ASO_QUOTE_HEADERS_ALL.QUOTE_HEADER_ID to OKX_QUOTE_HEADERS_V.ID1
63    PROCEDURE get_price_adj(
64     p_chr_id                       IN NUMBER,
65     p_q_flag                       IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
66     p_qhr_id                       IN OKX_QUOTE_HEADERS_V.ID1%TYPE
67                                       DEFAULT OKC_API.G_MISS_NUM,
68     p_o_flag                       IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
69     p_ohr_id                       IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
70     p_line_inf_tab                 IN OKC_OC_INT_CONFIG_PVT.line_inf_tbl_type
71 			DEFAULT OKC_OC_INT_PRICING_PVT.G_MISS_LINE_INF_TAB
72     );
73 
74 
75 
76   --put PRICE ADJUSTMENT RELATIONSHIPS FROM ASO (or ONT) into OKC
77 -- Bug : 1686001 Changed references to ASO_QUOTE_HEADERS_ALL.QUOTE_HEADER_ID to OKX_QUOTE_HEADERS_V.ID1
78   PROCEDURE get_price_adj_rltship(
79     p_o_flag          IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
80     p_ohr_id          IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
81     p_q_flag          IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
82     p_qhr_id          IN OKX_QUOTE_HEADERS_V.ID1%TYPE
83                          DEFAULT OKC_API.G_MISS_NUM,
84     p_line_inf_tab    IN OKC_OC_INT_CONFIG_PVT.line_inf_tbl_type
85 	              DEFAULT OKC_OC_INT_PRICING_PVT.G_MISS_LINE_INF_TAB
86      );
87 
88 
89 
90   ----------------------------------------------------------------
91   --put PRICE ADJUSTMENT ATTRIBUTES FROM ASO or ONT into OKC
92 -- Bug : 1686001 Changed references to ASO_QUOTE_HEADERS_ALL.QUOTE_HEADER_ID to OKX_QUOTE_HEADERS_V.ID1
93   PROCEDURE get_price_adj_attr(
94     p_o_flag                       IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
95     p_ohr_id                       IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
96     p_q_flag                       IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
97     p_qhr_id                       IN OKX_QUOTE_HEADERS_V.ID1%TYPE
98                                       DEFAULT OKC_API.G_MISS_NUM
99                                     );
100 
101   ----------------------------------------------------------------------------
102   -- PROCEDURE to get PRICE ADJUSTMENTS information from ASO or ONT tables
103   -- get_patv_tab stores it's output in global PL/SQL table g_patv_tbl
104   ----------------------------------------------------------------------------
105 -- Bug : 1686001 Changed references to ASO_QUOTE_HEADERS_ALL.QUOTE_HEADER_ID to OKX_QUOTE_HEADERS_V.ID1
106 --                                     ASO_QUOTE_LINES_ALL.LINE_HEADER_ID to OKX_QUOTE_LINES_V.ID1
107   PROCEDURE get_patv_tab(
108                p_chr_id   IN OKC_K_HEADERS_B.ID%TYPE,
109                p_cle_id   IN OKC_K_LINES_B.ID%TYPE DEFAULT OKC_API.G_MISS_NUM,
110                p_o_flag   IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
111                p_ohr_id   IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
112                p_ole_id   IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
113                p_q_flag   IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
114                p_qhr_id   IN OKX_QUOTE_HEADERS_V.ID1%TYPE
115                              DEFAULT OKC_API.G_MISS_NUM,
116                p_qle_id   IN OKX_QUOTE_LINES_V.ID1%TYPE
117                              DEFAULT OKC_API.G_MISS_NUM);
118 
119 
120     ---------------------------------------------------------------
121     -- PROCEDURE to get PRICE ADJUSTMENT RELATIONSHIP information
122     -- from ASO or ONT tables
123     -- get_pacv_tab stores all the price adjustment relationships in
124     -- global PL/SQL table g_pacv_tbl
125 -- Bug : 1686001 Changed references to ASO_QUOTE_HEADERS_ALL.QUOTE_HEADER_ID to OKX_QUOTE_HEADERS_V.ID1
126     PROCEDURE get_pacv_tab(
127                 p_old_pat_id    IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
128                 p_new_pat_id    IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
129                 p_o_flag        IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
130                 p_ohr_id        IN NUMBER
131                                    DEFAULT OKC_API.G_MISS_NUM,
132                 p_q_flag        IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
133                 p_qhr_id        IN OKX_QUOTE_HEADERS_V.ID1%TYPE
134                                    DEFAULT OKC_API.G_MISS_NUM,
135                 p_line_inf_tab  IN OKC_OC_INT_CONFIG_PVT.line_inf_tbl_type
136 		            DEFAULT OKC_OC_INT_PRICING_PVT.G_MISS_LINE_INF_TAB);
137 
138 
139    -----------------------------------------------------------------------------
140    -- to get PRICE ADJUSTMENT ATTRIBUTES information from ASO or ONT tables
141    -- get_paav_tab stores all the price adjustment attributes in global
142    -- PL/SQL table g_paav_tbl
143    -----------------------------------------------------------------------------
144     PROCEDURE get_paav_tab(p_old_pat_id IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
145                           p_new_pat_id IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
146                           p_q_flag     IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
147                           p_qhr_id     IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
148                           p_o_flag     IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
149                           p_ohr_id     IN NUMBER DEFAULT OKC_API.G_MISS_NUM);
150                           --   x_paav_tbl OUT NOCOPY paav_tbl_type)
151 
152 
153     ----------------------------------------------------------------------
154     -- PROCEDURE to get PRICE ATTRIBUTES information from ASO or ONT tables
155     -- get_pavv_tab stores it's output in global PL/SQL table g_pavv_tbl
156     ----------------------------------------------------------------------
157 -- Bug : 1686001 Changed references to ASO_QUOTE_HEADERS_ALL.QUOTE_HEADER_ID to OKX_QUOTE_HEADERS_V.ID1
158 --                                     ASO_QUOTE_LINES_ALL.LINE_HEADER_ID to OKX_QUOTE_LINES_V.ID1
159     PROCEDURE get_pavv_tab(
160                 p_chr_id  IN OKC_K_HEADERS_B.ID%TYPE,
161                 p_cle_id  IN OKC_K_LINES_B.ID%TYPE DEFAULT OKC_API.G_MISS_NUM,
162 
163                 p_o_flag  IN VARCHAR2 DEFAULT OKC_API.G_FALSE, --order flag
164                 p_ohr_id  IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
165                 p_ole_id  IN NUMBER DEFAULT OKC_API.G_MISS_NUM,
166 
167                 p_q_flag  IN VARCHAR2 DEFAULT OKC_API.G_FALSE, --quote flag
168                 p_qhr_id  IN OKX_QUOTE_HEADERS_V.ID1%TYPE
169                              DEFAULT OKC_API.G_MISS_NUM,
170                 p_qle_id  IN OKX_QUOTE_LINES_V.ID1%TYPE
171 	                     DEFAULT OKC_API.G_MISS_NUM);
172 
173 
174 
175 --  =========================================================================
176 --  =========================================================================
177 --                   START OF KTQ or KTO PRICING INFORMATION CREATION
178 --                                   or UPDATE
179 --  =========================================================================
180 --  =========================================================================
181 
182 
183   TYPE k_price_adj_rec_type IS RECORD(id okc_price_adjustments.id%TYPE,level VARCHAR2(1));
184 
185   TYPE k_price_adj_tab_type IS TABLE OF k_price_adj_rec_type index by binary_integer;
186 
187 
188   g_aso_op_code_create VARCHAR2(30) := 'CREATE';
189   g_aso_op_code_update VARCHAR2(30) := 'UPDATE';
190   g_aso_op_code_delete VARCHAR2(30) := 'DELETE';
191 
192   x_return_status	VARCHAR2(1);
193   p_o_flag		VARCHAR2(1);
194   p_q_flag		VARCHAR2(1);
195 
196   p_qle_tab          ASO_QUOTE_PUB.qte_line_tbl_type DEFAULT ASO_QUOTE_PUB.g_miss_qte_line_tbl;
197   p_qle_shipment_tab ASO_QUOTE_PUB.shipment_tbl_type DEFAULT ASO_QUOTE_PUB.g_miss_shipment_tbl;
198 
199   p_ole_tab          ASO_QUOTE_PUB.qte_line_tbl_type DEFAULT ASO_QUOTE_PUB.g_miss_qte_line_tbl;
200   p_ole_shipment_tab ASO_QUOTE_PUB.shipment_tbl_type DEFAULT ASO_QUOTE_PUB.g_miss_shipment_tbl;
201 
202 
203 
204   e_exit EXCEPTION;
205 
206   l_line_tab	          ASO_QUOTE_PUB.qte_line_tbl_type;
207   l_line_shipment_tab     ASO_QUOTE_PUB.shipment_tbl_type;
208   l_k_price_adj_tab       k_price_adj_tab_type;
209 
210 
211 -----------------------------------------------------------------------------------------
212 -- procedure build_pricing_from_k
213 -----------------------------------------------------------------------------------------
214 
215 -- Notes for the impact of configuration items on Pricing information
216 -- for k->Q update and K->O creation.
217 --
218 --      Quote                   Contract
219 --      -----                   --------
220 --      QL1 <----------------   KL1        Top Model line (Contains sales credit, rule info)
221 --            |______________    |__KSL1   Top Base line  (Contains Price adjustment info)
222 --                                  |
223 --      QL2 <----------------       |- KSL1.1  Config     (Contains Price adjustment info)
224 --      QL3 <----------------       |_ KSL1.2  Config     (Contains Price adjustment info)
225 --
226 -- The Top model line and the Top base line information is stored into the same
227 -- quote line as shown above and when the relationship PL/SQL table is constructed
228 -- the first relationship between KL1 and QL1 is overwritten by the second
229 -- relationship. Therefore the line id that is against the QL1 is the id
230 -- of the top base line.So there is no impact of configuration items on
231 -- Pricing information because all the information is available
232 --
233 
234 PROCEDURE build_pricing_from_k(
235 	p_chr_id           IN  OKC_K_HEADERS_B.id%TYPE,
236 	p_kl_rel_tab       IN  okc_oc_int_config_pvt.line_rel_tab_type DEFAULT okc_oc_int_config_pvt.g_miss_kl_rel_tab,
237      --
238 	p_q_flag           IN  VARCHAR2 			    DEFAULT OKC_API.g_miss_char,
239 	p_qhr_id           IN  OKX_QUOTE_HEADERS_V.id1%TYPE         DEFAULT OKC_API.g_miss_num,
240 	p_qle_tab          IN  ASO_QUOTE_PUB.qte_line_tbl_type      DEFAULT ASO_QUOTE_PUB.g_miss_qte_line_tbl,
241 	p_qle_shipment_tab IN  ASO_QUOTE_PUB.shipment_tbl_type      DEFAULT ASO_QUOTE_PUB.g_miss_shipment_tbl,
242      --
243 	p_o_flag           IN  VARCHAR2 			    DEFAULT OKC_API.g_miss_char,
244 	p_ohr_id           IN  OKX_ORDER_HEADERS_V.id1%TYPE         DEFAULT OKC_API.g_miss_num,
245 	p_ole_tab          IN  ASO_QUOTE_PUB.qte_line_tbl_type      DEFAULT ASO_QUOTE_PUB.g_miss_qte_line_tbl,
246 	p_ole_shipment_tab IN  ASO_QUOTE_PUB.shipment_tbl_type      DEFAULT ASO_QUOTE_PUB.g_miss_shipment_tbl,
247      --
248 	x_hd_price_adj_tab              OUT NOCOPY ASO_QUOTE_PUB.price_adj_tbl_type,
249  	x_ln_price_adj_tab              OUT NOCOPY ASO_QUOTE_PUB.price_adj_tbl_type,
250  	x_hd_price_adj_attr_tab         OUT NOCOPY ASO_QUOTE_PUB.price_adj_attr_tbl_type,
251  	x_ln_price_adj_attr_tab         OUT NOCOPY ASO_QUOTE_PUB.price_adj_attr_tbl_type,
252  	x_hd_price_attr_tab             OUT NOCOPY ASO_QUOTE_PUB.price_attributes_tbl_type,
253  	x_ln_price_attr_tab             OUT NOCOPY ASO_QUOTE_PUB.price_attributes_tbl_type,
254  	x_hd_price_adj_rltship_tab      OUT NOCOPY ASO_QUOTE_PUB.price_adj_rltship_tbl_type,
255  	x_ln_price_adj_rltship_tab      OUT NOCOPY ASO_QUOTE_PUB.price_adj_rltship_tbl_type,
256      --
257 	x_return_status      OUT NOCOPY  VARCHAR2);
258 
259 --  =========================================================================
260 --  =========================================================================
261 --                   END OF KTQ or KTO PRICING INFORMATION CREATION
262 --                                   or UPDATE
263 --  =========================================================================
264 --  =========================================================================
265 
266 END OKC_OC_INT_PRICING_PVT;