DBA Data[Home] [Help]

PACKAGE BODY: APPS.CAC_SYNC_CONTACT_PREF_PVT

Source


1 PACKAGE BODY CAC_SYNC_CONTACT_PREF_PVT AS
2 /* $Header: cacvscpb.pls 120.1 2005/07/02 02:20:29 appldev noship $ */
3 
4     PROCEDURE CREATE_CONTACT_PREFERENCE
5     ( p_init_msg_list           IN  VARCHAR2
6     , p_party_id                IN  NUMBER
7     , p_category                IN  VARCHAR2
8     , p_preference_code         IN  VARCHAR2
9     , p_module                  IN  VARCHAR2
10     , p_value_number            IN  NUMBER
11     , p_last_sync_date          IN  DATE
12     , x_return_status           OUT NOCOPY VARCHAR2
13     , x_msg_count               OUT NOCOPY NUMBER
14     , x_msg_data                OUT NOCOPY VARCHAR2
15     )
16     IS
17         CURSOR c_preference IS
18         SELECT party_preference_id
19           FROM hz_party_preferences
20          WHERE party_id = p_party_id
21            AND category = p_category
22            AND value_number = p_value_number
23            AND preference_code = p_preference_code
24            AND module = p_module;
25 
26         rec_preference c_preference%ROWTYPE;
27         l_object_version_number NUMBER;
28     BEGIN
29         SAVEPOINT create_contact_preference_sv;
30 
31         x_return_status := fnd_api.g_ret_sts_success;
32 
33         IF p_init_msg_list IS NULL OR
34            fnd_api.to_boolean (p_init_msg_list)
35         THEN
36             fnd_msg_pub.initialize;
37         END IF;
38 
39         -- Check if the given contact_party_id exists
40         OPEN c_preference;
41         FETCH c_preference INTO rec_preference;
42 
43         IF c_preference%NOTFOUND THEN
44 
45             CLOSE c_preference;
46 
47             hz_preference_pub.add
48             ( p_party_id              => p_party_id
49             , p_category              => p_category
50             , p_preference_code       => p_preference_code
51             , p_value_number          => p_value_number
52             , p_module                => p_module
53             , x_return_status         => x_return_status
54             , x_msg_count             => x_msg_count
55             , x_msg_data              => x_msg_data
56             , x_object_version_number => l_object_version_number
57             );
58 
59             IF NOT (x_return_status = fnd_api.g_ret_sts_success)
60             THEN
61                 x_return_status := fnd_api.g_ret_sts_unexp_error;
62                 RAISE fnd_api.g_exc_unexpected_error;
63             END IF;
64 
65         ELSE
66             CLOSE c_preference;
67         END IF;
68 
69 
70         -- Correct last_update_date
71         IF p_last_sync_date IS NOT NULL THEN
72             UPDATE hz_party_preferences
73                SET last_update_date = p_last_sync_date
74              WHERE party_id = p_party_id
75                AND category = p_category
76                AND preference_code = p_preference_code
77                AND module = p_module
78                AND value_number = p_value_number;
79         END IF;
80 
81         fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
82 
83     EXCEPTION
84         WHEN fnd_api.g_exc_unexpected_error THEN
85             ROLLBACK TO create_contact_preference_sv;
86             x_return_status := fnd_api.g_ret_sts_unexp_error;
87             fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
88             IF c_preference%ISOPEN THEN
89                 CLOSE c_preference;
90             END IF;
91 
92         WHEN OTHERS THEN
93             ROLLBACK TO create_contact_preference_sv;
94             fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
95             fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
96             fnd_msg_pub.add;
97             x_return_status := fnd_api.g_ret_sts_unexp_error;
98             fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
99             IF c_preference%ISOPEN THEN
100                 CLOSE c_preference;
101             END IF;
102     END CREATE_CONTACT_PREFERENCE;
103 
104     PROCEDURE DELETE_CONTACT_PREFERENCE
105     ( p_init_msg_list           IN  VARCHAR2 DEFAULT NULL
106     , p_party_id                IN  NUMBER
107     , p_category                IN  VARCHAR2
108     , p_preference_code         IN  VARCHAR2
109     , p_value_number            IN  NUMBER
110     , p_object_version_number   IN  NUMBER
111     , x_return_status           OUT NOCOPY VARCHAR2
112     , x_msg_count               OUT NOCOPY NUMBER
113     , x_msg_data                OUT NOCOPY VARCHAR2
114     )
115     IS
116     BEGIN
117         SAVEPOINT delete_contact_preference_sv;
118 
119         x_return_status := fnd_api.g_ret_sts_success;
120 
121         IF p_init_msg_list IS NULL OR
122            fnd_api.to_boolean (p_init_msg_list)
123         THEN
124             fnd_msg_pub.initialize;
125         END IF;
126 
127         hz_preference_pub.remove
128         ( p_party_id              => p_party_id
129         , p_category              => p_category
130         , p_preference_code       => p_preference_code
131         , p_value_number          => p_value_number
132         , p_object_version_number => p_object_version_number
133         , x_return_status         => x_return_status
134         , x_msg_count             => x_msg_count
135         , x_msg_data              => x_msg_data
136         );
137 
138         IF NOT (x_return_status = fnd_api.g_ret_sts_success)
139         THEN
140             x_return_status := fnd_api.g_ret_sts_unexp_error;
141             RAISE fnd_api.g_exc_unexpected_error;
142         END IF;
143 
144         fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
145 
146     EXCEPTION
147         WHEN fnd_api.g_exc_unexpected_error THEN
148             ROLLBACK TO delete_contact_preference_sv;
149             x_return_status := fnd_api.g_ret_sts_unexp_error;
150             fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
151 
152         WHEN OTHERS THEN
153             ROLLBACK TO delete_contact_preference_sv;
154             fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
155             fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
156             fnd_msg_pub.add;
157             x_return_status := fnd_api.g_ret_sts_unexp_error;
158             fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
159 
160     END DELETE_CONTACT_PREFERENCE;
161 
162 END CAC_SYNC_CONTACT_PREF_PVT;