[Home] [Help]
PACKAGE BODY: APPS.INV_MOVE_ORDER_PUB
Source
1 PACKAGE BODY INV_Move_Order_PUB AS
2 /* $Header: INVPTROB.pls 120.5.12010000.4 2009/08/12 11:07:04 asugandh ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'INV_Move_Order_PUB';
7
8 g_inventory_item_id NUMBER := NULL;
9 g_primary_uom_code VARCHAR2(3) := NULL;
10 g_restrict_subinventories_code NUMBER;
11 g_restrict_locators_code NUMBER;
12
13
14 PROCEDURE print_debug(p_message in varchar2, p_module in varchar2) IS
15 begin
16 -- dbms_output.put_line(p_message);
17 inv_trx_util_pub.trace(p_message, p_module);
18 end;
19
20 -- Forward declaration of Procedure Id_To_Value
21
22 PROCEDURE Id_To_Value
23 ( p_trohdr_rec IN Trohdr_Rec_Type
24 , p_trolin_tbl IN Trolin_Tbl_Type
25 , x_trohdr_val_rec OUT NOCOPY Trohdr_Val_Rec_Type
26 , x_trolin_val_tbl OUT NOCOPY Trolin_Val_Tbl_Type
27 );
28
29 -- Forward declaration of procedure Value_To_Id
30
31 PROCEDURE Value_To_Id
32 ( x_return_status OUT NOCOPY VARCHAR2
33 , p_trohdr_rec IN Trohdr_Rec_Type
34 , p_trohdr_val_rec IN Trohdr_Val_Rec_Type
35 , p_trolin_tbl IN Trolin_Tbl_Type
36 , p_trolin_val_tbl IN Trolin_Val_Tbl_Type
37 , x_trohdr_rec IN OUT NOCOPY Trohdr_Rec_Type
38 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
39 );
40 -- Start of Comments
41 -- API name Create_Move_Order_Header
42 -- Type Public
43 -- Function
44 --
45 -- Pre-reqs
46 --
47 -- Parameters
48 --
49 -- Version Current version = 1.0
50 -- Initial version = 1.0
51 --
52 -- Notes
53 --
54 -- End of Comments
55
56 PROCEDURE Create_Move_Order_Header
57 ( p_api_version_number IN NUMBER
58 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
59 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
60 , p_commit IN VARCHAR2 := FND_API.G_FALSE
61 , x_return_status OUT NOCOPY VARCHAR2
62 , x_msg_count OUT NOCOPY NUMBER
63 , x_msg_data OUT NOCOPY VARCHAR2
64 , p_trohdr_rec IN Trohdr_Rec_Type := G_MISS_TROHDR_REC
65 , p_trohdr_val_rec IN Trohdr_Val_Rec_Type := G_MISS_TROHDR_VAL_REC
66 , x_trohdr_rec IN OUT NOCOPY Trohdr_Rec_Type
67 , x_trohdr_val_rec IN OUT NOCOPY Trohdr_Val_Rec_Type
68 , p_validation_flag IN VARCHAR2
69 ) IS
70 l_api_version_number CONSTANT NUMBER := 1.0;
71 l_api_name CONSTANT VARCHAR2(30):= 'Create_Move_Order_Header';
72 l_control_rec INV_GLOBALS.Control_Rec_Type;
73 l_return_status VARCHAR2(1);
74 l_trohdr_rec Trohdr_Rec_Type;
75 l_trolin_tbl Trolin_Tbl_Type := G_MISS_TROLIN_TBL;
76 l_trolin_val_tbl Trolin_Val_Tbl_Type := G_MISS_TROLIN_VAL_TBL;
77 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
78 BEGIN
79 if l_debug = 1 THEN
80 print_debug('enter Create Move Order Header', l_api_name);
81 end if;
82 -- Standard call to check for call compatibility
83 IF NOT FND_API.Compatible_API_Call
84 ( l_api_version_number
85 , p_api_version_number
86 , l_api_name
87 , G_PKG_NAME
88 )
89 THEN
90 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
91 END IF;
92
93 g_primary_uom_code := NULL;
94 g_inventory_item_id := NULL;
95 IF NVL(p_validation_flag,g_validation_yes) = g_validation_no THEN
96 If l_debug = 1 THEN
97 print_debug('No Validation', l_api_name);
98 End If;
99 x_trohdr_rec := p_trohdr_rec;
100 --set default values
101 x_trohdr_rec.date_required := sysdate;
102 x_trohdr_rec.description := NULL;
103 x_trohdr_rec.from_subinventory_code := NULL;
104 x_trohdr_rec.header_id := INV_TRANSFER_ORDER_PVT.get_next_header_id;
105 x_trohdr_rec.program_application_id := NULL;
106 x_trohdr_rec.program_id := NULL;
107 x_trohdr_rec.program_update_date := NULL;
108 x_trohdr_rec.request_id := NULL;
109 x_trohdr_rec.status_date := sysdate;
110 x_trohdr_rec.to_account_id := NULL;
111 x_trohdr_rec.to_subinventory_code := NULL;
112 x_trohdr_rec.ship_to_location_id := NULL;
113
114 x_trohdr_rec.attribute_category:= NULL;
115 x_trohdr_rec.attribute1 := NULL;
116 x_trohdr_rec.attribute2 := NULL;
117 x_trohdr_rec.attribute3 := NULL;
118 x_trohdr_rec.attribute4 := NULL;
119 x_trohdr_rec.attribute5 := NULL;
120 x_trohdr_rec.attribute6 := NULL;
121 x_trohdr_rec.attribute7 := NULL;
122 x_trohdr_rec.attribute8 := NULL;
123 x_trohdr_rec.attribute9 := NULL;
124 x_trohdr_rec.attribute10 := NULL;
125 x_trohdr_rec.attribute11 := NULL;
126 x_trohdr_rec.attribute12 := NULL;
127 x_trohdr_rec.attribute13 := NULL;
128 x_trohdr_rec.attribute14 := NULL;
129 x_trohdr_rec.attribute15 := NULL;
130 inv_trohdr_util.insert_row(x_trohdr_rec);
131 x_return_status := fnd_api.g_ret_sts_success;
132
133 ELSE
134 If l_debug = 1 THEN
135 print_debug('Validation turned on', l_api_name);
136 End If;
137 l_control_rec.controlled_operation := TRUE;
138 l_control_Rec.process_entity := INV_GLOBALS.G_ENTITY_TROHDR;
139 l_control_Rec.default_attributes := TRUE;
140 l_control_rec.change_attributes := TRUE;
141 l_control_rec.write_to_db := TRUE;
142
143 If l_debug = 1 THEN
144 print_debug('Call to process_transfer_order', l_api_name);
145 End If;
146 -- Call INV_Transfer_Order_PVT.Process_Transfer_Order
147 INV_Transfer_Order_PVT.Process_Transfer_Order
148 ( p_api_version_number => 1.0
149 , p_init_msg_list => p_init_msg_list
150 , p_commit => p_commit
151 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
152 , p_control_rec => l_control_rec
153 , x_return_status => x_return_status
154 , x_msg_count => x_msg_count
155 , x_msg_data => x_msg_data
156 , p_trohdr_rec => p_trohdr_rec
157 , p_trohdr_val_rec => p_trohdr_val_rec
158 , p_trolin_tbl => l_trolin_tbl
159 , p_trolin_val_tbl => l_trolin_val_tbl
160 , x_trohdr_rec => l_trohdr_rec
161 , x_trolin_tbl => l_trolin_tbl
162 );
163
164 IF x_return_status = fnd_api.g_ret_sts_error THEN
165 If l_debug = 1 THEN
166 print_debug('Error from process_transfer_order',l_api_name);
167 End If;
168 RAISE fnd_api.g_exc_error;
169 ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
170 If l_debug = 1 THEN
171 print_debug('Unexpected error from process_transfer_order',l_api_name);
172 End If;
173 RAISE fnd_api.g_exc_unexpected_error;
174 END IF;
175
176 -- Load Id OUT parameters.
177
178 x_trohdr_rec := l_trohdr_rec;
179 if( p_commit = FND_API.G_TRUE ) Then
180 commit;
181 end if;
182 --x_trolin_tbl := p_trolin_tbl;
183
184 -- If p_return_values is TRUE then convert Ids to Values.
185
186 IF FND_API.to_Boolean(p_return_values) THEN
187
188 Id_To_Value
189 ( p_trohdr_rec => p_trohdr_rec
190 , p_trolin_tbl => l_trolin_tbl
191 , x_trohdr_val_rec => x_trohdr_val_rec
192 , x_trolin_val_tbl => l_trolin_val_tbl
193 );
194
195 END IF;
196 END IF;
197
198 If l_debug = 1 THEN
199 print_debug('End Create Move Order Header', l_api_name);
200 End If;
201 EXCEPTION
202
203 WHEN FND_API.G_EXC_ERROR THEN
204 x_return_status := FND_API.G_RET_STS_ERROR;
205
206 -- Get message count and data
207 FND_MSG_PUB.Count_And_Get
208 ( p_count => x_msg_count
209 , p_data => x_msg_data
210 );
211
212 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
213 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
214
215 -- Get message count and data
216 FND_MSG_PUB.Count_And_Get
217 ( p_count => x_msg_count
218 , p_data => x_msg_data
219 );
220
221 WHEN OTHERS THEN
222 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
223
224 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
225 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME , 'Create_Move_Order_Header');
226 END IF;
227
228 -- Get message count and data
229 FND_MSG_PUB.Count_And_Get
230 ( p_count => x_msg_count
231 , p_data => x_msg_data
232 );
233
234 END Create_Move_Order_Header;
235
236
237 -- Start of Comments
238 -- API name Create_Move_Order_Lines
239 -- Type Public
240 -- Function
241 --
242 -- Pre-reqs
243 --
244 -- Parameters
245 --
246 -- Version Current version = 1.0
247 -- Initial version = 1.0
248 --
249 -- Notes
250 -- Changed by P lowe for bug 6689912
251 -- End of Comments
252
253 PROCEDURE Create_Move_Order_Lines
254 ( p_api_version_number IN NUMBER
255 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
256 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
257 , p_commit IN VARCHAR2 := FND_API.G_FALSE
258 , x_return_status OUT NOCOPY VARCHAR2
259 , x_msg_count OUT NOCOPY NUMBER
260 , x_msg_data OUT NOCOPY VARCHAR2
261 , p_trolin_tbl IN Trolin_Tbl_Type :=
262 G_MISS_TROLIN_TBL
263 , p_trolin_val_tbl IN Trolin_Val_Tbl_Type :=
264 G_MISS_TROLIN_VAL_TBL
265 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
266 , x_trolin_val_tbl IN OUT NOCOPY Trolin_Val_Tbl_Type
267 , p_validation_flag IN VARCHAR2
268 )
269 IS
270 l_api_version_number CONSTANT NUMBER := 1.0;
271 l_api_name CONSTANT VARCHAR2(30):= 'Create_Move_Order_Lines';
272 l_control_rec INV_GLOBALS.Control_Rec_Type;
273 l_return_status VARCHAR2(1);
274 l_trohdr_rec Trohdr_Rec_Type := G_MISS_TROHDR_REC;
275 l_trohdr_val_rec Trohdr_Val_Rec_Type := G_MISS_TROHDR_VAL_REC;
276 l_trolin_tbl Trolin_Tbl_Type := p_trolin_tbl;
277 l_trolin_tbl_out Trolin_Tbl_Type;
278 l_dummy NUMBER;
279 l_index NUMBER;
280 l_primary_uom_code VARCHAR2(3);
281 l_restrict_locators_code NUMBER := NULL;
282 l_restrict_subinventories_code NUMBER:= NULL;
283 l_result VARCHAR2(1);
284 l_current_ship_set_id NUMBER;
285 l_failed_ship_set_id NUMBER;
286 l_shipset_start_index NUMBER;
287
288 l_batch_id NUMBER := WSH_PICK_LIST.G_BATCH_ID;
289 l_new_trolin_tbl trolin_new_tbl_type;
290 l_found_backorder_cache BOOLEAN := FALSE;
291 l_return_value BOOLEAN := TRUE;
292 l_shipping_attr WSH_INTERFACE.ChangedAttributeTabType;
293 l_shipset_smc_backorder_rec WSH_INTEGRATION.BackorderRecType;
294 l_reservable_type NUMBER;
295 l_count NUMBER;
296
297 CURSOR get_move_order_type (V_header_id NUMBER) IS
298 select move_order_type
299 from mtl_txn_request_headers h
300 where h.header_id = V_header_id;
301 -- 6689912
302 CURSOR get_sales_order (V_line_id NUMBER) IS
303 select h.order_number , l.org_id -- 6689912 added org_id
304 from oe_order_headers_all h
305 ,oe_order_lines_all l
306 where l.header_id = h.header_id
307 and l.line_id = V_line_id;
308
309 l_org_id number; -- 6689912
310 l_order_number OE_ORDER_HEADERS_ALL.ORDER_NUMBER%TYPE;
311 l_move_order_type MTL_TXN_REQUEST_HEADERS.MOVE_ORDER_TYPE%TYPE;
312 l_error_code NUMBER;
313 l_msg_data VARCHAR2(240);
314
315 CURSOR get_sub_loc_ctrl(v_org_id NUMBER, v_sub_code VARCHAR2) IS
316 SELECT locator_type
317 FROM mtl_secondary_inventories
318 WHERE organization_id = v_org_id
319 AND secondary_inventory_name = v_sub_code;
320
321 l_sub_loc_ctrl NUMBER;
322
323 CURSOR get_item_loc_ctrl(v_org_id NUMBER, v_item_id NUMBER) IS
324 SELECT location_control_code
325 FROM mtl_system_items
326 WHERE organization_id = v_org_id
327 AND inventory_item_id = v_item_id;
328
329 l_item_loc_ctrl NUMBER;
330 l_debug NUMBER := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
331
332 --Bug 7148749, added for ship model complete handling
333 l_current_ship_model_id NUMBER;
334 l_shipmodel_start_index NUMBER;
335 BEGIN
336
337 -- Standard call to check for call compatibility
338
339 IF NOT FND_API.Compatible_API_Call
340 ( l_api_version_number
341 , p_api_version_number
342 , l_api_name
343 , G_PKG_NAME
344 )
345 THEN
346 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
347 END IF;
348
349 /*
350 -- Perform Value to Id conversion
351 Value_To_Id
352 ( x_return_status => l_return_status
353 , p_trohdr_rec => l_trohdr_rec
354 , p_trohdr_val_rec => l_trohdr_val_rec
355 , p_trolin_tbl => p_trolin_tbl
356 , p_trolin_val_tbl => p_trolin_val_tbl
357 , x_trohdr_rec => l_trohdr_rec
358 , x_trolin_tbl => l_trolin_tbl
359 );
360
361 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
362 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
363 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
364 RAISE FND_API.G_EXC_ERROR;
365 END IF;
366 */
367 --l_control_rec.process_entity := INV_GLOBALS.G_ENTITY_TROLIN;
368 --l_control_rec.controlled_operation := TRUE;
369 --l_control_rec.write_to_db := FND_API.to_boolean(p_commit);
370
371 IF NVL(p_validation_flag, g_validation_yes) = g_validation_no THEN --{ Validation No
372 l_index := p_trolin_tbl.FIRST;
373 l_count := 1;
374 Loop
375 -- print_debug('start l_index '||l_index,l_api_name);
376 x_trolin_tbl(l_index) := p_trolin_tbl(l_index);
377 x_trolin_tbl(l_Index).return_status := fnd_api.g_ret_sts_success;
378 l_found_backorder_cache := FALSE;
379 l_restrict_subinventories_code := NULL;
380 l_restrict_locators_code := NULL;
381
382 IF x_trolin_tbl(l_index).ship_set_id IS NOT NULL AND
383 x_trolin_tbl(l_index).ship_set_id <> fnd_api.g_miss_num AND
384 x_trolin_tbl(l_index).ship_set_id <> nvl(l_current_ship_set_id, -9999) THEN
385 SAVEPOINT SHIPSET_SP;
386 l_current_ship_set_id := x_trolin_tbl(l_index).ship_set_id;
387 l_shipset_start_index := l_index;
388 ELSIF (x_trolin_tbl(l_index).ship_set_id IS NULL OR
389 x_trolin_tbl(l_index).ship_set_Id = fnd_api.g_miss_num) AND
390 l_current_ship_set_id IS NOT NULL THEN
391 l_current_ship_set_id := NULL;
392 l_shipset_start_index := NULL;
393 END IF;
394
395 -- Bug 7148749, added for ship model complete handling
396 IF x_trolin_tbl(l_index).ship_model_id IS NOT NULL AND
397 x_trolin_tbl(l_index).ship_model_id <> fnd_api.g_miss_num AND
398 x_trolin_tbl(l_index).ship_model_id <> nvl(l_current_ship_model_id, -9999) THEN
399 SAVEPOINT SHIPMODEL_SP;
400 l_current_ship_model_id := x_trolin_tbl(l_index).ship_model_id;
401 l_shipmodel_start_index := l_index;
402 ELSIF (x_trolin_tbl(l_index).ship_model_id IS NULL OR
403 x_trolin_tbl(l_index).ship_model_Id = fnd_api.g_miss_num) AND
404 l_current_ship_model_id IS NOT NULL THEN
405 l_current_ship_model_id := NULL;
406 l_shipmodel_start_index := NULL;
407 END IF;
408 -- End Bug 7148749
409
410 If x_trolin_tbl(l_index).transaction_type_id = 52 Then
411 x_trolin_tbl(l_index).transaction_source_type_id := 2;
412 Elsif x_trolin_tbl(l_index).transaction_type_id = 53 Then
413 x_trolin_tbl(l_index).transaction_source_type_id := 8;
414 Else
415 BEGIN
416 select transaction_source_type_id
417 into x_trolin_tbl(l_index).transaction_source_type_id
418 from mtl_transaction_types
419 where transaction_type_id = x_trolin_tbl(l_index).transaction_type_id;
420 EXCEPTION
421 WHEN NO_DATA_FOUND THEN
422 print_debug('Error in fetching source type, Invalid transaction type', l_api_name);
423 RAISE fnd_api.g_exc_error;
424 END;
425 End If;
426
427 IF x_trolin_tbl(l_index).primary_quantity IS NULL OR
428 x_trolin_tbl(l_index).primary_quantity = fnd_api.g_miss_num THEN
429 IF g_inventory_item_id = x_trolin_tbl(l_index).inventory_item_id THEN
430 l_primary_uom_code := g_primary_uom_code;
431 ELSE
432 -- print_debug('Selecting primary uom code', l_api_name);
433 SELECT primary_uom_code
434 ,nvl(restrict_locators_code,0)
435 ,nvl(restrict_subinventories_code,0)
436 INTO l_primary_uom_code
437 ,l_restrict_locators_code
438 ,l_restrict_subinventories_code
439 FROM mtl_system_items
440 WHERE organization_id = x_trolin_tbl(l_index).organization_id
441 AND inventory_item_id = x_trolin_tbl(l_index).inventory_item_id;
442
443 g_inventory_item_id := x_trolin_tbl(l_index).inventory_item_id;
444 g_primary_uom_code := l_primary_uom_code;
445 g_restrict_locators_code := l_restrict_locators_code;
446 g_restrict_subinventories_code := l_restrict_subinventories_code;
447 END IF;
448
449 IF l_primary_uom_code = x_trolin_tbl(l_index).uom_code THEN
450 x_trolin_tbl(l_index).primary_quantity := x_trolin_tbl(l_index).quantity;
451 ELSE
452 -- Bug 8597009: add org ID and lot number for lot-specific conversions
453 x_trolin_tbl(l_index).primary_quantity :=
454 inv_convert.inv_um_convert(
455 item_id => x_trolin_tbl(l_index).inventory_item_id
456 , lot_number => x_trolin_tbl(l_index).lot_number
457 , organization_id => x_trolin_tbl(l_index).organization_id
458 , PRECISION => NULL
459 , from_quantity => x_trolin_tbl(l_index).quantity
460 , from_unit => x_trolin_tbl(l_index).uom_code
461 , to_unit => l_primary_uom_code
462 , from_name => NULL
463 , to_name => NULL);
464 --print_debug('primary_quantity = '|| x_trolin_tbl(l_index).primary_quantity, l_api_name);
465 IF x_trolin_tbl(l_index).primary_quantity < 0 THEN
466 print_debug('Error during conversion. Primary quantity less that 0', l_api_name);
467 RAISE fnd_api.g_exc_error;
468 END IF;
469 END IF; -- primary uom = txn uom
470 END IF; -- primary qty is missing
471
472 IF x_trolin_tbl(l_index).to_subinventory_code IS NOT NULL THEN
473 IF l_restrict_subinventories_code IS NULL THEN
474 IF g_inventory_item_id = x_trolin_tbl(l_index).inventory_item_id Then
475 l_restrict_subinventories_code := g_restrict_subinventories_code;
476 l_restrict_locators_code := g_restrict_locators_code;
477 ELSE -- item doesn't match saved item
478 SELECT primary_uom_code
479 ,nvl(restrict_locators_code,0)
480 ,nvl(restrict_subinventories_code,0)
481 INTO l_primary_uom_code
482 ,l_restrict_locators_code
483 ,l_restrict_subinventories_code
484 FROM mtl_system_items
485 WHERE organization_id = x_trolin_tbl(l_index).organization_id
486 AND inventory_item_id = x_trolin_tbl(l_index).inventory_item_id;
487
488 g_inventory_item_id := x_trolin_tbl(l_index).inventory_item_id;
489 g_primary_uom_code := l_primary_uom_code;
490 g_restrict_subinventories_code := l_restrict_subinventories_code;
491 g_restrict_locators_code := l_restrict_locators_code;
492 END IF; -- inventory item matches
493 END IF; -- restrict subs is null
494 IF l_restrict_locators_code = 1 AND
495 x_trolin_tbl(l_index).to_locator_id IS NOT NULL THEN
496 BEGIN
497 SELECT 'Y'
498 INTO l_result
499 FROM DUAL
500 WHERE exists (
501 SELECT secondary_locator
502 FROM mtl_secondary_locators
503 WHERE organization_id = x_trolin_tbl(l_index).organization_id
504 AND secondary_locator = x_trolin_tbl(l_index).to_locator_id
505 AND inventory_item_id = x_trolin_tbl(l_index).inventory_item_id);
506 EXCEPTION
507 WHEN NO_DATA_FOUND THEN
508 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
509 END;
510
511 ELSIF l_restrict_subinventories_code = 1 and x_trolin_tbl(l_index).to_subinventory_code is NOT NULL Then
512 BEGIN
513 SELECT 'Y'
514 INTO l_result
515 FROM DUAL
516 WHERE exists (
517 SELECT secondary_inventory
518 FROM mtl_item_sub_inventories
519 WHERE organization_id = x_trolin_tbl(l_index).organization_id
520 AND secondary_inventory = x_trolin_tbl(l_index).to_subinventory_code
521 AND inventory_item_id = x_trolin_tbl(l_index).inventory_item_id);
522 EXCEPTION
523 WHEN NO_DATA_FOUND THEN
524 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
525 END;
526 END IF;
527 END IF; -- to sub is not null
528
529 /*Fix for bug#8608683
530 Validation for from sub inventory has been added.
531 */
532 IF x_trolin_tbl(l_index).from_subinventory_code IS NOT NULL THEN
533 IF l_restrict_subinventories_code IS NULL THEN
534 IF g_inventory_item_id = x_trolin_tbl(l_index).inventory_item_id Then
535 l_restrict_subinventories_code := g_restrict_subinventories_code;
536 l_restrict_locators_code := g_restrict_locators_code;
537 ELSE -- item doesn't match saved item
538 SELECT primary_uom_code
539 ,nvl(restrict_locators_code,0)
540 ,nvl(restrict_subinventories_code,0)
541 INTO l_primary_uom_code
542 ,l_restrict_locators_code
543 ,l_restrict_subinventories_code
544 FROM mtl_system_items
545 WHERE organization_id = x_trolin_tbl(l_index).organization_id
546 AND inventory_item_id = x_trolin_tbl(l_index).inventory_item_id;
547
548 g_inventory_item_id := x_trolin_tbl(l_index).inventory_item_id;
549 g_primary_uom_code := l_primary_uom_code;
550 g_restrict_subinventories_code := l_restrict_subinventories_code;
551 g_restrict_locators_code := l_restrict_locators_code;
552 END IF; -- inventory item matches
553 END IF; -- restrict subs is null
554
555 IF l_restrict_subinventories_code = 1 and x_trolin_tbl(l_index).from_subinventory_code is NOT NULL Then
556 BEGIN
557 SELECT 'Y'
558 INTO l_result
559 FROM DUAL
560 WHERE exists (
561 SELECT secondary_inventory
562 FROM mtl_item_sub_inventories
563 WHERE organization_id = x_trolin_tbl(l_index).organization_id
564 AND secondary_inventory = x_trolin_tbl(l_index).from_subinventory_code
565 AND inventory_item_id = x_trolin_tbl(l_index).inventory_item_id);
566 EXCEPTION
567 WHEN NO_DATA_FOUND THEN
568 print_debug('From Subinventory is not in list of restricted sub inventory', l_api_name);
569 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
570 END;
571 END IF;
572 END IF; -- From sub is not null
573 --END bug#8608683
574
575
576 IF x_trolin_tbl(l_index).return_status = fnd_api.g_ret_sts_success THEN --{
577
578 l_return_value := INV_CACHE.set_item_rec( p_organization_id => x_trolin_tbl(l_index).organization_id
579 ,p_item_id => x_trolin_tbl(l_index).inventory_item_id);
580
581 IF NOT l_return_value Then
582 print_debug('Error setting cache for inventory_item', l_api_name);
583 RAISE fnd_api.g_exc_unexpected_error;
584 END IF;
585
586 l_reservable_type := INV_CACHE.item_rec.reservable_type;
587
588 IF l_reservable_type = 2 then
589 l_found_backorder_cache := FALSE;
590 ELSE
591 l_found_backorder_cache := inv_pick_release_pvt.check_backorder_cache(
592 p_org_id => x_trolin_tbl(l_index).organization_id
593 ,p_inventory_item_id => x_trolin_tbl(l_index).inventory_item_id
594 ,p_ignore_reservations => FALSE
595 ,p_demand_line_id => x_trolin_tbl(l_index).txn_source_line_id);
596 END IF;
597
598 IF l_found_backorder_cache THEN
599 IF l_current_ship_set_id IS NOT NULL THEN
600 BEGIN
601 l_shipset_smc_backorder_rec.delivery_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
602 l_shipset_smc_backorder_rec.ship_set_id := l_current_ship_set_id;
603
604 If l_debug = 1 THEN
605 print_debug('Calling BO SS for WDD = '||x_trolin_tbl(l_index).txn_source_line_detail_id||', SS_ID = '||l_current_ship_set_id,l_api_name);
606 End If;
607
608 wsh_integration.ins_backorder_ss_smc_rec
609 (p_api_version_number => 1.0,
610 p_source_code => 'INV',
611 p_init_msg_list => fnd_api.g_false,
612 p_backorder_rec => l_shipset_smc_backorder_rec,
613 x_return_status => l_return_status,
614 x_msg_count => x_msg_count,
615 x_msg_data => x_msg_data);
616
617 IF l_return_status <> fnd_api.g_ret_sts_success THEN
618 print_debug('Error occured while updating shipping for ' || 'failed ship set',l_api_name);
619 print_debug('l_return_status: ' || l_return_status, l_api_name);
620 END IF;
621
622 EXCEPTION
623 WHEN OTHERS THEN
624 print_debug('When other exception: ' || Sqlerrm, l_api_name);
625 print_debug('l_return_status: ' || l_return_status, l_api_name);
626 END;
627
628 -- Bug 7148749, added for ship model complete handling
629 ELSIF l_current_ship_model_id IS NOT NULL THEN
630 BEGIN
631 l_shipset_smc_backorder_rec.delivery_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
632 l_shipset_smc_backorder_rec.ship_model_id := l_current_ship_model_id;
633
634 If l_debug = 1 THEN
635 print_debug('Calling BO SMC for WDD = '||x_trolin_tbl(l_index).txn_source_line_detail_id||', Model_ID = '||l_current_ship_model_id,l_api_name);
636 End If;
637
638 wsh_integration.ins_backorder_ss_smc_rec
639 (p_api_version_number => 1.0,
640 p_source_code => 'INV',
641 p_init_msg_list => fnd_api.g_false,
642 p_backorder_rec => l_shipset_smc_backorder_rec,
643 x_return_status => l_return_status,
644 x_msg_count => x_msg_count,
645 x_msg_data => x_msg_data);
646
647 IF l_return_status <> fnd_api.g_ret_sts_success THEN
648 print_debug('Error occured while updating shipping for ' || 'failed ship set',l_api_name);
649 print_debug('l_return_status: ' || l_return_status, l_api_name);
650 END IF;
651
652 EXCEPTION
653 WHEN OTHERS THEN
654 print_debug('When other exception: ' || Sqlerrm, l_api_name);
655 print_debug('l_return_status: ' || l_return_status, l_api_name);
656 END;
657 -- End Bug 7148749
658 END IF;
659 x_trolin_tbl(l_index).return_status:= fnd_api.g_ret_sts_error;
660 END IF;
661 END IF; -- x_trolin_tbl(l_index).return_status = fnd_api.g_ret_sts_success }
662
663 IF x_trolin_tbl(l_index).return_status = fnd_api.g_ret_sts_error THEN --{
664 IF l_current_ship_set_id is NOT NULL THEN --{
665 ROLLBACK to SHIPSET_SP;
666 l_index := l_shipset_start_index;
667 LOOP
668 IF not x_trolin_tbl.exists(l_index) THEN
669 x_trolin_tbl(l_index) := p_trolin_tbl(l_index);
670 END IF;
671 IF l_found_backorder_cache THEN --{
672
673 l_shipping_attr(1).source_line_id := x_trolin_tbl(l_index).txn_source_line_id;
674 l_shipping_attr(1).ship_from_org_id := x_trolin_tbl(l_index).organization_id;
675 l_shipping_attr(1).delivery_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
676 l_shipping_attr(1).action_flag := 'B';
677
678 WSH_INTERFACE.Update_Shipping_Attributes
679 (p_source_code => 'INV',
680 p_changed_attributes => l_shipping_attr,
681 x_return_status => l_return_status
682 );
683
684 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
685 print_debug('return error from update shipping attributes',l_api_name);
686 RAISE FND_API.G_EXC_ERROR;
687 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
688 print_debug('return error from update shipping attributes',l_api_name);
689 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
690 END IF;
691 END IF; --} backorder_flag
692 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
693 EXIT WHEN l_index = p_trolin_tbl.LAST;
694 l_index := p_trolin_tbl.NEXT(l_index);
695
696 IF p_trolin_tbl(l_index).ship_set_id IS NULL OR
697 p_trolin_tbl(l_index).ship_set_id = fnd_api.g_miss_num OR
698 p_trolin_tbl(l_index).ship_set_id <> nvl(l_current_ship_set_id, -9999) THEN
699 l_index := p_trolin_tbl.prior(l_index);
700 EXIT;
701 END IF;
702 END LOOP; --loop for all records in shipset
703 l_current_ship_set_id := NULL;
704 l_shipset_start_index := NULL;
705 ELSIF l_current_ship_model_id IS NOT NULL THEN --l_current_ship_set_id } {
706 ROLLBACK to SHIPMODEL_SP;
707 l_index := l_shipmodel_start_index;
708 LOOP
709 IF not x_trolin_tbl.exists(l_index) THEN
710 x_trolin_tbl(l_index) := p_trolin_tbl(l_index);
711 END IF;
712 IF l_found_backorder_cache THEN --{
713 l_shipping_attr(1).source_line_id := x_trolin_tbl(l_index).txn_source_line_id;
714 l_shipping_attr(1).ship_from_org_id := x_trolin_tbl(l_index).organization_id;
715 l_shipping_attr(1).delivery_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
716 l_shipping_attr(1).action_flag := 'B';
717
718 If l_debug = 1 THEN
719 print_debug('Backordering WDD = '||x_trolin_tbl(l_index).txn_source_line_detail_id||', MODEL_ID = '||l_current_ship_model_id,l_api_name);
720 End If;
721
722 WSH_INTERFACE.Update_Shipping_Attributes
723 (p_source_code => 'INV',
724 p_changed_attributes => l_shipping_attr,
725 x_return_status => l_return_status
726 );
727 IF l_return_status = FND_API.G_RET_STS_ERROR then
728 print_debug('return error from update shipping attributes',l_api_name);
729 RAISE FND_API.G_EXC_ERROR;
730 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
731 print_debug('return error from update shipping attributes',l_api_name);
732 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
733 END IF;
734 END IF; -- l_back_order_flag }
735 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
736
737 EXIT WHEN l_index = p_trolin_tbl.LAST;
738 l_index := p_trolin_tbl.NEXT(l_index);
739
740 IF p_trolin_tbl(l_index).ship_model_id IS NULL OR
741 p_trolin_tbl(l_index).ship_model_id = fnd_api.g_miss_num OR
742 p_trolin_tbl(l_index).ship_model_id <> nvl(l_current_ship_model_id, -9999) THEN
743 l_index := p_trolin_tbl.prior(l_index);
744 EXIT;
745 END IF;
746 END LOOP; --loop for all records in ship model
747 l_current_ship_model_id := NULL;
748 l_shipmodel_start_index := NULL;
749
750 ELSE -- l_current_ship_set_id } {
751
752 IF l_found_backorder_cache THEN --{
753
754 l_shipping_attr(1).source_line_id := x_trolin_tbl(l_index).txn_source_line_id;
755 l_shipping_attr(1).ship_from_org_id := x_trolin_tbl(l_index).organization_id;
756 l_shipping_attr(1).delivery_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
757 l_shipping_attr(1).action_flag := 'B';
758
759 WSH_INTERFACE.Update_Shipping_Attributes
760 (p_source_code => 'INV',
761 p_changed_attributes => l_shipping_attr,
762 x_return_status => l_return_status
763 );
764
765 IF l_return_status = FND_API.G_RET_STS_ERROR then
766 print_debug('return error from update shipping attributes',l_api_name);
767 RAISE FND_API.G_EXC_ERROR;
768 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
769 print_debug('return error from update shipping attributes',l_api_name);
770 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
771 END IF;
772 END IF; -- l_back_order_flag }
773 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
774 END IF; -- l_current_ship_set_id }
775 --Bug 7148749, moving this after the loop, so that the new move order lines table
776 --l_new_trolin_tbl gets populated only when all the lines in x_trolin_tbl are validated.
777 /* ELSE --} {
778 --print_debug('in insert',l_api_name);
779 SELECT MTL_TXN_REQUEST_LINES_S.NEXTVAL
780 INTO x_trolin_tbl(l_index).line_id
781 FROM DUAL;
782 x_trolin_tbl(l_index).status_date := SYSDATE;
783 x_trolin_tbl(l_index).creation_date := SYSDATE;
784 x_trolin_tbl(l_index).created_by := fnd_global.user_id;
785 x_trolin_tbl(l_index).last_update_date := SYSDATE;
786 x_trolin_tbl(l_index).last_updated_by := fnd_global.user_id;
787 x_trolin_tbl(l_index).last_update_login := fnd_global.login_id;
788 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_success;
789 x_trolin_tbl(l_index) := inv_trolin_util.convert_miss_to_null_parallel
790 (p_trolin_rec => x_trolin_tbl(l_index));
791
792 l_new_trolin_tbl(l_count).attribute1 := x_trolin_tbl(l_index).attribute1;
793 l_new_trolin_tbl(l_count).attribute10 := x_trolin_tbl(l_index).attribute10;
794 l_new_trolin_tbl(l_count).attribute11 := x_trolin_tbl(l_index).attribute11;
795 l_new_trolin_tbl(l_count).attribute12 := x_trolin_tbl(l_index).attribute12;
796 l_new_trolin_tbl(l_count).attribute13 := x_trolin_tbl(l_index).attribute13;
797 l_new_trolin_tbl(l_count).attribute14 := x_trolin_tbl(l_index).attribute14;
798 l_new_trolin_tbl(l_count).attribute15 := x_trolin_tbl(l_index).attribute15;
799 l_new_trolin_tbl(l_count).attribute2 := x_trolin_tbl(l_index).attribute2;
800 l_new_trolin_tbl(l_count).attribute3 := x_trolin_tbl(l_index).attribute3;
801 l_new_trolin_tbl(l_count).attribute4 := x_trolin_tbl(l_index).attribute4;
802 l_new_trolin_tbl(l_count).attribute5 := x_trolin_tbl(l_index).attribute5;
803 l_new_trolin_tbl(l_count).attribute6 := x_trolin_tbl(l_index).attribute6;
804 l_new_trolin_tbl(l_count).attribute7 := x_trolin_tbl(l_index).attribute7;
805 l_new_trolin_tbl(l_count).attribute8 := x_trolin_tbl(l_index).attribute8;
806 l_new_trolin_tbl(l_count).attribute9 := x_trolin_tbl(l_index).attribute9;
807 l_new_trolin_tbl(l_count).attribute_category := x_trolin_tbl(l_index).attribute_category;
808 l_new_trolin_tbl(l_count).created_by := x_trolin_tbl(l_index).created_by;
809 l_new_trolin_tbl(l_count).creation_date := x_trolin_tbl(l_index).creation_date;
810 l_new_trolin_tbl(l_count).date_required := x_trolin_tbl(l_index).date_required;
811 l_new_trolin_tbl(l_count).from_locator_id := x_trolin_tbl(l_index).from_locator_id;
812 l_new_trolin_tbl(l_count).from_subinventory_code := x_trolin_tbl(l_index).from_subinventory_code;
813 l_new_trolin_tbl(l_count).from_subinventory_id := x_trolin_tbl(l_index).from_subinventory_id;
814 l_new_trolin_tbl(l_count).header_id := x_trolin_tbl(l_index).header_id;
815 l_new_trolin_tbl(l_count).inventory_item_id := x_trolin_tbl(l_index).inventory_item_id;
816 l_new_trolin_tbl(l_count).last_updated_by := x_trolin_tbl(l_index).last_updated_by;
817 l_new_trolin_tbl(l_count).last_update_date := x_trolin_tbl(l_index).last_update_date;
818 l_new_trolin_tbl(l_count).last_update_login := x_trolin_tbl(l_index).last_update_login;
819 l_new_trolin_tbl(l_count).line_id := x_trolin_tbl(l_index).line_id;
820 l_new_trolin_tbl(l_count).line_number := x_trolin_tbl(l_index).line_number;
821 l_new_trolin_tbl(l_count).line_status := x_trolin_tbl(l_index).line_status;
822 l_new_trolin_tbl(l_count).lot_number := x_trolin_tbl(l_index).lot_number;
823 l_new_trolin_tbl(l_count).organization_id := x_trolin_tbl(l_index).organization_id;
824 l_new_trolin_tbl(l_count).program_application_id := x_trolin_tbl(l_index).program_application_id;
825 l_new_trolin_tbl(l_count).program_id := x_trolin_tbl(l_index).program_id;
826 l_new_trolin_tbl(l_count).program_update_date := x_trolin_tbl(l_index).program_update_date;
827 l_new_trolin_tbl(l_count).project_id := x_trolin_tbl(l_index).project_id;
828 l_new_trolin_tbl(l_count).quantity := x_trolin_tbl(l_index).quantity;
829 l_new_trolin_tbl(l_count).quantity_delivered := x_trolin_tbl(l_index).quantity_delivered;
830 l_new_trolin_tbl(l_count).quantity_detailed := x_trolin_tbl(l_index).quantity_detailed;
831 l_new_trolin_tbl(l_count).reason_id := x_trolin_tbl(l_index).reason_id;
832 l_new_trolin_tbl(l_count).REFERENCE := x_trolin_tbl(l_index).REFERENCE;
833 l_new_trolin_tbl(l_count).reference_id := x_trolin_tbl(l_index).reference_id;
834 l_new_trolin_tbl(l_count).reference_type_code := x_trolin_tbl(l_index).reference_type_code;
835 l_new_trolin_tbl(l_count).request_id := x_trolin_tbl(l_index).request_id;
836 l_new_trolin_tbl(l_count).revision := x_trolin_tbl(l_index).revision;
837 l_new_trolin_tbl(l_count).serial_number_end := x_trolin_tbl(l_index).serial_number_end;
838 l_new_trolin_tbl(l_count).serial_number_start := x_trolin_tbl(l_index).serial_number_start;
839 l_new_trolin_tbl(l_count).status_date := x_trolin_tbl(l_index).status_date;
840 l_new_trolin_tbl(l_count).task_id := x_trolin_tbl(l_index).task_id;
841 l_new_trolin_tbl(l_count).to_account_id := x_trolin_tbl(l_index).to_account_id;
842 l_new_trolin_tbl(l_count).to_locator_id := x_trolin_tbl(l_index).to_locator_id;
843 l_new_trolin_tbl(l_count).to_subinventory_code := x_trolin_tbl(l_index).to_subinventory_code;
844 l_new_trolin_tbl(l_count).to_subinventory_id := x_trolin_tbl(l_index).to_subinventory_id;
845 l_new_trolin_tbl(l_count).transaction_header_id := x_trolin_tbl(l_index).transaction_header_id;
846 l_new_trolin_tbl(l_count).uom_code := x_trolin_tbl(l_index).uom_code;
847 l_new_trolin_tbl(l_count).transaction_type_id := x_trolin_tbl(l_index).transaction_type_id;
848 l_new_trolin_tbl(l_count).transaction_source_type_id := x_trolin_tbl(l_index).transaction_source_type_id;
849 l_new_trolin_tbl(l_count).txn_source_id := x_trolin_tbl(l_index).txn_source_id;
850 l_new_trolin_tbl(l_count).txn_source_line_id := x_trolin_tbl(l_index).txn_source_line_id;
851 l_new_trolin_tbl(l_count).txn_source_line_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
852 l_new_trolin_tbl(l_count).to_organization_id := x_trolin_tbl(l_index).to_organization_id;
853 l_new_trolin_tbl(l_count).primary_quantity := x_trolin_tbl(l_index).primary_quantity;
854 l_new_trolin_tbl(l_count).pick_strategy_id := x_trolin_tbl(l_index).pick_strategy_id;
855 l_new_trolin_tbl(l_count).put_away_strategy_id := x_trolin_tbl(l_index).put_away_strategy_id;
856 l_new_trolin_tbl(l_count).unit_number := x_trolin_tbl(l_index).unit_number;
857 l_new_trolin_tbl(l_count).ship_to_location_id := x_trolin_tbl(l_index).ship_to_location_id;
858 l_new_trolin_tbl(l_count).from_cost_group_id := x_trolin_tbl(l_index).from_cost_group_id;
859 l_new_trolin_tbl(l_count).to_cost_group_id := x_trolin_tbl(l_index).to_cost_group_id;
860 l_new_trolin_tbl(l_count).lpn_id := x_trolin_tbl(l_index).lpn_id;
861 l_new_trolin_tbl(l_count).to_lpn_id := x_trolin_tbl(l_index).to_lpn_id;
862 l_new_trolin_tbl(l_count).inspection_status := x_trolin_tbl(l_index).inspection_status;
863 l_new_trolin_tbl(l_count).pick_methodology_id := x_trolin_tbl(l_index).pick_methodology_id;
864 l_new_trolin_tbl(l_count).container_item_id := x_trolin_tbl(l_index).container_item_id;
865 l_new_trolin_tbl(l_count).carton_grouping_id := x_trolin_tbl(l_index).carton_grouping_id;
866 l_new_trolin_tbl(l_count).wms_process_flag := x_trolin_tbl(l_index).wms_process_flag;
867 l_new_trolin_tbl(l_count).pick_slip_number := x_trolin_tbl(l_index).pick_slip_number;
868 l_new_trolin_tbl(l_count).pick_slip_date := x_trolin_tbl(l_index).pick_slip_date;
869 l_new_trolin_tbl(l_count).ship_set_id := x_trolin_tbl(l_index).ship_set_id;
870 l_new_trolin_tbl(l_count).ship_model_id := x_trolin_tbl(l_index).ship_model_id;
871 l_new_trolin_tbl(l_count).model_quantity := x_trolin_tbl(l_index).model_quantity;
872 l_new_trolin_tbl(l_count).required_quantity := x_trolin_tbl(l_index).required_quantity;
873 l_new_trolin_tbl(l_count).crossdock_type := NULL;
874 l_new_trolin_tbl(l_count).backorder_delivery_detail_id := NULL;
875 l_new_trolin_tbl(l_count).assignment_id := NULL;
876 l_new_trolin_tbl(l_count).reference_detail_id := NULL;
877
878 -- Added for INVCONV BEGIN
879 l_new_trolin_tbl(l_count).secondary_quantity := x_trolin_tbl(l_index).secondary_quantity;
880 l_new_trolin_tbl(l_count).secondary_uom_code := x_trolin_tbl(l_index).secondary_uom;
881 l_new_trolin_tbl(l_count).secondary_quantity_detailed := x_trolin_tbl(l_index).secondary_quantity_detailed;
882 l_new_trolin_tbl(l_count).secondary_quantity_delivered := x_trolin_tbl(l_index).secondary_quantity_delivered;
883 l_new_trolin_tbl(l_count).secondary_required_quantity := x_trolin_tbl(l_index).secondary_required_quantity;
884 l_new_trolin_tbl(l_count).grade_code := x_trolin_tbl(l_index).grade_code;
885 -- INVCONV END
886
887 l_count := l_count+1;
888 */ -- Bug 7148749
889 END IF; -- x_trolin_tbl(l_index).return_status = fnd_api.g_ret_sts_error }
890 -- gmi_reservation_util.println('- PAL inside Create_Move_Order_Lines ');
891 /* Bug 4162173 Added the following to initate the Outbound for Third Party Integration */
892 OPEN get_move_order_type(x_trolin_tbl(l_index).header_id);
893 FETCH get_move_order_type INTO l_move_order_type;
894 CLOSE get_move_order_type;
895
896 IF (l_move_order_type = 3) AND
897 (x_trolin_tbl(l_index).txn_source_line_id IS NOT NULL) THEN
898 OPEN get_sales_order(x_trolin_tbl(l_index).txn_source_line_id);
899 FETCH get_sales_order INTO l_order_number ,l_org_id; -- 6689912
900 CLOSE get_sales_order;
901 -- gmi_reservation_util.println('- PAL about to call GR_WF_UTIL_PUB.INITIATE_PROCESS_SALES_ORDER ');
902 GR_WF_UTIL_PUB.INITIATE_PROCESS_SALES_ORDER
903 (p_api_version => 1.0,
904 p_init_msg_list => p_init_msg_list,
905 p_commit => p_commit,
906 p_sales_order_org_id => l_org_id, -- 6689912
907 p_orgn_id => x_trolin_tbl(l_index).organization_id,
908 p_item_id => x_trolin_tbl(l_index).inventory_item_id,
909 p_sales_order_no => l_order_number,
910 x_return_status => l_return_status,
911 x_error_code => l_error_code,
912 x_msg_data => l_msg_data);
913
914 IF l_return_status <> 'S' THEN
915 WSH_Util_Core.PrintLn('Error occured on initiate the Outbound to Partner Application ' ||
916 'with the following error message ' || l_msg_data);
917 --gmi_reservation_util.println('- PAL - called GR_WF_UTIL_PUB.INITIATE_PROCESS_SALES_ORDER - Error occured ');
918 ELSE
919 --gmi_reservation_util.println('- PAL - called GR_WF_UTIL_PUB.INITIATE_PROCESS_SALES_ORDER - success ');
920 WSH_Util_Core.PrintLn('Successfully initiated the Outbound to Partner Application => ' ||
921 x_trolin_tbl(l_index).inventory_item_id);
922 END IF;
923 END IF;
924
925 -- Bug 5311250: null out TO_LOCATOR_ID if TO SUB has locator control
926 -- set to item level, and item is not locator controlled
927 IF (l_move_order_type = 3) THEN
928 OPEN get_sub_loc_ctrl (x_trolin_tbl(l_index).organization_id
929 ,x_trolin_tbl(l_index).to_subinventory_code);
930 FETCH get_sub_loc_ctrl INTO l_sub_loc_ctrl;
931 CLOSE get_sub_loc_ctrl;
932 IF l_sub_loc_ctrl = 5 THEN
933 BEGIN
934 l_item_loc_ctrl := INV_CACHE.item_rec.location_control_code;
935 EXCEPTION
936 WHEN OTHERS THEN
937 print_debug('Exception retrieving item locator control from cache ' || sqlerrm
938 ,'INV_Move_Order_PUB.Create_Move_Order_Lines');
939 l_item_loc_ctrl := 0;
940 END;
941 IF l_item_loc_ctrl IS NULL OR l_item_loc_ctrl = 0 THEN
942 OPEN get_item_loc_ctrl (x_trolin_tbl(l_index).organization_id
943 ,x_trolin_tbl(l_index).inventory_item_id);
944 FETCH get_item_loc_ctrl INTO l_item_loc_ctrl;
945 CLOSE get_item_loc_ctrl;
946 END IF;
947 IF l_item_loc_ctrl = 1 THEN
948 x_trolin_tbl(l_index).to_locator_id := NULL;
949 -- Bug 7148749, commenting the below line, since l_new_trolin_tbl population code is moved below.
950 -- l_new_trolin_tbl(l_count - 1).to_locator_id := NULL;
951 END IF;
952 END IF;
953 END IF;
954
955 --print_debug('return_status '|| x_trolin_tbl(l_index).return_status, l_api_name);
956 EXIT WHEN l_index = p_trolin_tbl.LAST;
957 l_index := p_trolin_tbl.NEXT(l_index);
958 END LOOP; -- loop throUgh p_trolin_tbl
959
960 --Bug 7148749, populating l_new_trolin_tbl only after all the records in x_trolin_tbl
961 --have been successfully validated, so that entire ship set can be handled.
962 l_index := x_trolin_tbl.FIRST;
963 l_count := 1;
964 Loop
965 If x_trolin_tbl(l_index).return_status = fnd_api.g_ret_sts_success THEN
966
967 If l_debug = 1 THEN
968 print_debug('Creating MO Line for WDD = '||x_trolin_tbl(l_index).txn_source_line_detail_id,l_api_name);
969 End If;
970 SELECT MTL_TXN_REQUEST_LINES_S.NEXTVAL
971 INTO x_trolin_tbl(l_index).line_id
972 FROM DUAL;
973
974 x_trolin_tbl(l_index).status_date := SYSDATE;
975 x_trolin_tbl(l_index).creation_date := SYSDATE;
976 x_trolin_tbl(l_index).created_by := fnd_global.user_id;
977 x_trolin_tbl(l_index).last_update_date := SYSDATE;
978 x_trolin_tbl(l_index).last_updated_by := fnd_global.user_id;
979 x_trolin_tbl(l_index).last_update_login := fnd_global.login_id;
980 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_success;
981 x_trolin_tbl(l_index) := inv_trolin_util.convert_miss_to_null_parallel
982 (p_trolin_rec => x_trolin_tbl(l_index));
983
984 l_new_trolin_tbl(l_count).attribute1 := x_trolin_tbl(l_index).attribute1;
985 l_new_trolin_tbl(l_count).attribute10 := x_trolin_tbl(l_index).attribute10;
986 l_new_trolin_tbl(l_count).attribute11 := x_trolin_tbl(l_index).attribute11;
987 l_new_trolin_tbl(l_count).attribute12 := x_trolin_tbl(l_index).attribute12;
988 l_new_trolin_tbl(l_count).attribute13 := x_trolin_tbl(l_index).attribute13;
989 l_new_trolin_tbl(l_count).attribute14 := x_trolin_tbl(l_index).attribute14;
990 l_new_trolin_tbl(l_count).attribute15 := x_trolin_tbl(l_index).attribute15;
991 l_new_trolin_tbl(l_count).attribute2 := x_trolin_tbl(l_index).attribute2;
992 l_new_trolin_tbl(l_count).attribute3 := x_trolin_tbl(l_index).attribute3;
993 l_new_trolin_tbl(l_count).attribute4 := x_trolin_tbl(l_index).attribute4;
994 l_new_trolin_tbl(l_count).attribute5 := x_trolin_tbl(l_index).attribute5;
995 l_new_trolin_tbl(l_count).attribute6 := x_trolin_tbl(l_index).attribute6;
996 l_new_trolin_tbl(l_count).attribute7 := x_trolin_tbl(l_index).attribute7;
997 l_new_trolin_tbl(l_count).attribute8 := x_trolin_tbl(l_index).attribute8;
998 l_new_trolin_tbl(l_count).attribute9 := x_trolin_tbl(l_index).attribute9;
999 l_new_trolin_tbl(l_count).attribute_category := x_trolin_tbl(l_index).attribute_category;
1000 l_new_trolin_tbl(l_count).created_by := x_trolin_tbl(l_index).created_by;
1001 l_new_trolin_tbl(l_count).creation_date := x_trolin_tbl(l_index).creation_date;
1002 l_new_trolin_tbl(l_count).date_required := x_trolin_tbl(l_index).date_required;
1003 l_new_trolin_tbl(l_count).from_locator_id := x_trolin_tbl(l_index).from_locator_id;
1004 l_new_trolin_tbl(l_count).from_subinventory_code := x_trolin_tbl(l_index).from_subinventory_code;
1005 l_new_trolin_tbl(l_count).from_subinventory_id := x_trolin_tbl(l_index).from_subinventory_id;
1006 l_new_trolin_tbl(l_count).header_id := x_trolin_tbl(l_index).header_id;
1007 l_new_trolin_tbl(l_count).inventory_item_id := x_trolin_tbl(l_index).inventory_item_id;
1008 l_new_trolin_tbl(l_count).last_updated_by := x_trolin_tbl(l_index).last_updated_by;
1009 l_new_trolin_tbl(l_count).last_update_date := x_trolin_tbl(l_index).last_update_date;
1010 l_new_trolin_tbl(l_count).last_update_login := x_trolin_tbl(l_index).last_update_login;
1011 l_new_trolin_tbl(l_count).line_id := x_trolin_tbl(l_index).line_id;
1012 l_new_trolin_tbl(l_count).line_number := x_trolin_tbl(l_index).line_number;
1013 l_new_trolin_tbl(l_count).line_status := x_trolin_tbl(l_index).line_status;
1014 l_new_trolin_tbl(l_count).lot_number := x_trolin_tbl(l_index).lot_number;
1015 l_new_trolin_tbl(l_count).organization_id := x_trolin_tbl(l_index).organization_id;
1016 l_new_trolin_tbl(l_count).program_application_id := x_trolin_tbl(l_index).program_application_id;
1017 l_new_trolin_tbl(l_count).program_id := x_trolin_tbl(l_index).program_id;
1018 l_new_trolin_tbl(l_count).program_update_date := x_trolin_tbl(l_index).program_update_date;
1019 l_new_trolin_tbl(l_count).project_id := x_trolin_tbl(l_index).project_id;
1020 l_new_trolin_tbl(l_count).quantity := x_trolin_tbl(l_index).quantity;
1021 l_new_trolin_tbl(l_count).quantity_delivered := x_trolin_tbl(l_index).quantity_delivered;
1022 l_new_trolin_tbl(l_count).quantity_detailed := x_trolin_tbl(l_index).quantity_detailed;
1023 l_new_trolin_tbl(l_count).reason_id := x_trolin_tbl(l_index).reason_id;
1024 l_new_trolin_tbl(l_count).REFERENCE := x_trolin_tbl(l_index).REFERENCE;
1025 l_new_trolin_tbl(l_count).reference_id := x_trolin_tbl(l_index).reference_id;
1026 l_new_trolin_tbl(l_count).reference_type_code := x_trolin_tbl(l_index).reference_type_code;
1027 l_new_trolin_tbl(l_count).request_id := x_trolin_tbl(l_index).request_id;
1028 l_new_trolin_tbl(l_count).revision := x_trolin_tbl(l_index).revision;
1029 l_new_trolin_tbl(l_count).serial_number_end := x_trolin_tbl(l_index).serial_number_end;
1030 l_new_trolin_tbl(l_count).serial_number_start := x_trolin_tbl(l_index).serial_number_start;
1031 l_new_trolin_tbl(l_count).status_date := x_trolin_tbl(l_index).status_date;
1032 l_new_trolin_tbl(l_count).task_id := x_trolin_tbl(l_index).task_id;
1033 l_new_trolin_tbl(l_count).to_account_id := x_trolin_tbl(l_index).to_account_id;
1034 l_new_trolin_tbl(l_count).to_locator_id := x_trolin_tbl(l_index).to_locator_id;
1035 l_new_trolin_tbl(l_count).to_subinventory_code := x_trolin_tbl(l_index).to_subinventory_code;
1036 l_new_trolin_tbl(l_count).to_subinventory_id := x_trolin_tbl(l_index).to_subinventory_id;
1037 l_new_trolin_tbl(l_count).transaction_header_id := x_trolin_tbl(l_index).transaction_header_id;
1038 l_new_trolin_tbl(l_count).uom_code := x_trolin_tbl(l_index).uom_code;
1039 l_new_trolin_tbl(l_count).transaction_type_id := x_trolin_tbl(l_index).transaction_type_id;
1040 l_new_trolin_tbl(l_count).transaction_source_type_id := x_trolin_tbl(l_index).transaction_source_type_id;
1041 l_new_trolin_tbl(l_count).txn_source_id := x_trolin_tbl(l_index).txn_source_id;
1042 l_new_trolin_tbl(l_count).txn_source_line_id := x_trolin_tbl(l_index).txn_source_line_id;
1043 l_new_trolin_tbl(l_count).txn_source_line_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
1044 l_new_trolin_tbl(l_count).to_organization_id := x_trolin_tbl(l_index).to_organization_id;
1045 l_new_trolin_tbl(l_count).primary_quantity := x_trolin_tbl(l_index).primary_quantity;
1046 l_new_trolin_tbl(l_count).pick_strategy_id := x_trolin_tbl(l_index).pick_strategy_id;
1047 l_new_trolin_tbl(l_count).put_away_strategy_id := x_trolin_tbl(l_index).put_away_strategy_id;
1048 l_new_trolin_tbl(l_count).unit_number := x_trolin_tbl(l_index).unit_number;
1049 l_new_trolin_tbl(l_count).ship_to_location_id := x_trolin_tbl(l_index).ship_to_location_id;
1050 l_new_trolin_tbl(l_count).from_cost_group_id := x_trolin_tbl(l_index).from_cost_group_id;
1051 l_new_trolin_tbl(l_count).to_cost_group_id := x_trolin_tbl(l_index).to_cost_group_id;
1052 l_new_trolin_tbl(l_count).lpn_id := x_trolin_tbl(l_index).lpn_id;
1053 l_new_trolin_tbl(l_count).to_lpn_id := x_trolin_tbl(l_index).to_lpn_id;
1054 l_new_trolin_tbl(l_count).inspection_status := x_trolin_tbl(l_index).inspection_status;
1055 l_new_trolin_tbl(l_count).pick_methodology_id := x_trolin_tbl(l_index).pick_methodology_id;
1056 l_new_trolin_tbl(l_count).container_item_id := x_trolin_tbl(l_index).container_item_id;
1057 l_new_trolin_tbl(l_count).carton_grouping_id := x_trolin_tbl(l_index).carton_grouping_id;
1058 l_new_trolin_tbl(l_count).wms_process_flag := x_trolin_tbl(l_index).wms_process_flag;
1059 l_new_trolin_tbl(l_count).pick_slip_number := x_trolin_tbl(l_index).pick_slip_number;
1060 l_new_trolin_tbl(l_count).pick_slip_date := x_trolin_tbl(l_index).pick_slip_date;
1061 l_new_trolin_tbl(l_count).ship_set_id := x_trolin_tbl(l_index).ship_set_id;
1062 l_new_trolin_tbl(l_count).ship_model_id := x_trolin_tbl(l_index).ship_model_id;
1063 l_new_trolin_tbl(l_count).model_quantity := x_trolin_tbl(l_index).model_quantity;
1064 l_new_trolin_tbl(l_count).required_quantity := x_trolin_tbl(l_index).required_quantity;
1065 l_new_trolin_tbl(l_count).crossdock_type := NULL;
1066 l_new_trolin_tbl(l_count).backorder_delivery_detail_id := NULL;
1067 l_new_trolin_tbl(l_count).assignment_id := NULL;
1068 l_new_trolin_tbl(l_count).reference_detail_id := NULL;
1069
1070 -- Added for INVCONV BEGIN
1071 l_new_trolin_tbl(l_count).secondary_quantity := x_trolin_tbl(l_index).secondary_quantity;
1072 l_new_trolin_tbl(l_count).secondary_uom_code := x_trolin_tbl(l_index).secondary_uom;
1073 l_new_trolin_tbl(l_count).secondary_quantity_detailed := x_trolin_tbl(l_index).secondary_quantity_detailed;
1074 l_new_trolin_tbl(l_count).secondary_quantity_delivered := x_trolin_tbl(l_index).secondary_quantity_delivered;
1075 l_new_trolin_tbl(l_count).secondary_required_quantity := x_trolin_tbl(l_index).secondary_required_quantity;
1076 l_new_trolin_tbl(l_count).grade_code := x_trolin_tbl(l_index).grade_code;
1077 -- INVCONV END
1078
1079 l_count := l_count+1;
1080 End If;
1081 EXIT WHEN l_index = x_trolin_tbl.LAST;
1082 l_index := x_trolin_tbl.NEXT(l_index);
1083 End Loop;
1084
1085 If l_debug = 1 THEN
1086 print_debug('l_new_trolin_tbl Count = '||l_new_trolin_tbl.count||', x_trolin_tbl Count = '||x_trolin_tbl.count
1087 ||', p_trolin_tbl Count = '||p_trolin_tbl.count,l_api_name);
1088 End If;
1089 -- End bug 7148749
1090
1091 x_return_status := fnd_api.g_ret_sts_success;
1092
1093 inv_trolin_util.insert_mo_lines_bulk
1094 (p_new_trolin_tbl => l_new_trolin_tbl
1095 ,x_return_status => x_return_status);
1096
1097 --delete the records from l_new_trolin_tbl
1098 l_new_trolin_tbl.delete;
1099
1100 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1101 print_debug('return error from INSERT_MO_LINES_BULK',l_api_name);
1102 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1103 END IF;
1104
1105 ELSE --} Validation Yes
1106 l_control_rec.controlled_operation := TRUE;
1107 l_control_Rec.process_entity := INV_GLOBALS.G_ENTITY_TROLIN;
1108 l_control_Rec.default_attributes := TRUE;
1109 l_control_rec.change_attributes := TRUE;
1110 l_control_rec.write_to_db := TRUE;
1111 -- Call INV_Transfer_Order_PVT.Process_Transfer_Order
1112 if( l_trolin_tbl.count > 0 ) then
1113 for i in 1..l_trolin_tbl.count LOOP
1114 --inv_debug.message('trolin.line_id is ' || l_trolin_tbl(l).line_id);
1115 /* to fix bug 1402677: Also we shouldn't change the operation here
1116 if( (l_trolin_tbl(i).line_id <> FND_API.G_MISS_NUM OR l_trolin_tbl(i).line_id is NULL ) AND
1117 l_trolin_tbl(i).operation = INV_GLOBALS.G_OPR_CREATE ) then
1118 l_trolin_tbl(i).operation := INV_GLOBALS.G_OPR_UPDATE;
1119 els*/
1120 if (l_trolin_tbl(i).operation = INV_GLOBALS.G_OPR_UPDATE and
1121 (l_trolin_tbl(i).line_id = FND_API.G_MISS_NUM OR
1122 l_trolin_tbl(i).line_id is null ) ) then
1123 --inv_debug.message('update and no line id');
1124 fnd_message.set_name('INV', 'INV_ATTRIBUTE_REQUIRED');
1125 fnd_message.set_token('ATTRIBUTE', 'LINE_ID');
1126 fnd_msg_pub.add;
1127 raise fnd_api.g_exc_error;
1128 end if;
1129
1130 if( l_trolin_tbl(i).header_id is not null
1131 and l_trolin_tbl(i).header_id <> FND_API.G_MISS_NUM ) then
1132 --inv_debug.message('check if the header_id exists');
1133 select count(*)
1134 into l_dummy
1135 from mtl_txn_request_headers
1136 where header_id = l_trolin_tbl(i).header_id
1137 and organization_id = l_trolin_tbl(i).organization_id;
1138 --inv_debug.message('l_dummy is ' || l_dummy);
1139 if( l_dummy = 0 ) then
1140 --inv_debug.message('header id not found');
1141 FND_MESSAGE.SET_NAME('INV', 'INV_FIELD_INVALID');
1142 FND_MESSAGE.SET_TOKEN('ENTITY1', 'Header_Id');
1143 FND_MSG_PUB.ADD;
1144 raise fnd_api.g_exc_error;
1145 else
1146 l_trohdr_rec := inv_trohdr_util.query_row(p_header_id => l_trolin_tbl(i).header_id);
1147 end if;
1148 end if;
1149
1150 /* Bug 4162173 Added the following to initate the Outbound for Third Party Integration */
1151 OPEN get_move_order_type(l_trolin_tbl(i).header_id);
1152 FETCH get_move_order_type INTO l_move_order_type;
1153 CLOSE get_move_order_type;
1154
1155 IF (l_move_order_type = 3) AND
1156 (l_trolin_tbl(i).txn_source_line_id IS NOT NULL) THEN
1157 OPEN get_sales_order(l_trolin_tbl(i).txn_source_line_id);
1158 FETCH get_sales_order INTO l_order_number ,l_org_id; -- 6689912
1159 CLOSE get_sales_order;
1160
1161 GR_WF_UTIL_PUB.INITIATE_PROCESS_SALES_ORDER
1162 (p_api_version => 1.0,
1163 p_init_msg_list => p_init_msg_list,
1164 p_commit => p_commit,
1165 p_sales_order_org_id => l_org_id, -- 6689912
1166 p_orgn_id => l_trolin_tbl(i).organization_id,
1167 p_item_id => l_trolin_tbl(i).inventory_item_id,
1168 p_sales_order_no => l_order_number,
1169 x_return_status => l_return_status,
1170 x_error_code => l_error_code,
1171 x_msg_data => l_msg_data);
1172
1173 IF l_return_status <> 'S' THEN
1174 WSH_Util_Core.PrintLn('Error occured on initiate the Outbound to Partner Application ' ||
1175 'with the following error message ' || l_msg_data);
1176 ELSE
1177 --Jalaj Srivastava Bug 5695822
1178 --table index used was l_index. should be i.
1179 --table should be l_trolin_tbl instead of x_trolin_tbl
1180 WSH_Util_Core.PrintLn('Successfully initiated the Outbound to Partner Application => ' ||
1181 l_trolin_tbl(i).inventory_item_id);
1182 END IF;
1183 END IF;
1184
1185 -- Bug 5311250: null out TO_LOCATOR_ID if TO SUB has locator control
1186 -- set to item level, and item is not locator controlled
1187 IF (l_move_order_type = 3) THEN
1188 OPEN get_sub_loc_ctrl (l_trolin_tbl(i).organization_id
1189 ,l_trolin_tbl(i).to_subinventory_code);
1190 FETCH get_sub_loc_ctrl INTO l_sub_loc_ctrl;
1191 CLOSE get_sub_loc_ctrl;
1192 IF l_sub_loc_ctrl = 5 THEN
1193 OPEN get_item_loc_ctrl (l_trolin_tbl(i).organization_id
1194 ,l_trolin_tbl(i).inventory_item_id);
1195 FETCH get_item_loc_ctrl INTO l_item_loc_ctrl;
1196 CLOSE get_item_loc_ctrl;
1197 IF l_item_loc_ctrl = 1 THEN
1198 l_trolin_tbl(i).to_locator_id := NULL;
1199 END IF;
1200 END IF;
1201 END IF;
1202 end loop;
1203 end if;
1204
1205 INV_Transfer_Order_PVT.Process_Transfer_Order
1206 ( p_api_version_number => 1.0
1207 , p_init_msg_list => p_init_msg_list
1208 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
1209 , p_commit => p_commit
1210 , x_return_status => x_return_status
1211 , x_msg_count => x_msg_count
1212 , x_msg_data => x_msg_data
1213 , p_control_rec => l_control_rec
1214 , p_trohdr_rec => l_trohdr_rec
1215 , p_trohdr_val_rec => l_trohdr_val_rec
1216 , p_trolin_tbl => l_trolin_tbl
1217 , p_trolin_val_tbl => p_trolin_val_tbl
1218 , x_trohdr_rec => l_trohdr_rec
1219 , x_trolin_tbl => l_trolin_tbl_out
1220 );
1221
1222 -- Load Id OUT parameters.
1223
1224 --x_trohdr_rec := p_trohdr_rec;
1225 x_trolin_tbl := l_trolin_tbl_out;
1226
1227 if( p_commit = FND_API.G_TRUE ) Then
1228 commit;
1229 end if;
1230 -- If p_return_values is TRUE then convert Ids to Values.
1231
1232 IF FND_API.to_Boolean(p_return_values) THEN
1233 Id_To_Value
1234 ( p_trohdr_rec => l_trohdr_rec
1235 , p_trolin_tbl => p_trolin_tbl
1236 , x_trohdr_val_rec => l_trohdr_val_rec
1237 , x_trolin_val_tbl => x_trolin_val_tbl
1238 );
1239 END IF;
1240 END IF;
1241 EXCEPTION
1242
1243 WHEN FND_API.G_EXC_ERROR THEN
1244 --inv_debug.message('returning error');
1245 x_return_status := FND_API.G_RET_STS_ERROR;
1246 -- Get message count and data
1247 FND_MSG_PUB.Count_And_Get
1248 ( p_count => x_msg_count
1249 , p_data => x_msg_data
1250 );
1251
1252 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1253 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1254 -- Get message count and data
1255 FND_MSG_PUB.Count_And_Get
1256 ( p_count => x_msg_count
1257 , p_data => x_msg_data
1258 );
1259
1260 WHEN OTHERS THEN
1261 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1262 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1263 THEN
1264 FND_MSG_PUB.Add_Exc_Msg
1265 ( G_PKG_NAME
1266 , 'Process_Move_Order'
1267 );
1268 END IF;
1269 -- Get message count and data
1270 FND_MSG_PUB.Count_And_Get
1271 ( p_count => x_msg_count
1272 , p_data => x_msg_data
1273 );
1274 END Create_Move_Order_Lines;
1275
1276 -- Start of Comments
1277 -- API name Process_Move_Order
1278 -- Type Public
1279 -- Function
1280 --
1281 -- Pre-reqs
1282 --
1283 -- Parameters
1284 --
1285 -- Version Current version = 1.0
1286 -- Initial version = 1.0
1287 --
1288 -- Notes
1289 --
1290 -- End of Comments
1291
1292 PROCEDURE Process_Move_Order
1293 ( p_api_version_number IN NUMBER
1294 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1295 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
1296 , p_commit IN VARCHAR2 := FND_API.G_FALSE
1297 , x_return_status OUT NOCOPY VARCHAR2
1298 , x_msg_count OUT NOCOPY NUMBER
1299 , x_msg_data OUT NOCOPY VARCHAR2
1300 , p_trohdr_rec IN Trohdr_Rec_Type := G_MISS_TROHDR_REC
1301 , p_trohdr_val_rec IN Trohdr_Val_Rec_Type := G_MISS_TROHDR_VAL_REC
1302 , p_trolin_tbl IN Trolin_Tbl_Type := G_MISS_TROLIN_TBL
1303 , p_trolin_val_tbl IN Trolin_Val_Tbl_Type := G_MISS_TROLIN_VAL_TBL
1304 , x_trohdr_rec IN OUT NOCOPY Trohdr_Rec_Type
1305 , x_trohdr_val_rec IN OUT NOCOPY Trohdr_Val_Rec_Type
1306 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
1307 , x_trolin_val_tbl IN OUT NOCOPY Trolin_Val_Tbl_Type
1308 )
1309 IS
1310 l_api_version_number CONSTANT NUMBER := 1.0;
1311 l_api_name CONSTANT VARCHAR2(30):= 'Process_Move_Order';
1312 l_control_rec INV_GLOBALS.Control_Rec_Type;
1313 l_return_status VARCHAR2(1);
1314 l_trohdr_rec Trohdr_Rec_Type;
1315 l_trolin_tbl Trolin_Tbl_Type;
1316 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1317 BEGIN
1318
1319 -- Standard call to check for call compatibility
1320
1321 IF NOT FND_API.Compatible_API_Call
1322 ( l_api_version_number
1323 , p_api_version_number
1324 , l_api_name
1325 , G_PKG_NAME
1326 )
1327 THEN
1328 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1329 END IF;
1330
1331 l_control_Rec.process_entity := INV_GLOBALS.G_ENTITY_ALL;
1332 /*
1333 -- Perform Value to Id conversion
1334 Value_To_Id
1335 ( x_return_status => l_return_status
1336 , p_trohdr_rec => p_trohdr_rec
1337 , p_trohdr_val_rec => p_trohdr_val_rec
1338 , p_trolin_tbl => p_trolin_tbl
1339 , p_trolin_val_tbl => p_trolin_val_tbl
1340 , x_trohdr_rec => l_trohdr_rec
1341 , x_trolin_tbl => l_trolin_tbl
1342 );
1343
1344 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1345 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1346 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1347 RAISE FND_API.G_EXC_ERROR;
1348 END IF;
1349 */
1350
1351 -- Call INV_Transfer_Order_PVT.Process_Transfer_Order
1352
1353 INV_Transfer_Order_PVT.Process_Transfer_Order
1354 ( p_api_version_number => 1.0
1355 , p_init_msg_list => p_init_msg_list
1356 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
1357 , p_commit => p_commit
1358 , x_return_status => x_return_status
1359 , x_msg_count => x_msg_count
1360 , x_msg_data => x_msg_data
1361 , p_control_rec => l_control_rec
1362 , p_trohdr_rec => p_trohdr_rec
1363 , p_trohdr_val_rec => p_trohdr_val_rec
1364 , p_trolin_tbl => p_trolin_tbl
1365 , p_trolin_val_tbl => p_trolin_val_tbl
1366 , x_trohdr_rec => l_trohdr_rec
1367 , x_trolin_tbl => l_trolin_tbl
1368 );
1369
1370 -- Load Id OUT parameters.
1371
1372 x_trohdr_rec := l_trohdr_rec;
1373 x_trolin_tbl := l_trolin_tbl;
1374
1375 if p_commit = FND_API.G_TRUE then
1376 commit;
1377 end if;
1378 -- If p_return_values is TRUE then convert Ids to Values.
1379
1380 IF FND_API.to_Boolean(p_return_values) THEN
1381 Id_To_Value
1382 ( p_trohdr_rec => p_trohdr_rec
1383 , p_trolin_tbl => p_trolin_tbl
1384 , x_trohdr_val_rec => x_trohdr_val_rec
1385 , x_trolin_val_tbl => x_trolin_val_tbl
1386 );
1387 END IF;
1388
1389 EXCEPTION
1390 WHEN FND_API.G_EXC_ERROR THEN
1391 x_return_status := FND_API.G_RET_STS_ERROR;
1392 -- Get message count and data
1393 FND_MSG_PUB.Count_And_Get
1394 ( p_count => x_msg_count
1395 , p_data => x_msg_data
1396 );
1397 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1398 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1399 -- Get message count and data
1400 FND_MSG_PUB.Count_And_Get
1401 ( p_count => x_msg_count
1402 , p_data => x_msg_data
1403 );
1404 WHEN OTHERS THEN
1405 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1406 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1407 THEN
1408 FND_MSG_PUB.Add_Exc_Msg
1409 ( G_PKG_NAME
1410 , 'Process_Move_Order'
1411 );
1412 END IF;
1413 -- Get message count and data
1414 FND_MSG_PUB.Count_And_Get
1415 ( p_count => x_msg_count
1416 , p_data => x_msg_data
1417 );
1418 END Process_Move_Order;
1419
1420 -- Start of Comments
1421 -- API name Lock_Move_Order
1422 -- Type Public
1423 -- Function
1424 --
1425 -- Pre-reqs
1426 --
1427 -- Parameters
1428 --
1429 -- Version Current version = 1.0
1430 -- Initial version = 1.0
1431 --
1432 -- Notes
1433 --
1434 -- End of Comments
1435
1436 PROCEDURE Lock_Move_Order
1437 ( p_api_version_number IN NUMBER
1438 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1439 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
1440 , x_return_status OUT NOCOPY VARCHAR2
1441 , x_msg_count OUT NOCOPY NUMBER
1442 , x_msg_data OUT NOCOPY VARCHAR2
1443 , p_trohdr_rec IN Trohdr_Rec_Type :=
1444 G_MISS_TROHDR_REC
1445 , p_trohdr_val_rec IN Trohdr_Val_Rec_Type :=
1446 G_MISS_TROHDR_VAL_REC
1447 , p_trolin_tbl IN Trolin_Tbl_Type :=
1448 G_MISS_TROLIN_TBL
1449 , p_trolin_val_tbl IN Trolin_Val_Tbl_Type :=
1450 G_MISS_TROLIN_VAL_TBL
1451 , x_trohdr_rec IN OUT NOCOPY Trohdr_Rec_Type
1452 , x_trohdr_val_rec IN OUT NOCOPY Trohdr_Val_Rec_Type
1453 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
1454 , x_trolin_val_tbl IN OUT NOCOPY Trolin_Val_Tbl_Type
1455 )
1456 IS
1457 l_api_version_number CONSTANT NUMBER := 1.0;
1458 l_api_name CONSTANT VARCHAR2(30):= 'Lock_Move_Order';
1459 l_return_status VARCHAR2(1);
1460 l_trohdr_rec Trohdr_Rec_Type;
1461 l_trolin_tbl Trolin_Tbl_Type;
1462 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1463 BEGIN
1464
1465 -- Standard call to check for call compatibility
1466
1467 IF NOT FND_API.Compatible_API_Call
1468 ( l_api_version_number
1469 , p_api_version_number
1470 , l_api_name
1471 , G_PKG_NAME
1472 )
1473 THEN
1474 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1475 END IF;
1476
1477 -- Perform Value to Id conversion
1478
1479 Value_To_Id
1480 ( x_return_status => l_return_status
1481 , p_trohdr_rec => p_trohdr_rec
1482 , p_trohdr_val_rec => p_trohdr_val_rec
1483 , p_trolin_tbl => p_trolin_tbl
1484 , p_trolin_val_tbl => p_trolin_val_tbl
1485 , x_trohdr_rec => l_trohdr_rec
1486 , x_trolin_tbl => l_trolin_tbl
1487 );
1488
1489 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1490 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1491 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1492 RAISE FND_API.G_EXC_ERROR;
1493 END IF;
1494
1495
1496 -- Call INV_Transfer_Order_PVT.Lock_Transfer_Order
1497
1498 INV_Transfer_Order_PVT.Lock_Transfer_Order
1499 ( p_api_version_number => 1.0
1500 , p_init_msg_list => p_init_msg_list
1501 , x_return_status => x_return_status
1502 , x_msg_count => x_msg_count
1503 , x_msg_data => x_msg_data
1504 , p_trohdr_rec => l_trohdr_rec
1505 , p_trolin_tbl => l_trolin_tbl
1506 , x_trohdr_rec => l_trohdr_rec
1507 , x_trolin_tbl => l_trolin_tbl
1508 );
1509
1510 -- Load Id OUT parameters.
1511
1512 x_trohdr_rec := l_trohdr_rec;
1513 x_trolin_tbl := l_trolin_tbl;
1514
1515 -- If p_return_values is TRUE then convert Ids to Values.
1516
1517 IF FND_API.to_Boolean(p_return_values) THEN
1518
1519 Id_To_Value
1520 ( p_trohdr_rec => l_trohdr_rec
1521 , p_trolin_tbl => l_trolin_tbl
1522 , x_trohdr_val_rec => x_trohdr_val_rec
1523 , x_trolin_val_tbl => x_trolin_val_tbl
1524 );
1525
1526 END IF;
1527
1528 EXCEPTION
1529
1530 WHEN FND_API.G_EXC_ERROR THEN
1531
1532 x_return_status := FND_API.G_RET_STS_ERROR;
1533
1534 -- Get message count and data
1535
1536 FND_MSG_PUB.Count_And_Get
1537 ( p_count => x_msg_count
1538 , p_data => x_msg_data
1539 );
1540
1541 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1542
1543 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1544
1545 -- Get message count and data
1546
1547 FND_MSG_PUB.Count_And_Get
1548 ( p_count => x_msg_count
1549 , p_data => x_msg_data
1550 );
1551
1552 WHEN OTHERS THEN
1553
1554 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1555
1556 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1557 THEN
1558 FND_MSG_PUB.Add_Exc_Msg
1559 ( G_PKG_NAME
1560 , 'Lock_Move_Order'
1561 );
1562 END IF;
1563
1564 -- Get message count and data
1565
1566 FND_MSG_PUB.Count_And_Get
1567 ( p_count => x_msg_count
1568 , p_data => x_msg_data
1569 );
1570
1571 END Lock_Move_Order;
1572
1573 -- Start of Comments
1574 -- API name Get_Move_Order
1575 -- Type Public
1576 -- Function
1577 --
1578 -- Pre-reqs
1579 --
1580 -- Parameters
1581 --
1582 -- Version Current version = 1.0
1583 -- Initial version = 1.0
1584 --
1585 -- Notes
1586 --
1587 -- End of Comments
1588
1589 PROCEDURE Get_Move_Order
1590 ( p_api_version_number IN NUMBER
1591 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1592 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
1593 , x_return_status OUT NOCOPY VARCHAR2
1594 , x_msg_count OUT NOCOPY NUMBER
1595 , x_msg_data OUT NOCOPY VARCHAR2
1596 , p_header_id IN NUMBER :=
1597 FND_API.G_MISS_NUM
1598 , p_header IN VARCHAR2 :=
1599 FND_API.G_MISS_CHAR
1600 , x_trohdr_rec OUT NOCOPY Trohdr_Rec_Type
1601 , x_trohdr_val_rec OUT NOCOPY Trohdr_Val_Rec_Type
1602 , x_trolin_tbl OUT NOCOPY Trolin_Tbl_Type
1603 , x_trolin_val_tbl OUT NOCOPY Trolin_Val_Tbl_Type
1604 )
1605 IS
1606 l_api_version_number CONSTANT NUMBER := 1.0;
1607 l_api_name CONSTANT VARCHAR2(30):= 'Get_Move_Order';
1608 l_header_id NUMBER := p_header_id;
1609 l_trohdr_rec INV_Move_Order_PUB.Trohdr_Rec_Type;
1610 l_trolin_tbl INV_Move_Order_PUB.Trolin_Tbl_Type;
1611 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1612 BEGIN
1613
1614 -- Standard call to check for call compatibility
1615
1616 IF NOT FND_API.Compatible_API_Call
1617 ( l_api_version_number
1618 , p_api_version_number
1619 , l_api_name
1620 , G_PKG_NAME
1621 )
1622 THEN
1623 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1624 END IF;
1625
1626 -- Standard check for Val/ID conversion
1627
1628 IF p_header = FND_API.G_MISS_CHAR
1629 THEN
1630
1631 l_header_id := p_header_id;
1632
1633 ELSIF p_header_id <> FND_API.G_MISS_NUM THEN
1634
1635 l_header_id := p_header_id;
1636
1637 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1638 THEN
1639
1640 FND_MESSAGE.SET_NAME('INV','FND_BOTH_VAL_AND_ID_EXIST');
1641 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','header');
1642 FND_MSG_PUB.Add;
1643
1644 END IF;
1645
1646 ELSE
1647
1648 -- Convert Value to Id
1649
1650 l_header_id := INV_Value_To_Id.header
1651 ( p_header => p_header
1652 );
1653
1654 IF l_header_id = FND_API.G_MISS_NUM THEN
1655 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1656 THEN
1657
1658 FND_MESSAGE.SET_NAME('INV','Invalid Business Object Value');
1659 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','header');
1660 FND_MSG_PUB.Add;
1661
1662 END IF;
1663 END IF;
1664
1665 RAISE FND_API.G_EXC_ERROR;
1666
1667 END IF;
1668
1669
1670 -- Call INV_Transfer_Order_PVT.Get_Transfer_Order
1671
1672 INV_Transfer_Order_PVT.Get_Transfer_Order
1673 ( p_api_version_number => 1.0
1674 , p_init_msg_list => p_init_msg_list
1675 , x_return_status => x_return_status
1676 , x_msg_count => x_msg_count
1677 , x_msg_data => x_msg_data
1678 , p_header_id => l_header_id
1679 , x_trohdr_rec => l_trohdr_rec
1680 , x_trolin_tbl => l_trolin_tbl
1681 );
1682
1683 -- Load Id OUT parameters.
1684
1685 x_trohdr_rec := l_trohdr_rec;
1686 x_trolin_tbl := l_trolin_tbl;
1687
1688 -- If p_return_values is TRUE then convert Ids to Values.
1689
1690 IF FND_API.TO_BOOLEAN(p_return_values) THEN
1691
1692 Id_To_Value
1693 ( p_trohdr_rec => l_trohdr_rec
1694 , p_trolin_tbl => l_trolin_tbl
1695 , x_trohdr_val_rec => x_trohdr_val_rec
1696 , x_trolin_val_tbl => x_trolin_val_tbl
1697 );
1698
1699 END IF;
1700
1701 -- Set return status
1702
1703 x_return_status := FND_API.G_RET_STS_SUCCESS;
1704
1705 -- Get message count and data
1706
1707 FND_MSG_PUB.Count_And_Get
1708 ( p_count => x_msg_count
1709 , p_data => x_msg_data
1710 );
1711
1712
1713 EXCEPTION
1714
1715 WHEN FND_API.G_EXC_ERROR THEN
1716
1717 x_return_status := FND_API.G_RET_STS_ERROR;
1718
1719 -- Get message count and data
1720
1721 FND_MSG_PUB.Count_And_Get
1722 ( p_count => x_msg_count
1723 , p_data => x_msg_data
1724 );
1725
1726 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1727
1728 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1729
1730 -- Get message count and data
1731
1732 FND_MSG_PUB.Count_And_Get
1733 ( p_count => x_msg_count
1734 , p_data => x_msg_data
1735 );
1736
1737 WHEN OTHERS THEN
1738
1739 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1740
1741 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1742 THEN
1743 FND_MSG_PUB.Add_Exc_Msg
1744 ( G_PKG_NAME
1745 , 'Get_Move_Order'
1746 );
1747 END IF;
1748
1749 -- Get message count and data
1750
1751 FND_MSG_PUB.Count_And_Get
1752 ( p_count => x_msg_count
1753 , p_data => x_msg_data
1754 );
1755
1756 END Get_Move_Order;
1757
1758 -- Procedure Id_To_Value
1759
1760 PROCEDURE Id_To_Value
1761 ( p_trohdr_rec IN Trohdr_Rec_Type
1762 , p_trolin_tbl IN Trolin_Tbl_Type
1763 , x_trohdr_val_rec OUT NOCOPY Trohdr_Val_Rec_Type
1764 , x_trolin_val_tbl OUT NOCOPY Trolin_Val_Tbl_Type
1765 )
1766 IS
1767 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1768 BEGIN
1769
1770 -- Convert trohdr
1771
1772 x_trohdr_val_rec := INV_Trohdr_Util.Get_Values(p_trohdr_rec);
1773
1774 -- Convert trolin
1775
1776 FOR I IN 1..p_trolin_tbl.COUNT LOOP
1777 x_trolin_val_tbl(I) :=
1778 INV_Trolin_Util.Get_Values(p_trolin_tbl(I));
1779 END LOOP;
1780
1781 EXCEPTION
1782
1783 WHEN OTHERS THEN
1784
1785 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1786 THEN
1787 FND_MSG_PUB.Add_Exc_Msg
1788 ( G_PKG_NAME
1789 , 'Id_To_Value'
1790 );
1791 END IF;
1792
1793 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1794
1795 END Id_To_Value;
1796
1797 -- Procedure Value_To_Id
1798
1799 PROCEDURE Value_To_Id
1800 ( x_return_status OUT NOCOPY VARCHAR2
1801 , p_trohdr_rec IN Trohdr_Rec_Type
1802 , p_trohdr_val_rec IN Trohdr_Val_Rec_Type
1803 , p_trolin_tbl IN Trolin_Tbl_Type
1804 , p_trolin_val_tbl IN Trolin_Val_Tbl_Type
1805 , x_trohdr_rec IN OUT NOCOPY Trohdr_Rec_Type
1806 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
1807 )
1808 IS
1809 l_trohdr_rec Trohdr_Rec_Type;
1810 l_trolin_rec Trolin_Rec_Type;
1811 l_index BINARY_INTEGER;
1812 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1813 BEGIN
1814
1815 -- Init x_return_status.
1816
1817 x_return_status := FND_API.G_RET_STS_SUCCESS;
1818
1819 -- Convert trohdr
1820
1821 l_trohdr_rec := INV_Trohdr_Util.Get_Ids
1822 ( p_trohdr_rec => p_trohdr_rec
1823 , p_trohdr_val_rec => p_trohdr_val_rec
1824 );
1825
1826 x_trohdr_rec := l_trohdr_rec;
1827
1828 IF l_trohdr_rec.return_status = FND_API.G_RET_STS_ERROR THEN
1829 x_return_status := FND_API.G_RET_STS_ERROR;
1830 END IF;
1831
1832 -- Convert trolin
1833
1834 x_trolin_tbl := p_trolin_tbl;
1835
1836 l_index := p_trolin_val_tbl.FIRST;
1837
1838 WHILE l_index IS NOT NULL LOOP
1839
1840 l_trolin_rec := INV_Trolin_Util.Get_Ids
1841 ( p_trolin_rec => p_trolin_tbl(l_index)
1842 , p_trolin_val_rec => p_trolin_val_tbl(l_index)
1843 );
1844
1845 x_trolin_tbl(l_index) := l_trolin_rec;
1846
1847 IF l_trolin_rec.return_status = FND_API.G_RET_STS_ERROR THEN
1848 x_return_status := FND_API.G_RET_STS_ERROR;
1849 END IF;
1850
1851 l_index := p_trolin_val_tbl.NEXT(l_index);
1852
1853 END LOOP;
1854
1855 EXCEPTION
1856
1857 WHEN OTHERS THEN
1858
1859 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1860 THEN
1861 FND_MSG_PUB.Add_Exc_Msg
1862 ( G_PKG_NAME
1863 , 'Value_To_Id'
1864 );
1865 END IF;
1866
1867 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1868
1869 END Value_To_Id;
1870
1871 PROCEDURE Process_Move_Order_Line
1872 (
1873 p_api_version_number IN NUMBER
1874 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1875 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
1876 , p_commit IN VARCHAR2 := FND_API.G_TRUE
1877 , x_return_status OUT NOCOPY VARCHAR2
1878 , x_msg_count OUT NOCOPY NUMBER
1879 , x_msg_data OUT NOCOPY VARCHAR2
1880 , p_trolin_tbl IN Trolin_Tbl_Type
1881 , p_trolin_old_tbl IN Trolin_Tbl_Type
1882 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
1883 ) IS
1884 l_api_version_number CONSTANT NUMBER := 1.0;
1885 l_api_name CONSTANT VARCHAR2(30):= 'Update_Move_Order_line';
1886 l_control_rec INV_GLOBALS.Control_Rec_Type;
1887 l_return_status VARCHAR2(1);
1888 l_trohdr_rec Trohdr_Rec_Type := G_MISS_TROHDR_REC;
1889 l_trohdr_val_rec Trohdr_Val_Rec_Type := G_MISS_TROHDR_VAL_REC;
1890 l_trolin_tbl Trolin_Tbl_Type := p_trolin_tbl;
1891 l_trolin_val_tbl Trolin_Val_Tbl_Type := G_MISS_TROLIN_VAL_TBL;
1892 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1893 BEGIN
1894
1895 -- Standard call to check for call compatibility
1896 IF NOT FND_API.Compatible_API_Call
1897 ( l_api_version_number
1898 , p_api_version_number
1899 , l_api_name
1900 , G_PKG_NAME
1901 )
1902 THEN
1903 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1904 END IF;
1905
1906 l_control_rec.controlled_operation := TRUE;
1907 l_control_Rec.validate_entity := TRUE;
1908 l_control_Rec.process_entity := INV_GLOBALS.G_ENTITY_TROLIN;
1909 l_control_rec.write_to_db := TRUE;
1910 l_control_Rec.default_attributes := FALSE;
1911 l_control_Rec.change_attributes := FALSE;
1912 l_control_rec.process := FALSE;
1913
1914 -- Call INV_Transfer_Order_PVT.Process_Transfer_Order
1915 -- inv_debug.message('calling inv_transfer_order_pvt.process_transfer_order');
1916 -- inv_debug.message('l_trolin_tbl count is ' || p_trolin_tbl.COUNT);
1917 /*for l_count in 1..p_trolin_tbl.COUNT LOOP
1918 -- inv_debug.message('l_trolin_tbl.line_id is ' || p_trolin_tbl(l_count).line_id);
1919 -- inv_debug.message('l_trolin_tbl.operation is ' || p_trolin_tbl(l_count).operation);
1920 end loop; */
1921 INV_Transfer_Order_PVT.Process_Transfer_Order
1922 ( p_api_version_number => 1.0
1923 , p_init_msg_list => p_init_msg_list
1924 , p_commit => p_commit
1925 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
1926 , p_control_rec => l_control_rec
1927 , x_return_status => x_return_status
1928 , x_msg_count => x_msg_count
1929 , x_msg_data => x_msg_data
1930 , p_trolin_tbl => p_trolin_tbl
1931 , p_trolin_val_tbl => l_trolin_val_tbl
1932 , x_trohdr_rec => l_trohdr_rec
1933 , x_trolin_tbl => l_trolin_tbl
1934 );
1935
1936 -- Load Id OUT parameters.
1937
1938 --x_trohdr_rec := p_trohdr_rec;
1939 x_trolin_tbl := l_trolin_tbl;
1940 if( p_commit = FND_API.G_TRUE ) then
1941 commit;
1942 end if;
1943 -- If p_return_values is TRUE then convert Ids to Values.
1944
1945 IF FND_API.to_Boolean(p_return_values) THEN
1946
1947 Id_To_Value
1948 ( p_trohdr_rec => l_trohdr_rec
1949 , p_trolin_tbl => l_trolin_tbl
1950 , x_trohdr_val_rec => l_trohdr_val_rec
1951 , x_trolin_val_tbl => l_trolin_val_tbl
1952 );
1953
1954 END IF;
1955
1956 EXCEPTION
1957
1958 WHEN FND_API.G_EXC_ERROR THEN
1959
1960 x_return_status := FND_API.G_RET_STS_ERROR;
1961
1962 -- Get message count and data
1963
1964 FND_MSG_PUB.Count_And_Get
1965 ( p_count => x_msg_count
1966 , p_data => x_msg_data
1967 );
1968
1969 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1970
1971 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1972
1973 -- Get message count and data
1974
1975 FND_MSG_PUB.Count_And_Get
1976 ( p_count => x_msg_count
1977 , p_data => x_msg_data
1978 );
1979
1980 FND_MSG_PUB.Count_And_Get
1981 ( p_count => x_msg_count
1982 , p_data => x_msg_data
1983 );
1984
1985 WHEN OTHERS THEN
1986
1987 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1988
1989 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1990 THEN
1991 FND_MSG_PUB.Add_Exc_Msg
1992 ( G_PKG_NAME
1993 , 'Process_Move_Order'
1994 );
1995 END IF;
1996
1997 -- Get message count and data
1998 FND_MSG_PUB.Count_And_Get
1999 ( p_count => x_msg_count
2000 , p_data => x_msg_data
2001 );
2002 END Process_Move_Order_Line;
2003
2004 PROCEDURE stamp_cart_id ( p_validation_level IN NUMBER
2005 , p_carton_grouping_tbl IN inv_move_order_pub.num_tbl_type
2006 , p_move_order_line_tbl IN inv_move_order_pub.num_tbl_type
2007 ) IS
2008 BEGIN
2009 FORALL i in 1..p_move_order_line_tbl.count
2010 UPDATE mtl_txn_request_lines SET
2011 carton_grouping_id = p_carton_grouping_tbl(i)
2012 WHERE line_id = p_move_order_line_tbl(i);
2013 END stamp_cart_id;
2014
2015
2016 END INV_Move_Order_PUB;