DBA Data[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