DBA Data[Home] [Help]

PACKAGE: APPS.OKC_PRICE_PUB

Source


1 PACKAGE OKC_PRICE_PUB AS
2 /* $Header: OKCPPRES.pls 120.0 2005/05/25 18:00:03 appldev noship $ */
3 
4 
5 ---Added smhanda---------------------------------------------------------------
6 ----------------------------------------------------------------------------
7 ----PRICE_CONTROL_REC_TYPE holds the control rec to be sent to price_request as well other parameters.
8 ----------------------------------------------------------------------------
9 TYPE PRICE_CONTROL_REC_TYPE is Record
10 (
11   p_Request_Type_Code		VARCHAR2(3),
12   p_negotiated_changed      varchar2(1) DEFAULT 'N', --possible values 'Y','N'
13   p_level                   VARCHAR2(2) DEFAULT 'L',--possible values 'L' lines only,'QA' From QA, 'H' Header and lines
14   p_calc_flag               varchar2(1) DEFAULT 'B', --possible values
15                            --'B' (search and calculate -Apply the existing manual adj. and get new automatics and calculate price),
16                            --'C' (calculate only- Recalculate the price based upon already selected adjustments)
17                            -- 'S' (Search only- Do not recalculate the price. Just get the new adjustments available)
18   p_config_yn               varchar2(1) DEFAULT 'N', --possible values
19                             -- 'Y' Configurator call. donot save the price adjustments data
20                             -- 'N' not configurator call
21                             -- 'S' configurator call. save the price adjustments data
22   p_top_model_id            number
23 );
24 
25 SUBTYPE GLOBAL_LSE_REC_TYPE IS OKC_PRICE_PVT.GLOBAL_LSE_REC_TYPE;
26 SUBTYPE GLOBAL_RPRLE_REC_TYPE IS OKC_PRICE_PVT.GLOBAL_RPRLE_REC_TYPE;
27 SUBTYPE CLE_PRICE_REC_TYPE IS OKC_PRICE_PVT.CLE_PRICE_REC_TYPE;
28 SUBTYPE Manual_Adj_REC_Type IS OKC_PRICE_PVT.Manual_Adj_REC_Type;
29 SUBTYPE OKC_CONTROL_REC_TYPE IS OKC_PRICE_PVT.OKC_CONTROL_REC_TYPE;
30 SUBTYPE LINE_REC_TYPE IS OKC_PRICE_PVT.LINE_REC_TYPE;
31 
32 
33 SUBTYPE GLOBAL_LSE_TBL_TYPE IS OKC_PRICE_PVT.GLOBAL_LSE_TBL_TYPE;
34 SUBTYPE GLOBAL_RPRLE_TBL_TYPE IS OKC_PRICE_PVT.GLOBAL_RPRLE_TBL_TYPE;
35 SUBTYPE NUM_TBL_TYPE IS OKC_PRICE_PVT.NUM_TBL_TYPE;
36 SUBTYPE CLE_PRICE_TBL_TYPE IS OKC_PRICE_PVT.CLE_PRICE_TBL_TYPE;
37 SUBTYPE MANUAL_Adj_Tbl_Type IS OKC_PRICE_PVT.MANUAL_Adj_Tbl_Type;
38 SUBType LINE_Tbl_Type Is OKC_PRICE_PVT.LINE_Tbl_Type;
39 
40 G_LSE_TBL            GLOBAL_LSE_TBL_TYPE;
41 G_RUL_TBL            GLOBAL_RPRLE_TBL_TYPE;
42 G_PRLE_TBL           GLOBAL_RPRLE_TBL_TYPE;
43 
44 /********** Following is added by JOMY  ****************/
45 
46 TYPE Customer_Info_Rec_Type IS RECORD
47 (       customer_id         NUMBER
48 ,       customer_class_code VARCHAR2(240)
49 ,       sales_channel_code  VARCHAR2(240)
50 ,       gsa_indicator       VARCHAR2(1)
51 ,       account_types       QP_Attr_Mapping_PUB.t_MultiRecord
52 ,       customer_relationships       QP_Attr_Mapping_PUB.t_MultiRecord
53 );
54 
55 TYPE Order_Info_Rec_Type IS RECORD
56 (       header_id         NUMBER
57 ,       order_amount      VARCHAR2(240)
58 ,       order_quantity    VARCHAR2(240)
59 );
60 
61 TYPE Contract_Info_Rec_Type IS RECORD
62 (       TOP_MODEL_LINE_ID         NUMBER
63 ,       INVENTORY_ITEM_ID         NUMBER
64 ,       INV_ORG_ID                NUMBER
65 ,       SOLD_TO_ORG_ID            NUMBER
66 ,       PRICING_DATE              DATE
67 ,       GOVERNING_CONTRACT_ID     NUMBER
68 );
69 
70 
71 TYPE Site_Use_Rec_Type IS RECORD
72 (       contact_id        VARCHAR2(240)
73 ,       site_use_id       VARCHAR2(240)
74 );
75 
76 TYPE Agreement_Info_Rec_Type IS RECORD
77 (       agreement_id            VARCHAR2(240)
78 ,       agreement_type_code   VARCHAR2(240)
79 );
80 
81 TYPE Item_Segments_Rec_Type IS RECORD
82 (       inventory_item_id       NUMBER
83 ,       segment1                VARCHAR2(240)
84 ,       segment2                VARCHAR2(240)
85 ,       segment3                VARCHAR2(240)
86 ,       segment4                VARCHAR2(240)
87 ,       segment5                VARCHAR2(240)
88 ,       segment6                VARCHAR2(240)
89 ,       segment7                VARCHAR2(240)
90 ,       segment8                VARCHAR2(240)
91 ,       segment9                VARCHAR2(240)
92 ,       segment10               VARCHAR2(240)
93 ,       segment11               VARCHAR2(240)
94 ,       segment12               VARCHAR2(240)
95 ,       segment13               VARCHAR2(240)
96 ,       segment14               VARCHAR2(240)
97 ,       segment15               VARCHAR2(240)
98 ,       segment16               VARCHAR2(240)
99 ,       segment17               VARCHAR2(240)
100 ,       segment18               VARCHAR2(240)
101 ,       segment19               VARCHAR2(240)
102 ,       segment20               VARCHAR2(240)
103 );
104 
105 --G_TOP_MODEL_LINE_ID NUMBER;
106 --G_MODEL_ID NUMBER;
107 G_Customer_Info    Customer_Info_Rec_Type;
108 --G_Order_Info       Order_Info_Rec_Type;
109 --G_Site_Use         Site_Use_Rec_Type;
110 --G_Agreement_Info   Agreement_Info_Rec_Type;
111 G_Item_Segments    Item_Segments_Rec_Type;
112 G_CONTRACT_INFO    CONTRACT_INFO_REC_TYPE;
113 /******* The aboveis added by JOMY *******/
114 
115 --------------------------------------------------------------------
116 --FUNCTION - GET_LSE_SOURCE_VALUE
117 -- This function is used in mapping of attributes between QP and OKC
118 -- The calls to this function will be made by QP Engine to get values for
119 --various Qualifiers and Pricing Attributes
120 -- p_lse_tbl - Global Table holding various OKX_SOURCES and their values for lse
121 -- p_registered_source - The source for which value should be returned
122 -- Returns the value for the p_registered_source
123 ----------------------------------------------------------------------------
124 FUNCTION Get_LSE_SOURCE_VALUE (
125             p_lse_tbl         IN      global_lse_tbl_type,
126             p_registered_source  IN      VARCHAR2)
127 RETURN VARCHAR2;
128 
129 -----------------------------------------------------------------------------
130 --FUNCTION - GET_RUL_SOURCE_VALUE
131 -- This function is used in mapping of attributes between QP and OKC
132 -- The calls to this function will be made by QP Engine to get values for
133 --various Qualifiers and Pricing Attributes
134 -- p_rul_tbl - Global Table holding various OKX_SOURCES and their values for rules
135 -- p_registered_code - The rule code for which value should be returned
136 -- p_registered_source - The source for which value should be returned
137 -- Returns the value for the p_registered_source+p_registered_code
138 ----------------------------------------------------------------------------
139 FUNCTION Get_RUL_SOURCE_VALUE (
140             p_rul_tbl            IN      global_rprle_tbl_type,
141             p_registered_code    IN      varchar2,
142             p_registered_source  IN      VARCHAR2)
143 RETURN VARCHAR2;
144 
145 ------------------------------------------------------------------------------
146 --FUNCTION - GET_PRLE_SOURCE_VALUE
147 -- This function is used in mapping of attributes between QP and OKC
148 -- The calls to this function will be made by QP Engine to get values for
149 --various Qualifiers and Pricing Attributes
150 -- p_prle_tbl - Global Table holding various OKX_SOURCES and their values for rules
151 -- p_registered_role - The role code for which value should be returned
152 -- p_registered_source - The source for which value should be returned
153 -- Returns the value for the p_registered_source+p_registered_role
154 ----------------------------------------------------------------------------
155 FUNCTION Get_PRLE_SOURCE_VALUE (
156             p_prle_tbl          IN      global_rprle_tbl_type,
157             p_registered_code   IN      varchar2,
158             p_registered_source IN      VARCHAR2)
159 RETURN VARCHAR2;
160 
161    ----------------------------------------------------------------------------
162 -- CALCULATE_PRICE
163 -- This procedure will calculate the price for the sent in line/header
164 -- px_cle_price_tbl returns the priced line ids and thier prices
165 -- p_level tells whether line level or header level
166 -- possible value 'L','H','QA' DEFAULT 'L'
167 --p_calc_flag   'B'(Both -calculate and search),'C'(Calculate Only), 'S' (Search only)
168 ----------------------------------------------------------------------------
169 PROCEDURE CALCULATE_price(
170           p_api_version                 IN          NUMBER DEFAULT 1,
171           p_init_msg_list               IN          VARCHAR2 DEFAULT OKC_API.G_FALSE,
172           p_CHR_ID                      IN          NUMBER,
173           p_Control_Rec			        IN          OKC_CONTROL_REC_TYPE,
174           px_req_line_tbl               IN  OUT NOCOPY   QP_PREQ_GRP.LINE_TBL_TYPE,
175           px_Req_qual_tbl               IN  OUT NOCOPY   QP_PREQ_GRP.QUAL_TBL_TYPE,
176           px_Req_line_attr_tbl          IN  OUT NOCOPY   QP_PREQ_GRP.LINE_ATTR_TBL_TYPE,
177           px_Req_LINE_DETAIL_tbl        IN  OUT NOCOPY   QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
178           px_Req_LINE_DETAIL_qual_tbl   IN  OUT NOCOPY   QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE,
179           px_Req_LINE_DETAIL_attr_tbl   IN  OUT NOCOPY   QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE,
180           px_Req_RELATED_LINE_TBL       IN  OUT NOCOPY   QP_PREQ_GRP.RELATED_LINES_TBL_TYPE,
181           px_CLE_PRICE_TBL		        IN  OUT NOCOPY   CLE_PRICE_TBL_TYPE,
182           x_return_status               OUT  NOCOPY VARCHAR2,
183           x_msg_count             OUT  NOCOPY NUMBER,
184           x_msg_data              OUT  NOCOPY VARCHAR2);
185 
186 --------------------------------------------------------------------------
187 -- Update_Contract_price
188 -- This procedure will calculate the price for all the Priced lines in a contract
189 -- while calculating whether header level adjustments are to be considrerd
190 -- or not will be taken care of by px_control_rec.p_level (possible values 'L','H','QA')
191 -- p_chr_id - id of the header
192 -- x_chr_net_price - estimated amount on header
193 
194 ----------------------------------------------------------------------------
195 PROCEDURE Update_CONTRACT_price(
196           p_api_version                 IN          NUMBER,
197           p_init_msg_list               IN          VARCHAR2 DEFAULT OKC_API.G_FALSE,
198           p_commit                      IN          VARCHAR2 DEFAULT OKC_API.G_TRUE,
199           p_CHR_ID                      IN          NUMBER,
200           px_Control_Rec			    IN  OUT NOCOPY     PRICE_CONTROL_REC_TYPE,
201           x_CLE_PRICE_TBL		        OUT  NOCOPY CLE_PRICE_TBL_TYPE,
202           x_chr_net_price               OUT  NOCOPY NUMBER,
203           x_return_status               OUT  NOCOPY VARCHAR2,
204           x_msg_count                   OUT  NOCOPY NUMBER,
205           x_msg_data                    OUT  NOCOPY VARCHAR2);
206 
207 ----------------------------------------------------------------------------
208 -- Update_Line_price
209 -- This procedure will calculate the price for all the Priced lines below sent in line
210 -- Called when a line is updated in the form
211 -- p_cle_id - id of the line updated
212 -- p_chr_id - id of the header
213 -- p_lowest_level Possible values 0(p_cle_id not null and this line is subline),
214 --                                 1(p_cle_id not null and this line is upper line),
215 --                                 -1(update all lines)
216 --                                 -2(update all lines and header)
217 --                                 DEFAULT -2
218 --
219 --px_chr_list_price  IN OUT -holds the total line list price, for right value pass in the existing value,
220 --px_chr_net_price   IN OUT -holds the total line net price, for right value pass in the existing value
221 -- px_cle_amt gets back the net price for the line that was updated. In case of
222 -- p_negotiated_changed, it brings in the old net price of the line updated
223 
224 ----------------------------------------------------------------------------
225 PROCEDURE Update_LINE_price(
226           p_api_version                 IN          NUMBER,
227           p_init_msg_list               IN          VARCHAR2 DEFAULT OKC_API.G_FALSE,
228           p_commit                      IN          VARCHAR2 DEFAULT OKC_API.G_TRUE,
229           p_CHR_ID                      IN          NUMBER,
230           p_cle_id			            IN	        NUMBER DEFAULT null,
231           p_lowest_level                IN          NUMBER DEFAULT -2,
232           px_Control_Rec			    IN   OUT NOCOPY    PRICE_CONTROL_REC_TYPE,
233           px_chr_list_price             IN   OUT NOCOPY    NUMBER,
234           px_chr_net_price              IN   OUT NOCOPY    NUMBER,
235           x_CLE_PRICE_TBL		        OUT  NOCOPY CLE_PRICE_TBL_TYPE,
236           px_cle_amt    		        IN   OUT NOCOPY    NUMBER,
237           x_return_status               OUT  NOCOPY VARCHAR2,
238           x_msg_count                   OUT  NOCOPY NUMBER,
239           x_msg_data                    OUT  NOCOPY VARCHAR2);
240 
241 ----------------------------------------------------------------------------
242 -- GET_MANUAL_ADJUSTMENTS
243 -- This procedure will return all the manual adjustments that qualify for the
244 -- sent in lines and header
245 -- To get adjustments for a line pass p_cle_id and p_control_rec.p_level='L'
246 -- To get adjustments for a Header pass p_cle_id as null and p_control_rec.p_level='H'
247 ----------------------------------------------------------------------------
248 PROCEDURE get_manual_adjustments(
249           p_api_version                 IN          NUMBER,
250           p_init_msg_list               IN          VARCHAR2 DEFAULT OKC_API.G_FALSE,
251           p_CHR_ID                      IN          NUMBER,
252           p_cle_id                      IN          number                     Default Null,
253           p_Control_Rec			        IN          PRICE_CONTROL_REC_TYPE,
254           x_ADJ_tbl                     OUT  NOCOPY MANUAL_Adj_Tbl_Type,
255           x_return_status               OUT  NOCOPY VARCHAR2,
256           x_msg_count                   OUT  NOCOPY NUMBER,
257           x_msg_data                    OUT  NOCOPY VARCHAR2);
258 --end added smhanda------------------------------------------------------------
259 
260 G_REQUIRED_VALUE            CONSTANT VARCHAR2(200) := OKC_API.G_REQUIRED_VALUE;
261 G_INVALID_VALUE             CONSTANT VARCHAR2(200) := OKC_API.G_INVALID_VALUE;
262 G_COL_NAME_TOKEN            CONSTANT VARCHAR2(200) := OKC_API.G_COL_NAME_TOKEN;
263 G_PARENT_TABLE_TOKEN        CONSTANT VARCHAR2(200) := OKC_API.G_PARENT_TABLE_TOKEN;
264 G_CHILD_TABLE_TOKEN         CONSTANT VARCHAR2(200) := OKC_API.G_CHILD_TABLE_TOKEN;
265 G_UNEXPECTED_ERROR          CONSTANT VARCHAR2(200) := 'OKC_UNEXPECTED_ERROR';
266 G_SQLERRM_TOKEN             CONSTANT VARCHAR2(200) := 'SQLERRM';
267 G_SQLCODE_TOKEN             CONSTANT VARCHAR2(200) := 'SQLCODE';
268 
269 ------------------------------------------------------------------------------------
270 
271   -- GLOBAL EXCEPTION
272 
273 ---------------------------------------------------------------------------
274 
275 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
276 G_BUILD_RECORD_FAILED       EXCEPTION;
277 G_REQUIRED_ATTR_FAILED      EXCEPTION;
278 G_CALL_QP_FAILED            EXCEPTION;
279 
280 --  Global constant holding the package name
281 
282 G_PKG_NAME              CONSTANT VARCHAR2(30) := 'OKC_PRICE_PUB';
283 G_APP_NAME              CONSTANT VARCHAR2(3) := 'OKC';
284 
285 
286 G_LIST_CONTEXT          CONSTANT VARCHAR2(30) := 'MODLIST';
287 G_LIST_PRICE_ATTR       CONSTANT VARCHAR2(30) := 'QUALIFIER_ATTRIBUTE4';
288 G_LIST_MODIFIER_ATTR    CONSTANT VARCHAR2(30) := 'QUALIFIER_ATTRIBUTE6';
289 
290 G_ITEM_CONTEXT          CONSTANT VARCHAR2(30) := 'ITEM';
291 G_ITEM_ATTR             CONSTANT VARCHAR2(30) := 'PRICING_ATTRIBUTE1';
292 
293 G_VOLUME_CONTEXT        CONSTANT VARCHAR2(30) := 'VOLUME';
294 G_VOLUME_ATTR           CONSTANT VARCHAR2(30) := 'PRICING_ATTRIBUTE1';
295 
296 G_REQUEST_TYPE_CODE     CONSTANT VARCHAR2(30) := 'ASO';
297 G_PRICING_EVENT         CONSTANT VARCHAR2(30) := 'PRICE';
298 G_LINE_TYPE             CONSTANT VARCHAR2(30) := 'SERVICE CONTRACT LINE';
299 G_CONTROL_REC		QP_PREQ_GRP.CONTROL_RECORD_TYPE;
300 
301 
302 G_JTF_Party        CONSTANT  VARCHAR2(30)  := 'OKX_PARTY';
303 G_JTF_Covlvl       CONSTANT  VARCHAR2(30)  := 'OKX_COVSYST';
304 G_JTF_Custacct     CONSTANT  VARCHAR2(30)  := 'OKX_CUSTACCT';
305 G_JTF_CusProd      CONSTANT  VARCHAR2(40)  := 'OKX_CUSTPROD';
306 
307 --G_JTF_Sysitem    CONSTANT  VARCHAR2(30)  := 'X_
308 G_JTF_Billto       CONSTANT  VARCHAR2(30)  := 'OKX_BILLTO';
309 G_JTF_Shipto       CONSTANT  VARCHAR2(30)  := 'OKX_SHIPTO';
310 G_JTF_Warr         CONSTANT  VARCHAR2(30)  := 'OKX_WARRANTY';
311 G_JTF_Extwar       CONSTANT  VARCHAR2(30)  := 'OKX_SERVICE';
312 
313 
314 G_JTF_usage        CONSTANT  VARCHAR2(30)  := 'OKX_USAGE';
315 G_JTF_service      CONSTANT  VARCHAR2(30)  := 'OKX_SERVICE';
316 
317 G_JTF_Invrule      CONSTANT  VARCHAR2(30)  := 'OKX_INVRULE';
318 G_JTF_Acctrule     CONSTANT  VARCHAR2(30)  := 'OKX_ACCTRULE';
319 G_JTF_Payterm      CONSTANT  VARCHAR2(30)  := 'OKX_PPAYTERM';
320 G_JTF_Price        CONSTANT  VARCHAR2(30)  := 'OKX_PRICE';
321 G_JTF_Nolov        CONSTANT  VARCHAR2(30)  := 'OKX_NOLOV';
322 G_PRE_RULE         CONSTANT  VARCHAR2(90)  := 'PRE';
323 
324 --- ******************************** P A R T I  *******************************************************
325 --	1. To build the global contract line structure so that it can be used in QP dimension sourcing
326 --- ***************************************************************************************************
327 
328 TYPE G_LINE_REC_TYPE IS RECORD(
329         HDR_ID   	      	NUMBER,
330         START_DATE   		DATE,
331         END_DATE   		DATE,
332         STATUS_CODE   		VARCHAR2(30),
333         LINE_ID   		NUMBER,
334         CLASS   		 VARCHAR2(80),
335         SUB_CLASS   		VARCHAR2(80),
336         PARTY_ID   		NUMBER,
337         AGREEMENT_ID  		NUMBER,
338         PRICE_LIST_ID  		NUMBER,
339         MODIFIER_LIST_ID	NUMBER,
340         CURRENCY_CODE  		VARCHAR2(15),
341         ACCOUNTING_RULE_ID 	VARCHAR2(30),
342         INVOICE_RULE_ID  	VARCHAR2(30),
343         PAYMENT_TERMS_ID  	VARCHAR2(30),
344         CUSTOMER_PO_NUMBER 	nUMBER,
345         BILL_INTERVAL  		VARCHAR2(40),
346         INVENTORY_ITEM_ID  	NUMBER,
347         ITEM_QTY   		NUMBER,
348         ITEM_UOM_CODE  		VARCHAR2(30),
349         BILL_TO_ID   		VARCHAR2(30),
350         SHIP_TO_ID   		VARCHAR2(30),
351         CUSTOMER_ACCT_ID  	NUMBER,
352 	USAGE_ITEM_FLAG		VARCHAR2(1),
353 	RECORD_BUILT_FLAG	VARCHAR2(1)
354 );
355 
356 TYPE G_SLINE_REC_TYPE IS RECORD(
357  	SUB_LINE_INDEX 		NUMBER,
358  	SUB_LINE_ID  		Number,
359 	LINE_ID			NUMBER,
360         INVENTORY_ITEM_ID	NUMBER,
361         ITEM_QTY   		NUMBER,
362         ITEM_UOM_CODE   	VARCHAR2(30),
363 	CP_UNIT_PRICE		NUMBER,
364 	UNIT_PRICE 	        NUMBER,
365 	UNIT_PERCENT	        NUMBER,
366 	PRICED_QUANTITY         NUMBER,
367  	PRICED_UOM_CODE         VARCHAR2(30),
368  	CURRENCY_CODE           VARCHAR2(30),
369  	ADJUSTED_UNIT_PRICE     NUMBER,
370 	EXTENDED_AMOUNT		NUMBER
371 );
372 
373 TYPE G_SLINE_TBL_TYPE is TABLE OF G_SLINE_REC_TYPE INDEX BY BINARY_INTEGER;
374 
375 TYPE G_PRICE_BREAK_REC_TYPE IS RECORD(
376  	quantity_from  		Number,
377 	quantity_to		NUMBER,
378         list_price		NUMBER,
379 	break_method		VARCHAR2(10)
380 );
381 
382 TYPE G_PRICE_BREAK_TBL_TYPE is TABLE OF G_PRICE_BREAK_REC_TYPE INDEX BY BINARY_INTEGER;
383 
384 
385 --  This procedure will load the contract line(service item) for a given contract line ID
386 --  and returns the loaded record
387 --
388 PROCEDURE BUILD_OKC_KLINE_REC
389 (
390 	p_contract_line_id		IN NUMBER,
391 	x_contract_line_rec	 OUT NOCOPY OKC_PRICE_PUB.G_LINE_REC_TYPE,
392 	x_return_status		 OUT NOCOPY VARCHAR2
393 );
394 
395 --- ******************************** P A R T II  *******************************************************
396 --  2. To assemble data in accordance to pricing engine request
397 --- 	This procedure is to be used by contracts authoring screen to get price of a
398 --- 	service item on serviceable items. The price will be returned in x_contract_cp_tbl
399 --- 	which the screen can display on the UI. It basically calls the overloaded calculate_price procedure
400 --- ****************************************************************************************************
401 
402 
403 Procedure Calculate_Price(p_clev_tbl          OKC_CONTRACT_PUB.clev_tbl_type,
404                           p_cimv_tbl          OKC_CONTRACT_ITEM_PUB.cimv_tbl_type,
405                           px_unit_price       OUT NOCOPY Number,
406                           px_extended_amount  OUT NOCOPY Number,
407                           px_message          OUT NOCOPY Varchar2,
408                           x_return_status     OUT NOCOPY VARCHAR2,
409                           x_msg_count         OUT NOCOPY NUMBER,
410                           x_msg_data          OUT NOCOPY VARCHAR2);
411 
412 /* Procedure Calculate_Price(p_cle_id            Number,
413                           px_contract_cp_tbl  IN OUT NOCOPY OKC_PRICE_PUB.G_SLINE_TBL_TYPE,
414                           x_return_status     OUT NOCOPY VARCHAR2,
415                           x_msg_count         OUT NOCOPY NUMBER,
416                           x_msg_data          OUT NOCOPY VARCHAR2);
417 PROCEDURE CALCULATE_PRICE
418 (
419 	p_contract_line_rec		IN OKC_PRICE_PUB.G_LINE_REC_TYPE,
420 	px_contract_cp_tbl 		IN OUT NOCOPY OKC_PRICE_PUB.G_SLINE_TBL_TYPE,
421 	x_return_status		 OUT NOCOPY VARCHAR2,
422 	x_msg_count		 OUT NOCOPY NUMBER,
423 	x_msg_data		 OUT NOCOPY VARCHAR2
424 ); */
425 
426 
427 PROCEDURE GET_PRICE_BREAK
428 (
429 	p_contract_line_rec		IN OKC_PRICE_PUB.G_LINE_REC_TYPE,
430 	x_price_break_tbl 	 OUT NOCOPY OKC_PRICE_PUB.G_PRICE_BREAK_TBL_TYPE,
431 	x_return_status		 OUT NOCOPY VARCHAR2,
432 	x_msg_count		 OUT NOCOPY NUMBER,
433 	x_msg_data		 OUT NOCOPY VARCHAR2
434 );
435 
436 /*Following is added by JOMY */
437 PROCEDURE Get_Customer_Info (p_cust_id NUMBER);
438 FUNCTION Get_Item_Category
439 (
440         P_inventory_item_id IN NUMBER,
441         P_org_id            IN NUMBER
442 ) RETURN QP_Attr_Mapping_PUB.t_MultiRecord;
443 
444 FUNCTION Get_Customer_Class(p_cust_id IN NUMBER) RETURN VARCHAR2;
445 
446 FUNCTION Get_Account_Type (p_cust_id IN NUMBER) RETURN QP_Attr_Mapping_PUB.t_MultiRecord;
447 
448 FUNCTION Get_Sales_Channel (p_cust_id IN NUMBER) RETURN VARCHAR2;
449 
450 FUNCTION Get_GSA (p_cust_id NUMBER) RETURN VARCHAR2;
451 
452 FUNCTION Get_Item_Segment
453 (
454     p_inventory_item_id IN NUMBER,
455                p_org_id IN NUMBER,
456     p_seg_num NUMBER
457 )   RETURN VARCHAR2;
458 ---> Add New parameter(P_org_id IN NUMBER)
459 --added by smhanda
460 --pass global rule tbl here
461 FUNCTION Get_Site_Use (p_rul_tbl IN GLOBAL_RPRLE_TBL_TYPE) RETURN QP_Attr_Mapping_PUB.t_MultiRecord;
462 --not used anymore take get_invoice--  out later
463 FUNCTION GET_INVOICE_TO_ORG_ID (p_rul_tbl IN GLOBAL_RPRLE_TBL_TYPE,p_rle_tbl IN GLOBAL_RPRLE_TBL_TYPE) RETURN NUMBER;
464 
465 FUNCTION GET_PARTY_ID (p_sold_to_org_id IN NUMBER) RETURN NUMBER ;
466 FUNCTION GET_SHIP_TO_PARTY_SITE_ID(p_rul_tbl IN GLOBAL_RPRLE_TBL_TYPE) RETURN NUMBER;
467 FUNCTION GET_INVOICE_TO_PARTY_SITE_ID(p_rul_tbl IN GLOBAL_RPRLE_TBL_TYPE) RETURN NUMBER;
468 
469 -- ifilimon: added to support unit price retrieving by main item attributes
470 FUNCTION Get_Unit_Price(
471   p_price_list_id                 Number,
472   p_inventory_item_id             Number,
473   p_uom_code                      Varchar2,
474   p_cur_code                      Varchar2,
475   p_qty                           NUMBER := 1
476 ) RETURN NUMBER ;
477 
478 -- ifilimon: added to round unit price according to currency rules
479 FUNCTION ROUND_PRICE(p_price NUMBER, p_cur_code VARCHAR2) RETURN NUMBER;
480 
481 END OKC_PRICE_PUB;