DBA Data[Home] [Help]

PACKAGE: APPS.FTE_RATE_CHART_PKG

Source


1 PACKAGE FTE_RATE_CHART_PKG AUTHID CURRENT_USER AS
2 /* $Header: FTERCPKS.pls 120.3 2005/07/21 14:13:29 jishen noship $ */
3 
4   TYPE qp_list_header_rec IS RECORD (
5        PROCESS_ID		qp_interface_list_headers.process_id%TYPE,
6        INTERFACE_ACTION_CODE	qp_interface_list_headers.interface_action_code%TYPE,
7        LIST_TYPE_CODE		qp_interface_list_headers.list_type_code%TYPE,
8        START_DATE_ACTIVE	qp_interface_list_headers.start_date_active%TYPE,
9        END_DATE_ACTIVE		qp_interface_list_headers.end_date_active%TYPE,
10        CURRENCY_CODE		qp_interface_list_headers.currency_code%TYPE,
11        NAME			qp_interface_list_headers.name%TYPE,
12        DESCRIPTION		qp_interface_list_headers.description%TYPE,
13        LIST_HEADER_ID		qp_interface_list_headers.list_header_id%TYPE,
14        ATTRIBUTE1		qp_interface_list_headers.attribute1%TYPE);
15 
16   TYPE qp_list_header_tbl IS TABLE OF
17        qp_list_header_rec
18        INDEX BY BINARY_INTEGER;
19 
20   TYPE qp_list_line_rec IS RECORD (
21        PROCESS_ID			qp_interface_list_lines.process_id%TYPE,
22        OPERAND				qp_interface_list_lines.operand%TYPE,
23        COMMENTS				qp_interface_list_lines.comments%TYPE,
24        LIST_LINE_NO			qp_interface_list_lines.list_line_no%TYPE,
25        PRIMARY_UOM_FLAG			qp_interface_list_lines.primary_uom_flag%TYPE,
26        PROCESS_TYPE			qp_interface_list_lines.process_type%TYPE,
27        INTERFACE_ACTION_CODE		qp_interface_list_lines.interface_action_code%TYPE,
28        LIST_LINE_TYPE_CODE		qp_interface_list_lines.list_line_type_code%TYPE,
29        AUTOMATIC_FLAG			qp_interface_list_lines.automatic_flag%TYPE,
30        OVERRIDE_FLAG			qp_interface_list_lines.override_flag%TYPE,
31        MODIFIER_LEVEL_CODE		qp_interface_list_lines.modifier_level_code%TYPE,
32        ARITHMETIC_OPERATOR		qp_interface_list_lines.arithmetic_operator%TYPE,
33        ACCRUAL_FLAG			qp_interface_list_lines.accrual_flag%TYPE,
34        PRICE_BREAK_TYPE_CODE		qp_interface_list_lines.price_break_type_code%TYPE,
35        PRODUCT_PRECEDENCE		qp_interface_list_lines.product_precedence%TYPE,
36        PRICE_BREAK_HEADER_INDEX		qp_interface_list_lines.price_break_header_index%TYPE,
37        RLTD_MODIFIER_GRP_NO		qp_interface_list_lines.rltd_modifier_grp_no%TYPE,
38        PRICE_BY_FORMULA_ID		qp_interface_list_lines.price_by_formula_id%TYPE,
39        ATTRIBUTE1			qp_interface_list_lines.attribute1%TYPE,
40        ATTRIBUTE2			qp_interface_list_lines.attribute2%TYPE,
41        RLTD_MODIFIER_GRP_TYPE		qp_interface_list_lines.rltd_modifier_grp_type%TYPE,
42        PRICING_GROUP_SEQUENCE		qp_interface_list_lines.pricing_group_sequence%TYPE,
43        PRICING_PHASE_ID			qp_interface_list_lines.pricing_phase_id%TYPE,
44        QUALIFICATION_IND		qp_interface_list_lines.qualification_ind%TYPE,
45        CHARGE_TYPE_CODE			qp_interface_list_lines.charge_type_code%TYPE,
46        CHARGE_SUBTYPE_CODE		qp_interface_list_lines.charge_subtype_code%TYPE,
47        START_DATE_ACTIVE		qp_interface_list_lines.start_date_active%TYPE,
48        END_DATE_ACTIVE			qp_interface_list_lines.end_date_active%TYPE);
49 
50   TYPE qp_list_line_tbl IS TABLE OF
51        qp_list_line_rec
52        INDEX BY BINARY_INTEGER;
53 
54   TYPE qp_pricing_attrib_rec IS RECORD (
55        PROCESS_ID			qp_interface_pricing_attribs.process_id%TYPE,
59        PRODUCT_ATTRIBUTE_CONTEXT	qp_interface_pricing_attribs.product_attribute_context%TYPE,
56        PROCESS_TYPE			qp_interface_pricing_attribs.process_type%TYPE,
57        INTERFACE_ACTION_CODE		qp_interface_pricing_attribs.interface_action_code%TYPE,
58        EXCLUDER_FLAG			qp_interface_pricing_attribs.excluder_flag%TYPE,
60        PRODUCT_ATTRIBUTE		qp_interface_pricing_attribs.product_attribute%TYPE,
61        PRODUCT_ATTR_VALUE		qp_interface_pricing_attribs.product_attr_value%TYPE,
62        PRODUCT_UOM_CODE			qp_interface_pricing_attribs.product_uom_code%TYPE,
63        PRODUCT_ATTRIBUTE_DATATYPE	qp_interface_pricing_attribs.product_attribute_datatype%TYPE,
64        PRICING_ATTRIBUTE_DATATYPE	qp_interface_pricing_attribs.pricing_attribute_datatype%TYPE,
65        PRICING_ATTRIBUTE_CONTEXT	qp_interface_pricing_attribs.pricing_attribute_context%TYPE,
66        PRICING_ATTRIBUTE		qp_interface_pricing_attribs.pricing_attribute%TYPE,
67        PRICING_ATTR_VALUE_FROM		qp_interface_pricing_attribs.pricing_attr_value_from%TYPE,
68        PRICING_ATTR_VALUE_TO		qp_interface_pricing_attribs.pricing_attr_value_to%TYPE,
69        ATTRIBUTE_GROUPING_NO		qp_interface_pricing_attribs.attribute_grouping_no%TYPE,
70        COMPARISON_OPERATOR_CODE		qp_interface_pricing_attribs.comparison_operator_code%TYPE,
71        LIST_LINE_NO			qp_interface_pricing_attribs.list_line_no%TYPE);
72 
73   TYPE qp_pricing_attrib_tbl IS TABLE OF
74        qp_pricing_attrib_rec
75        INDEX BY BINARY_INTEGER;
76 
77   TYPE qp_qualifier_rec IS RECORD (
78        PROCESS_ID		qp_interface_qualifiers.process_id%TYPE,
79        INTERFACE_ACTION_CODE	qp_interface_qualifiers.interface_action_code%TYPE,
80        QUALIFIER_ATTR_VALUE	qp_interface_qualifiers.qualifier_attr_value%TYPE,
81        QUALIFIER_GROUPING_NO	qp_interface_qualifiers.qualifier_grouping_no%TYPE,
82        PROCESS_TYPE		qp_interface_qualifiers.process_type%TYPE,
83        EXCLUDER_FLAG		qp_interface_qualifiers.excluder_flag%TYPE,
84        COMPARISON_OPERATOR_CODE	qp_interface_qualifiers.comparison_operator_code%TYPE,
85        QUALIFIER_CONTEXT	qp_interface_qualifiers.qualifier_context%TYPE,
86        QUALIFIER_ATTRIBUTE	qp_interface_qualifiers.qualifier_attribute%TYPE);
87 
88   TYPE qp_qualifier_tbl IS TABLE OF
89        qp_qualifier_rec
90        INDEX BY BINARY_INTEGER;
91 
92   g_is_ltl      	 BOOLEAN := false;
93 
94   TYPE VARCHAR2_TAB IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
95   TYPE NUMBER_TAB IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
96 
97   TYPE LH_CURRENCY_CODE_TAB IS TABLE OF QP_INTERFACE_LIST_HEADERS.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
98   TYPE LH_NAME_TAB IS TABLE OF QP_INTERFACE_LIST_HEADERS.NAME%TYPE INDEX BY BINARY_INTEGER;
99 
100  -- GLOBAL VARIABLES FOR Rate Chart HEADER
101 
102   G_Chart_Type           	VARCHAR2(50);
103   G_prc_brk_hdr_count           NUMBER := 0;
104   G_brk_hdr_updt_cnt            NUMBER := 0;
105 
106 
107   G_line_desc                   VARCHAR2(200);
108   G_previous_upper              NUMBER := 0;
109   G_qualifier_count           	NUMBER  := 0;
110   g_qualifier_group           	NUMBER := 0;
111 
112 
113  -- GLOBAL VARIABLES   FROM LIST_LINES
114   G_Is_Load_Pricelist           BOOLEAN;
115   G_Process_Id                  NUMBER;
116 
117   G_item                        VARCHAR2(20);
118   G_listHeaderId                NUMBER;
119   G_listLineId                  NUMBER;
120   G_Prc_Brk_Linenum             NUMBER;
121   G_Prc_Brk_Hdr_Index           NUMBER;
122   G_Mod_Grp                     NUMBER := 1;
123 
124   G_Prc_Brk_Type                VARCHAR2(20);
125   G_Prc_Rate_Type               VARCHAR2(20);
126   G_Prc_Vol_Type                VARCHAR2(20);
127   G_Prc_Line_Desc               VARCHAR2(200);
128   G_Product_UOM                 VARCHAR2(20);
129   G_Cur_Line_Index              NUMBER;
130 
131 
132   -- G_region_info   region_rec;
133   G_region_info           	wsh_regions_search_pkg.region_rec;
134   G_line_number          	NUMBER;
135   G_region_flag           	VARCHAR2(20); --remember what the current region is
136   G_region_linenum        	NUMBER := NULL;
137   G_region_context        	VARCHAR2(30);
138 
139   LH_NEW_RC   VARCHAR2_TAB;
140   LH_REPLACE_RC   NUMBER_TAB;
141 
142   -------------------------------------------------------------------------------
143   --
144   --   Reset_Price_Values. Resets GLOBAL Variables
145   --
146   -------------------------------------------------------------------------------
147   PROCEDURE  Reset_Price_Values;
148 
149   -------------------------------------------------------------------------------
150   --
151   --   Reset_Region_Info. Resets GLOBAL record for Region. It is used by
152   --                      Origin and Destination attributes
153   -------------------------------------------------------------------------------
154   PROCEDURE  Reset_REGION_INFO;
155 
156   -------------------------------------------------------------------------------
157   --
158   --   Reset_All. Resets All GLOBAL Variables
159   --
160   -------------------------------------------------------------------------------
161   PROCEDURE  Reset_ALL;
162 
163   -----------------------------------------------------------------------------
164   -- FUNCTION  Get_Pricelist_Id
165   --
166   -- Purpose
167   --    Get the pricelist_id of pricelist, or -1 if the pricelist doesn't exist
168   --
169   -- IN Parameters
170   --    1. p_name:      The name of the pricelist.
171   --    2. p_carrier_id: The carrier Id of the pricelist
172   -- RETURNS:
173   --    The pricelist Id, or -1 if the pricelist doesn't exist
174   -----------------------------------------------------------------------------
175   FUNCTION Get_Pricelist_Id (p_name       IN  VARCHAR2,
176                              p_carrier_id  IN  NUMBER,
180   -----------------------------------------------------------------------------
177 			     p_attribute1 OUT NOCOPY VARCHAR2) RETURN NUMBER;
178 
179 
181   -- FUNCTION  GET_RATE_CHART_INFO
182   --
183   -- Purpose: get the rate chart list header id, start date, and end date using the name and carrier id
184   --
185   -- IN Parameters
186   --    1. p_name:      The name of the pricelist.
187   --    2. p_carrier_id: The carrier Id of the pricelist
188   --
189   -- OUT Parameters:
190   --	1. x_status: 	status, -1 if no error
191   --	2. x_error_msg:	error message if any
192   -- RETURNS:
193   --    The pricelist Id, or -1 if the pricelist doesn't exist
194   -----------------------------------------------------------------------------
195   FUNCTION GET_RATE_CHART_INFO(p_name		IN	VARCHAR2,
196 			       p_carrier_id	IN	NUMBER,
197 			       x_status		OUT NOCOPY NUMBER,
198 			       x_error_msg	OUT NOCOPY VARCHAR2) RETURN STRINGARRAY;
199 
200   -----------------------------------------------------------------------------
201   -- PROCEDURE: INSERT_QP_INTERFACE_TABLES
202   --
203   -- Purpose: Transfer pricelist data from the temporary tables in memory into
204   --          QP_INTERFACE_LIST_HEADERS, QP_INTERFACE_LIST_LINES,
205   --          QP_INTERFACE_QUALIFIERS and QP_INTERFACE_PRICING_ATTRIBS.
206   --          If input parameter 'p_job_id' IS NOT NULL, then the QP api
207   --          QP_PRL_LOADER_PUB(...) is also used to load the rate chart for
208   --          that particular job id. Otherwise, the data might correspond to
209   --          several rate charts, and the QP loading is done elsewhere for all
210   --          the corresponding job ids.
211   --
212   -- IN Parameters
213   --	1. p_qp_list_header_tbl:	list header pl/sql table.
214   --	2. p_qp_list_line_tbl:		list line pl/sql table.
215   --	3. p_qp_qualifier_tbl:		qualifier pl/sql table.
216   --	4. p_qp_pricing_attrib_tbl:	pricing attributes pl/sql table.
217   --
218   -- Out Parameters
219   --    1. x_status: -1 if successful, 2 otherwise.
220   --	2. x_error_msg: error msg if any
221   -----------------------------------------------------------------------------
222   PROCEDURE INSERT_QP_INTERFACE_TABLES(p_qp_list_header_tbl	IN OUT NOCOPY	qp_list_header_tbl,
223 				       p_qp_list_line_tbl	IN OUT NOCOPY	qp_list_line_tbl,
224 				       p_qp_qualifier_tbl	IN OUT NOCOPY	qp_qualifier_tbl,
225 				       p_qp_pricing_attrib_tbl	IN OUT NOCOPY	qp_pricing_attrib_tbl,
226 				       p_qp_call		IN 	BOOLEAN DEFAULT TRUE,
227 				       x_status			OUT NOCOPY NUMBER,
228 				       x_error_msg		OUT NOCOPY VARCHAR2);
229 
230   -------------------------------------------------------------------------------
231   -- PROCEDURE DELETE_FROM_QP
232   --
233   -- Purpose: delete from the qp table
234   --
235   -- IN parameters:
236   --	1. p_list_header_id:	list header id
237   --	2. p_name:		name associated with list header id
238   --	3. p_action:		delete or update
239   --	4. p_line_number:	line number
240   --	5. p_delete_qualifier:	boolean for deleting qualifier when updating, default true
241   --
242   -- OUT parameters:
243   --	1. x_status:	status, -1 if no error
244   --	2. x_error_msg:	error message if any
245   -------------------------------------------------------------------------------
246   PROCEDURE DELETE_FROM_QP(p_list_header_id 	IN     	NUMBER,
247                            p_name 		IN     	VARCHAR2,
248 			   p_action		IN	VARCHAR2,
249 			   p_line_number	IN	NUMBER,
250 			   p_delete_qualifier	IN	BOOLEAN DEFAULT TRUE,
251                            x_status    		OUT  NOCOPY NUMBER,
252                            x_error_msg 		OUT  NOCOPY VARCHAR2);
253 
254   -----------------------------------------------------------------------------
255   -- FUNCTION   Get_Assoc_Modifiers
256   --
257   -- Purpose  Get the list of modifiers associated with the rate chart
258   --          using either the rate chart's name or List Header ID.
259   --
260   -- IN Parameters
261   --  1. p_list_header_id:
262   --  2. p_pricelist_name:
263   --
264   -- RETURN
265   --  1. STRINGARRAY: A list of associated modifier IDs.
266   -----------------------------------------------------------------------------
267   FUNCTION GET_ASSOC_MODIFIERS(p_list_header_id    IN     NUMBER,
268                                p_pricelist_name  IN  VARCHAR2)
269     RETURN STRINGARRAY;
270 
271   -----------------------------------------------------------------------------
272   -- FUNCTION   GET_ASSOC_PRICELISTS
273   --
274   -- Purpose  Get the list of pricelists associated with the modifier using
275   --          either the rate chart's name or List Header ID.
276   --
277   -- IN Parameters
278   --  1. p_list_header_id:
279   --  2. p_modifier_name:
280   --
281   -- RETURN
282   --  1. STRINGARRAY: A list of associated pricelist IDs.
283   -----------------------------------------------------------------------------
284   FUNCTION GET_ASSOC_PRICELISTS (p_list_header_id  IN     NUMBER,
285                                  p_modifier_name   IN     VARCHAR2)
286   RETURN STRINGARRAY;
287 
288   -----------------------------------------------------------------------------
289   -- PROCEDURE QP_API_CALL
290   --
291   -- Purpose  Call the qp api for loading pricelist and modlist
292   --
293   -- IN Parameters
294   --  1. p_chart_type:	type of the load, pricelist or modlist
295   --  2. p_process_id:  process id to load
296   --  3. p_name:	name of the chart
297   --  4. p_currency:	currency of the chart
298   --
299   -- OUT paramters
300   --  1. x_status: 	status, -1 for no error
301   --  2. x_error_msg:	error message if any.
302   -----------------------------------------------------------------------------
303 
304   PROCEDURE QP_API_CALL(p_chart_type	IN VARCHAR2,
305 			p_process_id	IN NUMBER,
306 			p_name		IN  LH_NAME_TAB,
307 			p_currency	IN  LH_CURRENCY_CODE_TAB,
308 			x_status	OUT NOCOPY NUMBER,
309 			x_error_msg	OUT NOCOPY VARCHAR2);
310 END FTE_RATE_CHART_PKG;