[Home] [Help]
PACKAGE BODY: APPS.AP_CLM_PVT_PKG
Source
1 PACKAGE BODY AP_CLM_PVT_PKG AS
2 /* $Header: apclmpfb.pls 120.0.12010000.5 2010/03/23 07:08:49 sjetti noship $ */
3
4 G_MSG_UERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR;
5 G_MSG_ERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_ERROR;
6 G_MSG_SUCCESS CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_SUCCESS;
7 G_MSG_HIGH CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH;
8 G_MSG_MEDIUM CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM;
9 G_MSG_LOW CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
10 G_LINES_PER_FETCH CONSTANT NUMBER := 1000;
11
12 G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
13 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
14 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
15 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
16 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
17 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
18 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
19
20
21 Procedure Print_Debug(
22 p_api_name IN VARCHAR2,
23 p_debug_info IN VARCHAR2);
24
25 -- This function will determine whether a PO is a clm PO.
26 FUNCTION is_clm_po
27 (
28 p_po_header_id IN NUMBER DEFAULT NULL,
29 p_po_line_id IN NUMBER DEFAULT NULL,
30 p_po_line_location_id IN NUMBER DEFAULT NULL,
31 p_po_distribution_id IN NUMBER DEFAULT NULL
32 )
33 RETURN VARCHAR2
34 IS
35 l_api_name CONSTANT VARCHAR2(100) := 'is_clm_po';
36 l_debug_info VARCHAR2(240);
37 l_is_clm_po VARCHAR2(1) := 'N';
38 BEGIN
39
40 l_debug_info := 'Calling po_clm_intg_grp.is_clm_po Procedure: ';
41 Print_Debug(l_api_name, l_debug_info);
42
43 IF (po_clm_intg_grp.is_clm_po(p_po_header_id) = 'Y') then
44 l_debug_info := 'Setting is_clm_installed as Y';
45 Print_Debug(l_api_name, l_debug_info);
46 l_is_clm_po :='Y';
47 END IF ;
48
49 RETURN l_is_clm_po;
50 EXCEPTION
51 WHEN Others THEN
52 l_debug_info := 'is_clm_po check failed';
53 Print_Debug(l_api_name, l_debug_info);
54 APP_EXCEPTION.raise_exception;
55 END is_clm_po;
56
57
58
59 -- This function will determine whether CLM is installed
60 FUNCTION is_clm_installed
61 RETURN VARCHAR2
62 IS
63 l_api_name CONSTANT VARCHAR2(100) := 'is_clm_installed';
64 l_debug_info VARCHAR2(240);
65 l_is_clm_installed VARCHAR2(1) := 'N';
66 BEGIN
67
68 l_debug_info := 'Calling po_clm_intg_grp.is_clm_installed Procedure: ';
69 Print_Debug(l_api_name, l_debug_info);
70
71 l_is_clm_installed := po_clm_intg_grp.is_clm_installed ;
72
73 RETURN l_is_clm_installed;
74 EXCEPTION
75 WHEN OTHERS THEN
76 l_debug_info := 'is_clm_installed check failed';
77 Print_Debug(l_api_name, l_debug_info);
78 APP_EXCEPTION.raise_exception;
79 END is_clm_installed;
80
81
82
83 -- This procedure returns the PO Funding Information for a given entity id
84 PROCEDURE Get_Funding_Info
85 (
86 p_PO_HEADER_ID IN NUMBER DEFAULT NULL,
87 p_PO_LINE_ID IN NUMBER DEFAULT NULL,
88 p_LINE_LOCATION_ID IN NUMBER DEFAULT NULL,
89 p_PO_DISTRIBUTION_ID IN NUMBER DEFAULT NULL,
90 x_DISTRIBUTION_TYPE OUT NOCOPY VARCHAR2,
91 x_MATCHING_BASIS OUT NOCOPY VARCHAR2,
92 x_ACCRUE_ON_RECEIPT_FLAG OUT NOCOPY VARCHAR2,
93 x_CODE_COMBINATION_ID OUT NOCOPY NUMBER,
94 x_BUDGET_ACCOUNT_ID OUT NOCOPY NUMBER,
95 x_PARTIAL_FUNDED_FLAG OUT NOCOPY VARCHAR2,
96 x_UNIT_MEAS_LOOKUP_CODE OUT NOCOPY VARCHAR2,
97 x_FUNDED_VALUE OUT NOCOPY NUMBER,
98 x_QUANTITY_FUNDED OUT NOCOPY NUMBER,
99 x_AMOUNT_FUNDED OUT NOCOPY NUMBER,
100 x_QUANTITY_RECEIVED OUT NOCOPY NUMBER,
101 x_AMOUNT_RECEIVED OUT NOCOPY NUMBER,
102 x_QUANTITY_DELIVERED OUT NOCOPY NUMBER,
103 x_AMOUNT_DELIVERED OUT NOCOPY NUMBER,
104 x_QUANTITY_BILLED OUT NOCOPY NUMBER,
105 x_AMOUNT_BILLED OUT NOCOPY NUMBER,
106 x_QUANTITY_CANCELLED OUT NOCOPY NUMBER,
107 x_AMOUNT_CANCELLED OUT NOCOPY NUMBER,
108 X_RETURN_STATUS OUT NOCOPY VARCHAR2)
109 IS
110 l_api_name CONSTANT VARCHAR2(100) := 'Get_Funding_Info';
111 l_distribution_type PO_DISTRIBUTIONS_ALL.destination_type_code%TYPE ;
112 l_accrue_on_receipt_flag PO_DISTRIBUTIONS_ALL.accrue_on_receipt_flag%TYPE ;
113 l_code_combination_id PO_DISTRIBUTIONS_ALL.code_combination_id%TYPE ;
114 l_budget_account_id PO_DISTRIBUTIONS_ALL.budget_account_id%TYPE ;
115 l_partial_funded_flag PO_DISTRIBUTIONS_ALL.partial_funded_flag%TYPE ;
116 l_funded_value PO_DISTRIBUTIONS_ALL.funded_value%TYPE ;
117 l_quantity_funded PO_DISTRIBUTIONS_ALL.quantity_funded%TYPE ;
118 l_amount_funded PO_DISTRIBUTIONS_ALL.amount_funded%TYPE ;
119 l_quantity_delivered PO_DISTRIBUTIONS_ALL.quantity_delivered%TYPE ;
120 l_amount_delivered PO_DISTRIBUTIONS_ALL.amount_delivered%TYPE ;
121 l_quantity_billed PO_DISTRIBUTIONS_ALL.quantity_billed%TYPE ;
122 l_amount_billed PO_DISTRIBUTIONS_ALL.amount_billed%TYPE ;
123 l_quantity_cancelled PO_DISTRIBUTIONS_ALL.quantity_cancelled%TYPE ;
124 l_amount_cancelled PO_DISTRIBUTIONS_ALL.amount_cancelled%TYPE ;
125 l_matching_basis PO_LINE_LOCATIONS.matching_basis%TYPE;
126 l_quantity_received PO_LINE_LOCATIONS.quantity_received%TYPE;
127 l_amount_received PO_LINE_LOCATIONS.amount_received%TYPE;
128 l_hold_name VARCHAR2(30);
129 l_unit_meas_lookup_code PO_LINE_LOCATIONS_ALL.unit_meas_lookup_code%TYPE;
130 l_return_status VARCHAR2(1);
131 l_debug_info VARCHAR2(240);
132
133 BEGIN
134
135 l_debug_info := 'Processing Proedure AP_CLM_PVT_PKG.Get_Funding_Info for DISTRIBUTION_ID: '|| p_PO_DISTRIBUTION_ID;
136 Print_Debug(l_api_name, l_debug_info);
137
138 po_clm_intg_grp.Get_Funding_Info(
139 P_PO_DISTRIBUTION_ID => p_PO_DISTRIBUTION_ID
140 ,X_DISTRIBUTION_TYPE => l_distribution_type
141 ,X_MATCHING_BASIS => l_matching_basis
142 ,X_ACCRUE_ON_RECEIPT_FLAG => l_accrue_on_receipt_flag
143 ,X_CODE_COMBINATION_ID => l_code_combination_id
144 ,X_BUDGET_ACCOUNT_ID => l_budget_account_id
145 ,X_PARTIAL_FUNDED_FLAG => l_partial_funded_flag
146 ,x_UNIT_MEAS_LOOKUP_CODE => l_unit_meas_lookup_code
147 ,X_FUNDED_VALUE => l_funded_value
148 ,X_QUANTITY_FUNDED => l_quantity_funded
149 ,X_AMOUNT_FUNDED => l_amount_funded
150 ,X_QUANTITY_RECEIVED => l_quantity_received
151 ,X_AMOUNT_RECEIVED => l_amount_received
152 ,X_QUANTITY_DELIVERED => l_quantity_delivered
153 ,X_AMOUNT_DELIVERED => l_amount_delivered
154 ,X_QUANTITY_BILLED => l_quantity_billed
155 ,X_AMOUNT_BILLED => l_amount_billed
156 ,x_QUANTITY_CANCELLED => l_quantity_cancelled
157 ,x_AMOUNT_CANCELLED => l_amount_cancelled
158 ,x_RETURN_STATUS => l_return_status );
159
160 l_debug_info := 'After calling po_clm_intg_grp.Get_Funding_Info for l_return_status: '|| l_return_status;
161 Print_Debug(l_api_name, l_debug_info);
162
163 IF L_return_status <> FND_API.G_RET_STS_SUCCESS THEN
164 l_debug_info := 'PO_INTG_DOCUMENT_FUNDS_GRP.Get_Funding_Info returned invalid status.';
165 Print_Debug(l_api_name, l_debug_info);
166 APP_EXCEPTION.raise_exception;
167 END IF ;
168
169 x_DISTRIBUTION_TYPE := l_distribution_type ;
170 x_MATCHING_BASIS := l_matching_basis ;
171 x_ACCRUE_ON_RECEIPT_FLAG := l_accrue_on_receipt_flag ;
172 x_CODE_COMBINATION_ID := l_code_combination_id ;
173 x_BUDGET_ACCOUNT_ID := l_budget_account_id ;
174 x_PARTIAL_FUNDED_FLAG := l_partial_funded_flag ;
175 x_UNIT_MEAS_LOOKUP_CODE := l_unit_meas_lookup_code ;
176 x_FUNDED_VALUE := l_funded_value ;
177 x_QUANTITY_FUNDED := l_quantity_funded ;
178 x_AMOUNT_FUNDED := l_amount_funded ;
179 x_QUANTITY_DELIVERED := l_quantity_delivered ;
180 x_AMOUNT_DELIVERED := l_amount_delivered ;
181 x_QUANTITY_BILLED := l_quantity_billed ;
182 x_AMOUNT_BILLED := l_amount_billed ;
183 x_QUANTITY_RECEIVED := l_quantity_received ;
184 x_AMOUNT_RECEIVED := l_amount_received ;
185 x_QUANTITY_CANCELLED := l_quantity_cancelled ;
186 x_AMOUNT_CANCELLED := l_amount_cancelled ;
187 x_RETURN_STATUS := l_return_status ;
188
189 Print_Debug(l_api_name, 'l_matching_basis :'|| l_matching_basis );
190 Print_Debug(l_api_name, 'l_quantity_billed :'|| l_quantity_billed );
191 Print_Debug(l_api_name, 'l_quantity_funded :'|| l_quantity_funded );
192 Print_Debug(l_api_name, 'l_amount_billed :'|| l_amount_billed );
193 Print_Debug(l_api_name, 'l_amount_funded :'|| l_amount_funded );
194
195 l_debug_info := 'Returning from AP_CLM_PVT_PKG.Get_Funding_Info with l_return_status: '|| l_return_status;
196 Print_Debug(l_api_name, l_debug_info);
197
198
199 EXCEPTION
200 WHEN Others THEN
201 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
202 l_debug_info := 'Get_Funding_Info check failed';
203 Print_Debug(l_api_name, l_debug_info);
204 APP_EXCEPTION.raise_exception;
205 END Get_Funding_Info;
206
207 Procedure Print_Debug(
208 p_api_name IN VARCHAR2,
209 p_debug_info IN VARCHAR2) IS
210 BEGIN
211
212 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
213 FND_LOG.STRING(G_LEVEL_STATEMENT, 'AP.PLSQL.AP_CLM_PVT_PKG'||p_api_name,p_debug_info);
214 END IF;
215
216 END Print_Debug;
217
218 END AP_CLM_PVT_PKG;