DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSI_T_TXN_PARTIES_GRP

Source


1 PACKAGE BODY csi_t_txn_parties_grp as
2 /*$Header: csigtpab.pls 120.2 2006/01/04 17:55:21 shegde noship $*/
3 
4   g_pkg_name    CONSTANT VARCHAR2(30) := 'csi_t_txn_parties_grp';
5   g_file_name   CONSTANT VARCHAR2(12) := 'csigtpab.pls';
6 
7   g_user_id              NUMBER := FND_GLOBAL.User_Id;
8   g_login_id             NUMBER := FND_GLOBAL.Login_Id;
9 
10 
11   PROCEDURE create_txn_party_dtls(
12     p_api_version        IN  NUMBER,
13     p_commit             IN  VARCHAR2 := fnd_api.g_false,
14     p_init_msg_list      IN  VARCHAR2 := fnd_api.g_false,
15     p_validation_level   IN  NUMBER   := fnd_api.g_valid_level_full,
16     px_txn_party_detail_tbl IN  OUT NOCOPY csi_t_datastructures_grp.txn_party_detail_tbl,
17     px_txn_pty_acct_detail_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_pty_acct_detail_tbl,
18     x_return_status      OUT NOCOPY VARCHAR2,
19     x_msg_count          OUT NOCOPY NUMBER,
20     x_msg_data           OUT NOCOPY VARCHAR2)
21 
22   IS
23 
24     l_api_name            CONSTANT VARCHAR2(30)  := 'create_txn_party_dtls';
25     l_api_version         CONSTANT NUMBER        := 1.0;
26     l_debug_level                  NUMBER;
27 
28     l_return_status                VARCHAR2(1)   := FND_API.G_ret_sts_success;
29     l_msg_count                    NUMBER;
30     l_msg_data                     VARCHAR2(512);
31 
32     l_txn_party_rec       csi_t_datastructures_grp.txn_party_detail_rec;
33     l_txn_party_accts_tbl csi_t_datastructures_grp.txn_pty_acct_detail_tbl;
34 
35     l_count                        NUMBER;
36     --contact party id variables
37     l_tmp_party_dtl_tbl      csi_t_datastructures_grp.txn_party_detail_tbl;
38     l_contact_party_id       number;
39     l_contact_party_index    varchar2(1);
40   BEGIN
41 
42     -- Standard Start of API savepoint
43     SAVEPOINT create_txn_party_dtls;
44 
45     csi_t_gen_utility_pvt.add('API Being Executed     : Create Txn Party AND Accounts');
46     csi_t_gen_utility_pvt.add('Transaction Start Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
47 
48 
49     -- Initialize message list if p_init_msg_list is set to TRUE.
50     IF FND_API.To_Boolean( p_init_msg_list ) THEN
51       FND_MSG_PUB.Initialize;
52     END IF;
53 
54     --  Initialize API return status to success
55     x_return_status := FND_API.G_RET_STS_SUCCESS;
56 
57     -- Standard call to check for call compatibility.
58     IF NOT
59 
60        FND_API.Compatible_API_Call (
61          p_current_version_number => l_api_version,
62          p_caller_version_number  => p_api_version,
63          p_api_name               => l_api_name,
64          p_pkg_name               => g_pkg_name) THEN
65 
66       RAISE FND_API.G_Exc_Unexpected_Error;
67 
68     END IF;
69 
70     /**** Commented for Bug 3304439
71     -- Check for the profile option and enable trace
72     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
73       dbms_session.set_sql_trace(TRUE);
74     END IF;
75     ****/
76 
77     -- Main API code starts here
78     --
79     -- This procedure check if the installed base is active, If not active
80     -- populates the error message in the message queue and raises the
81     -- fnd_api.g_exc_error exception
82     --
83 
84     csi_utility_grp.check_ib_active;
85 
86     IF px_txn_party_detail_tbl.count > 0 THEN
87 
88       -- new attribute, R12 Mass Update API call, due to the API call from EO, UI is unable to correctly identify
89       -- and collect and pass the correct indexes.. need a additional attribute for update_transaction_dtls
90       -- first loop through and identify this new attribute is passed by caller or not...
91       l_contact_party_index := 'N';
92       FOR l_ind in px_txn_party_detail_tbl.FIRST..px_txn_party_detail_tbl.LAST
93       LOOP
94 
95         IF l_contact_party_index = 'N' THEN
96           IF nvl(px_txn_party_detail_tbl(l_ind).txn_contact_party_index, fnd_api.g_miss_num) <>
97              fnd_api.g_miss_num
98           THEN
99               l_contact_party_index := 'Y';
100           END IF;
101         END IF;
102         --initialize row variable
103         l_txn_party_rec := px_txn_party_detail_tbl(l_ind);
104         l_txn_party_accts_tbl := px_txn_pty_acct_detail_tbl; -- added for self - bug
105         -- call api to create party detail records
106         csi_t_txn_parties_pvt.create_txn_party_dtls(
107           p_api_version          => p_api_version,
108           p_commit               => p_commit,
109           p_init_msg_list        => p_init_msg_list,
110           p_validation_level     => p_validation_level,
111 --          p_txn_party_dtl_index  => fnd_api.g_miss_num,
112           p_txn_party_dtl_index  => l_ind, -- added for self bug
113           p_txn_party_detail_rec    => l_txn_party_rec,
114           px_txn_pty_acct_detail_tbl => l_txn_party_accts_tbl,
115           x_return_status        => l_return_status,
116           x_msg_count            => l_msg_count,
117           x_msg_data             => l_msg_data);
118 
119         IF l_return_status <> fnd_api.g_ret_sts_success THEN
120           RAISE fnd_api.g_exc_error;
121         END IF;
122 
123         px_txn_party_detail_tbl(l_ind)  := l_txn_party_rec;
124       END LOOP;
125 
126       l_tmp_party_dtl_tbl := px_txn_party_detail_tbl;
127       px_txn_pty_acct_detail_tbl := l_txn_party_accts_tbl;
128 
129       /* process the contact party id */
130       FOR cont_ind IN px_txn_party_detail_tbl.FIRST .. px_txn_party_detail_tbl.LAST
131       LOOP
132         IF nvl(px_txn_party_detail_tbl(cont_ind).contact_party_id, fnd_api.g_miss_num) <>
133            fnd_api.g_miss_num AND nvl(px_txn_party_detail_tbl(cont_ind).contact_flag, 'N') = 'Y'
134         THEN
135            IF nvl(l_contact_party_index, 'N') = 'Y' THEN
136              l_contact_party_id := null;
137              FOR p_ind IN l_tmp_party_dtl_tbl.FIRST .. l_tmp_party_dtl_tbl.LAST
138              LOOP
139                 IF ( l_tmp_party_dtl_tbl(p_ind).txn_contact_party_index is not null
140                    AND l_tmp_party_dtl_tbl(p_ind).txn_contact_party_index <>  fnd_api.g_miss_num )
141                 THEN
142                    IF l_tmp_party_dtl_tbl(p_ind).txn_contact_party_index = px_txn_party_detail_tbl(cont_ind).contact_party_id
143                      AND ( nvl(l_tmp_party_dtl_tbl(p_ind).contact_flag,fnd_api.g_miss_char) = fnd_api.g_miss_char
144                           OR nvl(l_tmp_party_dtl_tbl(p_ind).contact_flag,'N') = 'N')
145                    THEN
146                        l_contact_party_id := l_tmp_party_dtl_tbl(p_ind).txn_party_detail_id;
147                        exit;
148                    END IF;
149                 ELSIF l_tmp_party_dtl_tbl(p_ind).txn_party_detail_id = px_txn_party_detail_tbl(cont_ind).contact_party_id
150                      AND ( nvl(l_tmp_party_dtl_tbl(p_ind).contact_flag,fnd_api.g_miss_char) = fnd_api.g_miss_char
151                           OR nvl(l_tmp_party_dtl_tbl(p_ind).contact_flag,'N') = 'N')
152                 THEN
153                     l_contact_party_id := l_tmp_party_dtl_tbl(p_ind).txn_party_detail_id;
154                     exit;
155                 END IF;
156               END LOOP;
157            ELSE
158               l_contact_party_id := null;
159               FOR p_ind IN l_tmp_party_dtl_tbl.FIRST .. l_tmp_party_dtl_tbl.LAST
160               LOOP
161                 IF p_ind = px_txn_party_detail_tbl(cont_ind).contact_party_id
162                   AND ( nvl(l_tmp_party_dtl_tbl(p_ind).contact_flag,fnd_api.g_miss_char) = fnd_api.g_miss_char
163                        OR nvl(l_tmp_party_dtl_tbl(p_ind).contact_flag,'N') = 'N' )
164                 THEN
165                    l_contact_party_id := l_tmp_party_dtl_tbl(p_ind).txn_party_detail_id;
166                    exit;
167                 ELSIF l_tmp_party_dtl_tbl(p_ind).txn_party_detail_id = px_txn_party_detail_tbl(cont_ind).contact_party_id
168                   AND ( nvl(l_tmp_party_dtl_tbl(p_ind).contact_flag,fnd_api.g_miss_char) = fnd_api.g_miss_char
169                        OR nvl(l_tmp_party_dtl_tbl(p_ind).contact_flag,'N') = 'N' )
170                 THEN
171                      l_contact_party_id := l_tmp_party_dtl_tbl(p_ind).txn_party_detail_id;
172                      exit;
173                 END IF;
174               END LOOP;
175            END IF;
176 
177            IF l_contact_party_id is not null THEN
178                update csi_t_party_details
179                set    contact_party_id    = l_contact_party_id
180                where  txn_party_detail_id = px_txn_party_detail_tbl(cont_ind).txn_party_detail_id;
181            END IF;
182 
183         END IF;
184       END LOOP;
185     END IF;
186 
187     -- Standard check of p_commit.
188     IF FND_API.To_Boolean( p_commit ) THEN
189       COMMIT WORK;
190     END IF;
191 
192     /**** Commented for Bug 3304439
193     -- Check for the profile option and disable the trace
194     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
195       dbms_session.set_sql_trace(false);
196     END IF;
197     ****/
198 
199     -- Standard call to get message count and if count is  get message info.
200     FND_MSG_PUB.Count_And_Get(
201       p_count  =>  x_msg_count,
202       p_data   =>  x_msg_data);
203 
204     csi_t_gen_utility_pvt.add('API Successfully Executed         : Create Txn Party And Accounts');
205     csi_t_gen_utility_pvt.add('Transaction End Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
206 
207     csi_t_gen_utility_pvt.set_debug_off;
208 
209   EXCEPTION
210     WHEN FND_API.G_EXC_ERROR THEN
211 
212       ROLLBACK TO create_txn_party_dtls;
213       x_return_status := FND_API.G_RET_STS_ERROR ;
214       FND_MSG_PUB.Count_And_Get (
215         p_count  => x_msg_count,
216         p_data   => x_msg_data);
217 
218     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
219 
220       ROLLBACK TO create_txn_party_dtls;
221       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
222 
223       FND_MSG_PUB.Count_And_Get(
224         p_count  => x_msg_count,
225         p_data   => x_msg_data);
226 
227     WHEN OTHERS THEN
228 
229       ROLLBACK TO create_txn_party_dtls;
230       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
231 
232       IF FND_MSG_PUB.Check_Msg_Level(
233            p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
234 
235         FND_MSG_PUB.Add_Exc_Msg(
236           p_pkg_name       => G_PKG_NAME,
237           p_procedure_name => l_api_name);
238 
239       END IF;
240 
241       FND_MSG_PUB.Count_And_Get(
242         p_count  => x_msg_count,
243         p_data   => x_msg_data);
244 
245   END create_txn_party_dtls;
246 
247   PROCEDURE create_txn_pty_acct_dtls(
248     p_api_version           IN  NUMBER,
249     p_commit                IN  VARCHAR2 := fnd_api.g_false,
250     p_init_msg_list         IN  VARCHAR2 := fnd_api.g_false,
251     p_validation_level      IN  NUMBER   := fnd_api.g_valid_level_full,
252     px_txn_pty_acct_detail_tbl  IN  OUT NOCOPY csi_t_datastructures_grp.txn_pty_acct_detail_tbl,
253     x_return_status         OUT NOCOPY VARCHAR2,
254     x_msg_count             OUT NOCOPY NUMBER,
255     x_msg_data              OUT NOCOPY VARCHAR2)
256   IS
257 
258     l_api_name            CONSTANT VARCHAR2(30)  := 'create_txn_pty_acct_dtls';
259     l_api_version         CONSTANT NUMBER        := 1.0;
260     l_debug_level                  NUMBER;
261 
262     l_return_status                VARCHAR2(1)   := FND_API.G_ret_sts_success;
263     l_msg_count                    NUMBER;
264     l_msg_data                     VARCHAR2(512);
265 
266     l_count                        NUMBER;
267     l_pty_acct_rec  csi_t_datastructures_grp.txn_pty_acct_detail_rec;
268 
269   BEGIN
270 
271     -- Standard Start of API savepoint
272     SAVEPOINT create_txn_pty_acct_dtls;
273 
274     csi_t_gen_utility_pvt.add('API Being Executed     : Create Txn Party Accounts');
275     csi_t_gen_utility_pvt.add('Transaction Start Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
276 
277 
278     -- Initialize message list if p_init_msg_list is set to TRUE.
279     IF FND_API.To_Boolean( p_init_msg_list ) THEN
280       FND_MSG_PUB.Initialize;
281     END IF;
282 
283     --  Initialize API return status to success
284     x_return_status := FND_API.G_RET_STS_SUCCESS;
285 
286     -- Standard call to check for call compatibility.
287     IF NOT
288 
289        FND_API.Compatible_API_Call (
290          p_current_version_number => l_api_version,
291          p_caller_version_number  => p_api_version,
292          p_api_name               => l_api_name,
293          p_pkg_name               => g_pkg_name) THEN
294 
295       RAISE FND_API.G_Exc_Unexpected_Error;
296 
297     END IF;
298 
299     /**** Commented for Bug 3304439
300     -- Check for the profile option and enable trace
301     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
302       dbms_session.set_sql_trace(TRUE);
303     END IF;
304     ****/
305 
306     -- Main API code starts here
307     --
308     -- This procedure check if the installed base is active, If not active
309     -- populates the error message in the message queue and raises the
310     -- fnd_api.g_exc_error exception
311     --
312 
313     csi_utility_grp.check_ib_active;
314 
315     IF px_txn_pty_acct_detail_tbl.count > 0 THEN
316 
317       FOR l_ind IN px_txn_pty_acct_detail_tbl.FIRST..
318                    px_txn_pty_acct_detail_tbl.LAST
319       LOOP
320 
321         -- assign values to the record type variable
322 
323         l_pty_acct_rec := px_txn_pty_acct_detail_tbl(l_ind);
324 
325         -- call api to create txn_party_account details
326         csi_t_txn_parties_pvt.create_txn_pty_acct_dtls(
327           p_api_version         => p_api_version,
328           p_commit              => p_commit,
329           p_init_msg_list       => p_init_msg_list,
330           p_validation_level    => p_validation_level,
331           p_txn_pty_acct_detail_rec => l_pty_acct_rec,
332           x_return_status       => l_return_status,
333           x_msg_count           => l_msg_count,
334           x_msg_data            => l_msg_data);
335 
336           IF l_return_status <> fnd_api.g_ret_sts_success THEN
337             RAISE fnd_api.g_exc_error;
338           END IF;
339 
340       END LOOP;
341 
342     END IF;
343     -- Standard check of p_commit.
344     IF FND_API.To_Boolean( p_commit ) THEN
345       COMMIT WORK;
346     END IF;
347 
348     /**** Commented for Bug 3304439
349     -- Check for the profile option and disable the trace
350     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
351       dbms_session.set_sql_trace(false);
352     END IF;
353     ****/
354 
355     -- Standard call to get message count and if count is  get message info.
356     FND_MSG_PUB.Count_And_Get(
357       p_count  =>  x_msg_count,
358       p_data   =>  x_msg_data);
359 
360     csi_t_gen_utility_pvt.add('API Successfully Executed         : Create Txn Party Accounts');
361     csi_t_gen_utility_pvt.add('Transaction End Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
362 
363     csi_t_gen_utility_pvt.set_debug_off;
364 
365   EXCEPTION
366     WHEN FND_API.G_EXC_ERROR THEN
367 
368       ROLLBACK TO create_txn_pty_acct_dtls;
369       x_return_status := FND_API.G_RET_STS_ERROR ;
370       FND_MSG_PUB.Count_And_Get (
371         p_count  => x_msg_count,
372         p_data   => x_msg_data);
373 
374     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
375 
376       ROLLBACK TO create_txn_pty_acct_dtls;
377       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
378 
379       FND_MSG_PUB.Count_And_Get(
380         p_count  => x_msg_count,
381         p_data   => x_msg_data);
382 
383     WHEN OTHERS THEN
384 
385       ROLLBACK TO create_txn_pty_acct_dtls;
386       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
387 
388       IF FND_MSG_PUB.Check_Msg_Level(
389            p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
390 
391         FND_MSG_PUB.Add_Exc_Msg(
392           p_pkg_name       => G_PKG_NAME,
393           p_procedure_name => l_api_name);
394 
395       END IF;
396 
397       FND_MSG_PUB.Count_And_Get(
398         p_count  => x_msg_count,
399         p_data   => x_msg_data);
400 
401   END create_txn_pty_acct_dtls;
402 
403   PROCEDURE update_txn_party_dtls(
404      p_api_version            IN  NUMBER
405     ,p_commit                 IN  VARCHAR2 := fnd_api.g_false
406     ,p_init_msg_list          IN  VARCHAR2 := fnd_api.g_false
407     ,p_validation_level       IN  NUMBER   := fnd_api.g_valid_level_full
408     ,p_txn_party_detail_tbl   IN  csi_t_datastructures_grp.txn_party_detail_tbl
409     ,px_txn_pty_acct_detail_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_pty_acct_detail_tbl
410     ,x_return_status          OUT NOCOPY VARCHAR2
411     ,x_msg_count              OUT NOCOPY NUMBER
412     ,x_msg_data               OUT NOCOPY VARCHAR2)
413 
414   IS
415 
416     l_api_name       CONSTANT VARCHAR2(30)  := 'Update_Txn_Party_Dtls';
417     l_api_version    CONSTANT NUMBER        := 1.0;
418     l_debug_level             NUMBER;
419 
420     l_return_status                VARCHAR2(1)   := FND_API.G_ret_sts_success;
421     l_msg_count                    NUMBER;
422     l_msg_data                     VARCHAR2(512);
423 
424   BEGIN
425 
426     -- Standard Start of API savepoint
427     SAVEPOINT Update_Txn_Party_Dtls;
428 
429     csi_t_gen_utility_pvt.add('API Being Executed     : Update Txn Party And Accounts');
430     csi_t_gen_utility_pvt.add('Transaction Start Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
431 
432 
433     -- Initialize message list if p_init_msg_list is set to TRUE.
434     IF FND_API.to_Boolean( p_init_msg_list ) THEN
435       FND_MSG_PUB.initialize;
436     END IF;
437 
438     --  Initialize API return status to success
439     x_return_status := FND_API.G_RET_STS_SUCCESS;
440 
441     -- Standard call to check for call compatibility.
442     IF NOT
443 
444        FND_API.Compatible_API_Call (
445          p_current_version_number => l_api_version,
446          p_caller_version_number  => p_api_version,
447          p_api_name               => l_api_name,
448          p_pkg_name               => G_PKG_NAME) THEN
449 
450       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
451 
452     END IF;
453 
454     /**** Commented for Bug 3304439
455     -- Check for the profile option and enable trace
456     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
457       dbms_session.set_sql_trace(TRUE);
458     END IF;
459     ****/
460 
461     -- Main API code
462     --
463     -- This procedure check if the installed base is active, If not active
464     -- populates the error message in the message queue and raises the
465     -- fnd_api.g_exc_error exception
466     --
467 
468     csi_utility_grp.check_ib_active;
469 
470     csi_t_txn_parties_pvt.update_txn_party_dtls(
471      p_api_version              => p_api_version,
472      p_commit                   => fnd_api.g_false,
473      p_init_msg_list            => p_init_msg_list,
474      p_validation_level         => p_validation_level,
475      p_txn_party_detail_tbl     => p_txn_party_detail_tbl,
476      px_txn_pty_acct_detail_tbl => px_txn_pty_acct_detail_tbl,
477      x_return_status            => l_return_status,
478      x_msg_count                => l_msg_count,
479      x_msg_data                 => l_msg_data);
480 
481     IF l_return_status <> fnd_api.g_ret_sts_success THEN
482       raise fnd_api.g_exc_error;
483     END IF;
484 
485     -- Standard check of p_commit.
486     IF FND_API.To_Boolean( p_commit ) THEN
487       COMMIT WORK;
488     END IF;
489 
490     /**** Commented for Bug 3304439
491     -- Check for the profile option and disable the trace
492     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
493       dbms_session.set_sql_trace(false);
494     END IF;
495     ****/
496 
497     -- Standard call to get message count and if count is  get message info.
498     FND_MSG_PUB.Count_And_Get(
499       p_count  =>  x_msg_count,
500       p_data   =>  x_msg_data);
501 
502     csi_t_gen_utility_pvt.add('API Successfully Executed         : Update Txn Party And Accounts');
503     csi_t_gen_utility_pvt.add('Transaction End Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
504 
505     csi_t_gen_utility_pvt.set_debug_off;
506 
507   EXCEPTION
508     WHEN FND_API.G_EXC_ERROR THEN
509 
510       ROLLBACK TO Update_Txn_Party_Dtls;
511       x_return_status := FND_API.G_RET_STS_ERROR ;
512       FND_MSG_PUB.Count_And_Get (
513         p_count  => x_msg_count,
514         p_data   => x_msg_data);
515 
516     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
517 
518       ROLLBACK TO Update_Txn_Party_Dtls;
519       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
520 
521       FND_MSG_PUB.Count_And_Get(
522         p_count  => x_msg_count,
523         p_data   => x_msg_data);
524 
525     WHEN OTHERS THEN
526 
527       ROLLBACK TO Update_Txn_Party_Dtls;
528       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
529 
530       IF FND_MSG_PUB.Check_Msg_Level(
531            p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
532 
533         FND_MSG_PUB.Add_Exc_Msg(
534           p_pkg_name       => G_PKG_NAME,
535           p_procedure_name => l_api_name);
536 
537       END IF;
538 
539       FND_MSG_PUB.Count_And_Get(
540         p_count  => x_msg_count,
541         p_data   => x_msg_data);
542 
543   END update_txn_party_dtls;
544 
545   /*
546   */
547   PROCEDURE update_txn_pty_acct_dtls
548   (
549      p_api_version         IN  NUMBER
550     ,p_commit              IN  VARCHAR2 := fnd_api.g_false
551     ,p_init_msg_list       IN  VARCHAR2 := fnd_api.g_false
552     ,p_validation_level    IN  NUMBER   := fnd_api.g_valid_level_full
553     ,p_txn_pty_acct_detail_tbl IN csi_t_datastructures_grp.txn_pty_acct_detail_tbl
554     ,x_return_status       OUT NOCOPY VARCHAR2
555     ,x_msg_count           OUT NOCOPY NUMBER
556     ,x_msg_data            OUT NOCOPY VARCHAR2
557   )
558 
559   IS
560 
561     l_api_name       CONSTANT VARCHAR2(30)  := 'Update_Txn_Party_acct_Dtls';
562     l_api_version    CONSTANT NUMBER        := 1.0;
563     l_debug_level             NUMBER;
564 
565     l_return_status                VARCHAR2(1)   := FND_API.G_ret_sts_success;
566     l_msg_count                    NUMBER;
567     l_msg_data                     VARCHAR2(512);
568 
569   BEGIN
570 
571     -- Standard Start of API savepoint
572     SAVEPOINT Update_Txn_Party_acct_Dtls;
573 
574     csi_t_gen_utility_pvt.add('API Being Executed     : Update Txn Party Accounts');
575     csi_t_gen_utility_pvt.add('Transaction Start Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
576 
577 
578     -- Initialize message list if p_init_msg_list is set to TRUE.
579     IF FND_API.to_Boolean( p_init_msg_list ) THEN
580       FND_MSG_PUB.initialize;
581     END IF;
582 
583     --  Initialize API return status to success
584     x_return_status := FND_API.G_RET_STS_SUCCESS;
585 
586     -- Standard call to check for call compatibility.
587     IF NOT
588 
589        FND_API.Compatible_API_Call (
590          p_current_version_number => l_api_version,
591          p_caller_version_number  => p_api_version,
592          p_api_name               => l_api_name,
593          p_pkg_name               => G_PKG_NAME) THEN
594 
595       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
596 
597     END IF;
598 
599     /**** Commented for Bug 3304439
600     -- Check for the profile option and enable trace
601     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
602       dbms_session.set_sql_trace(TRUE);
603     END IF;
604     ****/
605 
606     -- Main API code
607     --
608     -- This procedure check if the installed base is active, If not active
609     -- populates the error message in the message queue and raises the
610     -- fnd_api.g_exc_error exception
611     --
612 
613     csi_utility_grp.check_ib_active;
614 
615     csi_t_txn_parties_pvt.update_txn_pty_acct_dtls(
616       p_api_version             => p_api_version,
617       p_commit                  => p_commit,
618       p_init_msg_list           => p_init_msg_list,
619       p_validation_level        => p_validation_level,
620       p_txn_pty_acct_detail_tbl => p_txn_pty_acct_detail_tbl,
621       x_return_status           => l_return_status,
622       x_msg_count               => l_msg_count,
623       x_msg_data                => l_msg_data);
624 
625     IF l_return_status <> fnd_api.g_ret_sts_success THEN
626       RAISE fnd_api.g_exc_error;
627     END IF;
628 
629     -- Standard check of p_commit.
630     IF FND_API.To_Boolean( p_commit ) THEN
631       COMMIT WORK;
632     END IF;
633 
634     /**** Commented for Bug 3304439
635     -- Check for the profile option and disable the trace
636     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
637       dbms_session.set_sql_trace(false);
638     END IF;
639     ****/
640 
641     -- Standard call to get message count and if count is  get message info.
642     FND_MSG_PUB.Count_And_Get(
643       p_count  =>  x_msg_count,
644       p_data   =>  x_msg_data);
645 
646     csi_t_gen_utility_pvt.add('API Successfully Executed         : Update Txn Party Accounts');
647     csi_t_gen_utility_pvt.add('Transaction End Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
648 
649     csi_t_gen_utility_pvt.set_debug_off;
650 
651   EXCEPTION
652     WHEN FND_API.G_EXC_ERROR THEN
653 
654       ROLLBACK TO update_txn_party_acct_Dtls;
655       x_return_status := FND_API.G_RET_STS_ERROR ;
656       FND_MSG_PUB.Count_And_Get (
657         p_count  => x_msg_count,
658         p_data   => x_msg_data);
659 
660     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
661 
662       ROLLBACK TO Update_Txn_Party_acct_Dtls;
663       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
664 
665       FND_MSG_PUB.Count_And_Get(
666         p_count  => x_msg_count,
667         p_data   => x_msg_data);
668 
669     WHEN OTHERS THEN
670 
671       ROLLBACK TO Update_Txn_Party_acct_Dtls;
672       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
673 
674       IF FND_MSG_PUB.Check_Msg_Level(
675            p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
676 
677         FND_MSG_PUB.Add_Exc_Msg(
678           p_pkg_name       => G_PKG_NAME,
679           p_procedure_name => l_api_name);
680 
681       END IF;
682 
683       FND_MSG_PUB.Count_And_Get(
684         p_count  => x_msg_count,
685         p_data   => x_msg_data);
686   END update_txn_pty_acct_dtls;
687 
688   /* deletes the party entity for the given party detail id */
689   PROCEDURE delete_txn_party_dtls(
690      p_api_version            IN  NUMBER
691     ,p_commit                 IN  VARCHAR2 := fnd_api.g_false
692     ,p_init_msg_list          IN  VARCHAR2 := fnd_api.g_false
693     ,p_validation_level       IN  NUMBER   := fnd_api.g_valid_level_full
694     ,p_txn_party_ids_tbl      IN  csi_t_datastructures_grp.txn_party_ids_tbl
695     ,x_txn_pty_acct_ids_tbl   OUT NOCOPY csi_t_datastructures_grp.txn_pty_acct_ids_tbl
696     ,x_return_status          OUT NOCOPY VARCHAR2
697     ,x_msg_count              OUT NOCOPY NUMBER
698     ,x_msg_data               OUT NOCOPY VARCHAR2)
699   IS
700 
701     l_api_name       CONSTANT VARCHAR2(30)  := 'delete_txn_party_dtls';
702     l_api_version    CONSTANT NUMBER        := 1.0;
703     l_debug_level             NUMBER;
704 
705     l_return_status           VARCHAR2(1);
706     l_msg_count               NUMBER;
707     l_msg_data                VARCHAR2(2000);
708 
709   BEGIN
710 
711     -- Standard Start of API savepoint
712     SAVEPOINT delete_txn_party_dtls;
713 
714     csi_t_gen_utility_pvt.add('API Being Executed     : Delete Txn Party and acounts');
715     csi_t_gen_utility_pvt.add('Transaction Start Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
716 
717 
718     -- Initialize message list if p_init_msg_list is set to TRUE.
719     IF FND_API.to_Boolean( p_init_msg_list ) THEN
720       FND_MSG_PUB.initialize;
721     END IF;
722 
723     --  Initialize API return status to success
724     x_return_status := FND_API.G_RET_STS_SUCCESS;
725 
726     -- Standard call to check for call compatibility.
727     IF NOT
728 
729        FND_API.Compatible_API_Call (
730          p_current_version_number => l_api_version,
731          p_caller_version_number  => p_api_version,
732          p_api_name               => l_api_name,
733          p_pkg_name               => G_PKG_NAME) THEN
734 
735       RAISE fnd_api.g_exc_unexpected_error;
736 
737     END IF;
738 
739     /**** Commented for Bug 3304439
740     -- Check for the profile option and enable trace
741     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
742       dbms_session.set_sql_trace(TRUE);
743     END IF;
744     ****/
745 
746     -- Main API code
747     --
748     -- This procedure check if the installed base is active, If not active
749     -- populates the error message in the message queue and raises the
750     -- fnd_api.g_exc_error exception
751     --
752 
753     csi_utility_grp.check_ib_active;
754 
755     csi_t_txn_parties_pvt.delete_txn_party_dtls(
756       p_api_version          => p_api_version,
757       p_commit               => p_commit,
758       p_init_msg_list        => p_init_msg_list,
759       p_validation_level     => p_validation_level,
760       p_txn_party_ids_tbl    => p_txn_party_ids_tbl,
761       x_txn_pty_acct_ids_tbl => x_txn_pty_acct_ids_tbl,
762       x_return_status        => l_return_status,
763       x_msg_count            => l_msg_count,
764       x_msg_data             => l_msg_data);
765 
766     IF l_return_status <> fnd_api.g_ret_sts_success THEN
767       RAISE fnd_api.g_exc_error;
768     END IF;
769 
770     -- Standard check of p_commit.
771     IF FND_API.To_Boolean( p_commit ) THEN
772       COMMIT WORK;
773     END IF;
774 
775     /**** Commented for Bug 3304439
776     -- Check for the profile option and disable the trace
777     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
778       dbms_session.set_sql_trace(false);
779     END IF;
780     ****/
781 
782     -- Standard call to get message count and if count is  get message info.
783     FND_MSG_PUB.Count_And_Get(
784       p_count  =>  x_msg_count,
785       p_data   =>  x_msg_data);
786 
787     csi_t_gen_utility_pvt.add('API Successfully Executed         : Delete Txn Party and Accounts');
788     csi_t_gen_utility_pvt.add('Transaction End Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
789 
790     csi_t_gen_utility_pvt.set_debug_off;
791 
792   EXCEPTION
793     WHEN FND_API.G_EXC_ERROR THEN
794 
795       ROLLBACK TO delete_txn_party_dtls;
796       x_return_status := FND_API.G_RET_STS_ERROR ;
797       FND_MSG_PUB.Count_And_Get (
798         p_count  => x_msg_count,
799         p_data   => x_msg_data);
800 
801     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
802 
803       ROLLBACK TO delete_txn_party_dtls;
804       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
805 
806       FND_MSG_PUB.Count_And_Get(
807         p_count  => x_msg_count,
808         p_data   => x_msg_data);
809 
810     WHEN OTHERS THEN
811 
812       ROLLBACK TO delete_txn_party_dtls;
813       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
814 
815       IF FND_MSG_PUB.Check_Msg_Level(
816            p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
817 
818         FND_MSG_PUB.Add_Exc_Msg(
819           p_pkg_name       => G_PKG_NAME,
820           p_procedure_name => l_api_name);
821 
822       END IF;
823 
824       FND_MSG_PUB.Count_And_Get(
825         p_count  => x_msg_count,
826         p_data   => x_msg_data);
827 
828   END delete_txn_party_dtls;
829 
830   /* deletes the party accounts entity based on the party account id */
831   PROCEDURE delete_txn_pty_acct_dtls              (
832      p_api_version          IN  NUMBER
833     ,p_commit               IN  VARCHAR2 := fnd_api.g_false
834     ,p_init_msg_list        IN  VARCHAR2 := fnd_api.g_false
835     ,p_validation_level     IN  NUMBER   := fnd_api.g_valid_level_full
836     ,p_txn_pty_acct_ids_tbl IN  csi_t_datastructures_grp.txn_pty_acct_ids_tbl
837     ,x_return_status        OUT NOCOPY VARCHAR2
838     ,x_msg_count            OUT NOCOPY NUMBER
839     ,x_msg_data             OUT NOCOPY VARCHAR2)
840   IS
841 
842     l_api_name       CONSTANT VARCHAR2(30)  := 'delete_txn_party_acct_dtls';
843     l_api_version    CONSTANT NUMBER        := 1.0;
844     l_debug_level             NUMBER;
845 
846     l_return_status           VARCHAR2(1);
847     l_msg_count               NUMBER;
848     l_msg_data                VARCHAR2(2000);
849 
850   BEGIN
851 
852     -- Standard Start of API savepoint
853     SAVEPOINT delete_txn_party_acct_dtls;
854 
855     csi_t_gen_utility_pvt.add('API Being Executed     : delete Txn Party Accounts');
856     csi_t_gen_utility_pvt.add('Transaction Start Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
857 
858 
859     -- Initialize message list if p_init_msg_list is set to TRUE.
860     IF FND_API.to_Boolean( p_init_msg_list ) THEN
861       FND_MSG_PUB.initialize;
862     END IF;
863 
864     --  Initialize API return status to success
865     x_return_status := FND_API.G_RET_STS_SUCCESS;
866 
867     -- Standard call to check for call compatibility.
868     IF NOT
869 
870        FND_API.Compatible_API_Call (
871          p_current_version_number => l_api_version,
872          p_caller_version_number  => p_api_version,
873          p_api_name               => l_api_name,
874          p_pkg_name               => G_PKG_NAME) THEN
875 
876       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
877 
878     END IF;
879 
880     /**** Commented for Bug 3304439
881     -- Check for the profile option and enable trace
882     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
883       dbms_session.set_sql_trace(TRUE);
884     END IF;
885     ****/
886 
887     -- Main API code
888     --
889     -- This procedure check if the installed base is active, If not active
890     -- populates the error message in the message queue and raises the
891     -- fnd_api.g_exc_error exception
892     --
893 
894     csi_utility_grp.check_ib_active;
895 
896     csi_t_txn_parties_pvt.delete_txn_pty_acct_dtls(
897       p_api_version          => p_api_version,
898       p_commit               => p_commit,
899       p_init_msg_list        => p_init_msg_list,
900       p_validation_level     => p_validation_level,
901       p_txn_pty_acct_ids_tbl => p_txn_pty_acct_ids_tbl,
902       x_return_status        => l_return_status,
903       x_msg_count            => l_msg_count,
904       x_msg_data             => l_msg_data);
905 
906     IF l_return_status <> fnd_api.g_ret_sts_success THEN
907       RAISE fnd_api.g_exc_error;
908     END IF;
909 
910     -- Standard check of p_commit.
911     IF FND_API.To_Boolean( p_commit ) THEN
912       COMMIT WORK;
913     END IF;
914 
915     /**** Commented for Bug 3304439
916     -- Check for the profile option and disable the trace
917     IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
918       dbms_session.set_sql_trace(false);
919     END IF;
920     ****/
921 
922     -- Standard call to get message count and if count is  get message info.
923     FND_MSG_PUB.Count_And_Get(
924       p_count  =>  x_msg_count,
925       p_data   =>  x_msg_data);
926 
927     csi_t_gen_utility_pvt.add('API Successfully Executed         : Delete Txn Party Accounts');
928     csi_t_gen_utility_pvt.add('Transaction End Time :'||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
929 
930     csi_t_gen_utility_pvt.set_debug_off;
931 
932   EXCEPTION
933     WHEN FND_API.G_EXC_ERROR THEN
934 
935       ROLLBACK TO delete_txn_party_acct_dtls;
936       x_return_status := FND_API.G_RET_STS_ERROR ;
937       FND_MSG_PUB.Count_And_Get (
938         p_count  => x_msg_count,
939         p_data   => x_msg_data);
940 
941     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
942 
943       ROLLBACK TO delete_txn_party_acct_dtls;
944       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
945 
946       FND_MSG_PUB.Count_And_Get(
947         p_count  => x_msg_count,
948         p_data   => x_msg_data);
949 
950     WHEN OTHERS THEN
951 
952       ROLLBACK TO delete_txn_party_acct_dtls;
953       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
954 
955       IF FND_MSG_PUB.Check_Msg_Level(
956            p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
957 
958         FND_MSG_PUB.Add_Exc_Msg(
959           p_pkg_name       => G_PKG_NAME,
960           p_procedure_name => l_api_name);
961 
962       END IF;
963 
964       FND_MSG_PUB.Count_And_Get(
965         p_count  => x_msg_count,
966         p_data   => x_msg_data);
967 
968   END delete_txn_pty_acct_dtls;
969 
970 END csi_t_txn_parties_grp;