DBA Data[Home] [Help]

PACKAGE BODY: APPS.INL_INTEGRATION_GRP

Source


1 PACKAGE BODY INL_INTEGRATION_GRP AS
2 /* $Header: INLGITGB.pls 120.0.12010000.27 2009/02/11 12:12:32 acferrei noship $ */
3 
4 
5 -- API name   : Insert_LCMInterface
6 -- Type       : Group
7 -- Function   : Insert data on LTI tables
8 --
9 -- Pre-reqs   : None
10 -- Parameters :
11 -- IN         : p_api_version   IN NUMBER,
12 --              p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
13 --              p_commit        IN VARCHAR2 := FND_API.G_FALSE
14 --              p_lci_table     IN OUT NOCOPY  lci_table
15 --
16 -- OUT          x_return_status OUT NOCOPY VARCHAR2
17 --              x_msg_count     OUT NOCOPY NUMBER
18 --              x_msg_data      OUT NOCOPY VARCHAR2
19 --
20 -- Version    : Current version 1.0
21 --
22 -- Notes      :
23 PROCEDURE Insert_LCMInterface (p_api_version    IN NUMBER,
24                                p_init_msg_list  IN VARCHAR2 := FND_API.G_FALSE,
25                                p_commit         IN VARCHAR2 := FND_API.G_FALSE,
26                                p_lci_table      IN OUT NOCOPY  lci_table,
27                                x_return_status  OUT NOCOPY VARCHAR2,
28                                x_msg_count      OUT NOCOPY NUMBER,
29                                x_msg_data       OUT NOCOPY VARCHAR2)IS
30 
31 
32   l_api_name       CONSTANT VARCHAR2(30) := 'Insert_LCMInterface';
33   l_api_version    CONSTANT NUMBER := 1.0;
34 
35   l_return_status  VARCHAR2(1);
36   l_msg_count      NUMBER;
37   l_msg_data       VARCHAR2(2000);
38   l_debug_info     VARCHAR2(200);
39 
40   l_user_defined_ship_num_code   VARCHAR2(25);
41   l_ship_header_int_id           NUMBER;
42   l_current_shipment_header_id   NUMBER;
43   l_group_id                     NUMBER;
44   l_ship_line_int_id             NUMBER;
45   l_ship_num                     NUMBER;
46 
47 BEGIN
48 
49     -- Standard Beginning of Procedure/Function Logging
50     INL_LOGGING_PVT.Log_BeginProc (p_module_name => g_module_name,
51                                    p_procedure_name => l_api_name);
52 
53     -- Standard Start of API savepoint
54     SAVEPOINT Insert_LCMInterface_GRP;
55 
56     -- Initialize message list IF p_init_msg_list is SET to TRUE.
57     IF FND_API.to_Boolean (p_init_msg_list) THEN
58         FND_MSG_PUB.initialize;
59     END IF;
60 
61     -- Check FOR call compatibility.
62     IF NOT FND_API.Compatible_API_Call (p_current_version_number => l_api_version,
63                                         p_caller_version_number => p_api_version,
64                                         p_api_name => l_api_name,
65                                         p_pkg_name => g_pkg_name) THEN
66         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
67     END IF;
68 
69     --  Initialize API RETURN status to success
70    x_return_status := FND_API.G_RET_STS_SUCCESS;
71 
72     -- API Body
73     BEGIN
74       l_current_shipment_header_id := -9999;
75       FOR i IN 1..p_lci_table.COUNT LOOP
76 
77         INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
78                                       p_procedure_name => l_api_name,
79                                       p_var_name => 'p_lci_table(i).organization_id',
80                                       p_var_value => p_lci_table(i).organization_id);
81 
82         l_user_defined_ship_num_code := 'AUTOMATIC';
83         SELECT nvl(user_defined_ship_num_code,'AUTOMATIC')
84         INTO l_user_defined_ship_num_code
85         FROM inl_parameters
86         WHERE organization_id = p_lci_table(i).organization_id;
87 
88         INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
89                                       p_procedure_name => l_api_name,
90                                       p_var_name => 'l_user_defined_ship_num_code',
91                                       p_var_value => l_user_defined_ship_num_code);
92 
93         IF l_user_defined_ship_num_code = 'AUTOMATIC' THEN
94           l_ship_num := NULL;
95         ELSIF l_user_defined_ship_num_code = 'MANUAL' THEN
96           l_ship_num := p_lci_table(i).receipt_num;
97         END IF;
98 
99         IF (l_current_shipment_header_id <> p_lci_table(i).shipment_header_id) THEN
100 
101           SELECT INL_SHIP_HEADERS_INT_S.nextval
102           INTO l_ship_header_int_id
103           FROM dual;
104 
105           SELECT INL_INTERFACE_GROUPS_S.nextval
106           INTO l_group_id
107           FROM dual;
108 
109           INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
110                                         p_procedure_name => l_api_name,
111                                         p_var_name => 'l_ship_header_int_id',
112                                         p_var_value => l_ship_header_int_id);
113 
114           INSERT INTO inl_ship_headers_int(ship_header_int_id,
115                                            group_id,
116                                            transaction_type,
117                                            processing_status_code,
118                                            interface_source_code,
119                                            interface_source_table,
120                                            interface_source_line_id,
121                                            validation_flag,
122                                            ship_num,
123                                            ship_date,
124                                            ship_type_id,
125                                            ship_type_code,
126                                            legal_entity_id,
127                                            legal_entity_name,
128                                            organization_id,
129                                            organization_code,
130                                            location_id,
131                                            location_code,
132                                            org_id,
133                                            taxation_country,
134                                            document_sub_type,
135                                            ship_header_id,
136                                            last_task_code,
137                                            created_by,
138                                            creation_date,
139                                            last_updated_by,
140                                            last_update_date,
141                                            last_update_login,
142                                            request_id,
143                                            program_id,
144                                            program_application_id,
145                                            program_update_date)
146                                    VALUES( l_ship_header_int_id,
147                                            l_group_id,
148                                            p_lci_table(i).transaction_type,
149                                            p_lci_table(i).processing_status_code,
150                                            p_lci_table(i).interface_source_code,
151                                            p_lci_table(i).hdr_interface_source_table,
152                                            p_lci_table(i).hdr_interface_source_line_id,
153                                            p_lci_table(i).validation_flag,
154                                            l_ship_num,
155                                            p_lci_table(i).ship_date,
156                                            p_lci_table(i).ship_type_id,
157                                            p_lci_table(i).ship_type_code,
158                                            p_lci_table(i).legal_entity_id,
159                                            p_lci_table(i).legal_entity_name,
160                                            p_lci_table(i).organization_id,
161                                            p_lci_table(i).organization_code,
162                                            p_lci_table(i).location_id,
163                                            p_lci_table(i).location_code,
164                                            p_lci_table(i).org_id,
165                                            p_lci_table(i).taxation_country,
166                                            p_lci_table(i).document_sub_type,
167                                            p_lci_table(i).ship_header_id,
168                                            p_lci_table(i).last_task_code,
169                                            fnd_global.user_id,
170                                            SYSDATE,
171                                            fnd_global.user_id,
172                                            SYSDATE,
173                                            fnd_global.login_id,
174                                            fnd_global.conc_request_id,
175                                            fnd_global.conc_program_id,
176                                            fnd_global.prog_appl_id,
177                                            decode(fnd_global.conc_request_id, -1,
178                                            NULL,
179                                            SYSDATE));
180 
181           l_current_shipment_header_id := p_lci_table(i).shipment_header_id;
182         END IF;
183 
184         SELECT INL_SHIP_LINES_INT_S.nextval
185         INTO l_ship_line_int_id
186         FROM dual;
187 
188         INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
189                                       p_procedure_name => l_api_name,
190                                       p_var_name => 'l_ship_line_int_id',
191                                       p_var_value => l_ship_line_int_id);
192 
193         INSERT INTO inl_ship_lines_int (ship_header_int_id,
194                                         ship_line_int_id,
195                                         group_id,
196                                         processing_status_code,
197                                         validation_flag,
198                                         ship_line_group_reference,
199                                         party_id,
200                                         party_number,
201                                         party_site_id,
202                                         party_site_number,
203                                         source_organization_id,
204                                         source_organization_code,
205                                         ship_line_num,
206                                         ship_line_type_id,
207                                         ship_line_type_code,
208                                         ship_line_src_type_code,
209                                         ship_line_source_id,
210                                         currency_code,
211                                         currency_conversion_type,
212                                         currency_conversion_date,
213                                         currency_conversion_rate,
214                                         inventory_item_id,
215                                         txn_qty,
216                                         txn_uom_code,
217                                         txn_unit_price,
218                                         primary_qty,
219                                         primary_uom_code,
220                                         primary_unit_price,
221                                         secondary_qty,
222                                         secondary_uom_code,
223                                         secondary_unit_price,
224                                         landed_cost_flag,
225                                         allocation_enabled_flag,
226                                         trx_business_category,
227                                         intended_use,
228                                         product_fiscal_class,
229                                         product_category,
230                                         product_type,
231                                         user_def_fiscal_class,
232                                         tax_classification_code,
233                                         assessable_value,
234                                         ship_from_party_id,
235                                         ship_from_party_number,
236                                         ship_from_party_site_id,
237                                         ship_from_party_site_number,
238                                         ship_to_organization_id,
239                                         ship_to_organization_code,
240                                         ship_to_location_id,
241                                         ship_to_location_code,
242                                         bill_from_party_id,
243                                         bill_from_party_number,
244                                         bill_from_party_site_id,
245                                         bill_from_party_site_number,
246                                         bill_to_organization_id,
247                                         bill_to_organization_code,
248                                         bill_to_location_id,
249                                         bill_to_location_code,
250                                         poa_party_id,
251                                         poa_party_number,
252                                         poa_party_site_id,
253                                         poa_party_site_number,
254                                         poo_organization_id,
255                                         poo_to_organization_code,
256                                         poo_location_id,
257                                         poo_location_code,
258                                         org_id,
259                                         ship_header_id,
260                                         ship_line_id,
261                                         interface_source_table,
262                                         interface_source_line_id,
263                                         created_by,
264                                         creation_date,
265                                         last_updated_by,
266                                         last_update_date,
267                                         last_update_login,
268                                         request_id,
269                                         program_id,
270                                         program_application_id,
271                                         program_update_date)
272                                 VALUES( l_ship_header_int_id,
273                                         l_ship_line_int_id,
274                                         l_group_id,
275                                         p_lci_table(i).processing_status_code,
276                                         p_lci_table(i).validation_flag,
277                                         p_lci_table(i).ship_line_group_reference,
278                                         p_lci_table(i).party_id,
279                                         p_lci_table(i).party_number,
280                                         p_lci_table(i).party_site_id,
281                                         p_lci_table(i).party_site_number,
282                                         p_lci_table(i).source_organization_id,
283                                         p_lci_table(i).source_organization_code,
284                                         p_lci_table(i).ship_line_num,
288                                         p_lci_table(i).ship_line_source_id,
285                                         p_lci_table(i).ship_line_type_id,
286                                         p_lci_table(i).ship_line_type_code,
287                                         p_lci_table(i).ship_line_src_type_code,
289                                         p_lci_table(i).currency_code,
290                                         p_lci_table(i).currency_conversion_type,
291                                         p_lci_table(i).currency_conversion_date,
292                                         p_lci_table(i).currency_conversion_rate,
293                                         p_lci_table(i).inventory_item_id,
294                                         p_lci_table(i).txn_qty,
295                                         p_lci_table(i).txn_uom_code,
296                                         p_lci_table(i).txn_unit_price,
297                                         p_lci_table(i).primary_qty,
298                                         p_lci_table(i).primary_uom_code,
299                                         p_lci_table(i).primary_unit_price,
300                                         p_lci_table(i).secondary_qty,
301                                         p_lci_table(i).secondary_uom_code,
302                                         p_lci_table(i).secondary_unit_price,
303                                         p_lci_table(i).landed_cost_flag,
304                                         p_lci_table(i).allocation_enabled_flag,
305                                         p_lci_table(i).trx_business_category,
306                                         p_lci_table(i).intended_use,
307                                         p_lci_table(i).product_fiscal_class,
308                                         p_lci_table(i).product_category,
309                                         p_lci_table(i).product_type,
310                                         p_lci_table(i).user_def_fiscal_class,
311                                         p_lci_table(i).tax_classification_code,
312                                         p_lci_table(i).assessable_value,
313                                         p_lci_table(i).ship_from_party_id,
314                                         p_lci_table(i).ship_from_party_number,
315                                         p_lci_table(i).ship_from_party_site_id,
316                                         p_lci_table(i).ship_from_party_site_number,
317                                         p_lci_table(i).ship_to_organization_id,
318                                         p_lci_table(i).ship_to_organization_code,
319                                         p_lci_table(i).ship_to_location_id,
320                                         p_lci_table(i).ship_to_location_code,
321                                         p_lci_table(i).bill_from_party_id,
322                                         p_lci_table(i).bill_from_party_number,
323                                         p_lci_table(i).bill_from_party_site_id,
324                                         p_lci_table(i).bill_from_party_site_number,
325                                         p_lci_table(i).bill_to_organization_id,
326                                         p_lci_table(i).bill_to_organization_code,
327                                         p_lci_table(i).bill_to_location_id,
328                                         p_lci_table(i).bill_to_location_code,
329                                         p_lci_table(i).poa_party_id,
330                                         p_lci_table(i).poa_party_number,
331                                         p_lci_table(i).poa_party_site_id,
332                                         p_lci_table(i).poa_party_site_number,
333                                         p_lci_table(i).poo_organization_id,
334                                         p_lci_table(i).poo_to_organization_code,
335                                         p_lci_table(i).poo_location_id,
336                                         p_lci_table(i).poo_location_code,
337                                         p_lci_table(i).org_id,
338                                         p_lci_table(i).ship_header_id,
339                                         p_lci_table(i).ship_line_id,
340                                         p_lci_table(i).line_interface_source_table,
341                                         p_lci_table(i).line_interface_source_line_id,
342                                         fnd_global.user_id,
343                                         SYSDATE,
344                                         fnd_global.user_id,
345                                         SYSDATE,
346                                         fnd_global.login_id,
347                                         fnd_global.conc_request_id,
348                                         fnd_global.conc_program_id,
349                                         fnd_global.prog_appl_id,
350                                         decode(fnd_global.conc_request_id, -1, NULL, SYSDATE));
351       END LOOP;
352     END; -- End of API Body
353 
354   -- Standard check of p_commit.
355   IF FND_API.To_Boolean( p_commit ) THEN
356     COMMIT WORK;
357   END IF;
358 
359   -- Standard call to get message count and if count is 1, get message info.
360   FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
361                             p_count => x_msg_count,
362                             p_data => x_msg_data);
363 
364   -- Standard End of Procedure/Function Logging
365   INL_LOGGING_PVT.Log_EndProc (p_module_name => g_module_name,
366                                p_procedure_name => l_api_name);
367 
368 EXCEPTION
369   WHEN FND_API.G_EXC_ERROR THEN
370     -- Standard Expected Error Logging
371     INL_LOGGING_PVT.Log_ExpecError (p_module_name => g_module_name,
372                                     p_procedure_name => l_api_name);
373     ROLLBACK TO Insert_LCMInterface_GRP;
374     x_return_status := FND_API.G_RET_STS_ERROR;
375     FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
376                               p_count => x_msg_count,
380     INL_LOGGING_PVT.Log_UnexpecError (p_module_name => g_module_name,
377                               p_data => x_msg_data);
378   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
379     -- Standard Unexpected Error Logging
381                                       p_procedure_name => l_api_name);
382     ROLLBACK TO Insert_LCMInterface_GRP;
383     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
384     FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
385                               p_count =>  x_msg_count,
386                               p_data =>  x_msg_data);
387   WHEN OTHERS THEN
388     -- Standard Unexpected Error Logging
389     INL_LOGGING_PVT.Log_UnexpecError (p_module_name => g_module_name,
390                                       p_procedure_name => l_api_name);
391     ROLLBACK TO Insert_LCMInterface_GRP;
392     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
393     IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
394     THEN
395       FND_MSG_PUB.Add_Exc_Msg(g_pkg_name,l_api_name);
396     END IF;
397     FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
398                               p_count => x_msg_count,
399                               p_data => x_msg_data);
400 END Insert_LCMInterface;
401 
402 
403 -- API name   : Import_FromRCV
404 -- Type       : Group
405 -- Function   : Creates LTI entries based on Receiving
406 --              transactions inserted through the Black Box flow.
407 --
408 -- Pre-reqs   : None
409 -- Parameters :
410 -- IN         : p_int_rec       IN RCV_CALL_LCM_WS.rti_rec
411 --
412 --
413 -- Version    : Current version 1.0
414 --
415 -- Notes      :
416 
417 PROCEDURE Import_FromRCV (p_int_rec IN RCV_CALL_LCM_WS.rti_rec) IS
418 
419     l_return_status                VARCHAR2(1);
420     l_msg_count                    NUMBER;
421     l_msg_data                     VARCHAR2(2000);
422     l_proc_name                    CONSTANT VARCHAR2(30) := 'Import_FromRCV';
423     l_api_version                  CONSTANT NUMBER := 1.0;
424     l_debug_msg                    VARCHAR2(500);
425     l_user_defined_ship_num_code   VARCHAR2(25);
426     l_ship_num                     NUMBER;
427     l_ship_type_id                 NUMBER;
428     l_legal_entity_id              NUMBER;
429     l_taxation_country             VARCHAR2(2);
430     l_ship_header_int_id           NUMBER;
431     l_group_id                     NUMBER;
432     l_party_id                     NUMBER;
433     l_party_site_id                NUMBER;
434     l_ship_line_type_id            NUMBER;
435     l_trx_business_category        VARCHAR2(240);
436     l_line_intended_use            VARCHAR2(240);
437     l_product_fisc_classification  VARCHAR2(240);
438     l_product_category             VARCHAR2(240);
439     l_product_type                 VARCHAR2(240);
440     l_user_defined_fisc_class      VARCHAR2(30);
441     l_output_tax_classf_code       VARCHAR2(50);
442     l_ship_lines_int_id            NUMBER;
443     l_org_id                       NUMBER;
444     l_vendor_id                    NUMBER;
445     l_vendor_site_id               NUMBER;
446     l_ship_to_org_id               NUMBER;
447     l_ship_to_location_id          NUMBER;
448     l_receipt_num                  VARCHAR2(500);
449     erroredHeaderId                NUMBER;
450     currentHeaderId                NUMBER;
451     l_lci_table                    lci_table;
452 
453 BEGIN
454 
455     -- Standard Beginning of Procedure/Function Logging
456     INL_LOGGING_PVT.Log_BeginProc (
457         p_module_name    => g_module_name,
458         p_procedure_name => l_proc_name
459     );
460 
461     INL_LOGGING_PVT.Log_Variable (
462         p_module_name => g_module_name,
463         p_procedure_name => l_proc_name,
464         p_var_name => 'p_int_rec.COUNT',
465         p_var_value => p_int_rec.COUNT
466     );
467 
468     l_user_defined_ship_num_code := 'AUTOMATIC';
469     erroredHeaderId := -9999;
470     currentHeaderId := -9999;
471 
472     FOR i IN 1..p_int_rec.COUNT LOOP
473         IF (erroredHeaderId <> Nvl(p_int_rec(i).shipment_header_id, p_int_rec(i).header_interface_id)) THEN
474             BEGIN
475                 IF (currentHeaderId <> Nvl(p_int_rec(i).shipment_header_id, p_int_rec(i).header_interface_id))
476                 THEN
477                     IF (currentHeaderId <> -9999)
478                     THEN -- It is not the FIRST record
479 
480                         -- Start processing of new shipment_header_id
481                         INL_LOGGING_PVT.Log_Statement (
482                             p_module_name => g_module_name,
483                             p_procedure_name => l_proc_name,
484                             p_debug_info => 'Update RTIs to LC_INTERFACED'
485                         );
486 
487                         UPDATE rcv_transactions_interface rti
488                            SET processing_status_code = 'LC_INTERFACED'
489                          WHERE transaction_status_code = 'PENDING'
490                            AND processing_status_code = 'LC_PENDING'
491                            AND  (transaction_type = 'RECEIVE' OR
492                                 (transaction_type ='SHIP' AND auto_transact_code  IN ('RECEIVE','DELIVER')))
493                            AND source_document_code = 'PO'
494                            AND EXISTS ( SELECT 'lcm shipment'
495                                           FROM po_line_locations_all pll
496                                          WHERE pll.line_location_id = rti.po_line_location_id
497                                            AND pll.lcm_flag = 'Y' )
498                            AND Nvl(shipment_header_id,Header_interface_id) = currentHeaderId;
499 
500                         SAVEPOINT headers;
501                     END IF;
502 
506                         p_var_name => 'p_int_rec(i).shipment_header_id',
503                     INL_LOGGING_PVT.Log_Variable (
504                         p_module_name => g_module_name,
505                         p_procedure_name => l_proc_name,
507                         p_var_value => p_int_rec(i).shipment_header_id
508                     );
509 
510                     INL_LOGGING_PVT.Log_Statement (
511                         p_module_name => g_module_name,
512                         p_procedure_name => l_proc_name,
513                         p_debug_info => 'Get RCV_SHIPMENT_HEADERS info.'
514                     );
515 
516                     IF p_int_rec(i).shipment_header_id IS NOT NULL
517                     THEN
518 
519                         SELECT ship_to_org_id,
520                                ship_to_location_id,
521                                receipt_num,
522                                vendor_id,
523                                vendor_site_id
524                         INTO l_ship_to_org_id,
525                              l_ship_to_location_id,
526                              l_receipt_num,
527                              l_vendor_id,
528                              l_vendor_site_id
529                         FROM rcv_shipment_headers
530                         WHERE shipment_header_id = p_int_rec(i).shipment_header_id;
531 
532                         -- BUG #8235596
533 
534                         INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
535                         p_procedure_name => l_proc_name,
536                         p_var_name => 'l_receipt_num',
537                         p_var_value => l_receipt_num );
538 
539                         IF(l_receipt_num IS NULL AND p_int_rec(i).header_interface_id IS NOT NULL) THEN
540 
541                           -- If receipt num is NULL get it from rcv_headers_interface
542                           l_debug_msg := 'Receipt num is NULL get it from rcv_headers_interface';
543                           INL_LOGGING_PVT.Log_Statement (p_module_name => g_module_name,
544                                                          p_procedure_name => l_proc_name,
545                                                          p_debug_info => l_debug_msg);
546 
547                           SELECT receipt_num
548                           INTO l_receipt_num
549                           FROM rcv_headers_interface rhi
550                           WHERE header_interface_id = p_int_rec(i).header_interface_id;
551 
552                         END IF;
553 
554                     ELSIF p_int_rec(i).header_interface_id IS NOT NULL THEN
555 
556                          SELECT SHIP_TO_ORGANIZATION_ID,
557                                 location_id,
558                                 receipt_num,
559                                 vendor_id,
560                                 vendor_site_id
561                          INTO l_ship_to_org_id,
562                               l_ship_to_location_id,
563                               l_receipt_num,
564                               l_vendor_id,
565                               l_vendor_site_id
566                          FROM rcv_headers_interface
567                          WHERE header_interface_id = p_int_rec(i).header_interface_id;
568                     END IF;
569 
570                     INL_LOGGING_PVT.Log_Variable (
571                         p_module_name => g_module_name,
572                         p_procedure_name => l_proc_name,
573                         p_var_name => 'l_ship_to_org_id',
574                         p_var_value => l_ship_to_org_id
575                     );
576                     INL_LOGGING_PVT.Log_Variable (
577                         p_module_name => g_module_name,
578                         p_procedure_name => l_proc_name,
579                         p_var_name => 'l_ship_to_location_id',
580                         p_var_value => l_ship_to_location_id
581                     );
582                     INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
583                         p_procedure_name => l_proc_name,
584                         p_var_name => 'l_receipt_num',
585                         p_var_value => l_receipt_num
586                     );
587                     INL_LOGGING_PVT.Log_Variable (
588                         p_module_name => g_module_name,
589                         p_procedure_name => l_proc_name,
590                         p_var_name => 'l_vendor_id',
591                         p_var_value => l_vendor_id
592                     );
593                     INL_LOGGING_PVT.Log_Variable (
594                         p_module_name => g_module_name,
595                         p_procedure_name => l_proc_name,
596                         p_var_name => 'l_vendor_site_id',
597                         p_var_value => l_vendor_site_id
598                     );
599                     INL_LOGGING_PVT.Log_Statement (
600                         p_module_name => g_module_name,
601                         p_procedure_name => l_proc_name,
602                         p_debug_info => 'Check Shipment Numbering mode. AUTOMATIC or MANUAL'
603                     );
604                     INL_LOGGING_PVT.Log_Variable (
605                         p_module_name => g_module_name,
606                         p_procedure_name => l_proc_name,
607                         p_var_name => 'l_user_defined_ship_num_code',
608                         p_var_value => l_user_defined_ship_num_code
609                     );
610                     INL_LOGGING_PVT.Log_Statement (
611                         p_module_name => g_module_name,
612                         p_procedure_name => l_proc_name,
613                         p_debug_info => 'Get Operating Unit Id'
614                     );
615                     SELECT operating_unit
616                     INTO l_org_id
620                     INL_LOGGING_PVT.Log_Variable (
617                     FROM org_organization_definitions
618                     WHERE organization_id = l_ship_to_org_id;
619 
621                         p_module_name => g_module_name,
622                         p_procedure_name => l_proc_name,
623                         p_var_name => 'l_org_id',
624                         p_var_value => l_org_id
625                     );
626 
627                     l_ship_num := l_receipt_num;
628 
629                     INL_LOGGING_PVT.Log_Statement (
630                         p_module_name => g_module_name,
631                         p_procedure_name => l_proc_name,
632                         p_debug_info => 'Get Party Id from PO_VENDORS'
633                     );
634                     SELECT party_id
635                     INTO l_party_id
636                     FROM po_vendors
637                     WHERE vendor_id = l_vendor_id;
638 
639                     INL_LOGGING_PVT.Log_Variable (
640                         p_module_name => g_module_name,
641                         p_procedure_name => l_proc_name,
642                         p_var_name => 'l_party_id',
643                         p_var_value => l_party_id
644                     );
645 
646                     INL_LOGGING_PVT.Log_Statement (
647                         p_module_name => g_module_name,
648                         p_procedure_name => l_proc_name,
649                         p_debug_info => 'Get value from profile INL_SHIP_TYPE_ID_OI'
650                     );
651 
652                     l_ship_type_id := NVL(FND_PROFILE.VALUE('INL_SHIP_TYPE_ID_OI'),0);
653 
654                     INL_LOGGING_PVT.Log_Variable (
655                         p_module_name => g_module_name,
656                         p_procedure_name => l_proc_name,
657                         p_var_name => 'l_ship_type_id',
658                         p_var_value => l_ship_type_id
659                     );
660 
661                     INL_LOGGING_PVT.Log_Statement (
662                         p_module_name => g_module_name,
663                         p_procedure_name => l_proc_name,
664                         p_debug_info => 'Get Legal Entity and Taxation Country'
665                     );
666                     SELECT ood.legal_entity,
667                            ftv.territory_code
668                     INTO l_legal_entity_id,
669                          l_taxation_country
670                     FROM fnd_territories_vl ftv,
671                          hr_locations_v hlv,
672                          hr_all_organization_units hru,
673                          hr_legal_entities hle,
674                          org_organization_definitions ood,
675                          gl_sets_of_books gsb
676                     WHERE ftv.territory_code = hlv.country
677                     AND hlv.location_id = hru.location_id
678                     AND ood.organization_id = hle.organization_id (+)
679                     AND hru.organization_id = ood.organization_id
680                     AND gsb.set_of_books_id = ood.set_of_books_id
681                     AND ood.organization_id = l_org_id;
682 
683                     INL_LOGGING_PVT.Log_Variable (
684                         p_module_name => g_module_name,
685                         p_procedure_name => l_proc_name,
686                         p_var_name => 'l_legal_entity_id',
687                         p_var_value => l_legal_entity_id
688                     );
689                     INL_LOGGING_PVT.Log_Variable (
690                         p_module_name => g_module_name,
691                         p_procedure_name => l_proc_name,
692                         p_var_name => 'l_taxation_country',
693                         p_var_value => l_taxation_country
694                     );
695                     INL_LOGGING_PVT.Log_Variable (
696                         p_module_name => g_module_name,
697                         p_procedure_name => l_proc_name,
698                         p_var_name => 'l_ship_header_int_id',
699                         p_var_value => l_ship_header_int_id
700                     );
701                     INL_LOGGING_PVT.Log_Variable (
702                         p_module_name => g_module_name,
703                         p_procedure_name => l_proc_name,
704                         p_var_name => 'l_group_id',
705                         p_var_value => l_group_id
706                     );
707                     INL_LOGGING_PVT.Log_Statement (
708                         p_module_name => g_module_name,
709                         p_procedure_name => l_proc_name,
710                         p_debug_info => 'Insert into inl_ship_headers_int table'
711                     );
712 
713                     l_lci_table(i).shipment_header_id := Nvl(p_int_rec(i).shipment_header_id,p_int_rec(i).header_interface_id);
714                     l_lci_table(i).transaction_type := 'CREATE';
715                     l_lci_table(i).processing_status_code := 'PENDING';
716                     l_lci_table(i).interface_source_code := 'RCV';
717                     IF p_int_rec(i).shipment_header_id IS NOT NULL THEN
718                         l_lci_table(i).hdr_interface_source_table := 'RCV_SHIPMENT_HEADERS';
719                     ELSIF p_int_rec(i).header_interface_id IS NOT NULL THEN
720                         l_lci_table(i).hdr_interface_source_table := 'RCV_HEADERS_INTERFACE';
721                     END IF;
722                     l_lci_table(i).hdr_interface_source_line_id := Nvl(p_int_rec(i).shipment_header_id,p_int_rec(i).header_interface_id);
723                     l_lci_table(i).validation_flag := 'Y';
724                     l_lci_table(i).receipt_num := l_receipt_num;
725                     l_lci_table(i).ship_date := SYSDATE;
726                     l_lci_table(i).ship_type_id := l_ship_type_id;
727                     l_lci_table(i).legal_entity_id := l_legal_entity_id;
731                     l_lci_table(i).taxation_country := l_taxation_country;
728                     l_lci_table(i).organization_id := l_ship_to_org_id;
729                     l_lci_table(i).location_id := l_ship_to_location_id;
730                     l_lci_table(i).org_id := l_org_id;
732                     l_lci_table(i).last_task_code := 60;
733 
734                 END IF;
735 
736                 SELECT pvs.party_site_id
737                 INTO l_party_site_id
738                 FROM po_vendor_sites_all pvs
739                 WHERE  pvs.vendor_site_id = l_vendor_site_id
740                 AND pvs.org_id = p_int_rec(i).org_id;
741 
742                 INL_LOGGING_PVT.Log_Variable (
743                     p_module_name => g_module_name,
744                     p_procedure_name => l_proc_name,
745                     p_var_name => 'l_party_site_id',
746                     p_var_value => l_party_site_id
747                 );
748 
749                 INL_LOGGING_PVT.Log_Statement (
750                     p_module_name => g_module_name,
751                     p_procedure_name => l_proc_name,
752                     p_debug_info => 'Get value to INL_SHIP_LINE_TYPE_ID'
753 
754                 );
755                 SELECT ship_line_type_id
756                 INTO l_ship_line_type_id
757                 FROM inl_alwd_line_types
758                 WHERE parent_table_name = 'INL_SHIP_TYPES'
759                 AND parent_table_id = l_ship_type_id
760                 AND dflt_ship_line_type_flag='Y'
761                 ;
762 
763                 INL_LOGGING_PVT.Log_Variable (
764                     p_module_name => g_module_name,
765                     p_procedure_name => l_proc_name,
766                     p_var_name => 'l_ship_line_type_id',
767                     p_var_value => l_ship_line_type_id
768                 );
769 
770                 INL_LOGGING_PVT.Log_Statement (
771                     p_module_name => g_module_name,
772                     p_procedure_name => l_proc_name,
773                     p_debug_info => 'Get values from zx_lines_det_factors and po_line_locations_all'
774                 );
775                 SELECT zdf.trx_business_category,
776                        zdf.line_intended_use,
777                        zdf.product_fisc_classification,
778                        zdf.product_category,
779                          zdf.product_type,
780                        zdf.user_defined_fisc_class,
781                        zdf.output_tax_classification_code
782                 INTO l_trx_business_category,
783                      l_line_intended_use,
784                      l_product_fisc_classification,
785                      l_product_category,
786                      l_product_type,
787                      l_user_defined_fisc_class,
788                      l_output_tax_classf_code
789                 FROM zx_lines_det_factors zdf,
790                        po_line_locations_all pll
791                 WHERE pll.line_location_id = p_int_rec(i).po_line_location_id
792                 AND zdf.application_id = 201
793                 AND zdf.trx_id = NVL(pll.po_release_id,pll.po_header_id)                            --Bug 7680733
794                 AND zdf.trx_line_id = pll.line_location_id
795                 AND zdf.entity_code = DECODE(pll.po_release_id,NULL,'PURCHASE_ORDER','RELEASE')     --Bug 7680733
796                 AND zdf.event_class_code = DECODE(pll.po_release_id,NULL,'PO_PA','RELEASE');        --Bug 7680733
797 
798                 INL_LOGGING_PVT.Log_Variable (
799                     p_module_name => g_module_name,
800                     p_procedure_name => l_proc_name,
801                     p_var_name => 'p_int_rec(i).po_line_location_id',
802                     p_var_value => p_int_rec(i).po_line_location_id
803                 );
804                 INL_LOGGING_PVT.Log_Variable (
805                     p_module_name => g_module_name,
806                     p_procedure_name => l_proc_name,
807                     p_var_name => 'p_int_rec(i).currency_code',
808                     p_var_value => p_int_rec(i).currency_code
809                 );
810                 INL_LOGGING_PVT.Log_Variable (
811                     p_module_name => g_module_name,
812                     p_procedure_name => l_proc_name,
813                     p_var_name => 'p_int_rec(i).item_id',
814                     p_var_value => p_int_rec(i).item_id
815                 );
816                 INL_LOGGING_PVT.Log_Variable (
817                     p_module_name => g_module_name,
818                     p_procedure_name => l_proc_name,
819                     p_var_name => 'p_int_rec(i).quantity',
820                     p_var_value => p_int_rec(i).quantity
821                 );
822                 INL_LOGGING_PVT.Log_Variable (
823                     p_module_name => g_module_name,
824                     p_procedure_name => l_proc_name,
825                     p_var_name => 'p_int_rec(i).po_unit_price',
826                     p_var_value => p_int_rec(i).po_unit_price
827                 );
828                 INL_LOGGING_PVT.Log_Variable (
829                     p_module_name => g_module_name,
830                     p_procedure_name => l_proc_name,
831                     p_var_name => 'l_trx_business_category',
832                     p_var_value => l_trx_business_category
833                 );
834                 INL_LOGGING_PVT.Log_Variable (
835                     p_module_name => g_module_name,
836                     p_procedure_name => l_proc_name,
837                     p_var_name => 'l_line_intended_use',
838                     p_var_value => l_line_intended_use
839                 );
840                 INL_LOGGING_PVT.Log_Variable (
841                     p_module_name => g_module_name,
842                     p_procedure_name => l_proc_name,
843                     p_var_name => 'l_product_fisc_classification',
847                     p_module_name => g_module_name,
844                     p_var_value => l_product_fisc_classification
845                 );
846                 INL_LOGGING_PVT.Log_Variable (
848                     p_procedure_name => l_proc_name,
849                     p_var_name => 'l_product_category',
850                     p_var_value => l_product_category
851                 );
852                 INL_LOGGING_PVT.Log_Variable (
853                     p_module_name => g_module_name,
854                     p_procedure_name => l_proc_name,
855                     p_var_name => 'l_product_type',
856                     p_var_value => l_product_type
857                 );
858                 INL_LOGGING_PVT.Log_Variable (
859                     p_module_name => g_module_name,
860                     p_procedure_name => l_proc_name,
861                     p_var_name => 'l_user_defined_fisc_class',
862                     p_var_value => l_user_defined_fisc_class
863                 );
864                 INL_LOGGING_PVT.Log_Variable (
865                     p_module_name => g_module_name,
866                     p_procedure_name => l_proc_name,
867                     p_var_name => 'l_output_tax_classf_code',
868                     p_var_value => l_output_tax_classf_code
869                 );
870                 INL_LOGGING_PVT.Log_Statement (
871                     p_module_name => g_module_name,
872                     p_procedure_name => l_proc_name,
873                     p_debug_info => 'Insert inl_ship_lines_int values in PL/SQL table.'
874                 );
875                 l_lci_table(i).ship_line_group_reference := l_receipt_num;
876                 l_lci_table(i).party_id := l_party_id;
877                 l_lci_table(i).party_site_id := l_party_site_id;
878                 l_lci_table(i).ship_line_type_id := l_ship_line_type_id;
879                 l_lci_table(i).ship_line_src_type_code := 'PO';
880                 l_lci_table(i).ship_line_source_id := p_int_rec(i).po_line_location_id;
881                 l_lci_table(i).currency_code := p_int_rec(i).currency_code;
882                 l_lci_table(i).currency_conversion_type := p_int_rec(i).currency_conversion_type;
883                 l_lci_table(i).currency_conversion_date := p_int_rec(i).currency_conversion_date;
884                 l_lci_table(i).currency_conversion_rate := p_int_rec(i).currency_conversion_rate;
885                 l_lci_table(i).inventory_item_id := p_int_rec(i).item_id;
886                 l_lci_table(i).txn_qty := p_int_rec(i).quantity;
887                 l_lci_table(i).txn_uom_code := p_int_rec(i).uom_code;
888                 l_lci_table(i).txn_unit_price := p_int_rec(i).po_unit_price;
889                 l_lci_table(i).landed_cost_flag := 'Y';
890                 l_lci_table(i).allocation_enabled_flag := 'Y';
891                 l_lci_table(i).trx_business_category := l_trx_business_category;
892                 l_lci_table(i).intended_use := l_line_intended_use;
893                 l_lci_table(i).product_fiscal_class := l_product_fisc_classification;
894                 l_lci_table(i).product_category := l_product_category;
895                 l_lci_table(i).product_type := l_product_type;
896                 l_lci_table(i).user_def_fiscal_class := l_user_defined_fisc_class;
897                 l_lci_table(i).tax_classification_code := l_output_tax_classf_code;
898                 l_lci_table(i).ship_from_party_id := l_party_id;
899                 l_lci_table(i).ship_from_party_site_id := l_party_site_id;
900                 l_lci_table(i).ship_to_organization_id := l_ship_to_org_id;
901                 l_lci_table(i).ship_to_location_id := p_int_rec(i).ship_to_location_id;
902                 l_lci_table(i).bill_from_party_id := l_party_id;
903                 l_lci_table(i).bill_from_party_site_id := l_party_site_id;
904                 l_lci_table(i).bill_to_organization_id := l_ship_to_org_id;
905                 l_lci_table(i).bill_to_location_id := p_int_rec(i).ship_to_location_id;
906                 l_lci_table(i).poa_party_id := l_party_id;
907                 l_lci_table(i).poa_party_site_id := l_party_site_id;
908                 l_lci_table(i).poo_organization_id := l_ship_to_org_id;
909                 l_lci_table(i).poo_location_id := p_int_rec(i).ship_to_location_id;
910                 l_lci_table(i).org_id := p_int_rec(i).ORG_ID;
911                 l_lci_table(i).line_interface_source_table := 'RCV_TRANSACTIONS_INTERFACE';
912                 l_lci_table(i).line_interface_source_line_id := p_int_rec(i).interface_transaction_id;
913 
914             EXCEPTION
915                 WHEN OTHERS THEN
916                     INL_LOGGING_PVT.Log_UnexpecError (p_module_name => g_module_name,
917                                                       p_procedure_name => l_proc_name
918                     );
919                     INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
920                                                   p_procedure_name => l_proc_name,
921                                                   p_var_name => 'Error: ',
922                                                   p_var_value => sqlcode ||' '||substr(SQLERRM, 1, 1000)
923                     );
924                     INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
925                                                   p_procedure_name => l_proc_name,
926                                                   p_var_name => 'erroredHeaderId',
927                                                   p_var_value => erroredHeaderId
928                     );
929                     erroredHeaderId := Nvl(p_int_rec(i).shipment_header_id,p_int_rec(i).header_interface_id);
930                     ROLLBACK to headers;
931             END;
932         END IF;
933     END LOOP;
934 
935     -- Call Insert_LCMInterface to insert data in lcm interface table
936     Insert_LCMInterface(
937         p_api_version    => l_api_version,
938         p_init_msg_list  => FND_API.G_TRUE,
939         p_commit         => FND_API.G_FALSE,
940         p_lci_table      => l_lci_table,
944     );
941         x_return_status  => l_return_status,
942         x_msg_count      => l_msg_count,
943         x_msg_data       => l_msg_data
945 
946 
947     IF (l_return_status = 'S') THEN  --(currentHeaderId <> -9999 AND currentHeaderId <> erroredHeaderId AND l_return_status = 'S') THEN
948         FOR i IN 1..p_int_rec.COUNT LOOP
949             -- Update RTIs to LC_INTERFACED
950             UPDATE rcv_transactions_interface rti
951             SET processing_status_code = 'LC_INTERFACED'
952             WHERE transaction_status_code = 'PENDING'
953             AND processing_status_code = 'LC_PENDING'
954             AND (transaction_type = 'RECEIVE' OR
955                     (transaction_type ='SHIP' AND auto_transact_code  IN ('RECEIVE','DELIVER')))
956             AND source_document_code = 'PO'
957             AND EXISTS ( SELECT 'lcm shipment'
958                          FROM po_line_locations_all pll
959                          WHERE pll.line_location_id = rti.po_line_location_id
960                          AND pll.lcm_flag = 'Y' )
961             AND Nvl(shipment_header_id,Header_interface_id) =  Nvl(p_int_rec(i).shipment_header_id,p_int_rec(i).header_interface_id);
962 
963             IF p_int_rec(i).header_interface_id IS NOT NULL THEN
964                UPDATE rcv_headers_interface rhi
965                SET processing_status_code = 'LC_INTERFACED'
966                WHERE processing_status_code='LC_PENDING'
967                AND header_interface_id=p_int_rec(i).header_interface_id;
968             END IF;
969         END LOOP;
970     END IF;
971 
972     -- Standard End of Procedure/Function Logging
973     INL_LOGGING_PVT.Log_EndProc (
974         p_module_name    => g_module_name,
975         p_procedure_name => l_proc_name
976     );
977 EXCEPTION
978     WHEN OTHERS THEN
979         INL_LOGGING_PVT.Log_UnexpecError (
980             p_module_name    => g_module_name,
981             p_procedure_name => l_proc_name
982         );
983         INL_LOGGING_PVT.Log_Statement (
984             p_module_name    => g_module_name,
985             p_procedure_name => l_proc_name,
986             p_debug_info     => 'the error is:  ' || sqlcode ||' '||substr(SQLERRM, 1, 1000)
987         );
988         ROLLBACK;
989 END Import_FromRCV;
990 
991 -- API name   : Get_LandedCost
992 -- Type       : Group
993 -- Function   : Get the Unit Landed Cost.
994 --
995 -- Pre-reqs   : None
996 -- Parameters :
997 -- IN         : p_api_version             IN NUMBER,
998 --              p_init_msg_list           IN VARCHAR2 := FND_API.G_FALSE
999 --              p_commit                  IN VARCHAR2 := FND_API.G_FALSE
1000 --              p_ship_line_id            IN NUMBER
1001 --
1002 -- OUT          x_return_status           OUT NOCOPY VARCHAR2
1003 --              x_msg_count               OUT NOCOPY NUMBER
1004 --              x_msg_data                OUT NOCOPY VARCHAR2
1005 --              x_actual_unit_landed_cost OUT NOCOPY NUMBER
1006 --
1007 -- Version    : Current version 1.0
1008 --
1009 -- Notes      :
1010 
1011 PROCEDURE  Get_LandedCost (p_api_version             IN NUMBER,
1012                            p_init_msg_list           IN VARCHAR2 := FND_API.G_FALSE,
1013                            p_commit                  IN VARCHAR2 := FND_API.G_FALSE,
1014                            p_ship_line_id            IN NUMBER,
1015                            x_return_status           OUT NOCOPY VARCHAR2,
1016                            x_msg_count               OUT NOCOPY NUMBER,
1017                            x_msg_data                OUT NOCOPY VARCHAR2,
1018                            x_actual_unit_landed_cost OUT NOCOPY NUMBER)
1019 IS
1020      l_api_name                   CONSTANT VARCHAR2(30) := 'Get_LandedCost';
1021      l_api_version                CONSTANT NUMBER := 1.0;
1022      l_return_status              VARCHAR2(100);
1023      l_msg_count                  NUMBER;
1024      l_msg_data                   VARCHAR2(2000);
1025      l_organization_id            NUMBER;
1026      l_inventory_item_id          NUMBER;
1027      l_primary_qty                NUMBER;
1028      l_primary_uom_code           VARCHAR2(30);
1029      l_estimated_item_price       NUMBER;
1030      l_estimated_charges          NUMBER;
1031      l_estimated_taxes            NUMBER;
1032      l_estimated_unit_landed_cost NUMBER;
1033      l_actual_item_price          NUMBER;
1034      l_actual_charges             NUMBER;
1035      l_actual_taxes               NUMBER;
1036 
1037 BEGIN
1038 
1039     -- Standard Beginning of Procedure/Function Logging
1040     INL_LOGGING_PVT.Log_BeginProc (p_module_name => g_module_name,
1041                                    p_procedure_name => l_api_name) ;
1042 
1043     -- Standard Start of API savepoint
1044     SAVEPOINT Get_LandedCost_GRP;
1045 
1046     -- Initialize message list IF p_init_msg_list is SET to TRUE.
1047     IF FND_API.to_Boolean (p_init_msg_list) THEN
1048         FND_MSG_PUB.initialize;
1049     END IF;
1050 
1051     -- Check FOR call compatibility.
1052     IF NOT FND_API.Compatible_API_Call (p_current_version_number => l_api_version,
1053                                         p_caller_version_number => p_api_version,
1054                                         p_api_name => l_api_name,
1055                                         p_pkg_name => g_pkg_name) THEN
1056         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1057     END IF;
1058 
1059     --  Initialize API RETURN status to success
1060     x_return_status := FND_API.G_RET_STS_SUCCESS;
1061 
1062     BEGIN
1063 
1064         INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1065                                        p_procedure_name => l_api_name,
1066                                        p_debug_info     => 'Before calling INL_LANDEDCOST_PUB.Get_LandedCost');
1067 
1071                                            x_msg_count                  => l_msg_count,
1068         INL_LANDEDCOST_PUB.Get_LandedCost (p_api_version                => l_api_version,
1069                                              p_ship_line_id               => p_ship_line_id,
1070                                            x_return_status              => l_return_status,
1072                                            x_msg_data                   => l_msg_data,
1073                                            x_organization_id            => l_organization_id,
1074                                            x_inventory_item_id          => l_inventory_item_id,
1075                                            x_primary_qty                => l_primary_qty,
1076                                            x_primary_uom_code           => l_primary_uom_code,
1077                                            x_estimated_item_price       => l_estimated_item_price,
1078                                            x_estimated_charges          => l_estimated_charges,
1079                                            x_estimated_taxes            => l_estimated_taxes,
1080                                            x_estimated_unit_landed_cost => l_estimated_unit_landed_cost,
1081                                            x_actual_item_price          => l_actual_item_price,
1082                                            x_actual_charges             => l_actual_charges,
1083                                            x_actual_taxes               => l_actual_taxes,
1084                                            x_actual_unit_landed_cost    => x_actual_unit_landed_cost);
1085 
1086         INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1087                                        p_procedure_name => l_api_name,
1088                                        p_debug_info     => 'After calling INL_LANDEDCOST_PUB.Get_LandedCost');
1089 
1090         INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1091                                       p_procedure_name => l_api_name,
1092                                       p_var_name => 'INL_LANDEDCOST_PUB.Get_LandedCost Return Status: ',
1093                                       p_var_value => l_return_status);
1094 
1095         -- If any errors happen abort the process.
1096         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1097           RAISE FND_API.G_EXC_ERROR;
1098         ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1099           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1100         END IF;
1101     END;
1102     -- Standard check of p_commit.
1103     IF FND_API.To_Boolean (p_commit) THEN
1104         COMMIT WORK;
1105     END IF;
1106 
1107     -- Get message count AND IF count is 1, get message info.
1108     FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1109                                 p_count => x_msg_count,
1110                                 p_data => x_msg_data) ;
1111 
1112     -- End of Procedure Logging
1113     INL_LOGGING_PVT.Log_EndProc ( p_module_name => g_module_name,
1114                                   p_procedure_name => l_api_name) ;
1115 
1116 EXCEPTION
1117     WHEN FND_API.G_EXC_ERROR THEN
1118         -- Standard Expected Error Logging
1119         INL_LOGGING_PVT.Log_ExpecError ( p_module_name => g_module_name,
1120                                          p_procedure_name => l_api_name) ;
1121         ROLLBACK TO Get_LandedCost_GRP;
1122         x_return_status := FND_API.G_RET_STS_ERROR;
1123         FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1124                                     p_count => x_msg_count,
1125                                     p_data => x_msg_data) ;
1126     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1127         -- Standard Unexpected Error Logging
1128         INL_LOGGING_PVT.Log_UnexpecError ( p_module_name => g_module_name,
1129                                            p_procedure_name => l_api_name) ;
1130         ROLLBACK TO Get_LandedCost_GRP;
1131         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1132         FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1133                                     p_count => x_msg_count,
1134                                     p_data => x_msg_data) ;
1135     WHEN OTHERS THEN
1136         -- Standard Unexpected Error Logging
1137         INL_LOGGING_PVT.Log_UnexpecError ( p_module_name => g_module_name,
1138                                            p_procedure_name => l_api_name) ;
1139         ROLLBACK TO Get_LandedCost_GRP;
1140         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1141         IF FND_MSG_PUB.Check_Msg_Level (p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1142             FND_MSG_PUB.Add_Exc_Msg ( p_pkg_name => g_pkg_name,
1143                                       p_procedure_name => l_api_name) ;
1144         END IF;
1145         FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1146                                     p_count => x_msg_count,
1147                                     p_data => x_msg_data);
1148 END Get_LandedCost;
1149 
1150 
1151 -- API name   : Get_LandedCost
1152 -- Type       : Group
1153 -- Function   : Update RCV Transactions Interface with
1154 --              the calculated Unit Landed Cost.
1155 --
1156 -- Pre-reqs   : None
1157 -- Parameters :
1158 -- IN         : p_rti_rec         IN RCV_LCM_WEB_SERVICE.rti_cur_table
1159 --              p_group_id        IN NUMBER
1160 --              p_processing_mode IN VARCHAR2
1161 --
1162 --
1163 -- Version    : Current version 1.0
1164 --
1165 -- Notes      :
1166 PROCEDURE  Get_LandedCost (p_rti_rec         IN RCV_LCM_WEB_SERVICE.rti_cur_table,
1167                            p_group_id        IN NUMBER,
1168                            p_processing_mode IN VARCHAR2)
1169 IS
1170 
1171      l_api_name                   CONSTANT VARCHAR2(30) := 'Get_LandedCost';
1172      l_api_version                CONSTANT NUMBER := 1.0;
1173      l_return_status              VARCHAR2(100);
1174      l_msg_count                  NUMBER;
1178 BEGIN
1175      l_msg_data                   VARCHAR2(2000);
1176      l_actual_unit_landed_cost    NUMBER;
1177 
1179 
1180     -- Standard Beginning of Procedure/Function Logging
1181     INL_LOGGING_PVT.Log_BeginProc (p_module_name => g_module_name,
1182                                    p_procedure_name => l_api_name) ;
1183 
1184     FOR i IN 1..p_rti_rec.COUNT LOOP
1185         INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1186                                       p_procedure_name => l_api_name,
1187                                       p_var_name => 'p_rti_rec(i).line_id',
1188                                       p_var_value => p_rti_rec(i).line_id);
1189 
1190         INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1191                                        p_procedure_name => l_api_name,
1192                                        p_debug_info     => 'Before calling INL_LANDEDCOST_PUB.Get_LandedCost');
1193 
1194         Get_LandedCost (p_api_version             => l_api_version,
1195                         p_init_msg_list           => FND_API.G_FALSE,
1196                         p_commit                  => FND_API.G_FALSE,
1197                         p_ship_line_id            => p_rti_rec(i).line_id,
1198                         x_return_status           => l_return_status,
1199                         x_msg_count               => l_msg_count,
1200                         x_msg_data                => l_msg_data,
1201                         x_actual_unit_landed_cost => l_actual_unit_landed_cost);
1202 
1203         INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1204                                        p_procedure_name => l_api_name,
1205                                        p_debug_info     => 'After calling INL_LANDEDCOST_PUB.Get_LandedCost');
1206 
1207         INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1208                                       p_procedure_name => l_api_name,
1209                                       p_var_name => 'l_actual_unit_landed_cost',
1210                                       p_var_value => l_actual_unit_landed_cost);
1211 
1212         IF (l_actual_unit_landed_cost IS NOT NULL) THEN
1213             INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1214                                            p_procedure_name => l_api_name,
1215                                            p_debug_info     => 'Updating RTIs with the new landed cost');
1216 
1217             UPDATE rcv_transactions_interface
1218             SET   unit_landed_cost = l_actual_unit_landed_cost
1219             WHERE processing_status_code  = 'RUNNING'
1220             AND transaction_status_code = 'PENDING'
1221             AND processing_mode_code = p_processing_mode
1222             AND group_id = nvl(p_group_id, group_id)
1223             AND mo_global.check_access(org_id) = 'Y'
1224             AND processing_mode_code = p_processing_mode
1225             AND source_document_code = 'PO'
1226             AND transaction_type NOT IN('SHIP', 'RECEIVE', 'ACCEPT', 'REJECT','TRANSFER','UNORDERED')
1227             AND lcm_shipment_line_id IS NOT NULL
1228             AND lcm_shipment_line_id =  p_rti_rec(i).line_id;
1229 
1230             INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1231                                           p_procedure_name => l_api_name,
1232                                           p_var_name => 'RTIs updated',
1233                                           p_var_value => sql%rowcount);
1234         ELSE
1235             INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1236                                            p_procedure_name => l_api_name,
1237                                            p_debug_info     => 'Setting RTIs to ERROR. Landed Cost is null.');
1238 
1239             UPDATE rcv_transactions_interface rti
1240             SET   unit_landed_cost = NULL,
1241                   processing_status_code  = 'ERROR'
1242             WHERE processing_status_code  = 'RUNNING'
1243             AND transaction_status_code = 'PENDING'
1244             AND processing_mode_code = p_processing_mode
1245             AND group_id = nvl(p_group_id, group_id)
1246             AND processing_mode_code = p_processing_mode
1247             AND mo_global.check_access(org_id) = 'Y'
1248             AND source_document_code = 'PO'
1249             AND transaction_type NOT IN('SHIP', 'RECEIVE', 'ACCEPT', 'REJECT','TRANSFER','UNORDERED')
1250             AND lcm_shipment_line_id IS NOT NULL
1251             AND lcm_shipment_line_id =  p_rti_rec(i).line_id;
1252         END IF;
1253     END LOOP;
1254 
1255     -- End of Procedure Logging
1256     INL_LOGGING_PVT.Log_EndProc ( p_module_name => g_module_name,
1257                                   p_procedure_name => l_api_name) ;
1258 EXCEPTION
1259     WHEN OTHERS THEN
1260         INL_LOGGING_PVT.Log_UnexpecError (p_module_name    => g_module_name,
1261                                           p_procedure_name => l_api_name);
1262         INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1263                                        p_procedure_name => l_api_name,
1264                                        p_debug_info     => 'the error is:  ' || sqlcode ||' '||substr(SQLERRM, 1, 1000));
1265         UPDATE rcv_transactions_interface
1266         SET    processing_status_code  = 'ERROR'
1267         WHERE  processing_status_code  = 'RUNNING'
1268         AND    transaction_status_code = 'PENDING'
1269         AND    mo_global.check_access(org_id) = 'Y'
1270         AND    processing_mode_code = p_processing_mode
1271         AND    group_id = nvl(p_group_id, group_id)
1272         AND    source_document_code = 'PO'
1273         AND    transaction_type NOT IN ('SHIP', 'RECEIVE', 'ACCEPT', 'REJECT','TRANSFER','UNORDERED')
1274         AND    lcm_shipment_line_id IS NOT NULL;
1275 
1276         INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1277                                        p_procedure_name => l_api_name,
1281 -- Utility    : Call_UpdateRCV
1278                                        p_debug_info     => sql%rowcount || ' RTIs updated to Error');
1279 END Get_LandedCost;
1280 
1282 -- Type       : Group
1283 -- Function   : Update RCV tables with the calculated Unit
1284 --              Landed Cost and its related LCM Shipment Line Id.
1285 --
1286 -- Pre-reqs   : None
1287 -- Parameters :
1288 -- IN         : p_ship_lines_table     IN ship_lines_table
1289 --
1290 -- OUT          x_return_status  OUT NOCOPY VARCHAR2
1291 --
1292 -- Version    : Current version 1.0
1293 --
1294 -- Notes      :
1295 PROCEDURE Call_UpdateRCV (p_ship_lines_table IN ship_lines_table,
1296                           x_return_status  OUT NOCOPY VARCHAR2)
1297 IS
1298 
1299 
1300     l_proc_name CONSTANT VARCHAR2(30) := 'Call_UpdateRCV';
1301     l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1302 
1303     l_rti_lc_info_table  RCV_UPDATE_RTI_LC.rcv_cost_table := RCV_UPDATE_RTI_LC.rcv_cost_table();
1304     l_rcv_int_table  RCV_UPDATE_RTI_LC.lcm_int_table := RCV_UPDATE_RTI_LC.lcm_int_table();
1305 
1306 BEGIN
1307 
1308     --  Initialize return status to success
1309     x_return_status := FND_API.G_RET_STS_SUCCESS;
1310 
1311     -- Standard Beginning of Procedure/Function Logging
1312     INL_LOGGING_PVT.Log_BeginProc (p_module_name    => g_module_name,
1313                                   p_procedure_name => l_proc_name);
1314 
1315     INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1316                                   p_procedure_name => l_proc_name,
1317                                   p_var_name => 'p_ship_lines_table.COUNT',
1318                                   p_var_value => p_ship_lines_table.COUNT);
1319 
1320     FOR i IN 1..p_ship_lines_table.COUNT LOOP
1321             l_rti_lc_info_table.EXTEND;
1322             l_rti_lc_info_table(i).interface_id := p_ship_lines_table(i).interface_source_line_id;
1323             l_rti_lc_info_table(i).lcm_shipment_line_id := p_ship_lines_table(i).ship_line_id;
1324             l_rti_lc_info_table(i).unit_landed_cost := p_ship_lines_table(i).unit_landed_cost;
1325     END LOOP;
1326 
1327     INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1328                                    p_procedure_name => l_proc_name,
1329                                    p_debug_info     => 'Before calling RCV_UPDATE_RTI_LC.Update_RTI: ' || to_char(SYSDATE,'DD-MON-YYYY HH:MI:SS'));
1330 
1331     RCV_UPDATE_RTI_LC.Update_RTI(p_int_rec => l_rti_lc_info_table,
1332                                  x_lcm_int => l_rcv_int_table);
1333 
1334     INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1335                                    p_procedure_name => l_proc_name,
1336                                    p_debug_info     => 'After calling RCV_UPDATE_RTI_LC.Update_RTI: ' || to_char(SYSDATE,'DD-MON-YYYY HH:MI:SS'));
1337 
1338     -- Standard End of Procedure/Function Logging
1339     INL_logging_pvt.Log_EndProc (p_module_name    => g_module_name,
1340                                  p_procedure_name => l_proc_name);
1341 
1342 EXCEPTION
1343     WHEN FND_API.G_EXC_ERROR THEN
1344         -- Standard Expected Error Logging
1345         INL_LOGGING_PVT.Log_ExpecError (
1346             p_module_name    => g_module_name,
1347             p_procedure_name => l_proc_name);
1348         x_return_status := FND_API.G_RET_STS_ERROR;
1349     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1350         -- Standard Unexpected Error Logging
1351         INL_LOGGING_PVT.Log_UnexpecError (
1352             p_module_name    => g_module_name,
1353             p_procedure_name => l_proc_name);
1354         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1355     WHEN OTHERS THEN
1356         -- Standard Unexpected Error Logging
1357         INL_LOGGING_PVT.Log_UnexpecError (
1358             p_module_name    => g_module_name,
1359             p_procedure_name => l_proc_name);
1360         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1361         IF FND_MSG_PUB.Check_Msg_Level(p_message_level =>FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1362           FND_MSG_PUB.Add_Exc_Msg(
1363               p_pkg_name       => g_pkg_name,
1364               p_procedure_name => l_proc_name);
1365         END IF;
1366 END Call_UpdateRCV;
1367 
1368 -- API name : Call_StampLC
1369 -- Type       : Group
1370 -- Function   : Call Stamp LC with the calculated Unit
1371 --              Landed Cost and its related LCM Shipment Line Id.
1372 --
1373 -- Pre-reqs   : None
1374 -- Parameters :
1375 -- IN         : p_api_version    IN NUMBER,
1376 --              p_init_msg_list  IN VARCHAR2 := FND_API.G_FALSE
1377 --              p_commit         IN VARCHAR2 := FND_API.G_FALSE
1378 --              p_ship_header_id IN NUMBER
1379 --
1380 -- OUT          x_return_status  OUT NOCOPY VARCHAR2
1381 --              x_msg_count      OUT NOCOPY NUMBER
1382 --              x_msg_data       OUT NOCOPY VARCHAR2
1383 --
1384 -- Version    : Current version 1.0
1385 --
1386 -- Notes      :
1387 PROCEDURE Call_StampLC (p_api_version    IN NUMBER,
1388                         p_init_msg_list  IN VARCHAR2 := FND_API.G_FALSE,
1389                         p_commit         IN VARCHAR2 := FND_API.G_FALSE,
1390                         p_ship_header_id IN NUMBER,
1391                         x_return_status  OUT NOCOPY VARCHAR2,
1392                         x_msg_count      OUT NOCOPY NUMBER,
1393                         x_msg_data       OUT NOCOPY VARCHAR2) IS
1394 
1395     l_api_name         CONSTANT VARCHAR2(30) := 'Call_StampLC';
1396     l_api_version      CONSTANT NUMBER := 1.0;
1397     l_return_status    VARCHAR2(1);
1398     l_msg_count        NUMBER;
1399     l_msg_data         VARCHAR2(2000);
1400     l_ship_lines_table ship_lines_table;
1401 
1402 BEGIN
1403 
1404     -- Standard Beginning of Procedure/Function Logging
1408     -- Standard Start of API savepoint
1405     INL_LOGGING_PVT.Log_BeginProc (p_module_name => g_module_name,
1406                                    p_procedure_name => l_api_name) ;
1407 
1409     SAVEPOINT Call_StampLC_GRP;
1410 
1411     -- Initialize message list IF p_init_msg_list is SET to TRUE.
1412     IF FND_API.to_Boolean (p_init_msg_list) THEN
1413         FND_MSG_PUB.initialize;
1414     END IF;
1415 
1416     -- Check FOR call compatibility.
1417     IF NOT FND_API.Compatible_API_Call (p_current_version_number => l_api_version,
1418                                         p_caller_version_number => p_api_version,
1419                                         p_api_name => l_api_name,
1420                                         p_pkg_name => g_pkg_name) THEN
1421         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1422     END IF;
1423 
1424     --  Initialize API RETURN status to success
1425     x_return_status := FND_API.G_RET_STS_SUCCESS;
1426 
1427     OPEN c_ship_lines(p_ship_header_id, 'PO', 'RCV_TRANSACTIONS_INTERFACE');
1428     FETCH c_ship_lines BULK COLLECT INTO l_ship_lines_table;
1429 
1430     IF c_ship_lines%ISOPEN THEN
1431       CLOSE c_ship_lines;
1432     END IF;
1433 
1434     INL_LOGGING_PVT.Log_Statement (p_module_name => g_module_name,
1435                                   p_procedure_name => l_api_version,
1436                                   p_debug_info => 'Before calling Call_UpdateRCV');
1437 
1438     Call_UpdateRCV (p_ship_lines_table => l_ship_lines_table,
1439                     x_return_status  => l_return_status);
1440 
1441     INL_LOGGING_PVT.Log_Statement (p_module_name => g_module_name,
1442                                    p_procedure_name => l_api_name,
1443                                    p_debug_info => 'After calling Call_UpdateRCV');
1444 
1445     INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1446                                   p_procedure_name => l_api_name,
1447                                   p_var_name => 'Call_UpdateRCV l_return_status: ',
1448                                   p_var_value => l_return_status);
1449 
1450     -- If any errors happen abort the process.
1451     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1452         RAISE FND_API.G_EXC_ERROR;
1453     ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1454         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1455     END IF;
1456 
1457       -- Standard check of p_commit.
1458     IF FND_API.To_Boolean (p_commit) THEN
1459         COMMIT WORK;
1460     END IF;
1461 
1462     -- Get message count AND IF count is 1, get message info.
1463     FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1464                                 p_count => x_msg_count,
1465                                 p_data => x_msg_data);
1466 
1467     -- End of Procedure Logging
1468     INL_LOGGING_PVT.Log_EndProc ( p_module_name => g_module_name,
1469                                   p_procedure_name => l_api_name);
1470 EXCEPTION
1471 WHEN FND_API.G_EXC_ERROR THEN
1472     -- Standard Expected Error Logging
1473     INL_LOGGING_PVT.Log_ExpecError ( p_module_name => g_module_name,
1474                                      p_procedure_name => l_api_name);
1475     ROLLBACK TO Call_StampLC_GRP;
1476     x_return_status := FND_API.G_RET_STS_ERROR;
1477     FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1478                                 p_count => x_msg_count,
1479                                 p_data => x_msg_data);
1480 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1481     -- Standard Unexpected Error Logging
1482     INL_LOGGING_PVT.Log_UnexpecError ( p_module_name => g_module_name,
1483                                        p_procedure_name => l_api_name);
1484     ROLLBACK TO Call_StampLC_GRP;
1485     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1486     FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1487                                 p_count => x_msg_count,
1488                                 p_data => x_msg_data) ;
1489 WHEN OTHERS THEN
1490     -- Standard Unexpected Error Logging
1491     INL_LOGGING_PVT.Log_UnexpecError ( p_module_name => g_module_name,
1492                                        p_procedure_name => l_api_name) ;
1493     ROLLBACK TO Call_StampLC_GRP;
1494     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1495     IF FND_MSG_PUB.Check_Msg_Level (p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1496         FND_MSG_PUB.Add_Exc_Msg ( p_pkg_name => g_pkg_name,
1497                                   p_procedure_name => l_api_name) ;
1498     END IF;
1499     FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1500                                 p_count => x_msg_count,
1501                                 p_data => x_msg_data) ;
1502 END Call_StampLC;
1503 
1504 ---
1505 -- Utility name: Call_InsertRCV
1506 -- Type       : Group
1507 -- Function   : Call RCV code to insert in RCV tables
1508 --
1509 -- Pre-reqs   : None
1510 -- Parameters :
1511 -- IN         : p_ship_header_id IN NUMBER
1512 --              p_rti_rec        IN ship_lines_table
1513 --
1514 -- OUT          x_return_status  OUT NOCOPY VARCHAR2
1515 --
1516 -- Version    : Current version 1.0
1517 --
1518 -- Notes      :
1519 PROCEDURE Call_InsertRCV(p_ship_header_id IN NUMBER,
1520                          p_ship_lines_table IN ship_lines_table,
1521                          x_return_status  OUT NOCOPY VARCHAR2)
1522 IS
1523     l_proc_name CONSTANT VARCHAR2(30) := 'Call_InsertRCV';
1524     l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1525     l_ship_lines_table RCV_INSERT_FROM_INL.rti_rec_table:= RCV_INSERT_FROM_INL.rti_rec_table();
1526 BEGIN
1527 
1528     --  Initialize return status to success
1529     x_return_status := FND_API.G_RET_STS_SUCCESS;
1530 
1531     -- Standard Beginning of Procedure/Function Logging
1532     INL_LOGGING_PVT.Log_BeginProc (p_module_name    => g_module_name,
1536                                   p_procedure_name => l_proc_name,
1533                                   p_procedure_name => l_proc_name);
1534 
1535     INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1537                                   p_var_name => 'p_ship_lines_table.COUNT',
1538                                   p_var_value => p_ship_lines_table.COUNT);
1539 
1540     FOR i IN 1..p_ship_lines_table.COUNT LOOP
1541 
1542       INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1543                                     p_procedure_name => l_proc_name,
1544                                     p_var_name => 'l_ship_lines_table.EXTEND',
1545                                     p_var_value => 'l_ship_lines_table.EXTEND');
1546       l_ship_lines_table.EXTEND;
1547       l_ship_lines_table(i).ship_line_id := p_ship_lines_table(i).ship_line_id;
1548       l_ship_lines_table(i).ship_line_source_id := p_ship_lines_table(i).ship_line_source_id;
1549       l_ship_lines_table(i).inventory_item_id := p_ship_lines_table(i).inventory_item_id;
1550       l_ship_lines_table(i).txn_qty := p_ship_lines_table(i).txn_qty;
1551       l_ship_lines_table(i).txn_uom_code := p_ship_lines_table(i).txn_uom_code;
1552       l_ship_lines_table(i).primary_qty := p_ship_lines_table(i).primary_qty;
1553       l_ship_lines_table(i).primary_uom_code := p_ship_lines_table(i).primary_uom_code;
1554       l_ship_lines_table(i).currency_code := p_ship_lines_table(i).currency_code;
1555       l_ship_lines_table(i).currency_conversion_type := p_ship_lines_table(i).currency_conversion_type;
1556       l_ship_lines_table(i).currency_conversion_date := p_ship_lines_table(i).currency_conversion_date;
1557       l_ship_lines_table(i).currency_conversion_rate := p_ship_lines_table(i).currency_conversion_rate;
1558       l_ship_lines_table(i).party_id := p_ship_lines_table(i).party_id;
1559       l_ship_lines_table(i).party_site_id := p_ship_lines_table(i).party_site_id;
1560       l_ship_lines_table(i).src_type_code := p_ship_lines_table(i).src_type_code;
1561       l_ship_lines_table(i).ship_line_group_id := p_ship_lines_table(i).ship_line_group_id;
1562       l_ship_lines_table(i).organization_id := p_ship_lines_table(i).organization_id;
1563       l_ship_lines_table(i).location_id := p_ship_lines_table(i).location_id;
1564       l_ship_lines_table(i).org_id := p_ship_lines_table(i).org_id;
1565       l_ship_lines_table(i).item_description := p_ship_lines_table(i).item_description;
1566       l_ship_lines_table(i).item := p_ship_lines_table(i).item;
1567       l_ship_lines_table(i).interface_source_code := p_ship_lines_table(i).interface_source_code;
1568       l_ship_lines_table(i).interface_source_table := p_ship_lines_table(i).interface_source_table;
1569       l_ship_lines_table(i).interface_source_line_id := p_ship_lines_table(i).interface_source_line_id;
1570       l_ship_lines_table(i).unit_landed_cost := p_ship_lines_table(i).unit_landed_cost;
1571     END LOOP;
1572 
1573     IF l_ship_lines_table.FIRST IS NOT NULL THEN
1574 
1575         INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1576                                        p_procedure_name => l_proc_name,
1577                                        p_debug_info     => 'Before call RCV_INSERT_FROM_INL.insert_rcv_tables');
1578 
1579         RCV_INSERT_FROM_INL.insert_rcv_tables(p_int_rec => l_ship_lines_table,
1580                                               p_ship_header_id => p_ship_header_id);
1581 
1582         INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1583                                        p_procedure_name => l_proc_name,
1584                                        p_debug_info     => 'After call RCV_INSERT_FROM_INL.insert_rcv_tables');
1585     END IF;
1586 
1587     -- Standard End of Procedure/Function Logging
1588     INL_logging_pvt.Log_EndProc (p_module_name    => g_module_name,
1589                                  p_procedure_name => l_proc_name);
1590 
1591 EXCEPTION
1592     WHEN FND_API.G_EXC_ERROR THEN
1593         -- Standard Expected Error Logging
1594         INL_LOGGING_PVT.Log_ExpecError(p_module_name    => g_module_name,
1595                                        p_procedure_name => l_proc_name);
1596         x_return_status := FND_API.G_RET_STS_ERROR;
1597     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1598         -- Standard Unexpected Error Logging
1599         INL_LOGGING_PVT.Log_UnexpecError(p_module_name    => g_module_name,
1600                                          p_procedure_name => l_proc_name);
1601         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1602     WHEN OTHERS THEN
1603         -- Standard Unexpected Error Logging
1604         INL_LOGGING_PVT.Log_UnexpecError(p_module_name    => g_module_name,
1605                                          p_procedure_name => l_proc_name);
1606         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1607         IF FND_MSG_PUB.Check_Msg_Level(p_message_level =>FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1608           FND_MSG_PUB.Add_Exc_Msg(p_pkg_name       => g_pkg_name,
1609                                   p_procedure_name => l_proc_name);
1610         END IF;
1611 END Call_InsertRCV;
1612 
1613 -- API name   : Export_ToRCV
1614 -- Type       : Group
1615 -- Function   : Format information based on LCM Shipments
1616 --              and call Call_InsertRCV utility
1617 --
1618 -- Pre-reqs   : None
1619 -- Parameters :
1620 -- IN         : p_api_version     IN NUMBER,
1621 --              p_init_msg_list   IN VARCHAR2 := FND_API.G_FALSE
1622 --              p_commit          IN VARCHAR2 := FND_API.G_FALSE
1623 --              p_ship_header_id  IN NUMBER
1624 --
1625 -- OUT          x_return_status   OUT NOCOPY VARCHAR2
1626 --              x_msg_count       OUT NOCOPY NUMBER
1627 --              x_msg_data        OUT NOCOPY VARCHAR2
1628 --
1629 -- Version    : Current version 1.0
1630 --
1631 -- Notes      :
1632 
1633 PROCEDURE Export_ToRCV (p_api_version    IN NUMBER,
1634                         p_init_msg_list  IN VARCHAR2 := FND_API.G_FALSE,
1635                         p_commit         IN VARCHAR2 := FND_API.G_FALSE,
1639                         x_msg_data       OUT NOCOPY VARCHAR2)
1636                         p_ship_header_id IN NUMBER,
1637                         x_return_status  OUT NOCOPY VARCHAR2,
1638                         x_msg_count      OUT NOCOPY NUMBER,
1640 IS
1641 
1642     l_api_name         CONSTANT VARCHAR2(30) := 'Export_ToRCV';
1643     l_api_version      CONSTANT NUMBER := 1.0;
1644     l_return_status    VARCHAR2(1);
1645     l_msg_count        NUMBER;
1646     l_msg_data         VARCHAR2(2000);
1647     l_ship_lines_table ship_lines_table;
1648 
1649 BEGIN
1650 
1651     -- Standard Beginning of Procedure/Function Logging
1652     INL_LOGGING_PVT.Log_BeginProc (p_module_name => g_module_name,
1653                                    p_procedure_name => l_api_name);
1654 
1655     -- Standard Start of API savepoint
1656     SAVEPOINT Export_ToRCV_GRP;
1657 
1658     -- Initialize message list IF p_init_msg_list is SET to TRUE.
1659     IF FND_API.to_Boolean (p_init_msg_list) THEN
1660         FND_MSG_PUB.initialize;
1661     END IF;
1662 
1663     -- Check FOR call compatibility.
1664     IF NOT FND_API.Compatible_API_Call (p_current_version_number => l_api_version,
1665                                         p_caller_version_number => p_api_version,
1666                                         p_api_name => l_api_name,
1667                                         p_pkg_name => g_pkg_name) THEN
1668         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1669     END IF;
1670 
1671     --  Initialize API RETURN status to success
1672     x_return_status := FND_API.G_RET_STS_SUCCESS;
1673 
1674     INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1675                                   p_procedure_name => l_api_name,
1676                                   p_var_name => 'p_ship_header_id',
1677                                   p_var_value => p_ship_header_id);
1678 
1679     OPEN c_ship_lines(p_ship_header_id, 'PO', NULL);
1680     FETCH c_ship_lines BULK COLLECT INTO l_ship_lines_table;
1681 
1682     IF l_ship_lines_table.FIRST IS NOT NULL THEN
1683         INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1684                                        p_procedure_name => l_api_name,
1685                                        p_debug_info     => 'Before call Call_InsertRCV');
1686 
1687         Call_InsertRCV(p_ship_header_id => p_ship_header_id,
1688                        p_ship_lines_table => l_ship_lines_table,
1689                        x_return_status  => l_return_status);
1690 
1691        -- If any errors happen abort the process.
1692         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1693           RAISE FND_API.G_EXC_ERROR;
1694         ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1695           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1696         END IF;
1697 
1698         INL_LOGGING_PVT.Log_Statement (p_module_name    => g_module_name,
1699                                        p_procedure_name => l_api_name,
1700                                        p_debug_info     => 'After call Call_InsertRCV');
1701 
1702         INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1703                                       p_procedure_name => l_api_name,
1704                                       p_var_name => 'Call_InsertRCV l_return_status:',
1705                                       p_var_value => l_return_status);
1706     END IF;
1707 
1708     IF c_ship_lines%ISOPEN THEN
1709         CLOSE c_ship_lines;
1710     END IF;
1711 
1712     -- Standard check of p_commit.
1713     IF FND_API.To_Boolean (p_commit) THEN
1714         COMMIT WORK;
1715     END IF;
1716     -- Get message count AND IF count is 1, get message info.
1717     FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
1718                               p_count => x_msg_count,
1719                               p_data => x_msg_data) ;
1720     -- End of Procedure Logging
1721     INL_LOGGING_PVT.Log_EndProc(p_module_name => g_module_name,
1722                                 p_procedure_name => l_api_name) ;
1723 EXCEPTION
1724 WHEN FND_API.G_EXC_ERROR THEN
1725     -- Standard Expected Error Logging
1726     INL_LOGGING_PVT.Log_ExpecError(p_module_name => g_module_name,
1727                                    p_procedure_name => l_api_name) ;
1728     ROLLBACK TO Export_ToRCV_GRP;
1729     x_return_status := FND_API.G_RET_STS_ERROR;
1730     FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
1731                               p_count => x_msg_count,
1732                               p_data => x_msg_data) ;
1733 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1734     -- Standard Unexpected Error Logging
1735     INL_LOGGING_PVT.Log_UnexpecError(p_module_name => g_module_name,
1736                                      p_procedure_name => l_api_name) ;
1737     ROLLBACK TO Export_ToRCV_GRP;
1738     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1739     FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
1740                               p_count => x_msg_count,
1741                               p_data => x_msg_data) ;
1742 WHEN OTHERS THEN
1743     -- Standard Unexpected Error Logging
1744     INL_LOGGING_PVT.Log_UnexpecError(p_module_name => g_module_name,
1745                                      p_procedure_name => l_api_name) ;
1746     ROLLBACK TO Export_ToRCV_GRP;
1747     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1748     IF FND_MSG_PUB.Check_Msg_Level (p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1749         FND_MSG_PUB.Add_Exc_Msg(p_pkg_name => g_pkg_name,
1750                                 p_procedure_name => l_api_name) ;
1751     END IF;
1752     FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
1753                               p_count => x_msg_count,
1754                               p_data => x_msg_data) ;
1755 END Export_ToRCV;
1756 
1757 -- API name   : Export_ToCST
1758 -- Type       : Group
1762 -- Parameters :
1759 -- Function   : Controls the creation of Cost Adjustment Transactions
1760 --              to be processed by Inventory/Costing applications.
1761 -- Pre-reqs   : None
1763 -- IN         : p_api_version     IN NUMBER,
1764 --              p_init_msg_list   IN VARCHAR2 := FND_API.G_FALSE
1765 --              p_commit          IN VARCHAR2 := FND_API.G_FALSE
1766 --              p_ship_header_id  IN NUMBER
1767 -- OUT          x_return_status   OUT NOCOPY VARCHAR2
1768 --              x_msg_count       OUT NOCOPY NUMBER
1769 --              x_msg_data        OUT NOCOPY VARCHAR2
1770 --
1771 -- Version    : Current version 1.0
1772 --
1773 -- Notes      :
1774 PROCEDURE Export_ToCST (p_api_version    IN NUMBER,
1775                         p_init_msg_list  IN VARCHAR2 := FND_API.G_FALSE,
1776                         p_commit         IN VARCHAR2 := FND_API.G_FALSE,
1777                         p_ship_header_id IN NUMBER,
1778                         x_return_status  OUT NOCOPY VARCHAR2,
1779                         x_msg_count      OUT NOCOPY NUMBER,
1780                         x_msg_data       OUT NOCOPY VARCHAR2) IS
1781 
1782     CURSOR c_ship_ln_adj IS
1783       SELECT ish.organization_id,
1784              isl.ship_line_group_id,
1785              isl.ship_line_id,
1786              isl.inventory_item_id,
1787              isl.parent_ship_line_id,
1788              isl.ship_line_num,
1789              rtr.transaction_id,
1790              ish.adjustment_num
1791         FROM inl_ship_headers ish,
1792              inl_ship_lines isl,
1793              rcv_transactions rtr
1794        WHERE ish.ship_header_id = isl.ship_header_id
1795          AND rtr.po_line_location_id = isl.ship_line_source_id
1796          AND rtr.lcm_shipment_line_id = isl.ship_line_id
1797          AND rtr.parent_transaction_id = -1
1798          AND ish.ship_header_id = p_ship_header_id
1799     ORDER BY isl.ship_line_id;
1800 
1801     TYPE ship_ln_adj_type IS TABLE OF c_ship_ln_adj%ROWTYPE;
1802     ship_ln_list ship_ln_adj_type;
1803 
1804     l_api_name CONSTANT VARCHAR2 (30) := 'Export_ToCST';
1805     l_api_version CONSTANT NUMBER := 1.0;
1806     l_return_status VARCHAR2(1);
1807     l_msg_count NUMBER;
1808     l_msg_data VARCHAR2 (2000);
1809     l_debug_info VARCHAR2 (200);
1810     l_current_date DATE;
1811     l_prior_landed_cost NUMBER;
1812     l_new_landed_cost NUMBER;
1813 
1814 BEGIN
1815 
1816     -- Standard Beginning of Procedure/Function Logging
1817     INL_LOGGING_PVT.Log_BeginProc (p_module_name => g_module_name,
1818                                    p_procedure_name => l_api_name) ;
1819 
1820     -- Standard Start of API savepoint
1821     SAVEPOINT Export_ToCST_GRP;
1822 
1823     -- Initialize message list IF p_init_msg_list is SET to TRUE.
1824     IF FND_API.to_Boolean (p_init_msg_list) THEN
1825         FND_MSG_PUB.initialize;
1826     END IF;
1827 
1828     -- Check FOR call compatibility.
1829     IF NOT FND_API.Compatible_API_Call (p_current_version_number => l_api_version,
1830                                         p_caller_version_number => p_api_version,
1831                                         p_api_name => l_api_name,
1832                                         p_pkg_name => g_pkg_name) THEN
1833         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1834     END IF;
1835 
1836     --  Initialize API RETURN status to success
1837     x_return_status := FND_API.G_RET_STS_SUCCESS;
1838 
1839     OPEN c_ship_ln_adj;
1840     FETCH c_ship_ln_adj BULK COLLECT INTO ship_ln_list;
1841     CLOSE c_ship_ln_adj;
1842 
1843     FOR i IN ship_ln_list.FIRST .. ship_ln_list.LAST
1844     LOOP
1845         INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1846                                   p_procedure_name => l_api_name,
1847                                   p_var_name => 'ship_ln_list(i).ship_line_id',
1848                                   p_var_value => ship_ln_list(i).ship_line_id);
1849 
1850         l_debug_info := 'Get the Prior Unit Landed Cost';
1851         INL_LOGGING_PVT.Log_Statement (p_module_name => g_module_name,
1852                                        p_procedure_name => l_api_name,
1853                                        p_debug_info => l_debug_info);
1854 
1855         -- Get the New Unit Landed Cost
1856         SELECT islv.unit_landed_cost
1857           INTO l_new_landed_cost
1858           FROM inl_shipln_landed_costs_v islv
1859          WHERE islv.adjustment_num      = ship_ln_list(i).adjustment_num
1860            AND islv.ship_header_id      = p_ship_header_id
1861            AND islv.ship_line_group_id  = ship_ln_list(i).ship_line_group_id --Bug 7678900
1862            AND islv.ship_line_num       = ship_ln_list(i).ship_line_num;
1863 
1864         -- Get the Prior Unit Landed Cost
1865         SELECT islv.unit_landed_cost
1866           INTO l_prior_landed_cost
1867           FROM inl_shipln_landed_costs_v islv
1868          WHERE islv.adjustment_num      = ship_ln_list(i).adjustment_num - 1
1869            AND islv.ship_header_id      = p_ship_header_id
1870            AND islv.ship_line_group_id  = ship_ln_list(i).ship_line_group_id  --Bug 7678900
1871            AND islv.ship_line_num       = ship_ln_list(i).ship_line_num;
1872 
1873         INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
1874                                   p_procedure_name => l_api_name,
1875                                   p_var_name => 'l_prior_landed_cost',
1876                                   p_var_value => l_prior_landed_cost);
1877 
1878         -- Just INSERT those line which IN some way have had their costs changed
1879         IF l_prior_landed_cost <> l_new_landed_cost THEN
1880             l_current_date := SYSDATE;
1881             l_debug_info := 'Insert INTO CST_LC_ADJ_INTERFACE TABLE';
1882             INL_LOGGING_PVT.Log_Statement (p_module_name => g_module_name,
1883                                            p_procedure_name => l_api_name,
1887                                               organization_id,
1884                                            p_debug_info => l_debug_info);
1885             INSERT INTO cst_lc_adj_interface (transaction_id,
1886                                               rcv_transaction_id,
1888                                               inventory_item_id,
1889                                               transaction_date,
1890                                               prior_landed_cost,
1891                                               new_landed_cost,
1892                                               process_status,
1893                                               process_phase,
1894                                               group_id,
1895                                               creation_date,
1896                                               created_by,
1897                                               last_update_date,
1898                                               last_updated_by,
1899                                               last_update_login,
1900                                               request_id,
1901                                               program_application_id,
1902                                               program_id,
1903                                               program_update_date)
1904                                        VALUES (NULL, -- transaction_id
1905                                               ship_ln_list(i).transaction_id,
1906                                               ship_ln_list(i).organization_id,
1907                                               ship_ln_list(i).inventory_item_id,
1908                                               l_current_date,
1909                                               l_prior_landed_cost,
1910                                               l_new_landed_cost,
1911                                               1,    --process_status (1 = Pending)
1912                                               1,    --process_phase  (1 = Pending)
1913                                               NULL, -- group_id
1914                                               l_current_date, -- creation_date
1915                                               FND_GLOBAL.user_id, -- created_by
1916                                               l_current_date, -- last_update_date
1917                                               FND_GLOBAL.user_id, --last_updated_by
1918                                               FND_GLOBAL.login_id, --last_update_login
1919                                               NULL,  --request_id,
1920                                               NULL,  --program_application_id,
1921                                               NULL,  --program_id,
1922                                               NULL); --program_update_date
1923         END IF;
1924     END LOOP;
1925 
1926     -- Standard check of p_commit.
1927     IF FND_API.To_Boolean (p_commit) THEN
1928         COMMIT WORK;
1929     END IF;
1930     -- Get message count AND IF count is 1, get message info.
1931     FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1932                                 p_count => x_msg_count,
1933                                 p_data => x_msg_data) ;
1934     -- End of Procedure Logging
1935     INL_LOGGING_PVT.Log_EndProc ( p_module_name => g_module_name,
1936                                   p_procedure_name => l_api_name) ;
1937 EXCEPTION
1938 WHEN FND_API.G_EXC_ERROR THEN
1939     -- Standard Expected Error Logging
1940     INL_LOGGING_PVT.Log_ExpecError ( p_module_name => g_module_name,
1941                                      p_procedure_name => l_api_name) ;
1942     ROLLBACK TO Export_ToCST_GRP;
1943     x_return_status := FND_API.G_RET_STS_ERROR;
1944     FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1945                                 p_count => x_msg_count,
1946                                 p_data => x_msg_data) ;
1947 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1948     -- Standard Unexpected Error Logging
1949     INL_LOGGING_PVT.Log_UnexpecError ( p_module_name => g_module_name,
1950                                        p_procedure_name => l_api_name) ;
1951     ROLLBACK TO Export_ToCST_GRP;
1952     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1953     FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1954                                 p_count => x_msg_count,
1955                                 p_data => x_msg_data) ;
1956 WHEN OTHERS THEN
1957     -- Standard Unexpected Error Logging
1958     INL_LOGGING_PVT.Log_UnexpecError ( p_module_name => g_module_name,
1959                                        p_procedure_name => l_api_name) ;
1960     ROLLBACK TO Export_ToCST_GRP;
1961     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1962     IF FND_MSG_PUB.Check_Msg_Level (p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1963         FND_MSG_PUB.Add_Exc_Msg ( p_pkg_name => g_pkg_name,
1964                                   p_procedure_name => l_api_name) ;
1965     END IF;
1966     FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.g_false,
1967                                 p_count => x_msg_count,
1968                                 p_data => x_msg_data) ;
1969 END Export_ToCST;
1970 
1971 
1972 -- API name   : Get_CurrencyInfo
1973 -- Type       : Group
1974 -- Function   :
1975 -- Pre-reqs   : None
1976 -- Parameters :
1977 -- IN         : p_api_version                IN NUMBER           Required
1978 --              p_init_msg_list              IN VARCHAR2         Optional  Default = FND_API.G_FALSE
1979 --              p_commit                     IN VARCHAR2         Optional  Default = FND_API.G_FALSE
1980 --              p_ship_line_id               IN NUMBER           Required
1981 --
1982 -- OUT        : x_return_status              OUT NOCOPY VARCHAR2
1983 --              x_msg_count                  OUT NOCOPY NUMBER
1984 --              x_msg_data                   OUT NOCOPY VARCHAR2
1985 --              x_currency_code              OUT NOCOPY VARCHAR2
1986 --              x_currency_conversion_type   OUT NOCOPY VARCHAR2
1987 --              x_currency_conversion_date   OUT NOCOPY DATE
1988 --              x_currency_conversion_rate   OUT NOCOPY NUMBER
1989 --
1990 -- Version    : Current version 1.0
1991 --
1992 -- Notes      :
1993 PROCEDURE Get_CurrencyInfo(
1994     p_api_version                IN NUMBER,
1995     p_init_msg_list              IN VARCHAR2 := FND_API.G_FALSE,
1996     p_commit                     IN VARCHAR2 := FND_API.G_FALSE,
1997     p_ship_line_id               IN NUMBER,
1998     x_return_status              OUT NOCOPY VARCHAR2,
1999     x_msg_count                  OUT NOCOPY NUMBER,
2000     x_msg_data                   OUT NOCOPY VARCHAR2,
2001     x_currency_code              OUT NOCOPY VARCHAR2,
2002     x_currency_conversion_type   OUT NOCOPY VARCHAR2,
2003     x_currency_conversion_date   OUT NOCOPY DATE,
2004     x_currency_conversion_rate   OUT NOCOPY NUMBER
2005 ) IS
2006 
2007   l_api_name              CONSTANT VARCHAR2(30) := 'Get_CurrencyInfo';
2008   l_api_version           CONSTANT NUMBER := 1.0;
2009 
2010   l_return_status         VARCHAR2(1);
2011   l_msg_count             NUMBER;
2012   l_msg_data              VARCHAR2(2000);
2013   l_debug_info            VARCHAR2(200);
2014 BEGIN
2015 
2016     -- Standard Beginning of Procedure/Function Logging
2017     INL_LOGGING_PVT.Log_BeginProc (
2018         p_module_name    => g_module_name,
2019         p_procedure_name => l_api_name
2020     );
2021     -- Standard Start of API savepoint
2022     SAVEPOINT Get_CurrencyInfo_GRP;
2023 
2024     -- Initialize message list if p_init_msg_list is set to TRUE.
2025     IF FND_API.to_Boolean( p_init_msg_list ) THEN
2026         FND_MSG_PUB.initialize;
2027     END IF;
2028 
2029     -- Check for call compatibility.
2030     IF NOT FND_API.Compatible_API_Call (
2031         l_api_version,
2032         p_api_version,
2033         l_api_name,
2034         g_pkg_name)
2035     THEN
2036         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2037     END IF;
2038 
2039     --  Initialize API return status to success
2040     x_return_status := FND_API.G_RET_STS_SUCCESS;
2041 
2042     -- Api Body
2043 
2044     -- Standard Statement Level Procedure/Function Logging
2045     l_debug_info := 'Get currency info for the ship_line_id: ' || p_ship_line_id;
2046     INL_LOGGING_PVT.Log_Statement (
2047         p_module_name    => g_module_name,
2048         p_procedure_name => l_api_name,
2049         p_debug_info     => l_debug_info
2050     );
2051 
2052     SELECT
2053         sl.currency_code,
2054         sl.currency_conversion_type,
2055         nvl(sl.currency_conversion_date,sl.creation_date),
2056         sl.currency_conversion_rate
2057     INTO
2058         x_currency_code,
2059         x_currency_conversion_type,
2060         x_currency_conversion_date,
2061         x_currency_conversion_rate
2062     FROM inl_ship_lines_all sl
2063     WHERE sl.ship_line_id = p_ship_line_id;
2064 
2065     -- End of Api Body
2066 
2067     -- Standard check of p_commit.
2068     IF FND_API.To_Boolean( p_commit ) THEN
2069         COMMIT WORK;
2070     END IF;
2071 
2072     -- Standard call to get message count and if count is 1, get message info.
2073     FND_MSG_PUB.Count_And_Get(
2074         p_encoded => FND_API.g_false,
2075         p_count   => x_msg_count,
2076         p_data    => x_msg_data);
2077 
2078     -- Standard End of Procedure/Function Logging
2079     INL_LOGGING_PVT.Log_EndProc (
2080         p_module_name    => g_module_name,
2081         p_procedure_name => l_api_name);
2082 EXCEPTION
2083   WHEN FND_API.G_EXC_ERROR THEN
2084     -- Standard Expected Error Logging
2085     INL_LOGGING_PVT.Log_ExpecError (
2086         p_module_name    => g_module_name,
2087         p_procedure_name => l_api_name
2088     );
2089     ROLLBACK TO Get_CurrencyInfo_GRP;
2090     x_return_status := FND_API.G_RET_STS_ERROR;
2091     FND_MSG_PUB.Count_And_Get(
2092         p_encoded => FND_API.g_false,
2093         p_count   => x_msg_count,
2094         p_data    => x_msg_data
2095     );
2096   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2097     -- Standard Unexpected Error Logging
2098     INL_LOGGING_PVT.Log_UnexpecError (
2099         p_module_name    => g_module_name,
2100         p_procedure_name => l_api_name);
2101     ROLLBACK TO Get_CurrencyInfo_GRP;
2102     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2103     FND_MSG_PUB.Count_And_Get(
2104         p_encoded => FND_API.g_false,
2105         p_count   => x_msg_count,
2106         p_data    => x_msg_data);
2107   WHEN OTHERS THEN
2108     -- Standard Unexpected Error Logging
2109     INL_LOGGING_PVT.Log_UnexpecError (
2110         p_module_name    => g_module_name,
2111         p_procedure_name => l_api_name);
2112     ROLLBACK TO Get_CurrencyInfo_GRP;
2113     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2114     IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2115     THEN
2116       FND_MSG_PUB.Add_Exc_Msg(
2117         g_pkg_name,
2118         l_api_name);
2119     END IF;
2120     FND_MSG_PUB.Count_And_Get(
2121         p_encoded => FND_API.g_false,
2122         p_count   => x_msg_count,
2123         p_data    => x_msg_data);
2124 END Get_CurrencyInfo;
2125 
2126 END INL_INTEGRATION_GRP;