DBA Data[Home] [Help]

PACKAGE: APPS.WMS_TASK_DISPATCH_GEN

Source


1 PACKAGE wms_task_dispatch_gen AS
2   /* $Header: WMSTASKS.pls 120.4.12010000.1 2008/07/28 18:37:08 appldev ship $ */
3 
4   --  variables representing missing records and tables
5 
6   --G_MISS_DETAIL_REC        INV_AUTODETAIL.pp_row;
7   --G_MISS_DETAIL_REC_TBL    INV_AUTODETAIL.pp_row_table;
8   --G_MISS_SERIAL_REC        INV_AUTODETAIL.serial_row;--G_MISS_SERIAL_REC_TBL    INV_AUTODETAIL.serial_row_table;
9 
10 
11 
12   --  procedure
13 
14 
15   --Stuff for Calling the Task Dispatching Engine
16 
17 
18   TYPE task_rec_cur_tp IS REF CURSOR;
19 
20   TYPE t_genref IS REF CURSOR;
21 
22   TYPE task_rec_tp IS RECORD(
23     task_id         NUMBER
24   , task_zone       VARCHAR2(10)
25   , task_locator    NUMBER
26   , task_revision   VARCHAR2(3)
27   , task_uom        VARCHAR2(10)
28   , task_quantity   NUMBER
29 -- Increased lot size to 80 Char - Mercy Thomas - B4625329
30   , task_lot_number VARCHAR2(80)
31   , task_type       NUMBER
32   , task_priority   NUMBER
33   );
34 
35   TYPE lpn_lot_qty_rec IS RECORD(
36     lpn_id     NUMBER
37 -- Increased lot size to 80 Char - Mercy Thomas - B4625329
38   , lot_number VARCHAR2(80)
39   , qty        NUMBER
40   );
41 
42   TYPE lpn_lot_qty_tb IS TABLE OF lpn_lot_qty_rec INDEX BY BINARY_INTEGER;
43 
44   --  PL/SQL TABLE used to store lot_number and qty for passed in lpn_id
45 
46   t_lpn_lot_qty_table lpn_lot_qty_tb;
47 
48   FUNCTION get_lpn_lot_qty(p_lot_number IN VARCHAR2)
49     RETURN NUMBER;
50 
51   -- r12.1 Advanced Replenishment Project 6681109
52   TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
53   TYPE pick_release_rec IS RECORD(
54 				  batch_id     NUMBER
55 				  , delivery_detail_id      NUMBER
56 				  );
57 
58   TYPE pick_release_tab IS TABLE OF pick_release_rec INDEX BY BINARY_INTEGER;
59   -- r12.1 Advanced Replenishment Project 6681109
60 
61 
62   PROCEDURE next_task(
63     p_sign_on_emp_id        IN            NUMBER
64   , p_sign_on_org_id        IN            NUMBER
65   , p_sign_on_zone          IN            VARCHAR2 := NULL
66   , p_sign_on_equipment_id  IN            NUMBER := NULL
67   , p_sign_on_equipment_srl IN            VARCHAR2 := NULL
68   , p_task_type             IN            VARCHAR2 := 'PICKING'
69   , x_nbr_tasks             OUT NOCOPY    NUMBER
70   , p_lpn_id                IN            NUMBER := fnd_api.g_miss_num
71   , x_return_status         OUT NOCOPY    VARCHAR2
72   , x_msg_count             OUT NOCOPY    NUMBER
73   , x_msg_data              OUT NOCOPY    VARCHAR2
74   , x_task_type             OUT NOCOPY    NUMBER
75   , p_sign_on_device_id     IN            NUMBER := NULL
76   , x_avail_device_id       OUT NOCOPY    NUMBER
77   );
78 
79   -- This procedure will dispatch the Cluster Pick Tasks
80   PROCEDURE next_cluster_pick_task(
81     p_sign_on_emp_id        IN            NUMBER
82   , p_sign_on_org_id        IN            NUMBER
83   , p_sign_on_zone          IN            VARCHAR2 := NULL
84   , p_sign_on_equipment_id  IN            NUMBER := NULL
85   , p_sign_on_equipment_srl IN            VARCHAR2 := NULL
86   , p_task_type             IN            VARCHAR2 := 'PICKING'
87   , x_nbr_tasks             OUT NOCOPY    NUMBER
88   , p_lpn_id                IN            NUMBER DEFAULT NULL
89   , x_return_status         OUT NOCOPY    VARCHAR2
90   , x_msg_count             OUT NOCOPY    NUMBER
91   , x_msg_data              OUT NOCOPY    VARCHAR2
92   , x_task_type             OUT NOCOPY    NUMBER
93   , p_sign_on_device_id     IN            NUMBER := NULL
94   , x_avail_device_id       OUT NOCOPY    NUMBER
95   , p_max_clusters          IN            NUMBER := 0
96   , x_deliveries_list       OUT NOCOPY    VARCHAR2
97   , x_cartons_list          OUT NOCOPY    VARCHAR2
98   );
99 
100   PROCEDURE complete_pick(
101     p_lpn               IN            VARCHAR2
102   , p_container_item_id IN            NUMBER := NULL
103   , p_org_id            IN            NUMBER
104   , p_temp_id           IN            NUMBER
105   , p_loc               IN            NUMBER
106   , p_sub               IN            VARCHAR2
107   , p_from_lpn_id       IN            NUMBER
108   , p_txn_hdr_id        IN            NUMBER
109   , p_user_id           IN            NUMBER
110   , x_return_status     OUT NOCOPY    VARCHAR2
111   , x_msg_count         OUT NOCOPY    NUMBER
112   , x_msg_data          OUT NOCOPY    VARCHAR2
113   , p_ok_to_process     OUT NOCOPY    VARCHAR2
114   );
115 
116   -- This lpn will be used during the picking process. If the user specifies
117   -- a from lpn, this procedure will figure out if the lpn in question will
118   -- satisfy the pick in question
119   -- It will return 1 if this is the case, 0 if not and 2 if the item does
120   -- not exist in the lpn, 3 if the qty is not adequate and 4 if it already
121   -- has been loaded
122 
123   PROCEDURE lpn_match(
124     p_lpn                 IN            NUMBER
125   , p_org_id              IN            NUMBER
126   , p_item_id             IN            NUMBER
127   , p_rev                 IN            VARCHAR2
128   , p_lot                 IN            VARCHAR2
129   , p_qty                 IN            NUMBER
130   , p_uom                 IN            VARCHAR2
131   , x_match               OUT NOCOPY    NUMBER
132   , x_sub                 OUT NOCOPY    VARCHAR2
133   , x_loc                 OUT NOCOPY    VARCHAR2
134   , x_qty                 OUT NOCOPY    NUMBER
135   , x_return_status       OUT NOCOPY    VARCHAR2
136   , x_msg_count           OUT NOCOPY    NUMBER
137   , x_msg_data            OUT NOCOPY    VARCHAR2
138   , p_temp_id             IN            NUMBER
139   , p_wms_installed       IN            VARCHAR2
140   , p_transaction_type_id IN            NUMBER
141   , p_cost_group_id       IN            NUMBER
142   , p_is_sn_alloc         IN            VARCHAR2
143   , p_action              IN            NUMBER
144   , x_temp_id             OUT NOCOPY    NUMBER
145   , x_loc_id              OUT NOCOPY    NUMBER
146   , x_lpn_lot_vector      OUT NOCOPY    VARCHAR2
147   , x_lpn_qty             OUT NOCOPY    NUMBER  --Added bug 3946813
148   );
149 
150   -- This API will process lots and serials. It will insert into the
151   -- mtl_transaction_lots_temp and mtl_serial_numbers_temp table
152   -- The input parameter p_action determines whether it is lot controlled (1)
153   -- , serial controlled (2) or lot and serial controlled (3)
154 
155   PROCEDURE process_lot_serial(
156     p_org_id        IN            NUMBER
157   , p_user_id       IN            NUMBER
158   , p_temp_id       IN            NUMBER
159   , p_item_id       IN            NUMBER
160   , p_qty           IN            NUMBER
161   , p_uom           IN            VARCHAR2
162   , p_lot           IN            VARCHAR2 := NULL
163   , p_fm_serial     IN            VARCHAR2
164   , p_to_serial     IN            VARCHAR2
165   , p_action        IN            NUMBER := 1
166   , x_return_status OUT NOCOPY    VARCHAR2
167   , x_msg_count     OUT NOCOPY    NUMBER
168   , x_msg_data      OUT NOCOPY    VARCHAR2
169   );
170 
171   FUNCTION get_primary_quantity(p_item_id IN NUMBER, p_organization_id IN NUMBER, p_from_quantity IN NUMBER, p_from_unit IN VARCHAR2)
172     RETURN NUMBER;
173 
174   FUNCTION can_pickdrop(txn_temp_id IN NUMBER)
175     RETURN VARCHAR2;
176 
177   PROCEDURE load_pick(
178     p_to_lpn              IN            VARCHAR2
179   , p_container_item_id   IN            NUMBER := NULL
180   , p_org_id              IN            NUMBER
181   , p_temp_id             IN            NUMBER
182   , p_from_lpn            IN            VARCHAR2
183   , p_from_lpn_id         IN            NUMBER := NULL
184   , p_act_sub             IN            VARCHAR2
185   , p_act_loc             IN            NUMBER
186   , p_entire_lpn          IN            VARCHAR2 := 'N'
187   , x_return_status       OUT NOCOPY    VARCHAR2
188   , x_msg_count           OUT NOCOPY    NUMBER
189   , x_msg_data            OUT NOCOPY    VARCHAR2
190   , p_loc_rsn_id          IN            NUMBER
191   , p_qty_rsn_id          IN            NUMBER
192   , p_sn_allocated_flag   IN            VARCHAR2
193   , p_task_id             IN            NUMBER
194   , p_user_id             IN            NUMBER
195   , p_qty                 IN            NUMBER
196   , p_qty_uom             IN            VARCHAR2
197   , p_is_revision_control IN            VARCHAR2
198   , p_is_lot_control      IN            VARCHAR2
199   , p_is_serial_control   IN            VARCHAR2
200   , p_item_id             IN            NUMBER
201   , p_act_rev             IN            VARCHAR2
202   , p_lot                 IN            VARCHAR2
203   , p_ok_to_process       OUT NOCOPY    VARCHAR2
204   , p_pick_qty_remaining  IN            NUMBER
205   , x_temp_id             OUT NOCOPY    NUMBER
206   , p_lots_to_delete      IN            VARCHAR2
207   , p_mmtt_to_update      IN            VARCHAR2
208   , p_serial_number       IN            VARCHAR2
209   , x_out_lpn             OUT NOCOPY    NUMBER
210   );
211 
212   PROCEDURE validate_pick_to_lpn(
213     p_api_version_number IN            NUMBER
214   , p_init_msg_lst       IN            VARCHAR2 := fnd_api.g_false
215   , x_return_status      OUT NOCOPY    VARCHAR2
216   , x_msg_count          OUT NOCOPY    NUMBER
217   , x_msg_data           OUT NOCOPY    VARCHAR2
218   , p_organization_id    IN            NUMBER
219   , p_pick_to_lpn        IN            VARCHAR2
220   , p_temp_id            IN            NUMBER
221   , p_project_id         IN            NUMBER := NULL
222   , p_task_id            IN            NUMBER := NULL
223   );
224 
225   PROCEDURE multiple_lpn_pick(
226     p_lpn_id            IN            NUMBER
227   , p_lpn_qty           IN            NUMBER
228   , p_org_id            IN            NUMBER
229   , p_temp_id           IN            NUMBER
230   , x_temp_id           OUT NOCOPY    NUMBER
231   , x_return_status     OUT NOCOPY    VARCHAR2
232   , x_msg_count         OUT NOCOPY    NUMBER
233   , x_msg_data          OUT NOCOPY    VARCHAR2
234   , p_sn_allocated_flag IN            VARCHAR2
235   , p_uom_code          IN            VARCHAR2
236   , p_to_lpn_id         IN            NUMBER
237   , p_entire_lpn        IN            VARCHAR2
238   );
239 
240   PROCEDURE multiple_pick(
241     p_pick_qty            IN            NUMBER
242   , p_org_id              IN            NUMBER
243   , p_temp_id             IN            NUMBER
244   , x_return_status       OUT NOCOPY    VARCHAR2
245   , x_msg_count           OUT NOCOPY    NUMBER
246   , x_msg_data            OUT NOCOPY    VARCHAR2
247   , p_sn_allocated_flag   IN            VARCHAR2
248   , p_act_uom             IN            VARCHAR2
249   , p_from_lpn            IN            VARCHAR2
250   , p_from_lpn_id         IN            NUMBER
251   , p_to_lpn              IN            VARCHAR2
252   , p_ok_to_process       OUT NOCOPY    VARCHAR2
253   , p_is_revision_control IN            VARCHAR2
254   , p_is_lot_control      IN            VARCHAR2
255   , p_is_serial_control   IN            VARCHAR2
256   , p_act_rev             IN            VARCHAR2
257   , p_lot                 IN            VARCHAR2
258   , p_act_sub             IN            VARCHAR2
259   , p_act_loc             IN            NUMBER
260   , p_container_item_id   IN            NUMBER := NULL
261   , p_entire_lpn          IN            VARCHAR2
262   , p_pick_qty_remaining  IN            NUMBER
263   , x_temp_id             OUT NOCOPY    NUMBER
264   , p_serial_number       IN            VARCHAR2
265   );
266 
267   PROCEDURE insert_mmtt_pack(
268     p_temp_id           IN            NUMBER
269   , p_lpn_id            IN            NUMBER
270   , p_transfer_lpn      IN            VARCHAR2
271   , p_container_item_id IN            NUMBER := NULL
272   , x_return_status     OUT NOCOPY    VARCHAR2
273   , x_msg_count         OUT NOCOPY    NUMBER
274   , x_msg_data          OUT NOCOPY    VARCHAR2
275   );
276 
277   PROCEDURE insert_task(
278     p_org_id        IN            NUMBER
279   , p_user_id       IN            NUMBER
280   , p_eqp_ins       IN            VARCHAR2
281   , p_temp_id       IN            NUMBER
282   , x_return_status OUT NOCOPY    VARCHAR2
283   );
284 
285   PROCEDURE mydebug(msg IN VARCHAR2);
286 
287   PROCEDURE create_lpn(
288     p_organization_id               NUMBER
289   , p_lpn             IN            VARCHAR2
290   , p_lpn_id          OUT NOCOPY    NUMBER
291   , x_return_status   OUT NOCOPY    VARCHAR2
292   , x_msg_count       OUT NOCOPY    NUMBER
293   , x_msg_data        OUT NOCOPY    VARCHAR2
294   );
295 
296   -- This API will be called to modify the License Plate Number and/or
297   -- the container item associated with the LPN
298 
299   PROCEDURE change_lpn(
300     p_org_id        IN            NUMBER
301   , p_container     IN            NUMBER := NULL
302   , p_lpn_name      IN            VARCHAR2 := NULL
303   , p_sug_lpn_name  IN            VARCHAR2 := NULL
304   , x_ret           OUT NOCOPY    NUMBER
305   , x_return_status OUT NOCOPY    VARCHAR2
306   , x_msg_count     OUT NOCOPY    NUMBER
307   , x_msg_data      OUT NOCOPY    VARCHAR2
308   );
309 
310   /* This API will be called when the pick task is dropped off
311   at the staging location. This will take in the temp id, see if there are
312     any mmtt lines that have this temp id as the parent id. If yes, then it
313     means that this line is a consolidated bulk pick task. Consequently, only
314     the child mmtt lines should be transacted
315     */
316   PROCEDURE pick_drop(
317     p_temp_id       IN            NUMBER
318   , p_txn_header_id IN            NUMBER
319   , p_org_id        IN            NUMBER
320   , x_return_status OUT NOCOPY    VARCHAR2
321   , x_msg_count     OUT NOCOPY    NUMBER
322   , x_msg_data      OUT NOCOPY    VARCHAR2
323   , p_from_lpn_id   IN            NUMBER
324   , p_drop_lpn      IN            VARCHAR2
325   , p_loc_reason_id IN            NUMBER   DEFAULT NULL
326   , p_sub           IN            VARCHAR  DEFAULT NULL
327   , p_loc           IN            NUMBER   DEFAULT NULL
328   , p_orig_sub      IN            VARCHAR  DEFAULT NULL
329   , p_orig_loc      IN            VARCHAR  DEFAULT NULL
330   , p_user_id       IN            NUMBER   DEFAULT NULL
331   , p_task_type     IN            NUMBER   DEFAULT NULL
332   , p_commit        IN            VARCHAR2 DEFAULT 'Y'
333   );
334 
335   /* This API is similar to the next_task API. It has been expanded to
336   support Pick By Label. User will scan a LPN label, The next task for that
337     LPN will be returned. The user will not be allowed to drop off the LPN if
338     further tasks exist for that LPN. If no further picking tasks exist for
339     the LPN scanned, then the user will be directed to the pick drop page.
340     x_nbr_tasks will  bring back 0 if there are no further undispatched
341     picking tasks which means that the user should drop it off,  or -1 if no
342     tasks exist at all or the actual number of tasks remaining for the LPN*/
343   PROCEDURE pick_by_label(
344     p_sign_on_emp_id        IN            NUMBER
345   , p_sign_on_org_id        IN            NUMBER
346   , p_sign_on_zone          IN            VARCHAR2 := NULL
347   , p_sign_on_equipment_id  IN            NUMBER := NULL
348   , p_sign_on_equipment_srl IN            VARCHAR2 := NULL
349   , p_task_type             IN            VARCHAR2 := 'PICKING'
350   , x_nbr_tasks             OUT NOCOPY    NUMBER
351   , p_lpn_id                IN            NUMBER
352   , x_return_status         OUT NOCOPY    VARCHAR2
353   , x_msg_count             OUT NOCOPY    NUMBER
354   , x_msg_data              OUT NOCOPY    VARCHAR2
355   );
356 
357   PROCEDURE manual_pick(
358     p_sign_on_emp_id        IN            NUMBER
359   , p_sign_on_org_id        IN            NUMBER
360   , p_sign_on_zone          IN            VARCHAR2 := NULL
361   , p_sign_on_equipment_id  IN            NUMBER := NULL
362   , p_sign_on_equipment_srl IN            VARCHAR2 := NULL
363   , p_task_type             IN            VARCHAR2 := 'PICKING'
364   , p_pick_slip_id          IN            NUMBER
365   , x_return_status         OUT NOCOPY    VARCHAR2
366   , x_msg_count             OUT NOCOPY    NUMBER
367   , x_msg_data              OUT NOCOPY    VARCHAR2
368   );
369 
370   /* This API will return the number of tasks that still need to be performed
371   for a given carton. If it returns more than 1, the user should not be
372     allowed to drop off the carton*/
373   PROCEDURE check_carton(
374     p_carton_id     IN            NUMBER
375   , p_org_id        IN            NUMBER
376   , x_nbr_tasks     OUT NOCOPY    NUMBER
377   , x_return_status OUT NOCOPY    VARCHAR2
378   , x_msg_count     OUT NOCOPY    NUMBER
379   , x_msg_data      OUT NOCOPY    VARCHAR2
380   );
381 
382   /* This API will return the number of tasks that still need to be performed
383   for a given carton. If it returns more than 1, the user should not be
384     allowed to drop off the carton*/
385   PROCEDURE check_pack_lpn(
386     p_lpn           IN            VARCHAR2
387   , p_org_id        IN            NUMBER
388   , x_return_status OUT NOCOPY    VARCHAR2
389   , x_msg_count     OUT NOCOPY    NUMBER
390   , x_msg_data      OUT NOCOPY    VARCHAR2
391   );
392 
393   -- Procedure
394   --  check_is_reservable_sub
395   -- Description
396   --  check from db tables whether the sub specified in
397   --  the input is a reservable sub or not.
398   PROCEDURE check_is_reservable_sub(
399     x_return_status     OUT NOCOPY    VARCHAR2
400   , p_organization_id   IN            VARCHAR2
401   , p_subinventory_code IN            VARCHAR2
402   , x_is_reservable_sub OUT NOCOPY    BOOLEAN
403   );
404 
405   PROCEDURE create_mo(
406     p_org_id                     IN            NUMBER
407   , p_inventory_item_id          IN            NUMBER
408   , p_qty                        IN            NUMBER
409   , p_uom                        IN            VARCHAR2
410   , p_lpn                        IN            NUMBER
411   , p_project_id                 IN            NUMBER := NULL
412   , p_task_id                    IN            NUMBER := NULL
413   , p_reference                  IN            VARCHAR2 := NULL
414   , p_reference_type_code        IN            NUMBER := NULL
415   , p_reference_id               IN            NUMBER := NULL
416   , p_lot_number                 IN            VARCHAR2
417   , p_revision                   IN            VARCHAR2
418   , p_header_id                  IN OUT NOCOPY NUMBER
419   , p_sub                        IN            VARCHAR := NULL
420   , p_loc                        IN            NUMBER := NULL
421   , x_line_id                    OUT NOCOPY    NUMBER
422   , p_inspection_status          IN            NUMBER := NULL
423   , p_txn_source_id              IN            NUMBER := fnd_api.g_miss_num
424   , p_transaction_type_id        IN            NUMBER := fnd_api.g_miss_num
425   , p_transaction_source_type_id IN            NUMBER := fnd_api.g_miss_num
426   , p_wms_process_flag           IN            NUMBER := NULL
427   , x_return_status              OUT NOCOPY    VARCHAR2
428   , x_msg_count                  OUT NOCOPY    NUMBER
429   , x_msg_data                   OUT NOCOPY    VARCHAR2
430   , p_from_cost_group_id         IN            NUMBER := NULL
431   , p_transfer_org_id            IN            NUMBER DEFAULT NULL
432   );
433 
434   PROCEDURE cleanup_task(
435     p_temp_id       IN            NUMBER
436   , p_qty_rsn_id    IN            NUMBER
437   , p_user_id       IN            NUMBER
438   , x_return_status OUT NOCOPY    VARCHAR2
439   , x_msg_count     OUT NOCOPY    NUMBER
440   , x_msg_data      OUT NOCOPY    VARCHAR2
441   );
442 
443   PROCEDURE get_td_lot_lov_count(
447   , p_lot_number          IN            VARCHAR2
444     x_lot_num_lov_count   OUT NOCOPY    NUMBER
445   , p_organization_id     IN            NUMBER
446   , p_item_id             IN            NUMBER
448   , p_transaction_type_id IN            NUMBER
449   , p_wms_installed       IN            VARCHAR2
450   , p_lpn_id              IN            NUMBER DEFAULT NULL
451   , p_subinventory_code   IN            VARCHAR2 DEFAULT NULL
452   , p_locator_id          IN            NUMBER DEFAULT NULL
453   , p_txn_temp_id         IN            NUMBER
454   );
455 
456   PROCEDURE validate_sub_loc_status(
457     p_wms_installed    IN            VARCHAR2
458   , p_temp_id          IN            NUMBER
459   , p_confirmed_sub    IN            VARCHAR2
460   , p_confirmed_loc_id IN            NUMBER
461   , x_return_status    OUT NOCOPY    VARCHAR2
462   , x_msg_count        OUT NOCOPY    NUMBER
463   , x_msg_data         OUT NOCOPY    VARCHAR2
464   , x_result           OUT NOCOPY    NUMBER
465   );
466 
467   PROCEDURE validate_pick_drop_sub(
468     p_temp_id            IN            NUMBER
469   , p_confirmed_drop_sub IN            VARCHAR2
470   , x_return_status      OUT NOCOPY    VARCHAR2
471   , x_msg_count          OUT NOCOPY    NUMBER
472   , x_msg_data           OUT NOCOPY    VARCHAR2
473   );
474 
475   PROCEDURE create_lock_mmtt_temp_id(lock_name IN VARCHAR2, x_return_status OUT NOCOPY VARCHAR2);
476 
477   PROCEDURE bulk_pick(
478     p_temp_id            IN            NUMBER
479   , p_txn_hdr_id         IN            NUMBER
480   , p_org_id             IN            NUMBER
481   , p_pick_qty_remaining IN            NUMBER
482   , p_user_id            IN            NUMBER
483   , x_new_txn_hdr_id     OUT NOCOPY    NUMBER
484   , x_return_status      OUT NOCOPY    VARCHAR2
485   , x_msg_count          OUT NOCOPY    NUMBER
486   , x_msg_data           OUT NOCOPY    VARCHAR2
487   , p_reason_id          IN            NUMBER  := 0--Added bug 3765153
488   );
489 
490 procedure validate_loaded_lpn_cg( p_organization_id       IN  NUMBER,
491 			     p_inventory_item_id     IN  NUMBER,
492 			     p_subinventory_code     IN  VARCHAR2,
493 			     p_locator_id            IN  NUMBER,
494 			     p_revision              IN  VARCHAR2,
495 			     p_lot_number            IN  VARCHAR2,
496 			     p_lpn_id                IN  NUMBER,
497 			     p_transfer_lpn_id       IN  NUMBER,
498 			     p_lot_control           IN  NUMBER,
499      			     p_revision_control      IN  NUMBER,
500 			     x_commingle_exist       OUT NOCOPY VARCHAR2,
501 			     x_return_status         OUT NOCOPY VARCHAR2); --Added bug3813165
502 
503 
504 --BUG 4452825 --Moved here from WMS_CONTAINER2_PUB Starts-----
505 
506 /*---------------------------------------------------------------------*/
507 -- Name
508 --   PROCEDURE validate_pick_drop_lpn
509 /*---------------------------------------------------------------------*/
510 -- Purpose
511 --   This API validates the drop LPN scanned by the user when depositing
512 --   a picked LPN to shipping staging.  It performs the following checks:
513 --
514 --    > Checks if the drop LPN is a new LPN generated by the user.
515 --      If it is, then no further checking is required.  (The LPN will
516 --      be created by the Pick Complete API).
517 --
518 --    > Checks if the user specified the picked LPN as the drop LPN,
519 --      and if so return an error.
520 --
521 --    > Checks to make sure the drop LPN contains picked inventory.
522 --      If the drop LPN is not picked for a sales order, check nested LPNs
523 --      (if they exist).  For the first nested LPN found which is picked
524 --      return a status of success.  If none found, return an error status.
525 --
526 --    > Make sure delivery IDs if they exist are the same for
527 --      both the picked LPN as well as the drop LPN.  If either
528 --      one is not yet associated with delivery ID, allow pick drop
529 --      to continue by returning a status of success.  For the drop LPN,
530 --      check nested LPNs if a delivery ID cannot be determined directly.
531 --
532 --
533 -- Input Parameters
534 --   p_api_version
535 --      API version number (current version is 1.0)
536 --   p_init_msg_list (optional, default FND_API.G_FALSE)
537 --      Valid values: FND_API.G_FALSE or FND_API.G_TRUE.
538 --                           if set to FND_API.G_TRUE
539 --                                   initialize error message list
540 --                           if set to FND_API.G_FALSE - not initialize error
541 --                                   message list
542 --   p_pick_lpn_id           The LPN ID picked by the user for this pick task
543 --
544 --   p_drop_lpn              The destination LPN into which the picked
545 --                           LPN (p_pick_lpn_id) will be packed.
546 --
547 --
548 -- Output Parameters
549 --   x_return_status
550 --       fnd_api.g_ret_sts_success      if all checks pass.
551 --       fnd_api.g_ret_sts_error        if any check fails.
552 --       fnd_api.g_ret_sts_unexp_error  if there is an unexpected error
553 --   x_msg_count
554 --       if there is an error (or more than one) error, the number of
555 --       error messages in the buffer
556 --   x_msg_data
557 --       if there is only one error, the error message
558 
559 FUNCTION validate_pick_drop_lpn
560 (  p_api_version_number    IN   NUMBER                       ,
561    p_init_msg_lst          IN   VARCHAR2 := fnd_api.g_false  ,
562    p_pick_lpn_id           IN   NUMBER                       ,
563    p_organization_id       IN   NUMBER                       ,
564    p_drop_lpn              IN   VARCHAR2                     ,
565    p_drop_sub              IN   VARCHAR2                     ,
566    p_drop_loc              IN   NUMBER
567    ) RETURN NUMBER;
568 
569 
570 PROCEDURE default_pick_drop_lpn
571   (  p_api_version_number    IN   NUMBER                       ,
572      p_init_msg_lst          IN   VARCHAR2 := fnd_api.g_false  ,
573      p_pick_lpn_id           IN   NUMBER                       ,
574      p_organization_id       IN   NUMBER                       ,
575      x_lpn_number           OUT   nocopy VARCHAR2);
576 
577 --BUG 4452825 --Moved here from WMS_CONTAINER2_PUB Ends-------
578 
579 END wms_task_dispatch_gen;