DBA Data[Home] [Help]

PACKAGE: APPS.ARP_AUTOAPPLY_API

Source


1 PACKAGE ARP_AUTOAPPLY_API AUTHID CURRENT_USER AS
2 /*$Header: ARATAPPS.pls 120.0.12010000.5 2009/05/06 03:55:42 aghoraka noship $*/
3   /* Structure to hold a Record from the payments interface table */
4   TYPE pmt_rec_record IS RECORD(
5     customer_id ar_payments_interface.customer_id%TYPE,
6     customer_site_use_id ar_payments_interface.customer_site_use_id%TYPE,
7     customer_bank_account_id ar_payments_interface.customer_bank_account_id%TYPE,
8     customer_number ar_payments_interface.customer_number%TYPE,
9     transit_routing_number ar_payments_interface.transit_routing_number%TYPE,
10     account ar_payments_interface.account%TYPE,
11     invoice1 ar_payments_interface.invoice1%TYPE,
12     matching1_date ar_payments_interface.matching1_date%TYPE,
13     invoice1_installment ar_payments_interface.invoice1_installment%TYPE,
14     resolved_matching_number1 ar_payments_interface.resolved_matching_number1%TYPE,
15     amount_applied1 ar_payments_interface.amount_applied1%TYPE,
16     amount_applied_from1 ar_payments_interface.amount_applied_from1%TYPE,
17     resolved_matching1_installment ar_payments_interface.resolved_matching1_installment%TYPE,
18     resolved_matching1_date ar_payments_interface.resolved_matching1_date%TYPE,
19     trans_to_receipt_rate1 ar_payments_interface.trans_to_receipt_rate1%TYPE,
20     invoice_currency_code1 ar_payments_interface.invoice_currency_code1%TYPE,
21     ussgl_transaction_code1 ar_payments_interface.ussgl_transaction_code1%TYPE,
22     invoice1_status ar_payments_interface.invoice1_status%TYPE,
23     invoice2 ar_payments_interface.invoice2%TYPE,
24     matching2_date ar_payments_interface.matching2_date%TYPE,
25     invoice2_installment ar_payments_interface.invoice2_installment%TYPE,
26     resolved_matching_number2 ar_payments_interface.resolved_matching_number2%TYPE,
27     amount_applied2 ar_payments_interface.amount_applied2%TYPE,
31     trans_to_receipt_rate2 ar_payments_interface.trans_to_receipt_rate2%TYPE,
28     amount_applied_from2 ar_payments_interface.amount_applied_from2%TYPE,
29     resolved_matching2_installment ar_payments_interface.resolved_matching2_installment%TYPE,
30     resolved_matching2_date ar_payments_interface.resolved_matching2_date%TYPE,
32     invoice_currency_code2 ar_payments_interface.invoice_currency_code2%TYPE,
33     ussgl_transaction_code2 ar_payments_interface.ussgl_transaction_code2%TYPE,
34     invoice2_status ar_payments_interface.invoice2_status%TYPE,
35     invoice3 ar_payments_interface.invoice3%TYPE,
36     matching3_date ar_payments_interface.matching3_date%TYPE,
37     invoice3_installment ar_payments_interface.invoice3_installment%TYPE,
38     resolved_matching_number3 ar_payments_interface.resolved_matching_number3%TYPE,
39     amount_applied3 ar_payments_interface.amount_applied3%TYPE,
40     amount_applied_from3 ar_payments_interface.amount_applied_from3%TYPE,
41     resolved_matching3_installment ar_payments_interface.resolved_matching3_installment%TYPE,
42     resolved_matching3_date ar_payments_interface.resolved_matching1_date%TYPE,
43     trans_to_receipt_rate3 ar_payments_interface.trans_to_receipt_rate3%TYPE,
44     invoice_currency_code3 ar_payments_interface.invoice_currency_code3%TYPE,
45     ussgl_transaction_code3 ar_payments_interface.ussgl_transaction_code3%TYPE,
46     invoice3_status ar_payments_interface.invoice3_status%TYPE,
47     invoice4 ar_payments_interface.invoice4%TYPE,
48     matching4_date ar_payments_interface.matching4_date%TYPE,
49     invoice4_installment ar_payments_interface.invoice4_installment%TYPE,
50     resolved_matching_number4 ar_payments_interface.resolved_matching_number4%TYPE,
51     amount_applied4 ar_payments_interface.amount_applied4%TYPE,
52     amount_applied_from4 ar_payments_interface.amount_applied_from4%TYPE,
53     resolved_matching4_installment ar_payments_interface.resolved_matching4_installment%TYPE,
54     resolved_matching4_date ar_payments_interface.resolved_matching4_date%TYPE,
55     trans_to_receipt_rate4 ar_payments_interface.trans_to_receipt_rate4%TYPE,
56     invoice_currency_code4 ar_payments_interface.invoice_currency_code4%TYPE,
57     ussgl_transaction_code4 ar_payments_interface.ussgl_transaction_code4%TYPE,
58     invoice4_status ar_payments_interface.invoice4_status%TYPE,
59     invoice5 ar_payments_interface.invoice5%TYPE,
60     matching5_date ar_payments_interface.matching5_date%TYPE,
61     invoice5_installment ar_payments_interface.invoice5_installment%TYPE,
62     resolved_matching_number5 ar_payments_interface.resolved_matching_number5%TYPE,
63     amount_applied5 ar_payments_interface.amount_applied5%TYPE,
64     amount_applied_from5 ar_payments_interface.amount_applied_from5%TYPE,
65     resolved_matching5_installment ar_payments_interface.resolved_matching5_installment%TYPE,
66     resolved_matching5_date ar_payments_interface.resolved_matching5_date%TYPE,
67     trans_to_receipt_rate5 ar_payments_interface.trans_to_receipt_rate5%TYPE,
68     invoice_currency_code5 ar_payments_interface.invoice_currency_code5%TYPE,
69     ussgl_transaction_code5 ar_payments_interface.ussgl_transaction_code5%TYPE,
70     invoice5_status ar_payments_interface.invoice5_status%TYPE,
71     invoice6 ar_payments_interface.invoice6%TYPE,
72     matching6_date ar_payments_interface.matching6_date%TYPE,
73     invoice6_installment ar_payments_interface.invoice6_installment%TYPE,
74     resolved_matching_number6 ar_payments_interface.resolved_matching_number6%TYPE,
75     amount_applied6 ar_payments_interface.amount_applied6%TYPE,
76     amount_applied_from6 ar_payments_interface.amount_applied_from6%TYPE,
77     resolved_matching6_installment ar_payments_interface.resolved_matching6_installment%TYPE,
78     resolved_matching6_date ar_payments_interface.resolved_matching6_date%TYPE,
79     trans_to_receipt_rate6 ar_payments_interface.trans_to_receipt_rate6%TYPE,
80     invoice_currency_code6 ar_payments_interface.invoice_currency_code6%TYPE,
81     ussgl_transaction_code6 ar_payments_interface.ussgl_transaction_code6%TYPE,
82     invoice6_status ar_payments_interface.invoice6_status%TYPE,
83     invoice7 ar_payments_interface.invoice7%TYPE,
84     matching7_date ar_payments_interface.matching7_date%TYPE,
85     invoice7_installment ar_payments_interface.invoice7_installment%TYPE,
86     resolved_matching_number7 ar_payments_interface.resolved_matching_number7%TYPE,
87     amount_applied7 ar_payments_interface.amount_applied7%TYPE,
88     amount_applied_from7 ar_payments_interface.amount_applied_from7%TYPE,
89     resolved_matching7_installment ar_payments_interface.resolved_matching7_installment%TYPE,
90     resolved_matching7_date ar_payments_interface.resolved_matching7_date%TYPE,
91     trans_to_receipt_rate7 ar_payments_interface.trans_to_receipt_rate7%TYPE,
92     invoice_currency_code7 ar_payments_interface.invoice_currency_code7%TYPE,
93     ussgl_transaction_code7 ar_payments_interface.ussgl_transaction_code7%TYPE,
94     invoice7_status ar_payments_interface.invoice7_status%TYPE,
95     invoice8 ar_payments_interface.invoice8%TYPE,
96     matching8_date ar_payments_interface.matching8_date%TYPE,
97     invoice8_installment ar_payments_interface.invoice8_installment%TYPE,
98     resolved_matching_number8 ar_payments_interface.resolved_matching_number8%TYPE,
99     amount_applied8 ar_payments_interface.amount_applied8%TYPE,
100     amount_applied_from8 ar_payments_interface.amount_applied_from8%TYPE,
101     resolved_matching8_installment ar_payments_interface.resolved_matching8_installment%TYPE,
102     resolved_matching8_date ar_payments_interface.resolved_matching8_date%TYPE,
103     trans_to_receipt_rate8 ar_payments_interface.trans_to_receipt_rate8%TYPE,
107   );
104     invoice_currency_code8 ar_payments_interface.invoice_currency_code8%TYPE,
105     ussgl_transaction_code8 ar_payments_interface.ussgl_transaction_code8%TYPE,
106     invoice8_status ar_payments_interface.invoice8_status%TYPE
108   TYPE pmt_rec_tab IS TABLE OF pmt_rec_record INDEX BY BINARY_INTEGER;
109 
110   TYPE selected_recos IS RECORD(
111     remit_reference_id          AR_CASH_REMIT_REFS.remit_reference_id%TYPE,
112     ref_amount_applied          AR_CASH_REMIT_REFS.amount_applied%TYPE,
113     ref_amount_applied_from     AR_CASH_REMIT_REFS.amount_applied_from%TYPE,
114     ref_trans_to_receipt_rate   AR_CASH_REMIT_REFS.trans_to_receipt_rate%TYPE,
115     cash_receipt_id             AR_CASH_RECEIPTS.cash_receipt_id%TYPE,
116     pay_from_customer           AR_CASH_RECEIPTS.pay_from_customer%TYPE,
117     cr_customer_site_use_id     AR_CASH_RECEIPTS.customer_site_use_id%TYPE,
118     customer_trx_id             AR_PAYMENT_SCHEDULES.customer_trx_id%TYPE,
119     customer_id                 AR_PAYMENT_SCHEDULES.customer_id%TYPE,
120     customer_site_use_id        AR_PAYMENT_SCHEDULES.customer_site_use_id%TYPE,
121     resolved_matching_number    AR_PAYMENT_SCHEDULES.trx_number%TYPE,
122     terms_sequence_number       AR_PAYMENT_SCHEDULES.terms_sequence_number%TYPE,
123     resolved_matching_date      AR_PAYMENT_SCHEDULES.trx_date%TYPE,
124     trx_date                    AR_PAYMENT_SCHEDULES.trx_date%TYPE,
125     resolved_matching_class     AR_PAYMENT_SCHEDULES.class%TYPE,
126     resolved_match_currency     AR_PAYMENT_SCHEDULES.invoice_currency_code%TYPE,
127     amount_due_original         AR_PAYMENT_SCHEDULES.amount_due_original%TYPE,
128     amount_due_remaining        AR_PAYMENT_SCHEDULES.amount_due_remaining%TYPE,
129     discount_taken_earned       AR_PAYMENT_SCHEDULES.discount_taken_earned%TYPE,
130     discount_taken_unearned     AR_PAYMENT_SCHEDULES.discount_taken_unearned%TYPE,
131     amount_applied              AR_PAYMENT_SCHEDULES.amount_due_remaining%TYPE,
132     trans_to_receipt_rate       AR_CASH_REMIT_REFS.trans_to_receipt_rate%TYPE,
133     amount_applied_from         AR_PAYMENT_SCHEDULES.amount_due_remaining%TYPE,
134     payment_schedule_id         AR_PAYMENT_SCHEDULES.payment_schedule_id%TYPE,
135     cons_inv_id                 AR_CASH_RECOS.cons_inv_id%TYPE,
136     match_score_value           AR_CASH_RECOS.match_score_value%TYPE,
137     org_id                      AR_PAYMENT_SCHEDULES.org_id%TYPE,
138     term_id                     AR_PAYMENT_SCHEDULES.term_id%TYPE,
139     automatch_id                AR_CASH_AUTOMATCHES.automatch_id%TYPE,
140     use_matching_date           AR_CASH_AUTOMATCHES.use_matching_date%TYPE,
141     use_matching_amount         AR_CASH_AUTOMATCHES.use_matching_amount%TYPE,
142     auto_match_threshold        AR_CASH_AUTOMATCHES.auto_match_threshold%TYPE,
143     priority                    AR_CASH_RECOS.priority%TYPE,
144     receipt_currency_code       AR_CASH_RECEIPTS.currency_code%TYPE,
145     receipt_date                AR_CASH_RECEIPTS.receipt_date%TYPE,
146     allow_overapplication_flag  RA_CUST_TRX_TYPES.allow_overapplication_flag%TYPE,
147     partial_discount_flag       RA_TERMS.partial_discount_flag%TYPE,
148     reco_num                    NUMBER
149   );
150 
151   TYPE selected_recos_table IS TABLE OF selected_recos INDEX BY BINARY_INTEGER;
152 
153   TYPE reco_id_tab IS TABLE OF ar_cash_recos.recommendation_id%TYPE
154                              INDEX BY BINARY_INTEGER;
155   TYPE remit_ref_id_tab IS TABLE OF ar_cash_recos.remit_reference_id%TYPE
156                                INDEX BY BINARY_INTEGER;
157   TYPE customer_id_tab IS TABLE OF ar_cash_recos.pay_from_customer%TYPE
158                                INDEX BY BINARY_INTEGER;
159   TYPE customer_site_use_id_tab IS TABLE OF ar_cash_recos.customer_site_use_id%TYPE
160                                INDEX BY BINARY_INTEGER;
161   TYPE resolved_matching_number_tab IS TABLE OF ar_cash_recos.resolved_matching_number%TYPE
162                                INDEX BY BINARY_INTEGER;
163   TYPE resolved_matching_date_tab IS TABLE OF ar_cash_recos.resolved_matching_date%TYPE
164                                INDEX BY BINARY_INTEGER;
165   TYPE resolved_matching_class_tab IS TABLE OF ar_cash_recos.resolved_matching_class%TYPE
166                                INDEX BY BINARY_INTEGER;
167   TYPE resolved_match_currency_tab IS TABLE OF ar_cash_recos.resolved_match_currency%TYPE
168                                INDEX BY BINARY_INTEGER;
169   TYPE match_resolved_using_tab IS TABLE OF ar_cash_recos.match_resolved_using%TYPE
170                                INDEX BY BINARY_INTEGER;
171   TYPE cons_inv_id_tab IS TABLE OF ar_cash_recos.cons_inv_id%TYPE
172                                INDEX BY BINARY_INTEGER;
173   TYPE match_score_value_tab IS TABLE OF ar_cash_recos.match_score_value%TYPE
174                                INDEX BY BINARY_INTEGER;
175   TYPE match_reason_code_tab IS TABLE OF ar_cash_recos.match_reason_code%TYPE
176                                INDEX BY BINARY_INTEGER;
177   TYPE org_id_tab IS TABLE OF ar_cash_recos.org_id%TYPE
178                                INDEX BY BINARY_INTEGER;
179   TYPE automatch_id_tab IS TABLE OF ar_cash_recos.automatch_id%TYPE
180                                INDEX BY BINARY_INTEGER;
181   TYPE priority_tab IS TABLE OF ar_cash_recos.priority%TYPE
182                                INDEX BY BINARY_INTEGER;
183 
184 
185   TYPE reco_num_tab IS TABLE OF ar_cash_reco_lines.line_number%TYPE
186                                INDEX BY BINARY_INTEGER;
187   TYPE customer_trx_id_tab IS TABLE OF ar_cash_reco_lines.customer_trx_id%TYPE
188                                INDEX BY BINARY_INTEGER;
189   TYPE payment_schedule_id_tab IS TABLE OF ar_cash_reco_lines.payment_schedule_id%TYPE
190                                INDEX BY BINARY_INTEGER;
191   TYPE amount_applied_tab IS TABLE OF ar_cash_reco_lines.amount_applied%TYPE
192                                INDEX BY BINARY_INTEGER;
193   TYPE amount_applied_from_tab IS TABLE OF ar_cash_reco_lines.amount_applied_from%TYPE
194                                INDEX BY BINARY_INTEGER;
198                                INDEX BY BINARY_INTEGER;
195   TYPE trans_to_receipt_rate_tab IS TABLE OF ar_cash_reco_lines.trans_to_receipt_rate%TYPE
196                                INDEX BY BINARY_INTEGER;
197   TYPE receipt_currency_code_tab IS TABLE OF ar_cash_reco_lines.receipt_currency_code%TYPE
199   TYPE receipt_date_tab IS TABLE OF ar_cash_reco_lines.receipt_date%TYPE
200                                INDEX BY BINARY_INTEGER;
201   TYPE recommendation_reason_tab IS TABLE OF ar_cash_reco_lines.recommendation_reason%TYPE
202                                INDEX BY BINARY_INTEGER;
203   TYPE discount_taken_earned_tab IS TABLE OF ar_cash_reco_lines.discount_taken_earned%TYPE
204                                INDEX BY BINARY_INTEGER;
205   TYPE discount_taken_unearned_tab IS TABLE OF ar_cash_reco_lines.discount_taken_unearned%TYPE
206                                INDEX BY BINARY_INTEGER;
207 
208   TYPE inv_num_tab IS TABLE OF ar_payments_interface.invoice1%TYPE
209                                           INDEX BY BINARY_INTEGER;
210   TYPE mtch_date_tab IS TABLE OF ar_payments_interface.matching1_date%TYPE
211                                           INDEX BY BINARY_INTEGER;
212   TYPE inst_num_tab IS TABLE OF ar_payments_interface.invoice1_installment%TYPE
213                                           INDEX BY BINARY_INTEGER;
214   TYPE res_mtch_num_tab IS TABLE OF ar_payments_interface.resolved_matching_number1%TYPE
215                                           INDEX BY BINARY_INTEGER;
216   TYPE amt_app_tab IS TABLE OF ar_payments_interface.amount_applied1%TYPE
217                                           INDEX BY BINARY_INTEGER;
218   TYPE amt_app_frm_tab IS TABLE OF ar_payments_interface.amount_applied_from1%TYPE
219                                           INDEX BY BINARY_INTEGER;
220   TYPE res_mtch_inst_tab IS TABLE OF ar_payments_interface.resolved_matching1_installment%TYPE
221                                           INDEX BY BINARY_INTEGER;
222   TYPE res_mtch_date_tab IS TABLE OF ar_payments_interface.resolved_matching1_date%TYPE
223                                           INDEX BY BINARY_INTEGER;
224   TYPE trns_to_rcpt_rt_tab IS TABLE OF ar_payments_interface.trans_to_receipt_rate1%TYPE
225                                           INDEX BY BINARY_INTEGER;
226   TYPE inv_cur_code_tab IS TABLE OF ar_payments_interface.invoice_currency_code1%TYPE
227                                           INDEX BY BINARY_INTEGER;
228   TYPE ussgl_trx_code_tab IS TABLE OF ar_payments_interface.ussgl_transaction_code1%TYPE
229                                           INDEX BY BINARY_INTEGER;
230   TYPE inv_status_tab IS TABLE OF ar_payments_interface.invoice1_status%TYPE
231                                           INDEX BY BINARY_INTEGER;
232   TYPE line_num_tab IS TABLE OF ar_cash_remit_refs.line_number%TYPE
233                                           INDEX BY BINARY_INTEGER;
234 
235   /* * This procedure is called from the concurrent request. This in turns *
236      * spawns the child program if submitted with total_workers > 1.       * */
237   PROCEDURE auto_apply_master ( P_ERRBUF              OUT NOCOPY VARCHAR2
238                               , P_RETCODE             OUT NOCOPY NUMBER
239                               , p_org_id                IN NUMBER
240                               , p_receipt_no_l        IN VARCHAR2
241                               , p_receipt_no_h        IN VARCHAR2
242                               , p_batch_name_l        IN VARCHAR2
243                               , p_batch_name_h        IN VARCHAR2
244                               , p_min_unapp_amt       IN NUMBER
245                               , p_receipt_date_l      IN VARCHAR2
246                               , p_receipt_date_h      IN VARCHAR2
247                               , p_receipt_method_l    IN VARCHAR2
248                               , p_receipt_method_h    IN VARCHAR2
249                               , p_customer_name_l     IN VARCHAR2
250                               , p_customer_name_h     IN VARCHAR2
251                               , p_customer_no_l       IN VARCHAR2
252                               , p_customer_no_h       IN VARCHAR2
253                               , p_batch_id            IN NUMBER
254                               , p_transmission_id     IN NUMBER
255                               , p_called_from         IN VARCHAR2
256                               , p_total_workers       IN NUMBER);
257   /* * This procedure makes a call to insert recommendations, validate and  *
258      * apply recommendations.                                               * */
259   PROCEDURE auto_apply_child( P_ERRBUF OUT NOCOPY VARCHAR2
260                               , P_RETCODE OUT NOCOPY NUMBER
261                               , p_worker_number IN NUMBER);
262   /* * The procedure to delete records inserted in ar_cash_remit_ref_interim *
263      * for the current run.                                                  * */
264   PROCEDURE delete_interim_records;
265 
266   /* * This function returns a new sequence number                           * */
267   FUNCTION get_next_reco_id( p_reco_num IN NUMBER)
268   RETURN NUMBER;
269 
270   FUNCTION get_cross_curr_rate(p_amount_applied IN ar_cash_remit_refs.amount_applied%TYPE
271                              , p_amount_applied_from IN ar_cash_remit_refs.amount_applied_from%TYPE
272                              , p_inv_curr_code IN ar_payment_schedules.invoice_currency_code%TYPE
273                              , p_rec_curr_code IN ar_cash_receipts.currency_code%TYPE)
274   RETURN NUMBER;
275 
276 END ARP_AUTOAPPLY_API;