DBA Data[Home] [Help]

PACKAGE BODY: APPS.AP_AIP_TABLE_HANDLER_PKG

Source


1 PACKAGE BODY AP_AIP_TABLE_HANDLER_PKG AS
2 /*$Header: apaipthb.pls 120.11 2005/10/19 22:09:53 bghose noship $*/
3 
4 PROCEDURE insert_row(
5 	P_invoice_id		IN	NUMBER,
6         P_check_id     		IN	NUMBER,
7         P_payment_num	    	IN	NUMBER,
8 	P_invoice_payment_id	IN	NUMBER,
9 	P_old_invoice_payment_id IN 	NUMBER,
10 	P_period_name		IN   	VARCHAR2,
11 	P_accounting_date	IN	DATE,
12 	P_amount		IN	NUMBER,
13 	P_discount_taken	IN	NUMBER,
14 	P_discount_lost		IN	NUMBER,
15 	P_invoice_base_amount	IN	NUMBER,
16 	P_payment_base_amount	IN	NUMBER,
17 	P_accrual_posted_flag	IN	VARCHAR2,
18 	P_cash_posted_flag	IN 	VARCHAR2,
19 	P_posted_flag		IN 	VARCHAR2,
20 	P_set_of_books_id	IN	NUMBER,
21 	P_last_updated_by     	IN 	NUMBER,
22 	P_last_update_login	IN	NUMBER,
23 	P_last_update_date	IN	DATE,
24 	P_currency_code		IN 	VARCHAR2,
25 	P_base_currency_code	IN	VARCHAR2,
26 	P_exchange_rate		IN	NUMBER,
27 	P_exchange_rate_type  	IN 	VARCHAR2,
28 	P_exchange_date		IN 	DATE,
29 	P_bank_account_id	IN	NUMBER,
30 	P_bank_account_num	IN	VARCHAR2,
31 	P_bank_account_type	IN	VARCHAR2,
32 	P_bank_num		IN	VARCHAR2,
33 	P_future_pay_posted_flag  IN   	VARCHAR2,
34 	P_exclusive_payment_flag  IN	VARCHAR2,
35 	P_accts_pay_ccid     	IN	NUMBER,
36 	P_gain_ccid	  	IN	NUMBER,
37 	P_loss_ccid   	  	IN	NUMBER,
38 	P_future_pay_ccid    	IN	NUMBER,
39 	P_asset_ccid	  	IN	NUMBER,
40 	P_payment_dists_flag	IN	VARCHAR2,
41 	P_payment_mode		IN	VARCHAR2,
42 	P_replace_flag		IN	VARCHAR2,
43 	P_attribute1		IN	VARCHAR2,
44 	P_attribute2		IN	VARCHAR2,
45 	P_attribute3		IN	VARCHAR2,
46 	P_attribute4		IN	VARCHAR2,
47 	P_attribute5		IN	VARCHAR2,
48 	P_attribute6		IN	VARCHAR2,
49 	P_attribute7		IN	VARCHAR2,
50 	P_attribute8		IN	VARCHAR2,
51 	P_attribute9		IN	VARCHAR2,
52 	P_attribute10		IN	VARCHAR2,
53 	P_attribute11		IN	VARCHAR2,
54 	P_attribute12		IN	VARCHAR2,
55 	P_attribute13		IN	VARCHAR2,
56 	P_attribute14		IN	VARCHAR2,
57 	P_attribute15		IN	VARCHAR2,
58 	P_attribute_category	IN	VARCHAR2,
59 	P_global_attribute1	IN	VARCHAR2	  Default NULL,
60 	P_global_attribute2	IN	VARCHAR2	  Default NULL,
61 	P_global_attribute3	IN	VARCHAR2	  Default NULL,
62 	P_global_attribute4	IN	VARCHAR2	  Default NULL,
63 	P_global_attribute5	IN	VARCHAR2	  Default NULL,
64 	P_global_attribute6	IN	VARCHAR2	  Default NULL,
65 	P_global_attribute7	IN	VARCHAR2	  Default NULL,
66 	P_global_attribute8	IN	VARCHAR2	  Default NULL,
67 	P_global_attribute9	IN	VARCHAR2	  Default NULL,
68 	P_global_attribute10	IN	VARCHAR2	  Default NULL,
69 	P_global_attribute11	IN	VARCHAR2	  Default NULL,
70 	P_global_attribute12	IN	VARCHAR2	  Default NULL,
71 	P_global_attribute13	IN	VARCHAR2	  Default NULL,
72 	P_global_attribute14	IN	VARCHAR2	  Default NULL,
73 	P_global_attribute15	IN	VARCHAR2	  Default NULL,
74 	P_global_attribute16	IN	VARCHAR2	  Default NULL,
75 	P_global_attribute17	IN	VARCHAR2	  Default NULL,
76 	P_global_attribute18	IN	VARCHAR2	  Default NULL,
77 	P_global_attribute19	IN	VARCHAR2	  Default NULL,
78 	P_global_attribute20	IN	VARCHAR2	  Default NULL,
79 	P_global_attribute_category	  IN	VARCHAR2  Default NULL,
80         P_calling_sequence      IN      VARCHAR2,
81         P_accounting_event_id   IN      NUMBER            Default NULL,
82         P_org_id                IN      NUMBER            Default Null)
83  IS
84  l_iban_number                   IBY_EXT_BANK_ACCOUNTS.IBAN%TYPE; --Bug 4535804
85  current_calling_sequence        VARCHAR2(2000);
86  debug_info                      VARCHAR2(100);
87 
88 BEGIN
89   current_calling_sequence := 'AP_AIP_TABLE_HANDLER_PKG.Insert_Row <-'
90                               ||P_calling_sequence;
91 
92   IF (P_PAYMENT_MODE in ('PAY','REV')) THEN
93 
94     debug_info := 'Get the IBAN_NUMBER';
95     IF  P_Check_Id is not NULL THEN
96       BEGIN
97         SELECT ipb.iban
98           INTO  l_iban_number
99           FROM  ap_checks_all ac, iby_payee_all_bankacct_v ipb  /* External Bank Uptake */
100           WHERE  ac.check_id = P_check_id
101            AND  ipb.ext_bank_account_id = ac.external_bank_account_id
102            AND  ipb.party_id = ac.party_id;
103       EXCEPTION
104         WHEN NO_DATA_FOUND THEN
105           l_iban_number := NULL;
106       END;
107     END IF;
108 
109     debug_info := 'Insert ap_invoice_payments';
110     INSERT INTO AP_INVOICE_PAYMENTS(
111                 invoice_payment_id,
112                 invoice_id,
113                 payment_num,
114                 check_id,
115                 amount,
116                 last_update_date,
117                 last_updated_by,
118                 set_of_books_id,
119                 posted_flag,
120                 accrual_posted_flag,
121                 cash_posted_flag,
122                 accts_pay_code_combination_id,
123                 accounting_date,
124                 period_name,
125                 exchange_rate_type,
126                 exchange_rate,
127                 exchange_date,
128                 discount_lost,
129                 discount_taken,
130                 invoice_base_amount,
131                 payment_base_amount,
132                 asset_code_combination_id,
133                 gain_code_combination_id,
134                 loss_code_combination_id,
135                 bank_account_num,
136                 iban_number,
137                 bank_num,
138                 bank_account_type,
139                 future_pay_code_combination_id,
140                 future_pay_posted_flag,
141                 last_update_login,
142                 creation_date,
143                 created_by,
144                 invoice_payment_type,
145                 other_invoice_id,
146                 reversal_inv_pmt_id,
147                 reversal_flag,
148                 accounting_event_id, -- Events Project - 2
149                 attribute1,
150                 attribute2,
151                 attribute3,
152                 attribute4,
153                 attribute5,
154                 attribute6,
155                 attribute7,
156                 attribute8,
157                 attribute9,
158                 attribute10,
159                 attribute11,
160                 attribute12,
161                 attribute13,
162                 attribute14,
163                 attribute15,
164                 attribute_category,
165                 global_attribute1,
166                 global_attribute2,
167                 global_attribute3,
168                 global_attribute4,
169                 global_attribute5,
170                 global_attribute6,
171                 global_attribute7,
172                 global_attribute8,
173                 global_attribute9,
174                 global_attribute10,
175                 global_attribute11,
176                 global_attribute12,
177                 global_attribute13,
178                 global_attribute14,
179                 global_attribute15,
180                 global_attribute16,
181                 global_attribute17,
182                 global_attribute18,
183                 global_attribute19,
184                 global_attribute20,
185                 global_attribute_category,
186                 org_id,
187                 assets_addition_flag)
188          VALUES(P_invoice_payment_id,
189                 P_invoice_id,
190                 P_payment_num,
191                 P_check_id,
192                 P_amount,
193                 P_last_update_date,
194                 P_last_updated_by,
195                 P_set_of_books_id,
196                 P_posted_flag,
197                 P_accrual_posted_flag,
198                 P_cash_posted_flag,
199                 P_accts_pay_ccid,
200                 P_accounting_date,
201                 P_period_name,
202                 P_exchange_rate_type,
203                 P_exchange_rate,
204                 P_exchange_date,
205                 P_discount_lost,
206                 P_discount_taken,
207                 P_invoice_base_amount,
208                 P_payment_base_amount,
209                 P_asset_ccid,
210                 P_gain_ccid,
211                 P_loss_ccid,
212                 P_bank_account_num,
213                 l_iban_number,
214                 P_bank_num,
215                 P_bank_account_type,
216                 P_future_pay_ccid,
217                 P_future_pay_posted_flag,
218                 P_last_update_login,
219                 SYSDATE,
220                 P_last_updated_by,
221                 '',
222                 '',
223                 P_old_invoice_payment_id,
224                 decode(P_old_invoice_payment_id, '', 'N', 'Y'),
225                 P_accounting_event_id, -- Events Project - 3
226                 P_attribute1,
227                 P_attribute2,
228                 P_attribute3,
229                 P_attribute4,
230                 P_attribute5,
231                 P_attribute6,
232                 P_attribute7,
233                 P_attribute8,
234                 P_attribute9,
235                 P_attribute10,
236                 P_attribute11,
237                 P_attribute12,
238                 P_attribute13,
239                 P_attribute14,
240                 P_attribute15,
241                 P_attribute_category,
242                 P_global_attribute1,
243                 P_global_attribute2,
244                 P_global_attribute3,
245                 P_global_attribute4,
246                 P_global_attribute5,
247                 P_global_attribute6,
248                 P_global_attribute7,
249                 P_global_attribute8,
250                 P_global_attribute9,
251                 P_global_attribute10,
252                 P_global_attribute11,
253                 P_global_attribute12,
254                 P_global_attribute13,
255                 P_global_attribute14,
256                 P_global_attribute15,
257                 P_global_attribute16,
258                 P_global_attribute17,
259                 P_global_attribute18,
260                 P_global_attribute19,
261                 P_global_attribute20,
262                 P_global_attribute_category,
263                 P_org_id,
264                 'U');
265 
266     --Bug 4539462 DBI logging
267     AP_DBI_PKG.Maintain_DBI_Summary
268               (p_table_name => 'AP_INVOICE_PAYMENTS',
269                p_operation => 'I',
270                p_key_value1 => P_invoice_payment_id,
271                 p_calling_sequence => current_calling_sequence);
272 
273     -- Mark old invoice payment as part of a reversal pair
274     if (p_old_invoice_payment_id is not null) then
275       update ap_invoice_payments
276       set    reversal_flag = 'Y',
277              last_update_date = p_last_update_date,
278              last_updated_by = p_last_updated_by
279       where  invoice_payment_id = p_old_invoice_payment_id;
280     end if;
281 
282   end if;
283 
284   -- Update the prepay_amount_remaining if the invoice that is paid is a
285   -- Prepayment Invoice.
286 
287   DECLARE
288     l_invoice_type VARCHAR2(30);
289 
290   BEGIN
291 
292     SELECT invoice_type_lookup_code
293     INTO   l_invoice_type
294     FROM   ap_invoices
295     WHERE  invoice_id = p_invoice_id;
296 
297     IF l_invoice_type = 'PREPAYMENT' THEN
298        --Check for DBI2
299        UPDATE ap_invoice_distributions_all
300        SET    prepay_amount_remaining = total_dist_amount
301        WHERE  invoice_id = p_invoice_id;
302 
303     END IF;
304 
305   EXCEPTION
306     WHEN OTHERS THEN
307       NULL;
308   END;
309 
310 
311 EXCEPTION
312  WHEN OTHERS then
313 
314    if (SQLCODE <> -20001 ) then
315      FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
316      FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
317      FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',current_calling_sequence);
318      FND_MESSAGE.SET_TOKEN('PARAMETERS','Invoice_id = '||TO_CHAR(P_invoice_id)
319                 ||', Payment_num = '||TO_CHAR(P_payment_num)
320                 ||', Check_id = '||TO_CHAR(P_check_id)
321                 ||', Invoice_payment_id = '||TO_CHAR(P_invoice_payment_id)
322               ||', Old Invoice_payment_id = '||TO_CHAR(P_old_invoice_payment_id)
323                 ||', Accounting_date = '||TO_CHAR(P_accounting_date)
324                 ||', Period_name = '||P_period_name
325                 ||', Amount = '||TO_CHAR(P_amount)
326                 ||', accrual_posted_flag = '||P_accrual_posted_flag
327                 ||', cash_posted_flag = '||P_cash_posted_flag
328                 ||', posted_flag = '||P_posted_flag
329                 ||', discount_taken = '||TO_CHAR(P_discount_taken)
330                 ||', discount_lost = '||TO_CHAR(P_discount_lost)
331                 ||', invoice_base_amount = '||TO_CHAR(P_invoice_base_amount)
332                 ||', payment_base_amount = '||TO_CHAR(P_payment_base_amount)
333                 ||', set_of_books_id = '||TO_CHAR(P_set_of_books_id)
334                 ||', currency_code = '||P_currency_code
335                 ||', base_currency_code = '||P_base_currency_code
336                 ||', exchange_rate = '||TO_CHAR(P_exchange_rate)
337                 ||', exchange_rate_type = '||P_exchange_rate_type
338                 ||', exchange_date = '||TO_CHAR(P_exchange_date)
339                 ||', bank_account_id = '||TO_CHAR(P_bank_account_id)
340                 ||', bank_account_num = '||P_bank_account_num
341                 ||', bank_account_type = '||P_bank_account_type
342                 ||', bank_num = '||P_bank_num
343                 ||', future_pay_posted_flag = '||P_future_pay_posted_flag
344                 ||', exclusive_payment_flag = '||P_exclusive_payment_flag
345                 ||', accts_pay_ccid = '||TO_CHAR(P_accts_pay_ccid)
346                 ||', gain_ccid = '||TO_CHAR(P_gain_ccid)
347                 ||', loss_ccid = '||TO_CHAR(P_loss_ccid)
348                 ||', future_pay_ccid= '||TO_CHAR(P_future_pay_ccid)
349                 ||', asset_ccid = '||TO_CHAR(P_asset_ccid)
350                 ||', attribute1 = '||P_attribute1
351                 ||', attribute2 = '||P_attribute2
352                 ||', attribute3 = '||P_attribute3
353                 ||', attribute4 = '||P_attribute4
354                 ||', attribute5 = '||P_attribute5
355                 ||', attribute6 = '||P_attribute6
356                 ||', attribute7 = '||P_attribute7
357                 ||', attribute8 = '||P_attribute8
358                 ||', attribute9 = '||P_attribute9
359                 ||', attribute10 = '||P_attribute10
360                 ||', attribute11 = '||P_attribute11
361                 ||', attribute12 = '||P_attribute12
362                 ||', attribute13 = '||P_attribute13
363                 ||', attribute14 = '||P_attribute14
364                 ||', attribute15 = '||P_attribute15
365                 ||', attribute_category = '||P_attribute_category
366                 ||', Last_update_by = '||TO_CHAR(P_last_updated_by)
367                 ||', Last_update_date = '||TO_CHAR(P_last_update_date)
368                 ||', Last_update_login = '||TO_CHAR(P_last_update_login)
369                 ||', payment_dists_flag = '||P_payment_dists_flag
370                 ||', payment_mode = '||P_payment_mode
371                 ||', replace_flag = '||P_replace_flag);
372 
373      FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
374    end if;
375 
376      APP_EXCEPTION.RAISE_EXCEPTION;
377 
378 end Insert_Row;
379 
380 
381 
382 PROCEDURE Update_Amounts(
383         P_invoice_payment_id    IN      NUMBER,
384         P_amount                IN      NUMBER,
385         P_invoice_base_amount   IN      NUMBER,
386         P_payment_base_amount   IN      NUMBER,
387         P_calling_sequence      IN      VARCHAR2)
388 IS
389 current_calling_sequence  VARCHAR2(2000);
390 debug_info                VARCHAR2(100);
391 
392 
393 Begin
394 
395   -- Update the calling sequence
396   --
397   current_calling_sequence := 'ap_pay_update_inv_pay_amounts<-'||
398                               P_calling_sequence;
399 
400   debug_info := 'update ap_invoice_payments amount';
401 
402   -- Update ap_invoice_payments
403 
404   UPDATE ap_invoice_payments
405     SET amount = nvl(p_amount, amount),
406         invoice_base_amount = nvl(p_invoice_base_amount, invoice_base_amount),
407         payment_base_amount = nvl(p_payment_base_amount, payment_base_amount)
408     WHERE invoice_payment_id = p_invoice_payment_id;
409 
410     --Bug 4539462 DBI logging
411     AP_DBI_PKG.Maintain_DBI_Summary
412               (p_table_name => 'AP_INVOICE_PAYMENTS',
413                p_operation => 'U',
414                p_key_value1 => P_invoice_payment_id,
415                 p_calling_sequence => current_calling_sequence);
416 
417 Exception
418  WHEN OTHERS then
419 
420    if (SQLCODE <> -20001 ) then
421      FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
422      FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
423      FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',current_calling_sequence);
424      FND_MESSAGE.SET_TOKEN('PARAMETERS'
425                 ,' Invoice_Payment_Id = '||TO_CHAR(P_invoice_payment_id)
426                 ||', Amount = '||TO_CHAR(P_amount)
427                 ||', Invoice_Base_Amount = '||TO_CHAR(P_Invoice_Base_Amount)
428                 ||', Payment_Base_Amount = '||TO_CHAR(P_Payment_Base_Amount));
432 
429 
430      FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
431    end if;
433    APP_EXCEPTION.RAISE_EXCEPTION;
434 
435 END update_amounts;
436 
437 END AP_AIP_TABLE_HANDLER_PKG;