[Home] [Help]
PACKAGE: APPS.AP_APPROVAL_PKG
Source
1 PACKAGE AP_APPROVAL_PKG AS
2 /* $Header: apaprvls.pls 120.16.12010000.5 2008/11/11 10:00:01 kpasikan ship $ */
3
4 /*=============================================================================
5 | Global variable Spec
6 *===========================================================================*/
7
8 g_debug_mode VARCHAR2(1):= 'N';
9
10 ---
11 TYPE g_org_holds_rec IS RECORD(
12 hold_lookup_code ap_holds_all.hold_lookup_code%type,
13 holds_placed NUMBER,
14 holds_released NUMBER,
15 org_id ap_invoices_all.org_id%type);
16
17 TYPE g_org_holds_tab IS TABLE OF g_org_holds_rec
18 INDEX BY BINARY_INTEGER;
19
20 g_org_holds g_org_holds_tab;
21 ---
22
23 TYPE HoldsArray IS TABLE OF ap_holds.hold_lookup_code%TYPE
24 INDEX BY BINARY_INTEGER;
25
26 TYPE CountArray IS TABLE OF NUMBER
27 INDEX BY BINARY_INTEGER;
28 ---
29
30 TYPE Goods_Tolerance_Rec Is RECORD(
31 price_tolerance ap_tolerance_templates.price_tolerance%type,
32 quantity_tolerance ap_tolerance_templates.quantity_tolerance%type,
33 qty_received_tolerance ap_tolerance_templates.qty_received_tolerance%type,
34 max_qty_ord_tolerance ap_tolerance_templates.max_qty_ord_tolerance%type,
35 max_qty_rec_tolerance ap_tolerance_templates.max_qty_rec_tolerance%type,
36 ship_amt_tolerance ap_tolerance_templates.ship_amt_tolerance%type,
37 rate_amt_tolerance ap_tolerance_templates.rate_amt_tolerance%type,
38 total_amt_tolerance ap_tolerance_templates.total_amt_tolerance%type);
39
40 TYPE GOODS_TOLERANCES_TAB IS TABLE OF Goods_Tolerance_Rec
41 INDEX BY PLS_INTEGER;
42
43 G_GOODS_TOLERANCES GOODS_TOLERANCES_TAB;
44 ---
45
46 TYPE Services_Tolerances_Rec IS RECORD(
47 amount_tolerance ap_tolerance_templates.price_tolerance%type,
48 amt_received_tolerance ap_tolerance_templates.quantity_tolerance%type,
49 max_amt_ord_tolerance ap_tolerance_templates.max_qty_ord_tolerance%type,
50 max_amt_rec_tolerance ap_tolerance_templates.max_qty_rec_tolerance%type,
51 ser_ship_amt_tolerance ap_tolerance_templates.ship_amt_tolerance%type,
52 ser_rate_amt_tolerance ap_tolerance_templates.rate_amt_tolerance%type,
53 ser_total_amt_tolerance ap_tolerance_templates.total_amt_tolerance%type);
54
55 TYPE SERVICES_TOLERANCES_TAB IS TABLE OF Services_Tolerances_Rec
56 INDEX BY PLS_INTEGER;
57
58 G_SERVICES_TOLERANCES SERVICES_TOLERANCES_TAB;
59 ---
60
61 TYPE Options_Record Is RECORD(
62 chart_of_accounts_id gl_sets_of_books.chart_of_accounts_id%type,
63 set_of_books_id gl_sets_of_books.set_of_books_id%type,
64 automatic_offsets_flag ap_system_parameters.automatic_offsets_flag%type,
65 recalc_pay_schedule_flag ap_system_parameters.recalc_pay_schedule_flag%type,
66 liability_post_lookup_code ap_system_parameters.liability_post_lookup_code%type,
67 rate_var_gain_ccid ap_system_parameters.rate_var_gain_ccid%type,
68 rate_var_loss_ccid ap_system_parameters.rate_var_loss_ccid%type,
69 base_currency_code ap_system_parameters.base_currency_code%type,
70 match_on_tax_flag ap_system_parameters.match_on_tax_flag%type,
71 enforce_tax_from_account ap_system_parameters.enforce_tax_from_account%type,
72 inv_encumbrance_type_id financials_system_parameters.inv_encumbrance_type_id%type,
73 purch_encumbrance_type_id financials_system_parameters.purch_encumbrance_type_id%type,
74 receipt_acceptance_days financials_system_parameters.receipt_acceptance_days%type,
75 gl_date_from_receipt_flag ap_system_parameters.gl_date_from_receipt_flag%type,
76 accounting_method_option ap_system_parameters.accounting_method_option%type,
77 secondary_accounting_method ap_system_parameters.secondary_accounting_method%type,
78 cash_basis_enc_nr_tax financials_system_parameters.cash_basis_enc_nr_tax%type,
79 non_recoverable_tax_flag financials_system_parameters.non_recoverable_tax_flag%type,
80 disc_is_inv_less_tax_flag ap_system_parameters.disc_is_inv_less_tax_flag%type,
81 org_id financials_system_parameters.org_id%type,
82 System_User NUMBER,
83 User_ID NUMBER);
84
85 TYPE Options_Table IS TABLE OF Options_Record
86 INDEX BY PLS_INTEGER;
87
88 G_OPTIONS_TABLE Options_Table;
89 ---
90
91 TYPE Invoice_Rec IS RECORD(
92 invoice_id ap_invoices_all.invoice_id%type,
93 invoice_num ap_invoices_all.invoice_num%type,
94 org_id ap_invoices_all.org_id%type,
95 invoice_amount ap_invoices_all.invoice_amount%type,
96 base_amount ap_invoices_all.base_amount%type,
97 exchange_rate ap_invoices_all.exchange_rate%type,
98 invoice_currency_code ap_invoices_all.invoice_currency_code%type,
99 invoice_amount_limit ap_supplier_sites_all.invoice_amount_limit%type,
100 hold_future_payments_flag ap_supplier_sites_all.hold_future_payments_flag%type,
101 invoice_type_lookup_code ap_invoices_all.invoice_type_lookup_code%type,
102 exchange_date ap_invoices_all.exchange_date%type,
103 exchange_rate_type ap_invoices_all.exchange_rate_type%type,
104 vendor_id ap_invoices_all.vendor_id%type,
105 invoice_date ap_invoices_all.invoice_date%type,
106 disc_is_inv_less_tax_flag ap_invoices_all.disc_is_inv_less_tax_flag%type,
107 exclude_freight_from_discount ap_invoices_all.exclude_freight_from_discount%type,
108 tolerance_id ap_supplier_sites_all.tolerance_id%type,
109 services_tolerance_id ap_supplier_sites_all.services_tolerance_id%type);
110
111 TYPE Invoices_Table IS TABLE OF Invoice_Rec
112 INDEX BY PLS_INTEGER;
113
114 G_INVOICES_TABLE Invoices_Table;
115 G_SELECTED_INVOICES Invoices_Table;
116 G_VALIDATION_REQUEST_ID NUMBER;
117 ---
118
119 /*=============================================================================
120 | Public Procedure Specification
121 *============================================================================*/
122
123 PROCEDURE Cache_Options
124 (p_calling_sequence IN VARCHAR2);
125
126 PROCEDURE Cache_Tolerance_Templates
127 (p_tolerance_id IN NUMBER,
128 p_services_tolerance_id IN NUMBER,
129 p_calling_sequence IN VARCHAR2);
130
131 PROCEDURE Generate_Distributions
132 (p_invoice_rec IN AP_APPROVAL_PKG.Invoice_Rec,
133 p_base_currency_code IN VARCHAR2,
134 p_inv_batch_id IN NUMBER,
135 p_run_option IN VARCHAR2,
136 p_calling_sequence IN VARCHAR2,
137 x_error_code IN VARCHAR2,
138 p_calling_mode IN VARCHAR2 DEFAULT NULL ); --bug6833543
139
140 PROCEDURE Process_Inv_Hold_Status(
141 p_invoice_id IN NUMBER,
142 p_line_location_id IN NUMBER,
143 p_rcv_transaction_id IN NUMBER,
144 p_hold_lookup_code IN VARCHAR2,
145 p_should_have_hold IN VARCHAR2,
146 p_hold_reason IN VARCHAR2,
147 p_system_user IN NUMBER,
148 p_holds IN OUT NOCOPY HOLDSARRAY,
149 p_holds_count IN OUT NOCOPY COUNTARRAY,
150 p_release_count IN OUT NOCOPY COUNTARRAY,
151 p_calling_sequence IN VARCHAR2);
152
153 PROCEDURE Get_Hold_Status(
154 p_invoice_id IN NUMBER,
155 p_line_location_id IN NUMBER,
156 p_rcv_transaction_id IN NUMBER,
157 p_hold_lookup_code IN VARCHAR2,
158 p_system_user IN NUMBER,
159 p_status IN OUT NOCOPY VARCHAR2,
160 p_return_hold_reason IN OUT NOCOPY VARCHAR2,
161 p_user_id IN OUT NOCOPY VARCHAR2,
162 p_resp_id IN OUT NOCOPY VARCHAR2,
163 p_calling_sequence IN VARCHAR2);
164
165 PROCEDURE Approve(
166 p_run_option IN VARCHAR2,
167 p_invoice_batch_id IN NUMBER,
168 p_begin_invoice_date IN DATE DEFAULT NULL,
169 p_end_invoice_date IN DATE DEFAULT NULL,
170 p_vendor_id IN NUMBER,
171 p_pay_group IN VARCHAR2,
172 p_invoice_id IN NUMBER,
173 p_entered_by IN NUMBER,
174 p_set_of_books_id IN NUMBER,
175 p_trace_option IN VARCHAR2,
176 p_conc_flag IN VARCHAR2,
177 p_holds_count IN OUT NOCOPY NUMBER,
178 p_approval_status IN OUT NOCOPY VARCHAR2,
179 p_funds_return_code OUT NOCOPY VARCHAR2, -- 4276409 (3462325)
180 p_calling_mode IN VARCHAR2 DEFAULT 'APPROVE',
181 p_calling_sequence IN VARCHAR2,
182 p_debug_switch IN VARCHAR2 DEFAULT 'N',
183 p_budget_control IN VARCHAR2 DEFAULT 'Y',
184 p_commit IN VARCHAR2 DEFAULT 'Y');
185
186 PROCEDURE Release_Hold(
187 p_invoice_id IN NUMBER,
188 p_line_location_id IN NUMBER,
189 p_rcv_transaction_id IN NUMBER,
190 p_hold_lookup_code IN VARCHAR2,
191 p_holds IN OUT NOCOPY HOLDSARRAY,
192 p_release_count IN OUT NOCOPY COUNTARRAY,
193 p_calling_sequence IN VARCHAR2);
194
195 PROCEDURE Check_Insufficient_Line_Data(
196 p_inv_line_rec IN AP_INVOICES_PKG.r_invoice_line_rec,
197 p_system_user IN NUMBER,
198 p_holds IN OUT NOCOPY HOLDSARRAY,
199 p_holds_count IN OUT NOCOPY COUNTARRAY,
200 p_release_count IN OUT NOCOPY COUNTARRAY,
201 p_insufficient_data_exist OUT NOCOPY BOOLEAN,
202 --ETAX: Validation
203 p_calling_mode IN VARCHAR2,
204 p_calling_sequence IN VARCHAR2);
205
206 FUNCTION Execute_Dist_Generation_Check(
207 p_batch_id IN NUMBER,
208 p_invoice_date IN DATE,
209 p_vendor_id IN NUMBER,
210 p_invoice_currency IN VARCHAR2,
211 p_exchange_rate IN NUMBER,
212 p_exchange_rate_type IN VARCHAR2,
213 p_exchange_date IN DATE,
214 p_inv_line_rec IN AP_INVOICES_PKG.r_invoice_line_rec,
215 p_system_user IN NUMBER,
216 p_holds IN OUT NOCOPY HOLDSARRAY,
217 p_holds_count IN OUT NOCOPY COUNTARRAY,
218 p_release_count IN OUT NOCOPY COUNTARRAY,
219 p_generate_permanent IN VARCHAR2,
220 --ETAX: Validation
221 p_calling_mode IN VARCHAR2 DEFAULT 'VALIDATION',
222 p_error_code OUT NOCOPY VARCHAR2,
223 p_curr_calling_sequence IN VARCHAR2) RETURN BOOLEAN;
224
225 --Bugfix:4673607
226 FUNCTION Is_Product_Registered(P_Application_Id IN NUMBER,
227 X_Registration_Api OUT NOCOPY VARCHAR2,
228 X_Registration_View OUT NOCOPY VARCHAR2,
229 P_Calling_Sequence IN VARCHAR2) RETURN BOOLEAN;
230
231 --Bugfix:4673607
232 FUNCTION Gen_Dists_From_Registration(
233 P_Batch_Id IN NUMBER,
234 P_Invoice_Line_Rec IN AP_INVOICES_PKG.r_invoice_line_rec,
235 P_Registration_Api IN VARCHAR2,
236 P_Registration_View IN VARCHAR2,
237 P_Generate_Permanent IN VARCHAR2,
238 X_Error_Code OUT NOCOPY VARCHAR2,
239 P_Calling_Sequence IN VARCHAR2) RETURN BOOLEAN;
240
241 --BugFix: 3489536
242 FUNCTION Batch_Approval
243 (p_run_option IN VARCHAR2,
244 p_sob_id IN NUMBER,
245 p_inv_start_date IN DATE,
246 p_inv_end_date IN DATE,
247 p_inv_batch_id IN NUMBER,
248 p_vendor_id IN NUMBER,
249 p_pay_group IN VARCHAR2,
250 p_invoice_id IN NUMBER,
251 p_entered_by IN NUMBER,
252 p_debug_switch IN VARCHAR2,
253 p_conc_request_id IN NUMBER,
254 p_commit_size IN NUMBER,
255 p_org_id IN NUMBER,
256 p_report_holds_count OUT NOCOPY NUMBER) RETURN BOOLEAN;
257
258 -- added for bug 6892789
259 --This function returns base amount after rouding.
260 --Also calculates the rounding amount for the next line
261 FUNCTION get_adjusted_base_amount(p_base_amount IN NUMBER,
262 p_rounding_amt OUT NOCOPY NUMBER,
266 END AP_APPROVAL_PKG;
263 p_next_line_rounding_amt IN OUT NOCOPY NUMBER)
264 RETURN NUMBER;
265