DBA Data[Home] [Help]

PACKAGE: APPS.WMS_PUTAWAY_UTILS

Source


1 PACKAGE WMS_PUTAWAY_UTILS AS
2 /* $Header: WMSPUTLS.pls 120.4.12010000.2 2008/10/10 07:53:37 abasheer ship $*/
3 
4 --WMS_PUTAWAY_UTILS  Package
5 -- File        : WMSPUTLS.pls
6 -- Content     : Contains procedures and fucntions for putaway utilities
7 -- Description : Contains procedures and fucntions for putaway utilities
8 
9    /**
10 
11    **/
12 -- Notes       : This package will contain the wrappers (which will be called from the java files)
13 --               for putaway.
14 --               This will also contain the grouping logic stuff which will populate the global
15 --               temp table WMS_PUTAWAY_GROUP_TASKS_GTEMP
16 -- Modified    : Mon Jul 28 18:08:27 GMT+05:30 2003
17 
18 
19 
20 /**
21   *   This function will return the subinventory_type for the
22   *   subinventory and org combination passed as input. It will
23   *   return the following values
24   *   1  -- Storage Subinventory.
25   *   2  -- Receiving Subinventory.
26   *   -1 -- Error
27 
28   *  @param  p_organization_id   Organization ID
29   *  @param  p_subinventory_code   Subinventory Code
30   *  @ RETURN  number
31 
32 
33 **/
34    FUNCTION get_subinventory_type(
35       p_organization_id IN NUMBER,
36       p_subinventory_code IN VARCHAR2)
37      RETURN NUMBER;
38 
39 
40 
41 
42 /**
43   *   This function will remove all the records in the temporary
44   *   table WMS_PUTAWAY_GROUP_TASKS_TEMP
45   *   The rows that has to be deleted depends on the i/p parameter
46   *   p_del_type
47   *
48   *   p_del_type   Action
49   *   ------------------------------------------------------------
50   *   1        --  Delete tasks belonging to the group which is passed as input.
51   *   2        --  Delete dummy rows whose drop_type is 'ID'
52   *   This Funciton will delete both the group_tasks and all_task
53   *   rows.
54   *   It will return the number of rows deleted
55   *   -1 in case of failure.
56 
57   *  @param  p_group_id   Group ID for which the records has to be deleted
58   *  @ RETURN  NUMBER
59 
60 
61 **/
62     FUNCTION Remove_Tasks_In_Group(
63                  p_del_type  IN NUMBER
64                 ,p_group_id  IN NUMBER := NULL )
65     RETURN NUMBER;
66 
67 
68 
69 /**
70   *   This procedure will populate the grouped tasks temporary
71   *   table (WMS_PUTAWAY_GROUP_TASKS_GTEMP with the required data
72   *   and also it will stamp the drop type for the tasks and will
73   *   group them based on various criterias.
74 
75   *  @param  x_return_status  Return status of the procedure - Success, Error, Unexpected Error, Warning etc.,
76   *  @param  x_msg_count      Count of messages in the stack
77   *  @param  x_msg_data       Actual message if the count = 1 else it will be null.
78   *  @param  p_org_id         Organization Id
79   *  @param  p_drop_type      This indicates for which type of drop the temp table should be populated.
80   *                           This can have the values
81   *                              SD - 'System Drop'
82   *                              DA - 'Drop All'
83   *                              ED - 'Existing Putaway Drop'
84   *  @param  p_emp_id         Employee identifier
85   *  @param  p_lpn_id         LPN for which this procedure is called.
86   *  @param  p_item_drop_flag Whether it is called for all item drops or not
87   *  @param  p_lpn_is_loaded  Whether the LPN is already loaded or not.
88 
89 
90 **/
91   PROCEDURE   Create_grouped_tasks(
92     x_return_status   OUT  NOCOPY  VARCHAR2,
93     x_msg_count       OUT  NOCOPY  NUMBER,
94     x_msg_data        OUT  NOCOPY  VARCHAR2,
95     p_org_id          IN           NUMBER,
96     p_drop_type       IN           VARCHAR2,
97     p_emp_id          IN           NUMBER,
98     p_lpn_id          IN           NUMBER     DEFAULT NULL,
99     p_item_drop_flag  IN           VARCHAR2   DEFAULT 'N',
100     p_lpn_is_loaded   IN           VARCHAR2   DEFAULT 'N');
101 
102 
103 /**
104   *   This procedure will explode the LPN passed and will get all the MMTTs
105   *   for its contents  (including childs contents) and will call the ATF API to
106   *   Abort the operation instance.
107   *
108   *   The parameter p_call_type will decide what ATF API to call
109   *   p_call_type   Gloabl Constant      Meaning
110   *   1             G_ATF_ACTIVATE_PLAN  Activate Plan
111   *   2             G_ATF_ABORT_PLAN     Abort Plan
112   *
113   *  @param  p_call_type      Mode for which the procedure is called
114   *  @param  p_org_id         Organization Identifier
115   *  @param  p_lpn_id         LPN identifier
116   *  @param  p_emp_id         Employee identifier
117   *
118   *  @param  x_return_status  Return status of the function - Success, Error, Unexpected Error, Warning etc.,
119   *  @param  x_msg_count      Count of messages in the stack
120   *  @param  x_msg_data       Actual message if the count = 1 else it will be null.
121   *
122 **/
123 
124    -- In case of Manual/User Drop the ATF API's will be still used to create WDTs and WDTH.
125    -- Before that the existing WDTs, Plans etc has to be deleted and hence Abort plan has to be called first.
126    PROCEDURE ATF_For_Manual_Drop(
127               x_return_status  OUT NOCOPY  VARCHAR2
128              ,x_msg_count      OUT NOCOPY  NUMBER
129              ,x_msg_data       OUT NOCOPY  VARCHAR2
130              ,p_call_type      IN          NUMBER
131              ,p_org_id         IN          NUMBER
132              ,p_lpn_id         IN          NUMBER
133              ,p_emp_id         IN          NUMBER
134              );
135 
136 
137 
138 /**
139   *   This Procedure will do the ATF integration for the LOAD operation
140   *   in case of single step drop or load portion of manual drop.
141   *
142   *   This procedure inturn will call Activate_Plan_For_Load to activate
143   *   the plan for load and then will call Complete_Plan_For_Load to complete the LOAD step.
144   *
145   *   This procedure will be called from create_grouped_tasks in case of single step drop
146   *   ie the LPN which has to be dropped is not loaded already.
147   *
148   *  @param   x_return_status   Return status of the function - Success, Error, Unexpected Error, Warning etc.,
149   *  @param   x_msg_count       Count of messages in the stack
150   *  @param   x_msg_data        Actual message if the count = 1 else it will be null.
151   *  @param   p_org_id          Organization Identifier
152   *  @param   p_lpn_id          LPN Identifier
153   *  @param   p_emp_id          Employee Identifier
154   *  @ RETURN  NUMBER
155 
156 
157 **/
158    PROCEDURE Complete_ATF_Load(
159        x_return_status OUT  NOCOPY  VARCHAR2
160       ,x_msg_count     OUT  NOCOPY  NUMBER
161       ,x_msg_data      OUT  NOCOPY  VARCHAR2
162       ,p_org_id        IN           NUMBER
163       ,p_lpn_id        IN           NUMBER
164       ,p_emp_id        IN           NUMBER );
165 
166 
167 
168 
169 /**
170   *   This function will call the ATF API to activate the operation instance for inspect.
171   *   It will call the ATF API  wms_atf_runtime_pub_apis.activate_operation_instance for
172   *   each MMTT. For the Move Order Line passed.
173   *
174   *   ATF will check whether the current step. If it is not inspect, it will inturn call
175   *   the Abort operation instance to abort the current plan in progress. So we need not
176   *   call Abort Explicitly in this case.
177   *
178   *   It returns the number of rows for which the plan is
179   *   activated, will return -1 in case of failure.
180 
181   *  @param  x_return_status  Return status of the function - Success, Error, Unexpected Error, Warning etc.,
182   *  @param  x_msg_count      Count of messages in the stack
183   *  @param  x_msg_data       Actual message if the count = 1 else it will be null.
184   *  @param   p_org_id          Organization Identifier
185   *  @param   p_lpn_id          LPN Identifier
186   *  @param   p_emp_id          Employee Identifier
187   *
188   *  @ RETURN  NUMBER
189 
190 
191 **/
192    FUNCTION Activate_Plan_For_Inspect(
193               x_return_status  OUT NOCOPY  VARCHAR2
194              ,x_msg_count      OUT NOCOPY  NUMBER
195              ,x_msg_data       OUT NOCOPY  VARCHAR2
196              ,p_org_id         IN          NUMBER
197              ,p_mo_line_id     IN           NUMBER )
198      RETURN NUMBER;
199 
200 
201 /**
202   *   This procedure will call the ATF API to cleanup / rollback
203   *   the operation instance for load / drop / single step drop.
204   *
205   *   It will call the ATF APIs for each MMTT in the temp table
206   *   if group_id is not passed else it will call ATF APIs only
207   *   for that group in the temp table.
208   *
209   *   It returns the number of rows for which the plan is
210   *   cleanedup / rolled back, will return -1 in case of failure.
211   *
212   *   The parameter p_call_type will decide what ATF API to call
213   *   p_call_type   Gloabl Constant         Meaning
214   *   ----------------------------------------------------------
215   *   1             G_CT_NORMAL_LOAD        Called from Load scenario (Manual Load)
216   *   2             G_CT_NORMAL_DROP        Called from Drop (LPN already loaded)
217   *   3             G_CT_SINGLE_STEP_DROP   Called from Drop (LPN already loaded)
218   *
219   *   if p_call_type = 3, Rollback_operation_plan will be called
220   *   else  Cleanup_Operation_Instance will be called.
221   *
222   *
223   *  @param  x_return_status   Return status of the function - Success, Error, Unexpected Error,
224   *                            Warning etc.,
225   *  @param  x_msg_count       Count of messages in the stack
226   *  @param  x_msg_data        Actual message if the count = 1 else it will be null.
227   *  @param  p_org_id          Organization Identifier
228   *  @param  p_call_type       Whether cleanup is called for load, drop or single step drop
229   *  @param  p_lpn_id          LPN Identifier
230   *  @param  p_group_id        Group ID for which cleanup has to be called.
231   *                            Can have following values:
232   *                            -1: Called when one of the tasks failed and
233   *                                user decided to quit all tasks
234   *                            -2: Called at the end of all tasks to clean up
235   *                                task split during partial drop
236   *                            NULL: Called in cases of Manual Drop, Inspection,
237   *                                  Manual Load
238   *                            Others: Called when one of the tasks failed and
239   *                                    user wants to cancel just this task
240   *  @ RETURN  NUMBER
241 
242 
243 **/
244    PROCEDURE Cleanup_ATF(
245           x_return_status OUT  NOCOPY  VARCHAR2
246          ,x_msg_count     OUT  NOCOPY  NUMBER
247          ,x_msg_data      OUT  NOCOPY  VARCHAR2
248          ,p_org_id        IN           NUMBER
249          ,p_call_type     IN           NUMBER
250          ,p_lpn_id        IN           NUMBER   DEFAULT NULL
251          ,p_group_id      IN           NUMBER   DEFAULT NULL
252          ,p_parent_lpn_id IN           NUMBER   DEFAULT NULL
253 	 ,p_drop_all      IN           VARCHAR2 --BUG 5075410
254 	 ,p_emp_id        IN           NUMBER); --BUG 5075410
255 
256 
257   /**
258   *  Nested LPN changes, This procedure Loads the given FromLPN into ToLPN
259   *  and calls suggestions_pub
260   *  @param   p_org_id       Current Organization
261   *  @param   p_sub_code     If tosub is receving then call transfer transaction
262                              If to sub is inventory sub then call Pack Unpack API.
263   *  @param   p_from_lpn_id  From LPN id
264   *  @param   p_to_lpn_id    Transfer LPN id
265   *  @param   p_mode
266               1 - Load entire LPN
267               If the parent_lpn for the given from lpn is not null then unpack the lpn from its parent
268               If the to_lpn is not null then pack the lpn into tolpn.
269               2 - Transfer All contents
270               3 - Transfer parial quantity.
271 
272   *  @param   x_ret      returns the following values
273   *           0 - Success
274   *           1 - failure.
275   *  @param   x_return_status
276   *  @param   x_msg_count
277   *  @param   x_context
278   *  @param   p_user_id
279   **/
280   PROCEDURE suggestions_pub_wrapper(
281     p_lpn_id               IN             NUMBER
282   , p_org_id               IN             NUMBER
283   , p_user_id              IN             NUMBER
284   , p_eqp_ins              IN             VARCHAR2
285   , p_status               IN             NUMBER := 3
286   , p_check_for_crossdock  IN             VARCHAR2 := 'Y'
287   , x_number_of_rows       OUT NOCOPY     NUMBER
288   , x_return_status        OUT NOCOPY     VARCHAR2
289   , x_msg_count            OUT NOCOPY     NUMBER
290   , x_msg_data             OUT NOCOPY     VARCHAR2
291   , x_crossdock            OUT NOCOPY     VARCHAR2
292   );
293 
294 
295 
296  /**
297   *   Nested LPN changes
298   *   This procedure loads the given Nested LPN
299   */
300   PROCEDURE load_lpn(
301       p_org_id         IN             NUMBER
302     , p_sub_code       IN             VARCHAR2
303     , p_loc_id         IN             NUMBER
304     , p_from_lpn_id    IN             NUMBER
305     , p_to_lpn_id      IN             NUMBER
306     , p_mode           IN             NUMBER
307     , p_user_id        IN             NUMBER
308     , p_eqp_ins        IN             VARCHAR2
309     , p_project_id     IN             NUMBER DEFAULT NULL
310     , p_task_id        IN             NUMBER DEFAULT NULL
311     , p_check_for_crossdock IN        VARCHAR2
312     , x_return_status  OUT NOCOPY     VARCHAR2
313     , x_msg_count      OUT NOCOPY     NUMBER
314     , x_msg_data       OUT NOCOPY     VARCHAR2
315     , x_crossdock      OUT NOCOPY     VARCHAR2
316     );
317 
318 
319 
320      /**
321    *  Nested LPN changes, This procedure explodes the given LPN
322    *  and for each LPN checks the validity of the given LPN and returns
323    *  @param   p_org_id   Current Organization
324    *  @param   p_lpn_id   From LPN ID
325    *  @param   p_mode
326                Purpose of the parameter - This method can be called
327                from both UI as well as grouping logic. If this method
328                is called from grouping logic, check only for the given LPN
329                and not for the child LPNs.
330                0 - Check for the given LPN iteself and not for the child LPNs
331                1 - Check for the given LPN as well as it child LPNs.
332 
333    *  @param   x_ret      returns the following values
334    *           0 - Success
335    *           1 - Entire LPN needs Inspection.
336    *           2 - Entire LPN is Invalid
337    *           3 - Entire LPN is Invalid and cannot be putawayed.
338    *           4 - Some child LPNs are invalid and cannot be putawayed.
339    *           5 - Some child LPNs need inspection.
340    *  @param   x_loaded_stauts
341    *           0 - not loaded
342    *           1 - loaded
343    *  @param   x_return_status
344    *  @param   x_msg_count
345    *  @param   x_context
346    *  @param   p_user_id
347    **/
348   PROCEDURE check_lpn_validity_wrapper(
349     p_org_id         IN             NUMBER
350   , p_lpn_id         IN             NUMBER
351   , p_user_id        IN             NUMBER
352   , p_mode           IN             NUMBER
353   , x_ret            OUT NOCOPY     NUMBER
354   , x_lpn_context    OUT NOCOPY     NUMBER
355   , x_loaded_status  OUT NOCOPY     VARCHAR2
356   , x_return_status  OUT NOCOPY     VARCHAR2
357   , x_msg_count      OUT NOCOPY     NUMBER
358   , x_msg_data       OUT NOCOPY     VARCHAR2);
362    PROCEDURE update_mo(
359 
360 
361    /** Porcedure ot update Move order line */
363       MoLineId            NUMBER   DEFAULT  -9999,
364       ReferenceId         NUMBER   DEFAULT  -9999,
365       Reference           VARCHAR2 DEFAULT '-9999',
366       Reference_type_code NUMBER   DEFAULT  -9999,
367       lpn_id              NUMBER   DEFAULT  -9999,
368       wms_process_flag    NUMBER   DEFAULT  -9999,
369       inspect_status      NUMBER   DEFAULT  -9999);
370 
371 
372 
373   /**
374   *  This procedures transfer all the contents in from_LPN to into_LPN
375   *  @param   p_org_id       Current Organization
376   *  @param   p_sub_code     Not currently used
377   *  @param   p_loc_id       Not currently used
378   *  @param   p_from_lpn_id  From LPN id
379   *  @param   p_into_lpn_id  Into LPN id to which the contents in From LPN
380   *                          will be transfered
381   *  @param   p_mode
382   *  @param   p_user_id
383   *  @param   p_eqp_ins
384   *  @param   p_project_id
385   *  @param   p_task_id
386   *  @param   x_return_status
387   *  @param   x_msg_count
388   *  @param   x_msg_data
389     **/
390   PROCEDURE transfer_contents
391     (
392      p_org_id           IN             NUMBER    DEFAULT NULL
393      , p_sub_code       IN             VARCHAR2 DEFAULT NULL
394      , p_loc_id         IN             NUMBER   DEFAULT NULL
395      , p_from_lpn_id    IN             NUMBER
396      , p_into_lpn_id    IN             NUMBER
397      , p_operation      IN             VARCHAR2
398      , p_mode           IN             NUMBER
399      , p_user_id        IN             NUMBER
400      , p_eqp_ins        IN             VARCHAR2
401      , p_project_id     IN             NUMBER   DEFAULT NULL
402      , p_task_id        IN             NUMBER   DEFAULT NULL
403      , x_return_status  OUT NOCOPY     VARCHAR2
404      , x_msg_count      OUT NOCOPY     NUMBER
405      , x_msg_data       OUT NOCOPY     VARCHAR2 );
406 
407  /**
408   *   This procedure is a wrapper for the complete_putaway API and will be
409   *   called for a group of tasks. Accepts the current group Id or
410   *   transaction_header_id and the values confirmed by the user on the page
411   *   and processes the eligible tasks
412   *   Processing Logic:
413   *     -> Loop through each task/MMTT row given the group_id/header_id
414   *     -> Consume the task quantity based on the confirmed quantity
415   *     -> Create the lots and serials interface records (receiving LPN)
416   *     -> Create the WLPNI records (receiving LPN) or
417   *        call pack/unpack API to reflect nesting changes
418   *     -> Call the complete_putaway API for the given task
419   *     -> Call the receiving Transaction Manager (receiving LPN)
420   *
421   *  @param  x_return_status            Return Status Indicator
422   *  @param  x_msg_count                Stacked messages counter
423   *  @param  x_msg_data                 Stacked Messages
424   *  @param  p_group_id                 ID of the current group of tasks
425   *  @param  p_txn_header_id            header_id for the current group of tasks
426   *  @param  p_drop_type                Drop Type Identifier.<br>
427   *                                     ID - Item Drop<br>
428   *                                     CD - Consolidated Drop<br>
429   *                                     MD - Manual Drop<br>
430   *                                     UD - User Drop<br>
431   *  @param  p_lpn_mode                 Flag for LPN actions
432   *                                     1 - Transfer Contents<br>
433   *                                     2 - Drop Entire LPN<br>
434   *                                     3 - Item Drop
435   *  @param  p_lpn_id                   LPN being putaway
436   *  @param  p_lpn_context               Context of the LPN being putaway
437   *  @param  p_organization_id          Organization ID
438   *  @param  p_user_id                  Logged in Employee ID
439   *  @param  p_item_id                  Item for the current group (item drop)
440   *  @param  p_revision                 Revision confirmed (item drop)
441   *  @param  p_lot_number               Lot Number confirmed (item drop)
442   *  @param  p_subinventory_code        Drop to Subinventory Code
443   *  @param  p_locator_id               Drop to Locator ID
444   *  @param  p_quantity                 Quantity Confirmed (item drop)
445   *  @param  p_uom_code                 Unit of Measure confirmed (item drop)
446   *  @param  p_entire_lpn               Flag to indicate if entire LPN is putaway
447   *  @param  p_to_lpn_name              License Plate number of the Into LPN
448   *  @param  p_to_lpn_id                LPN Id of the Into LPN
449   *  @param  p_project_id               Project ID
450   *  @param  p_task_id                  Task ID
451   *  @param  p_reference                MOL reference
452   *  @param  p_qty_reason_id            Reason ID for Quantity Discrepancy
453   *  @param  p_loc_reason_id            Reason ID for locator discrepancy
454   *  @param  p_process_serial_flag      Flag set if serials are confirmed in UI
455   *  @param  p_msni_txn_interface_id    Transaction_interface_id of MSNI records
456   *                                     created from the UI
457   *  @param  p_product_transaction_id   Product_transaction_id of MTLI/MSNI
458   *                                     populated if user confirms partial qty
459   **/
460   PROCEDURE Complete_Putaway_Wrapper(
461       x_return_status           OUT  NOCOPY VARCHAR2
462     , x_msg_count               OUT  NOCOPY NUMBER
466       /* LMS change end*/
463     , x_msg_data                OUT  NOCOPY VARCHAR2
464       /* Added for LMS project: Anupam Jain*/
465     , x_lms_operation_plan_id   OUT  NOCOPY NUMBER
467     , p_group_id                IN          NUMBER   DEFAULT NULL
468     , p_txn_header_id           IN          NUMBER   DEFAULT NULL
469     , p_drop_type               IN          VARCHAR2
470     , p_lpn_mode                IN          NUMBER
471     , p_lpn_id                  IN          NUMBER
472     , p_lpn_context             IN          NUMBER
473     , p_organization_id         IN          NUMBER
474     , p_user_id                 IN          NUMBER
475     , p_item_id                 IN          NUMBER   DEFAULT NULL
476     , p_revision                IN          VARCHAR2 DEFAULT NULL
477     , p_lot_number              IN          VARCHAR2 DEFAULT NULL
478     , p_subinventory_code       IN          VARCHAR2
479     , p_locator_id              IN          NUMBER
480     , p_quantity                IN          NUMBER   DEFAULT NULL
481     , p_uom_code                IN          VARCHAR2 DEFAULT NULL
482     , p_entire_lpn              IN          VARCHAR2 DEFAULT 'Y'
483     , p_to_lpn_name             IN          VARCHAR2
484     , p_to_lpn_id               IN          NUMBER
485     , p_project_id              IN          NUMBER   DEFAULT NULL
486     , p_task_id                 IN          NUMBER   DEFAULT NULL
487     , p_reference               IN          VARCHAR2 DEFAULT 'N'
488     , p_qty_reason_id           IN          NUMBER   DEFAULT NULL
489     , p_loc_reason_id           IN          NUMBER   DEFAULT NULL
490     , p_process_serial_flag     IN          VARCHAR2 DEFAULT NULL
491     , p_msni_txn_interface_id   IN          NUMBER   DEFAULT NULL
492     , p_product_transaction_id  IN          NUMBER   DEFAULT NULL
493     , p_secondary_quantity      IN          NUMBER   DEFAULT NULL --OPM Convergence
494     , p_secondary_uom           IN          VARCHAR2 DEFAULT NULL --OPM Convergence
495    , p_lpn_initially_loaded    IN          VARCHAR2 DEFAULT NULL );
496 
497 
498      /**
499    *  This procedure is called from the UI to check the validity of an into LPN
500    *  @param   p_org_id              Current Organization
501    *  @param   p_lpn_id              From LPN ID
502    *  @param   p_project_id          Project ID of from LPN
503    *  @param   p_task_id             Task ID of from LPN
504    *  @param   p_employee_id
505    *  @param   p_into_lpn            The license plate number that is entered in the
506    *                                 intoLPN field
507    *  @param   x_return_status
508    *  @param   x_msg_count
509    *  @param   x_msg_data
510    *  @param   x_validation_passed   'Y' if all passed, 'N' otherwise
511    *  @param   x_new_lpn_created     'Y' if a lpn is created, 'N' otherwise
512      **/
513    PROCEDURE validate_into_lpn
514      (p_organization_id      IN    NUMBER             ,
515       p_lpn_id               IN    NUMBER             ,
516       p_employee_id          IN    NUMBER             ,
517       p_into_lpn             IN    VARCHAR2           ,
518       x_return_status        OUT   NOCOPY VARCHAR2    ,
519       x_msg_count            OUT   NOCOPY NUMBER      ,
520       x_msg_data             OUT   NOCOPY VARCHAR2    ,
521       x_validation_passed    OUT   NOCOPY VARCHAR2    ,
522       x_new_lpn_created      OUT   NOCOPY VARCHAR2    ,
523       p_project_id           IN    NUMBER DEFAULT NULL,
524       p_task_id              IN    NUMBER DEFAULT NULL,
525       p_drop_type            IN    VARCHAR2 DEFAULT NULL,
526       p_sub                  IN    VARCHAR2 DEFAULT NULL,
527       p_loc                  IN    NUMBER DEFAULT NULL,
528       p_crossdock_type       IN    VARCHAR2 DEFAULT NULL,
529       p_consolidation_method_id   IN    NUMBER DEFAULT NULL,
530       p_backorder_delivery_detail_id IN NUMBER DEFAULT NULL,
531       p_suggested_into_lpn_id IN   NUMBER DEFAULT NULL
532       );
533 
534    /**
535    *   This function inserts an RTI record to tells the TM
536    *   to move all the contents of LPN to transfer LPN.
537    *  @param    p_from_org         from organization id
538    *  @param    p_lpn_id           from LPN id
539    *  @param    p_to_org           to organization id
540    *  @param    p_to_sub           to subinventory code
541    *  @param    p_to_loc           to locator id
542    *  @param    p_xfer_lpn_id      to LPN id
543    *  @param    p_first_time       1 if insert_rti is called the first
544    *                               time.  It will generate a new group id, which will be used in
545    *                               all subsequent call to this API.  It
546    *                               will also call init_statup_values the first time
547    *  @param    p_mobile_txn       'Y' if this is being called for a mobile transaction
548    *  @param    p_txn_mode_code    'ONLINE' or 'IMMEDIATE'
549    *  @param    x_return_status
550    *  @param    x_msg_count
551    *  @param    x_msg_data
552    *  @ RETURN  number             Returns the group id under which the RTI
553    *                               is inserted
554    **/
555      FUNCTION insert_rti( p_from_org IN NUMBER
556         ,p_lpn_id IN NUMBER
557         ,p_to_org IN NUMBER
558         ,p_to_sub IN VARCHAR2
559         ,p_to_loc IN NUMBER
560         ,p_xfer_lpn_id IN NUMBER
561         ,p_first_time IN NUMBER
562         ,p_mobile_txn IN VARCHAR2
563         ,p_txn_mode_code IN VARCHAR2
564         ,x_return_status OUT nocopy VARCHAR2
565         ,x_msg_count OUT nocopy NUMBER
566         ,x_msg_data OUT nocopy VARCHAR2 )
567      RETURN NUMBER;
568 
569    PROCEDURE get_crossdock_info
570      (p_lpn_id                 IN NUMBER,
571       p_organization_id        IN NUMBER,
572       x_back_order_delivery_id OUT nocopy NUMBER,
573       x_crossdock_type         OUT nocopy NUMBER,
574       x_wip_supply_type        OUT nocopy NUMBER );
575 
576    PROCEDURE update_loc_suggested_capacity
577      (x_return_status    OUT NOCOPY     VARCHAR2
578       , x_msg_count        OUT NOCOPY     NUMBER
579       , x_msg_data         OUT NOCOPY     VARCHAR2
580       , p_organization_id  IN             NUMBER
581       , p_lpn_id           IN             NUMBER
582       , p_location_id      IN             NUMBER
583       );
584 
585    PROCEDURE validate_material_status
586      (x_passed             OUT nocopy     VARCHAR2
587       , p_organization_id  IN             NUMBER
588       , p_sub              IN             VARCHAR2
589       , p_loc              IN             NUMBER
590       );
591 
592    -- bug 5286880
593    FUNCTION populate_grouping_rows
594      (p_lpn_id            IN NUMBER)
595    RETURN NUMBER;
596 
597    FUNCTION get_grouping_count
598      (p_line_rows         IN WSH_UTIL_CORE.id_tab_type)
599    RETURN NUMBER;
600 
601    FUNCTION get_grouping
602      (p_bo_dd_id          IN NUMBER)
603    RETURN NUMBER;
604    -- bug 5286880
605 
606  --Added following procedure for bug 7143123
607     PROCEDURE Cleanup_LPN_Crossdock_Wrapper(
608       p_org_id         IN             NUMBER
609     , p_lpn_id         IN             NUMBER
610     , x_return_status  OUT NOCOPY     VARCHAR2
611     );
612 
613 END WMS_PUTAWAY_UTILS;
614