[Home] [Help]
PACKAGE BODY: APPS.IBY_EXT_PAYEE_RELSHIPS_PKG
Source
1 PACKAGE BODY IBY_EXT_PAYEE_RELSHIPS_PKG AS
2 /*$Header: ibyprelb.pls 120.4.12010000.7 2009/02/03 19:47:33 pschalla noship $*/
3
4
5 /* Debug logging procedure*/
6 PROCEDURE print_debuginfo(
7 p_message_text IN varchar2
8 )
9 IS
10 BEGIN
11 iby_debug_pub.add( debug_msg => p_message_text,
12 debug_level => FND_LOG.LEVEL_STATEMENT,
13 module => 'IBY_EXT_PAYEE_RELSHIPS_PKG');
14 END print_debuginfo;
15
16
17 /* Default Relationship
18 * For defaulting relationship between a supplier
19 * a remit-to-supplier
20 */
21 PROCEDURE default_Ext_Payee_Relationship (
22 p_party_id IN NUMBER,
23 p_supplier_site_id IN NUMBER,
24 p_date IN DATE,
25 x_remit_party_id IN OUT NOCOPY NUMBER,
26 x_remit_supplier_site_id IN OUT NOCOPY NUMBER,
27 x_relationship_id IN OUT NOCOPY NUMBER
28 ) IS
29 BEGIN
30
31 print_debuginfo('Enter : default_Ext_Payee_Relationship ');
32
33 SELECT
34 relationship_id,
35 remit_party_id,
36 remit_supplier_site_id
37 INTO
38 x_relationship_id,
39 x_remit_party_id,
40 x_remit_supplier_site_id
41 FROM iby_ext_payee_relationships irel
42 WHERE party_id = p_party_id
43 AND supplier_site_id = p_supplier_site_id
44 AND primary_flag = 'Y'
45 AND active = 'Y'
46 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
47 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
48
49 print_debuginfo('Exit : default_Ext_Payee_Relationship ');
50
51 EXCEPTION
52 WHEN OTHERS THEN
53 x_relationship_id := -1;
54 x_remit_party_id := p_party_id;
55 x_remit_supplier_site_id := p_supplier_site_id;
56 print_debuginfo('Default relationship not found !');
57 print_debuginfo('Exit : default_Ext_Payee_Relationship ');
58
59 END default_Ext_Payee_Relationship;
60
61
62 /*
63 * Public Defaulting Relationship for AP's Import Interface
64 */
65
66 PROCEDURE import_Ext_Payee_Relationship (
67 p_party_id IN NUMBER,
68 p_supplier_site_id IN NUMBER,
69 p_date IN DATE,
70 x_result IN OUT NOCOPY VARCHAR2,
71 x_remit_party_id IN OUT NOCOPY NUMBER,
72 x_remit_supplier_site_id IN OUT NOCOPY NUMBER,
73 x_relationship_id IN OUT NOCOPY NUMBER
74 ) IS
75 p_count NUMBER;
76 BEGIN
77
78 print_debuginfo('Enter : import_Ext_Payee_Relationship ');
79 print_debuginfo('Input Parameters : p_party_id,p_supplier_site_id,p_date');
80 print_debuginfo('Input Values : ' || p_party_id ||',' || p_supplier_site_id ||',' || p_date );
81
82 IF ( (p_party_id = x_remit_party_id AND p_supplier_site_id IS NULL) OR
83 (p_party_id IS NULL AND p_supplier_site_id = x_remit_supplier_site_id) OR
84 (p_party_id = x_remit_party_id AND p_supplier_site_id = x_remit_supplier_site_id) ) THEN
85 print_debuginfo('0 Trading Partner and Remit to Supplier are same');
86 x_result := FND_API.G_TRUE ;
87 x_relationship_id := -1;
88 x_remit_party_id := p_party_id;
89 x_remit_supplier_site_id := p_supplier_site_id;
90 print_debuginfo('0 Output Parameters : x_result,x_relationship_id,x_remit_party_id,x_remit_supplier_site_id');
91 print_debuginfo('0 Output Values : ' || x_result ||',' || x_relationship_id ||',' || x_remit_party_id || ','|| x_remit_supplier_site_id );
92 -- RELATIONSHIP ID IS NOT PROVIDED
93 ELSIF ( (x_relationship_id IS NULL or x_relationship_id = -1) AND x_remit_party_id IS NULL AND x_remit_supplier_site_id IS NULL) THEN
94 BEGIN
95
96 print_debuginfo('Relationship ID is NOT provided');
97 print_debuginfo('1 Remit-To-Supplier and Remit-To-Supplier Site are not provided');
98
99 SELECT
100 relationship_id,
101 remit_party_id,
102 remit_supplier_site_id
103 INTO
104 x_relationship_id,
105 x_remit_party_id,
106 x_remit_supplier_site_id
107 FROM iby_ext_payee_relationships irel
108 WHERE party_id = p_party_id
109 AND supplier_site_id = p_supplier_site_id
110 AND active = 'Y'
111 AND primary_flag = 'Y'
112 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
113 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
114
115 x_result := FND_API.G_TRUE ;
116
117 EXCEPTION
118 WHEN OTHERS THEN
119 print_debuginfo('1 Primary Relationship not found');
120 x_result := FND_API.G_TRUE ;
121 x_relationship_id := -1;
122 x_remit_party_id := p_party_id;
123 x_remit_supplier_site_id := p_supplier_site_id;
124 print_debuginfo('1 Output Parameters : x_result,x_relationship_id,x_remit_party_id,x_remit_supplier_site_id');
125 print_debuginfo('1 Output Values : ' || x_result ||',' || x_relationship_id ||',' || x_remit_party_id || ','|| x_remit_supplier_site_id );
126
127 END;
128 ELSIF ( (x_relationship_id IS NULL or x_relationship_id = -1) AND x_remit_party_id IS NULL AND NOT (x_remit_supplier_site_id IS NULL)) THEN
129 BEGIN
130
131 print_debuginfo('Relationship ID is NOT provided');
132 print_debuginfo('2 Remit-To-Supplier is not provided');
133 SELECT
134 relationship_id,
135 remit_party_id
136 INTO
137 x_relationship_id,
138 x_remit_party_id
139 FROM iby_ext_payee_relationships irel
140 WHERE party_id = p_party_id
141 AND supplier_site_id = p_supplier_site_id
142 AND remit_supplier_site_id = x_remit_supplier_site_id
143 AND active = 'Y'
144 AND primary_flag = 'Y'
145 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
146 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
147
148 x_result := FND_API.G_TRUE ;
149
150 EXCEPTION
151 WHEN OTHERS THEN
152 IF (x_remit_supplier_site_id <> p_supplier_site_id ) THEN
153
154 print_debuginfo('2 Primary Relationship not found');
155 SELECT count(*)
156 INTO p_count
157 FROM iby_ext_payee_relationships irel
158 WHERE party_id = p_party_id
159 AND supplier_site_id = p_supplier_site_id
160 AND remit_supplier_site_id = x_remit_supplier_site_id
161 AND active = 'Y'
162 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
163 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
164 END IF;
165
166 IF (( p_count > 0) OR (x_remit_supplier_site_id = p_supplier_site_id) ) THEN
167 print_debuginfo('2 Secondary Relationship found');
168 x_result := FND_API.G_TRUE ;
169 ELSE
170 print_debuginfo('2 Secondary Relationship not found');
171 x_result := FND_API.G_FALSE ;
172 END IF;
173
174 x_relationship_id := -1;
175 x_remit_party_id := p_party_id;
176 x_remit_supplier_site_id := p_supplier_site_id;
177 print_debuginfo('2 Output Parameters : x_result,x_relationship_id,x_remit_party_id,x_remit_supplier_site_id');
178 print_debuginfo('2 Output Values : ' || x_result ||',' || x_relationship_id ||',' || x_remit_party_id || ','|| x_remit_supplier_site_id );
179
180
181 END;
182 ELSIF ( (x_relationship_id IS NULL or x_relationship_id = -1) AND NOT(x_remit_party_id IS NULL) AND x_remit_supplier_site_id IS NULL) THEN
183 BEGIN
184
185 print_debuginfo('Relationship ID is NOT provided');
186 print_debuginfo('3 Remit-To-Supplier Site is not provided');
187 SELECT
188 relationship_id,
189 remit_supplier_site_id
190 INTO
191 x_relationship_id,
192 x_remit_supplier_site_id
193 FROM iby_ext_payee_relationships irel
194 WHERE party_id = p_party_id
195 AND supplier_site_id = p_supplier_site_id
196 AND remit_party_id = x_remit_party_id
197 AND active = 'Y'
198 AND primary_flag = 'Y'
199 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
200 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
201
202 x_result := FND_API.G_TRUE ;
203
204 EXCEPTION
205 WHEN OTHERS THEN
206 print_debuginfo('3 Primary Relationship not found');
207 IF ( x_remit_party_id <> p_party_id ) THEN
208 SELECT count(*)
209 INTO p_count
210 FROM iby_ext_payee_relationships irel
211 WHERE party_id = p_party_id
212 AND supplier_site_id = p_supplier_site_id
213 AND remit_party_id = x_remit_party_id
214 AND active = 'Y'
215 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
216 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
217 END IF;
218
219 IF ( (p_count > 0 ) OR ( x_remit_party_id = p_party_id)) THEN
220 print_debuginfo('3 Secondary Relationship found');
221 x_result := FND_API.G_TRUE ;
222 ELSE
223 print_debuginfo('3 Secondary Relationship not found');
224 x_result := FND_API.G_FALSE ;
225 END IF;
226
227 x_relationship_id := -1;
228 x_remit_party_id := p_party_id;
229 x_remit_supplier_site_id := p_supplier_site_id;
230 print_debuginfo('3 Output Parameters : x_result,x_relationship_id,x_remit_party_id,x_remit_supplier_site_id');
231 print_debuginfo('3 Output Values : ' || x_result ||',' || x_relationship_id ||',' || x_remit_party_id || ','|| x_remit_supplier_site_id );
232
233 END;
234 ELSIF ( (x_relationship_id IS NULL or x_relationship_id = -1) AND NOT(x_remit_party_id IS NULL) AND NOT(x_remit_supplier_site_id IS NULL) ) THEN
235 BEGIN
236
237 print_debuginfo('Relationship ID is NOT provided');
238 print_debuginfo('4 Remit-To-Supplier and Remit-To-Supplier Site are provided');
239
240 SELECT
241 relationship_id
242 INTO
243 x_relationship_id
244 FROM iby_ext_payee_relationships irel
245 WHERE party_id = p_party_id
246 AND supplier_site_id = p_supplier_site_id
247 AND remit_party_id = x_remit_party_id
248 AND remit_supplier_site_id = x_remit_supplier_site_id
249 AND active = 'Y'
250 AND primary_flag = 'Y'
251 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
252 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
253
254 x_result := FND_API.G_TRUE ;
255
256 EXCEPTION
257 WHEN OTHERS THEN
258 print_debuginfo('4 Primary Relationship not found');
259
260 SELECT count(*)
261 INTO p_count
262 FROM iby_ext_payee_relationships irel
263 WHERE party_id = p_party_id
264 AND supplier_site_id = p_supplier_site_id
265 AND remit_party_id = x_remit_party_id
266 AND remit_supplier_site_id = x_remit_supplier_site_id
267 AND active = 'Y'
268 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
269 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
270
271 IF ( p_count > 0 ) THEN
272 print_debuginfo('4 Secondary Relationship found');
273 x_result := FND_API.G_TRUE ;
274 ELSE
275 print_debuginfo('4 Secondary Relationship not found');
276 x_result := FND_API.G_FALSE ;
277 END IF;
278
279 x_relationship_id := -1;
280 x_remit_party_id := p_party_id;
281 x_remit_supplier_site_id := p_supplier_site_id;
282 print_debuginfo('4 Output Parameters : x_result,x_relationship_id,x_remit_party_id,x_remit_supplier_site_id');
283 print_debuginfo('4 Output Values : ' || x_result ||',' || x_relationship_id ||',' || x_remit_party_id || ','|| x_remit_supplier_site_id );
284 END;
285
286
287 -- RELATIONSHIP ID IS PROVIDED
288 ELSIF ( NOT(x_relationship_id IS NULL OR x_relationship_id = -1) AND x_remit_party_id IS NULL AND x_remit_supplier_site_id IS NULL) THEN
289 BEGIN
290
291 print_debuginfo('Relationship ID is provided');
292 print_debuginfo('1 Remit-To-Supplier and Remit-To-Supplier Site are not provided');
293
294 SELECT
295 remit_party_id,
296 remit_supplier_site_id
297 INTO
298 x_remit_party_id,
299 x_remit_supplier_site_id
300 FROM iby_ext_payee_relationships irel
301 WHERE party_id = p_party_id
302 AND supplier_site_id = p_supplier_site_id
303 AND active = 'Y'
304 AND relationship_id = x_relationship_id
305 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
306 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
307
308 x_result := FND_API.G_TRUE ;
309
310 EXCEPTION
311 WHEN OTHERS THEN
312 print_debuginfo('1 Relationship not found');
313 x_result := FND_API.G_FALSE ;
314 print_debuginfo('1 Output Parameters : x_result,x_relationship_id,x_remit_party_id,x_remit_supplier_site_id');
315 print_debuginfo('1 Output Values : ' || x_result ||',' || x_relationship_id ||',' || x_remit_party_id || ','|| x_remit_supplier_site_id );
316
317 END;
318 ELSIF ( NOT(x_relationship_id IS NULL OR x_relationship_id = -1) AND x_remit_party_id IS NULL AND NOT (x_remit_supplier_site_id IS NULL)) THEN
319 BEGIN
320
321 print_debuginfo('Relationship ID is provided');
322 print_debuginfo('2 Remit-To-Supplier is not provided');
323 SELECT
324 remit_party_id
325 INTO
326 x_remit_party_id
327 FROM iby_ext_payee_relationships irel
328 WHERE party_id = p_party_id
329 AND supplier_site_id = p_supplier_site_id
330 AND remit_supplier_site_id = x_remit_supplier_site_id
331 AND active = 'Y'
332 AND relationship_id = x_relationship_id
333 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
334 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
335
336 x_result := FND_API.G_TRUE ;
337
338 EXCEPTION
339 WHEN OTHERS THEN
340 print_debuginfo('2 Relationship not found');
341 x_result := FND_API.G_FALSE ;
342 print_debuginfo('2 Output Parameters : x_result,x_relationship_id,x_remit_party_id,x_remit_supplier_site_id');
343 print_debuginfo('2 Output Values : ' || x_result ||',' || x_relationship_id ||',' || x_remit_party_id || ','|| x_remit_supplier_site_id );
344
345
346 END;
347 ELSIF ( NOT(x_relationship_id IS NULL OR x_relationship_id = -1) AND NOT(x_remit_party_id IS NULL) AND x_remit_supplier_site_id IS NULL) THEN
348 BEGIN
349
350 print_debuginfo('Relationship ID is provided');
351 print_debuginfo('3 Remit-To-Supplier Site is not provided');
352
353
354 SELECT
355 remit_supplier_site_id
356 INTO
357 x_remit_supplier_site_id
358 FROM iby_ext_payee_relationships irel
359 WHERE party_id = p_party_id
360 AND supplier_site_id = p_supplier_site_id
361 AND remit_party_id = x_remit_party_id
362 AND active = 'Y'
363 AND relationship_id = x_relationship_id
364 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
365 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
366
367 x_result := FND_API.G_TRUE ;
368
369 EXCEPTION
370 WHEN OTHERS THEN
371 print_debuginfo('3 Relationship not found');
372 x_result := FND_API.G_FALSE ;
373 print_debuginfo('3 Output Parameters : x_result,x_relationship_id,x_remit_party_id,x_remit_supplier_site_id');
374 print_debuginfo('3 Output Values : ' || x_result ||',' || x_relationship_id ||',' || x_remit_party_id || ','|| x_remit_supplier_site_id );
375
376 END;
377 ELSIF ( NOT(x_relationship_id IS NULL OR x_relationship_id = -1) AND NOT(x_remit_party_id IS NULL) AND NOT(x_remit_supplier_site_id IS NULL) ) THEN
378 BEGIN
379
380 print_debuginfo('Relationship ID is provided');
381 print_debuginfo('4 Remit-To-Supplier and Remit-To-Supplier Site are provided');
382
383 SELECT
384 relationship_id
385 INTO
386 x_relationship_id
387 FROM iby_ext_payee_relationships irel
388 WHERE party_id = p_party_id
389 AND supplier_site_id = p_supplier_site_id
390 AND remit_party_id = x_remit_party_id
391 AND remit_supplier_site_id = x_remit_supplier_site_id
392 AND active = 'Y'
393 AND relationship_id = x_relationship_id
394 AND(to_char(nvl(p_date, sysdate), 'YYYY-MM-DD HH24:MI:SS') BETWEEN(to_char(irel.from_date, 'YYYY-MM-DD') || ' 00:00:00')
395 AND(to_char(nvl(irel.to_date, nvl(p_date, sysdate)), 'YYYY-MM-DD') || ' 23:59:59'));
396
397 x_result := FND_API.G_TRUE ;
398
399 EXCEPTION
400 WHEN OTHERS THEN
401 print_debuginfo('4 Relationship not found');
402 x_result := FND_API.G_FALSE ;
403 print_debuginfo('4 Output Parameters : x_result,x_relationship_id,x_remit_party_id,x_remit_supplier_site_id');
404 print_debuginfo('4 Output Values : ' || x_result ||',' || x_relationship_id ||',' || x_remit_party_id || ','|| x_remit_supplier_site_id );
405 END;
406 END IF;
407
408 print_debuginfo('Output Parameters : x_result,x_relationship_id,x_remit_party_id,x_remit_supplier_site_id');
409 print_debuginfo('Output Values : ' || x_result ||',' || x_relationship_id ||',' || x_remit_party_id || ','|| x_remit_supplier_site_id );
410 print_debuginfo('Exit : import_Ext_Payee_Relationship ');
411
412 END import_Ext_Payee_Relationship;
413
414
415 END IBY_EXT_PAYEE_RELSHIPS_PKG;