1 PACKAGE PA_MULTI_CURRENCY_BILLING AUTHID CURRENT_USER AS
2 --$Header: PAXMULTS.pls 120.2 2007/12/28 11:58:33 hkansal ship $
3
4
5 -- Package Variables.
6
7 TYPE curr_attr IS RECORD (
8 conv_between VARCHAR2(6),
9 from_currency VARCHAR2(30),
10 to_currency VARCHAR2(30),
11 numerator NUMBER,
12 denominator NUMBER,
13 conv_date DATE, /* Added for bug 5907315 */
14 rate NUMBER);
15
16 TYPE curr_attr_tab is TABLE of curr_attr INDEX BY BINARY_INTEGER;
17 CurrAttrTab curr_attr_tab;
18
19 TYPE curr_prec IS RECORD (
20 curr_code varchar2(30), -- holds global currency code
21 mau number, -- holds global minimum accountable unit
22 sp number(1), -- holds global precision
23 ep number(2)); -- holds global extended precision
24
25 TYPE curr_prec_tab is TABLE of curr_prec INDEX BY BINARY_INTEGER;
26 CurrPrecTab curr_prec_tab;
27
28
29 PROCEDURE get_imp_defaults (
30 x_multi_currency_billing_flag OUT NOCOPY VARCHAR2,
31 x_share_bill_rates_across_OU OUT NOCOPY VARCHAR2,
32 x_allow_funding_across_OU OUT NOCOPY VARCHAR2,
33 x_default_exchange_rate_type OUT NOCOPY VARCHAR2,
34 x_functional_currency OUT NOCOPY VARCHAR2,
35 x_competence_match_wt OUT NOCOPY NUMBER,
36 x_availability_match_wt OUT NOCOPY NUMBER,
37 x_job_level_match_wt OUT NOCOPY NUMBER,
38 x_return_status OUT NOCOPY VARCHAR2,
39 x_msg_count OUT NOCOPY NUMBER,
40 x_msg_data OUT NOCOPY VARCHAR2);
41
42 PROCEDURE get_project_defaults (
43 p_project_id IN NUMBER,
44 x_multi_currency_billing_flag OUT NOCOPY VARCHAR2,
45 x_baseline_funding_flag OUT NOCOPY VARCHAR2,
46 x_revproc_currency_code OUT NOCOPY VARCHAR2,
47 x_invproc_currency_type OUT NOCOPY VARCHAR2,
48 x_invproc_currency_code OUT NOCOPY VARCHAR2,
49 x_project_currency_code OUT NOCOPY VARCHAR2,
50 x_project_bil_rate_date_code OUT NOCOPY VARCHAR2,
51 x_project_bil_rate_type OUT NOCOPY VARCHAR2,
52 x_project_bil_rate_date OUT NOCOPY DATE,
53 x_project_bil_exchange_rate OUT NOCOPY NUMBER,
54 x_projfunc_currency_code OUT NOCOPY VARCHAR2,
55 x_projfunc_bil_rate_date_code OUT NOCOPY VARCHAR2,
56 x_projfunc_bil_rate_type OUT NOCOPY VARCHAR2,
57 x_projfunc_bil_rate_date OUT NOCOPY DATE,
58 x_projfunc_bil_exchange_rate OUT NOCOPY NUMBER,
59 x_funding_rate_date_code OUT NOCOPY VARCHAR2,
60 x_funding_rate_type OUT NOCOPY VARCHAR2,
61 x_funding_rate_date OUT NOCOPY DATE,
62 x_funding_exchange_rate OUT NOCOPY NUMBER,
63 x_return_status OUT NOCOPY VARCHAR2,
64 x_msg_count OUT NOCOPY NUMBER,
65 x_msg_data OUT NOCOPY VARCHAR2);
66
67 FUNCTION is_project_mcb_enabled ( p_project_id IN NUMBER)
68 RETURN VARCHAR2 ;
69
70 FUNCTION is_OU_mcb_enabled ( p_org_id IN NUMBER)
71 RETURN VARCHAR2;
72
73 FUNCTION is_sharing_bill_rates_allowed ( p_org_id IN NUMBER)
74 RETURN VARCHAR2;
75
76 FUNCTION is_funding_across_ou_allowed
77 RETURN VARCHAR2;
78
79 FUNCTION get_invoice_processing_cur ( p_project_id IN NUMBER)
80 RETURN VARCHAR2;
81
82 PROCEDURE convert_amount_bulk (
83 p_from_currency_tab IN PA_PLSQL_DATATYPES.Char30TabTyp,
84 p_to_currency_tab IN PA_PLSQL_DATATYPES.Char30TabTyp,
85 p_conversion_date_tab IN OUT NOCOPY PA_PLSQL_DATATYPES.DateTabTyp ,
86 p_conversion_type_tab IN OUT NOCOPY PA_PLSQL_DATATYPES.Char30TabTyp,
87 p_amount_tab IN PA_PLSQL_DATATYPES.NumTabTyp,
88 p_user_validate_flag_tab IN PA_PLSQL_DATATYPES.Char30TabTyp ,
89 p_converted_amount_tab IN OUT NOCOPY PA_PLSQL_DATATYPES.NumTabTyp,
90 p_denominator_tab IN OUT NOCOPY PA_PLSQL_DATATYPES.NumTabTyp,
91 p_numerator_tab IN OUT NOCOPY PA_PLSQL_DATATYPES.NumTabTyp,
92 p_rate_tab IN OUT NOCOPY PA_PLSQL_DATATYPES.NumTabTyp,
93 p_conversion_between IN VARCHAR2,
94 p_cache_flag IN VARCHAR2,
95 x_status_tab OUT NOCOPY PA_PLSQL_DATATYPES.Char30TabTyp);
96
97
98 PROCEDURE init_cache (p_project_id IN NUMBER);
99
100 PROCEDURE Get_Trans_Currency_Info (
101 p_curr_code IN VARCHAR2,
102 x_mau OUT NOCOPY NUMBER,
103 x_sp OUT NOCOPY NUMBER,
104 x_ep OUT NOCOPY NUMBER);
105
106 FUNCTION round_trans_currency_amt ( p_amount IN NUMBER,
107 p_Curr_Code IN VARCHAR2 ) RETURN NUMBER;
108
109
110 FUNCTION check_mcb_trans_exist (p_project_id IN NUMBER) RETURN VARCHAR2;
111
112 PROCEDURE get_project_types_dflt(
113 p_project_type IN VARCHAR2,
114 x_baseline_flag OUT NOCOPY VARCHAR2,
115 x_nl_rt_sch_id OUT NOCOPY NUMBER,
116 x_nl_rt_sch_name OUT NOCOPY VARCHAR2,
117 x_rate_sch_currency_code OUT NOCOPY VARCHAR2 );
118
122 FUNCTION proj_cust_curr( p_project_id VARCHAR2,
119 FUNCTION check_cross_ou_fund_exist RETURN VARCHAR2;
120 FUNCTION check_cross_ou_billrate_exist RETURN VARCHAR2;
121 FUNCTION is_baseline_funding_enabled (p_project_id IN NUMBER) return varchar2;
123 p_curr_code VARCHAR2 ) return VARCHAR2 ;
124
125 ----------------------------------------------------------------------------------
126 -- Purpose: This function will return value 'Y' if Project Functional Currency
127 -- is not the same as that of invoice currency.
128 --
129 -- This function will return 'Y' if there exist any record
130 -- in PA_DRAFT_INVOICES_ALL table for a given Project_ID and
131 -- Project Functional Currency = inv_Currency_Code
132 --
133 -- Inputs: Project_ID and Project_Functional_Currency_Code
134 --
135 ----------------------------------------------------------------------------------
136 FUNCTION MCB_Flag_Required (
137 P_Project_ID IN PA_PROJECTS_ALL.Project_ID%TYPE,
138 P_PFC_Currency_Code IN PA_PROJECTS_ALL.ProjFunc_Currency_Code%TYPE
139 )
140 RETURN VARCHAR2;
141
142
143
144 FUNCTION get_currency( P_org_id IN pa_implementations_all.org_id%TYPE)
145 RETURN VARCHAR2;
146
147 PRAGMA RESTRICT_REFERENCES(get_currency, WNDS, WNPS);
148
149 G_Curr_Tab pa_utils.Char15TabTyp;
150
151 FUNCTION Check_update_ou_mcb_flag RETURN VARCHAR2;
152
153 -- Function: Check_mcb_setup_exists
154 -- Purpose : To check project level and task multicurrency setups such as bill rates
155 -- and billing assignments.
156
157 FUNCTION check_mcb_setup_exists (p_project_id IN NUMBER) RETURN VARCHAR2;
158
159 /* Added the given below procedure for Enhancement bug 2520222
160 It is being called from customer window of project form.
161 This procedure will check if the assigned customer is having valid funding lines and
162 user is trying to change existing contribution from non zero to zero then it will give error.*/
163
164 Procedure Check_Cust_Funding_Exists(
165 p_proj_customer_id IN NUMBER,
166 p_project_id IN NUMBER,
167 p_cust_contribution IN NUMBER,
168 x_return_status OUT NOCOPY VARCHAR2,
169 x_msg_data OUT NOCOPY VARCHAR2,
170 x_msg_count OUT NOCOPY NUMBER
171 );
172
173 /* till here */
174
175 END PA_MULTI_CURRENCY_BILLING;