[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;