DBA Data[Home] [Help]

PACKAGE BODY: APPS.JL_VENDORMERGE_GRP

Source


1 PACKAGE BODY JL_VENDORMERGE_GRP AS
2 /* $Header: jlzzpsmb.pls 120.4 2006/04/11 21:12:46 dbetanco ship $ */
3 
4 G_PKG_NAME                CONSTANT VARCHAR2(50) := 'JL_VENDORMERGE_GRP_PKG';
5 G_CURRENT_RUNTIME_LEVEL   CONSTANT NUMBER       := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6 G_LEVEL_UNEXPECTED        CONSTANT NUMBER       := FND_LOG.LEVEL_UNEXPECTED;
7 G_LEVEL_ERROR             CONSTANT NUMBER       := FND_LOG.LEVEL_ERROR;
8 G_LEVEL_EXCEPTION         CONSTANT NUMBER       := FND_LOG.LEVEL_EXCEPTION;
9 G_LEVEL_EVENT             CONSTANT NUMBER       := FND_LOG.LEVEL_EVENT;
10 G_LEVEL_PROCEDURE         CONSTANT NUMBER       := FND_LOG.LEVEL_PROCEDURE;
11 G_LEVEL_STATEMENT         CONSTANT NUMBER       := FND_LOG.LEVEL_STATEMENT;
12 G_MODULE_NAME             CONSTANT VARCHAR2(250) := 'ZX.PLSQL.JL_VENDORMERGE_GRP_PKG.';
13 
14 /********************************************************************
15  Prodeure: Merge_Vendor
16  Objective: This package is called from AP - Supplier Merge Process
17             Following procedure will update the vendor_id and
18             vendor_site_id in JL tables.
19  Parameters: p_vendor_id is supplier to
20              p_dup_vendor_id supplier from
21 
22  *******************************************************************/
23 
24 Procedure Merge_Vendor
25                (p_api_version            IN            NUMBER
26                ,p_init_msg_list          IN            VARCHAR2 default FND_API.G_FALSE
27                ,p_commit                 IN            VARCHAR2 default FND_API.G_FALSE
28                ,p_validation_level       IN            NUMBER   default FND_API.G_VALID_LEVEL_FULL
29                ,p_return_status          OUT  NOCOPY   VARCHAR2
30                ,p_msg_count              OUT  NOCOPY   NUMBER
31                ,p_msg_data               OUT  NOCOPY   VARCHAR2
32                ,p_vendor_id              IN            NUMBER --> Represents Merge To Vendor
33                ,p_dup_vendor_id          IN            NUMBER --> Represents Merge From Vendor
34                ,p_vendor_site_id         IN            NUMBER --> Represents Merge To Vendor Site
35                ,p_dup_vendor_site_id     IN            NUMBER --> Represents Merge From Vendor Site
36                ,p_party_id               IN            NUMBER --> Represents Merge To Party
37                ,P_dup_party_id           IN            NUMBER --> Represents Merge From Party
38                ,p_party_site_id          IN            NUMBER --> Represents Merge To Party Site
39                ,p_dup_party_site_id      IN            NUMBER --> Represents Merge From Party Site
40                ) IS
41 
42    l_api_name  CONSTANT VARCHAR2(50) := 'Merge_Vendor';
43    l_api_version       CONSTANT  NUMBER := 1.0;
44 
45 Begin
46 
47    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
48       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
49    END IF;
50 
51     SAVEPOINT import_document_PVT;
52 
53     -- Standard call to check for call compatibility
54     IF NOT FND_API.Compatible_API_Call(l_api_version,
55                                        p_api_version,
56                                        l_api_name,
57                                        G_PKG_NAME
58                                        ) THEN
59        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
60    END IF;
61 
62    -- Initialize API message list if necessary.
63    -- Initialize message list if p_init_msg_list is set to TRUE.
64    IF FND_API.to_Boolean( p_init_msg_list) THEN
65       FND_MSG_PUB.initialize;
66    END IF;
67 
68 
69    p_return_status := FND_API.G_RET_STS_SUCCESS;
70 
71    IF p_dup_vendor_id is not null and p_dup_vendor_site_id is null
72       and p_vendor_id is not null Then
73 
74       SAVEPOINT jl_vendor_merge;
75 
76       -- Update JL_ZZ_AP_SUPP_AWT_TYPES - vendor_id
77          Update JL_ZZ_AP_SUPP_AWT_TYPES
78             set vendor_id = p_vendor_id
79           where vendor_id = p_dup_vendor_id;
80 
81       -- Update JL_BR_AP_COLLECTION_DOCS_ALL - vendor_id
82          Update JL_BR_AP_COLLECTION_DOCS_ALL
83             set vendor_id = p_vendor_id
84           where vendor_id = p_dup_vendor_id;
85 
86       -- Update JL_BR_AP_CONSOLID_INVOICES_ALL - vendor_id
87          Update JL_BR_AP_CONSOLID_INVOICES_ALL
88             set vendor_id = p_vendor_id
89           where vendor_id = p_dup_vendor_id;
90 
91       -- Update JG_ZZ_ENTITY_ASSOC
92          Update JG_ZZ_ENTITY_ASSOC
93             set associated_entity_id = p_vendor_id
94           where associated_entity_id = p_dup_vendor_id;
95 
96    ELSif p_dup_vendor_id is not null and p_dup_vendor_site_id is not null
97          and p_vendor_id is not null and p_vendor_site_id is not null Then
98 
99         -- Update JL_BR_AP_COLLECTION_DOCS_ALL - vendor_id
100            Update JL_BR_AP_COLLECTION_DOCS_ALL
101               set vendor_id      = p_vendor_id,
102                   vendor_site_id = p_vendor_site_id
103             where vendor_id      = p_dup_vendor_id
104               and vendor_site_id = p_dup_vendor_site_id;
105 
106         -- Update JL_BR_AP_CONSOLID_INVOICES_ALL - vendor_id
107            Update JL_BR_AP_CONSOLID_INVOICES_ALL
108               set vendor_id      = p_vendor_id,
109                   vendor_site_id = p_vendor_site_id
110             where vendor_id      = p_dup_vendor_id
111               and vendor_site_id = p_dup_vendor_site_id;
112 
113    END IF;
114 
115    IF FND_API.To_Boolean( p_commit ) THEN
116       COMMIT WORK;
117    END IF;
118 
119    -- Standard check of p_commit.
120    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
121      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
122    END IF;
123 
124 EXCEPTION
125    WHEN NO_DATA_FOUND THEN
126         NULL;
127    WHEN OTHERS THEN
128      p_return_status := FND_API.G_RET_STS_ERROR ;
129      ROLLBACK TO jl_vendor_merge;
130      FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
131      FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
132      FND_MSG_PUB.Add;
133      /*---------------------------------------------------------+
134       | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
135       | in the message stack. If there is only one message in   |
136       | the stack it retrieves this message                     |
137       +---------------------------------------------------------*/
138       FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
139                   p_count   =>      p_msg_count,
140                   p_data    =>      p_msg_data
141                   );
142      --
143      IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
144          FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
145      END IF;
146 
147 END Merge_Vendor;
148 
149 END JL_VENDORMERGE_GRP;