DBA Data[Home] [Help]

PACKAGE BODY: APPS.PN_VENDORMERGE_GRP

Source


1 PACKAGE BODY PN_VendorMerge_GRP AS
2 /* $Header: pngvdrb.pls 120.1.12020000.1 2012/07/30 12:58:07 ppenumar noship $ */
3 
4 G_PKG_NAME      CONSTANT VARCHAR2(30):='PN_VendorMerge_GRP';
5 
6 PROCEDURE Merge_Vendor(
7             p_api_version        IN   NUMBER,
8             p_init_msg_list      IN   VARCHAR2 DEFAULT FND_API.G_FALSE,
9             p_commit             IN   VARCHAR2 DEFAULT FND_API.G_FALSE,
10             p_validation_level   IN   NUMBER  := FND_API.G_VALID_LEVEL_FULL,
11             x_return_status      OUT  NOCOPY VARCHAR2,
12             x_msg_count          OUT  NOCOPY NUMBER,
13             x_msg_data           OUT  NOCOPY VARCHAR2,
14             p_vendor_id          IN   NUMBER,
15             p_vendor_site_id     IN   NUMBER,
16             p_dup_vendor_id      IN   NUMBER,
17             p_dup_vendor_site_id IN   NUMBER,
18             p_last_updated_by    IN   NUMBER                           )
19 
20 IS
21 
22         l_api_name               CONSTANT VARCHAR2(30)  := 'Merge_Vendor';
23         l_api_version            CONSTANT NUMBER        := 1.0;
24         l_row_count              NUMBER;
25 
26 BEGIN
27 
28         --  Initialize API return status to success
29         x_return_status := FND_API.G_RET_STS_SUCCESS;
30 
31          IF NOT FND_API.Compatible_API_Call ( l_api_version  ,
32                                               p_api_version  ,
33                                               l_api_name     ,
34                                               G_PKG_NAME             )
35          THEN
36                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
37          END IF;
38 
39          -- Initialize API message list if necessary.
40          -- Initialize message list if p_init_msg_list is set to TRUE.
41          IF FND_API.to_Boolean( p_init_msg_list) THEN
42                 FND_MSG_PUB.initialize;
43          END IF;
44 
45          UPDATE  pn_payment_terms
46          SET vendor_id        = p_vendor_id,
47              vendor_site_id   = p_vendor_site_id,
48              last_updated_by  = p_last_updated_by,
49              last_update_date = sysdate
50          WHERE vendor_id      = p_dup_vendor_id
51          AND   vendor_site_id = p_dup_vendor_site_id;
52 
53          -- Prepare message name
54          FND_MESSAGE.SET_NAME('PN','PN_PAYMENT_TERMS');
55          IF SQL%FOUND THEN
56                 x_return_status := FND_API.G_RET_STS_SUCCESS;
57                 l_row_count := SQL%ROWCOUNT;
58          ELSE
59                 l_row_count := 0;
60          END IF;
61          FND_MESSAGE.SET_TOKEN('ROWS_UPDATED',l_row_count);
62          -- Add message to API message list.
63          FND_MSG_PUB.Add;
64 
65 
66          UPDATE pn_payment_items
67          SET vendor_id         = p_vendor_id,
68              vendor_site_id    = p_vendor_site_id,
69              last_updated_by   = p_last_updated_by,
70              last_update_date  = sysdate
71          WHERE vendor_id       = p_dup_vendor_id
72          AND   vendor_site_id =  p_dup_vendor_site_id;
73 
74          -- Prepare message name
75          FND_MESSAGE.SET_NAME('PN','PN_PAYMENT_ITEMS');
76          IF SQL%FOUND THEN
77                 x_return_status := FND_API.G_RET_STS_SUCCESS;
78                 l_row_count := SQL%ROWCOUNT;
79          ELSE
80                 l_row_count := 0;
81          END IF;
82          FND_MESSAGE.SET_TOKEN('ROWS_UPDATED',l_row_count);
83          -- Add message to API message list.
84          FND_MSG_PUB.Add;
85 
86 
87           UPDATE  pn_term_templates
88           SET vendor_id        = p_vendor_id,
89               vendor_site_id   = p_vendor_site_id,
90               last_updated_by  = p_last_updated_by,
91               last_update_date = sysdate
92           WHERE vendor_id      = p_dup_vendor_id
93           AND   vendor_site_id = p_dup_vendor_site_id;
94 
95          -- Prepare message name
96          FND_MESSAGE.SET_NAME('PN','PN_TERM_TEMPLATES');
97          IF SQL%FOUND THEN
98                 x_return_status := FND_API.G_RET_STS_SUCCESS;
99                 l_row_count := SQL%ROWCOUNT;
100          ELSE
101                 l_row_count := 0;
102          END IF;
103          FND_MESSAGE.SET_TOKEN('ROWS_UPDATED',l_row_count);
104          -- Add message to API message list.
105          FND_MSG_PUB.Add;
106 
107           UPDATE  pn_payment_terms_history
108           SET vendor_id        = p_vendor_id,
109               vendor_site_id   = p_vendor_site_id,
110               last_updated_by  = p_last_updated_by,
111               last_update_date = sysdate
112           WHERE vendor_id      = p_dup_vendor_id
113           AND   vendor_site_id = p_dup_vendor_site_id;
114 
115          -- Prepare message name
116          FND_MESSAGE.SET_NAME('PN','PN_PAYMENT_TERMS_HISTORY');
117          IF SQL%FOUND THEN
118                 x_return_status := FND_API.G_RET_STS_SUCCESS;
119                 l_row_count := SQL%ROWCOUNT;
120          ELSE
121                 l_row_count := 0;
122          END IF;
123          FND_MESSAGE.SET_TOKEN('ROWS_UPDATED',l_row_count);
124          -- Add message to API message list.
125          FND_MSG_PUB.Add;
126 
127          -- Get message count and if 1, return message data.
128          FND_MSG_PUB.Count_And_Get
129          (      p_count                 =>      x_msg_count,
130                 p_data                  =>      x_msg_data
131          );
132 
133 
134 
135 EXCEPTION
136 
137                 WHEN OTHERS THEN
138                 ROLLBACK ;
139                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
140                 FND_MSG_PUB.Count_And_Get
141                        ( p_count                =>      x_msg_count,
142                          p_data                 =>      x_msg_data
143                        );
144 
145 END Merge_Vendor;
146 
147 END PN_VendorMerge_GRP;
148