DBA Data[Home] [Help]

PACKAGE: APPS.OE_BULK_HOLDS_PVT

Source


1 PACKAGE OE_Bulk_Holds_PVT AS
2 /* $Header: OEBVHLDS.pls 120.0.12010000.7 2008/11/26 13:41:58 amallik ship $ */
3 
4 
5 -----------------------------------------------------------------
6 -- DATA TYPES (RECORD/TABLE TYPES)
7 -----------------------------------------------------------------
8 
9 /*ER#7479609 start
10 TYPE Hold_Tbl IS TABLE OF NUMBER
11      INDEX BY BINARY_INTEGER;
12 ER#7479609 end*/
13 
14 --ER#7479609 start
15 TYPE Hold_Tbl IS TABLE OF OE_HOLD_SOURCES_ALL.HOLD_ENTITY_ID%TYPE
16      INDEX BY VARCHAR2(250);
17 -- OE_HOLD_SOURCES_ALL.HOLD_ENTITY_ID%TYPE; -- Modified INDEX BY TO VARCHAR2 for bug 7589328
18 --ER#7479609 end
19 
20 /*ER#7479609 start
21 TYPE Hold_Entity_Rec IS RECORD
22 (Entity_Id1         NUMBER,
23  Entity_Id2         NUMBER,
24  Hold_Source_Id     NUMBER,
25  Activity_name      VARCHAR2(30)
26 );
27 ER#7479609 end*/
28 
29 --ER#7479609 start
30 TYPE Hold_Entity_Rec IS RECORD
31 (Entity_Id1         OE_HOLD_SOURCES_ALL.HOLD_ENTITY_ID%TYPE,
32  Entity_Id2         OE_HOLD_SOURCES_ALL.HOLD_ENTITY_ID2%TYPE,
33  Hold_Source_Id     NUMBER,
34  Activity_name      VARCHAR2(30)
35 );
36 --ER#7479609 end
37 TYPE Hold_Entity_Tbl IS TABLE OF Hold_Entity_Rec
38      INDEX BY BINARY_INTEGER;
39 
40 TYPE Line_Holds_Rec IS RECORD
41 (On_Generic_Hold    VARCHAR2(1),
42  On_Scheduling_Hold   VARCHAR2(1),
43  Any_ato_line_on_hold VARCHAR2(1),
44  Any_SMC_Line_on_hold VARCHAR2(1),
45  Hold_II_FLAG         VARCHAR2(1)
46 );
47 
48 TYPE Line_Holds_Tbl IS TABLE OF Line_Holds_Rec
49      INDEX BY BINARY_INTEGER;
50 
51 ---------------------------------------------------------------------
52 -- GLOBAL RECORDS/TABLES
53 ---------------------------------------------------------------------
54 
55 G_Line_Holds_Tbl            Line_Holds_Tbl;
56 
57 Customer_Pointer            Hold_Tbl;
58 Item_Pointer                Hold_Tbl;
59 ship_to_Pointer             Hold_Tbl;
60 bill_to_Pointer             Hold_Tbl;
61 Warehouse_Pointer           Hold_Tbl;
62 --ER#7479609 start
63 PriceList_Pointer           Hold_Tbl;
64 OrderType_Pointer           Hold_Tbl;
65 CreationDate_Pointer        Hold_Tbl;
66 SalesChannel_Pointer        Hold_Tbl;
67 PaymentType_Pointer         Hold_Tbl;
68 ShipMethod_Pointer          Hold_Tbl;
69 deliver_to_Pointer          Hold_Tbl;
70 --ER#7479609 end
71 
72 Item_Customer_Pointer       Hold_Tbl;
73 Item_shipto_Pointer         Hold_Tbl;
74 Item_Billto_Pointer         Hold_Tbl;
75 Item_Warehouse_Pointer      Hold_Tbl;
76 --ER#7479609 Start
77 Item_ShipMethod_Pointer     Hold_Tbl;
78 Item_Deliverto_Pointer      Hold_Tbl;
79 Item_PriceList_Pointer      Hold_Tbl;
80 Item_SourceType_Pointer     Hold_Tbl;
81 Item_LineType_Pointer       Hold_Tbl;
82 --ER#7479609 End
83 
84 Warehouse_Customer_Pointer  Hold_Tbl;
85 Warehouse_shipto_Pointer    Hold_Tbl;
86 Warehouse_Billto_Pointer    Hold_Tbl;
87 --ER#7479609 Start
88 Warehouse_LineType_Pointer    Hold_Tbl;
89 Warehouse_ShipMethod_Pointer  Hold_Tbl;
90 Warehouse_Deliverto_Pointer   Hold_Tbl;
91 Warehouse_SourceType_Pointer  Hold_Tbl;
92 --ER#7479609 End
93 
94 --ER#7479609 start
95 Cust_SourceType_Pointer       Hold_Tbl;
96 Cust_Billto_Pointer           Hold_Tbl;
97 Cust_Shipto_Pointer           Hold_Tbl;
98 Cust_Deliverto_Pointer        Hold_Tbl;
99 Cust_PriceList_Pointer        Hold_Tbl;
100 Cust_LineType_Pointer         Hold_Tbl;
101 Cust_PayTerm_Pointer          Hold_Tbl;
102 Cust_OrderType_Pointer        Hold_Tbl;
103 Cust_PaymentType_Pointer      Hold_Tbl;
104 Cust_Curr_Pointer             Hold_Tbl;
105 Cust_SalesChannel_Pointer     Hold_Tbl;
106 
107 
108 PriceList_Curr_Pointer        Hold_Tbl;
109 
110 OrderType_Curr_Pointer        Hold_Tbl;
111 OrderType_LineType_Pointer    Hold_Tbl;
112 
113 CreDate_CreBy_Pointer         Hold_Tbl;
114 --ER#7479609 End
115 
116 
117 Customer_Hold               Hold_Entity_Tbl;
118 Item_Hold                   Hold_Entity_Tbl;
119 ship_to_Hold                Hold_Entity_Tbl;
120 bill_to_Hold                Hold_Entity_Tbl;
121 Warehouse_Hold              Hold_Entity_Tbl;
122 --ER#7479609 start
123 PriceList_Hold              Hold_Entity_Tbl;
124 OrderType_Hold              Hold_Entity_Tbl;
125 CreationDate_Hold           Hold_Entity_Tbl;
126 SalesChannel_Hold           Hold_Entity_Tbl;
127 PaymentType_Hold            Hold_Entity_Tbl;
128 ShipMethod_Hold             Hold_Entity_Tbl;
129 deliver_to_Hold             Hold_Entity_Tbl;
130 --ER#7479609 end
131 
132 Item_Customer_Hold          Hold_Entity_Tbl;
133 Item_shipto_Hold            Hold_Entity_Tbl;
134 Item_Billto_Hold            Hold_Entity_Tbl;
135 Item_Warehouse_Hold         Hold_Entity_Tbl;
136 --ER#7479609 start
137 Item_ShipMethod_Hold        Hold_Entity_Tbl;
138 Item_Deliverto_Hold         Hold_Entity_Tbl;
139 Item_PriceList_Hold         Hold_Entity_Tbl;
140 Item_SourceType_Hold        Hold_Entity_Tbl;
141 Item_LineType_Hold          Hold_Entity_Tbl;
142 --ER#7479609 end
143 
144 Warehouse_Customer_Hold     Hold_Entity_Tbl;
145 Warehouse_shipto_Hold       Hold_Entity_Tbl;
146 Warehouse_Billto_Hold       Hold_Entity_Tbl;
147 --ER#7479609 start
148 Warehouse_LineType_Hold     Hold_Entity_Tbl;
149 Warehouse_ShipMethod_Hold   Hold_Entity_Tbl;
150 Warehouse_Deliverto_Hold    Hold_Entity_Tbl;
151 Warehouse_SourceType_Hold   Hold_Entity_Tbl;
152 --ER#7479609 end
153 
154 --ER#7479609 start
155 Cust_SourceType_Hold        Hold_Entity_Tbl;
156 Cust_Billto_Hold            Hold_Entity_Tbl;
157 Cust_Shipto_Hold            Hold_Entity_Tbl;
158 Cust_Deliverto_Hold         Hold_Entity_Tbl;
159 Cust_PriceList_Hold         Hold_Entity_Tbl;
160 Cust_LineType_Hold          Hold_Entity_Tbl;
161 Cust_PayTerm_Hold           Hold_Entity_Tbl;
162 Cust_OrderType_Hold         Hold_Entity_Tbl;
163 Cust_PaymentType_Hold       Hold_Entity_Tbl;
164 Cust_Curr_Hold              Hold_Entity_Tbl;
165 Cust_SalesChannel_Hold      Hold_Entity_Tbl;
166 
167 --ER#7479609 end
168 
169 PriceList_Curr_Hold         Hold_Entity_Tbl;
170 
171 OrderType_Curr_Hold         Hold_Entity_Tbl;
172 OrderType_LineType_Hold     Hold_Entity_Tbl;
173 
174 CreDate_CreBy_Hold          Hold_Entity_Tbl;
175 --ER#7479609 end
176 
177 g_hold_header_id        OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM();
178 g_hold_line_id          OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM();
179 g_hold_Source_Id        OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM();
180 g_hold_ship_set         OE_WSH_BULK_GRP.T_V30 := OE_WSH_BULK_GRP.T_V30();
181 g_hold_arrival_set      OE_WSH_BULK_GRP.T_V30 := OE_WSH_BULK_GRP.T_V30();
182 g_hold_top_model_line_id  OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM();
183 g_hold_activity_name    OE_WSH_BULK_GRP.T_V30 := OE_WSH_BULK_GRP.T_V30();
184 
185 g_header_index   NUMBER;
186 
187 TYPE Hold_Source_Rec IS RECORD
188 (
189 HOLD_ID                OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM(),
190 HOLD_SOURCE_ID         OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM(),
191 HOLD_ENTITY_CODE       OE_WSH_BULK_GRP.T_V30 := OE_WSH_BULK_GRP.T_V30(),
192 HOLD_ENTITY_ID         OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM(),
193 HOLD_UNTIL_DATE        OE_WSH_BULK_GRP.T_DATE := OE_WSH_BULK_GRP.T_DATE(),
194 RELEASED_FLAG          OE_WSH_BULK_GRP.T_V1 := OE_WSH_BULK_GRP.T_V1(),
195 HOLD_COMMENT           OE_WSH_BULK_GRP.T_V2000 := OE_WSH_BULK_GRP.T_V2000(),
196 ORG_ID                 OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM(),
197 HOLD_RELEASE_ID        OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM(),
198 HOLD_ENTITY_CODE2      OE_WSH_BULK_GRP.T_V30 := OE_WSH_BULK_GRP.T_V30(),
199 HOLD_ENTITY_ID2        OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM(),
200 HEADER_ID              OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM(),
201 LINE_ID                OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM()
202 );
203 
204 g_hold_source_rec  Hold_Source_Rec;
205 -----------------------------------------------------------------------
206 -- PROCEDURES/FUNCTIONS
207 -----------------------------------------------------------------------
208 
209 -----------------------------------------------------------------------
210 -- PROCEDURE Load_Hold_Sources
211 --
212 -- This API caches existing hold sources in global tables:
213 -- Customer_Pointer etc. It is called from order import main package
214 -- (OEBVIMNB.pls) at the beginning of each order import request.
215 -----------------------------------------------------------------------
216 
217 PROCEDURE Load_Hold_Sources;
218 
219 -----------------------------------------------------------------------
220 -- PROCEDURE Initialize_Holds_Tbl
221 --
222 -- This API initializes the globals that store hold records for
223 -- a batch.
224 -----------------------------------------------------------------------
225 
226 PROCEDURE Initialize_Holds_Tbl;
227 
228 -----------------------------------------------------------------------
229 -- PROCEDURE Evaluate_Holds
230 --
231 -- This procedure is used to evaluate holds on the order or line being
232 -- processed in BULK order import.
233 --
234 -- If order or line attributes passed to this API (sold_to_org_id,
235 -- inventory_item_id etc.) match the hold source(s) criteria, this API
236 -- would mark that hold(s) needs to be applied by adding to the global
237 -- holds table.
238 --
239 -- In addition, it also populates OUT parameters to indicate the type
240 -- of hold (if any) that will be applied on this order or line.
241 -- Current BULK code needs to check for generic, booking or scheduling
242 -- holds only so there are 3 OUT parameters which will be set to TRUE
243 -- depending on types of holds that were applied.
244 -----------------------------------------------------------------------
245 
246 PROCEDURE Evaluate_Holds(
247 p_header_id         IN NUMBER,
248 p_line_id           IN NUMBER,
249 p_line_number       IN NUMBER,
250 p_sold_to_org_id    IN NUMBER,
251 p_inventory_item_id IN NUMBER,
252 p_ship_from_org_id  IN NUMBER,
253 p_invoice_to_org_id IN NUMBER,
254 p_ship_to_org_id    IN NUMBER,
255 p_top_model_line_id IN NUMBER,
256 p_ship_set_name     IN VARCHAR2,
257 p_arrival_set_name  IN VARCHAR2,
258 p_check_only_warehouse_holds IN BOOLEAN := FALSE,
259 p_on_generic_hold   OUT NOCOPY /* file.sql.39 change */ BOOLEAN,
260 p_on_booking_hold   OUT NOCOPY /* file.sql.39 change */ BOOLEAN,
261 p_on_scheduling_hold   OUT NOCOPY /* file.sql.39 change */ BOOLEAN
262 );
263 
264 
265 --ER#7479609 start
266 -----------------------------------------------------------------------
267 -- PROCEDURE Evaluate_Holds
268 --
269 -- This procedure is used to evaluate holds on the order or line being
270 -- processed in BULK order import.
271 --
272 -- If order or line attributes passed to this API (sold_to_org_id,
273 -- inventory_item_id etc.) match the hold source(s) criteria, this API
274 -- would mark that hold(s) needs to be applied by adding to the global
275 -- holds table.
276 --
277 -- In addition, it also populates OUT parameters to indicate the type
278 -- of hold (if any) that will be applied on this order or line.
279 -- Current BULK code needs to check for generic, booking or scheduling
280 -- holds only so there are 3 OUT parameters which will be set to TRUE
281 -- depending on types of holds that were applied.
282 -----------------------------------------------------------------------
283 
284 PROCEDURE Evaluate_Holds(
285 p_header_rec        IN OE_Order_PUB.Header_Rec_Type,
286 p_line_rec           IN OE_Order_PUB.Line_Rec_Type,
287 p_check_only_warehouse_holds IN BOOLEAN := FALSE,
288 p_on_generic_hold   OUT NOCOPY BOOLEAN,
289 p_on_booking_hold   OUT NOCOPY BOOLEAN,
290 p_on_scheduling_hold   OUT NOCOPY BOOLEAN
291 );
292 --ER#7479609 end
293 
294 -----------------------------------------------------------------------
295 -- PROCEDURE Create_Holds
296 --
297 -- This API BULK inserts hold records into the database for orders
298 -- or lines processed in a single bulk order import batch. It uses
299 -- global hold records to create these records.
300 -----------------------------------------------------------------------
301 
302 PROCEDURE Create_Holds;
303 
304 
305 ------------------------------------------------------------------------
306 --PROCEDURE Mark_Hols
307 --This for marking lines to hold in the memory.
308 ------------------------------------------------------------------------
309 PROCEDURE Mark_Hold(p_header_id IN NUMBER,
310                     p_line_id IN NUMBER,
311                     p_line_number IN NUMBER,
312                     p_hold_source_id IN NUMBER,
313                     p_ship_set_name IN VARCHAR2,
314                     p_arrival_set_name IN VARCHAR2,
315                     p_activity_name IN VARCHAR2,
316                     p_attribute IN VARCHAR2,
317                     p_top_model_line_id IN NUMBER
318                     );
319 
320 PROCEDURE Apply_GSA_Hold(p_header_id IN NUMBER,
321                     p_line_id IN NUMBER,
322                     p_line_number IN NUMBER,
323                     p_hold_id IN NUMBER,
324                     p_ship_set_name IN VARCHAR2,
325                     p_arrival_set_name IN VARCHAR2,
326                     p_activity_name IN VARCHAR2,
327                     p_attribute IN VARCHAR2,
328                     p_top_model_line_id IN NUMBER,
329                     x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2   --bug 3735141
330                     );
331 
332 ------------------------------------------------------------------------
333 -- FUNCTION Check_for_Holds
334 -- This API is called by scheduling
335 ------------------------------------------------------------------------
336 FUNCTION Check_For_Holds(p_header_id IN NUMBER,
337                          p_line_id IN NUMBER,
338                          p_line_index IN NUMBER,
339                          p_header_index IN NUMBER,
340                          p_top_model_line_index IN NUMBER,
341                          p_ship_model_complete_flag IN VARCHAR2,
342                          p_ato_line_index IN NUMBER,
343                          p_ii_parent_line_index IN NUMBER
344                         ) RETURN BOOLEAN;
345 
346 END OE_Bulk_Holds_PVT;
347