[Home] [Help]
PACKAGE BODY: APPS.PA_EVENT_PUB
Source
1 PACKAGE BODY PA_EVENT_PUB AS
2 /* $Header: PAEVAPBB.pls 120.14 2011/09/28 07:17:43 pstawar ship $ */
3
4 /* Global Constants */
5 G_PKG_NAME VARCHAR2(30) := 'PA_EVENT_PUB';
6
7 --PACKAGE GLOBAL to be used during updates ---------------------------
8 G_USER_ID CONSTANT NUMBER := FND_GLOBAL.USER_id;
9 G_LOGIN_ID CONSTANT NUMBER := FND_GLOBAL.login_id;
10
11 l_debug_mode VARCHAR2(1) := NVL(FND_PROFILE.value('PA_DEBUG.MODE'),'Y');
12
13 /*==================================================================
14 --
15 --Name: create_event
16 --Type: procedure
17 --Description: This API creates an event or a set of events.
18 --
19 --Called subprograms: PA_EVENT_PVT.CHECK_MDTY_PARAMS1
20 -- PA_EVENT_PVT.CHECK_MDTY_PARAMS2
21 -- PA_EVENT_UTILS.CHECK_VALID_PROJECT
22 -- PA_EVENT_PVT.CHECK_CREATE_EVENT_OK
23 -- PA_EVENT_PVT.VALIDATE_FLEXFIELD
24 -- PA_EVENTS_PKG.INSERT_ROW
25 --History:
26
27 -- ============================================================================*/
28
29 PROCEDURE create_event
30 ( p_api_version_number IN NUMBER
31 ,p_commit IN VARCHAR2
32 ,p_init_msg_list IN VARCHAR2
33 ,p_pm_product_code IN VARCHAR2
34 ,p_event_in_tbl IN Event_In_Tbl_Type
35 ,p_event_out_tbl OUT NOCOPY Event_Out_Tbl_Type --File.Sql.39 bug 4440895
36 ,p_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
37 ,p_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
38 ,p_return_status OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
39 IS
40
41
42 rowid varchar2(18);
43 l_event_type_classification pa_event_types.event_type_classification%type;
44 P_project_id pa_events.project_id%type;
45 P_task_id pa_events.task_id%type;
46 P_Organization_Id pa_projects_all.org_id%type;
47 p_inv_org_id pa_events.inventory_item_id%type;
48 p_agreement_id pa_events.agreement_id%type; -- Federal Uptake
49
50 p_event_in_rec Event_Rec_In_Type;
51 p_event_out_rec Event_Rec_Out_Type;
52 tot_in_rec NUMBER:=0;
53 tot_out_rec NUMBER:=0;
54 p_api_name VARCHAR2(100):='CREATE_EVENT';
55 p_return_msg VARCHAR2(2000);
56 p_validate_status VARCHAR2(1):='Y';
57
58 /* Declaring varible for MCB2 */
59 l_multi_currency_billing_flag pa_projects_all.multi_currency_billing_flag%type;
60 l_baseline_funding_flag pa_projects_all.BASELINE_FUNDING_FLAG%TYPE;
61 l_revproc_currency_code pa_projects_all.revproc_currency_code%TYPE;
62 l_revproc_rate_type pa_events.revproc_rate_type%TYPE;
63 l_revproc_rate_date pa_events.revproc_rate_date%TYPE;
64 l_revproc_exchange_rate pa_events.revproc_exchange_rate%TYPE;
65 l_invproc_currency_code pa_events.invproc_currency_code%TYPE;
66 l_invproc_currency_type pa_projects_all.invproc_currency_type%TYPE;
67 l_invproc_rate_type pa_events.invproc_rate_type%TYPE;
68 l_invproc_rate_date pa_events.invproc_rate_date%TYPE;
69 l_invproc_exchange_rate pa_events.invproc_exchange_rate%TYPE;
70 l_project_currency_code pa_projects_all.project_currency_code%TYPE;
71 l_project_bil_rate_date_code pa_projects_all.project_bil_rate_date_code%TYPE;
72 l_project_bil_rate_type pa_projects_all.project_bil_rate_type%TYPE;
73 l_project_bil_rate_date pa_projects_all.project_bil_rate_date%TYPE;
74 l_project_bil_exchange_rate pa_projects_all.project_bil_exchange_rate%TYPE;
75 l_projfunc_currency_code pa_projects_all.projfunc_currency_code%TYPE;
76 l_projfunc_bil_rate_date_code pa_projects_all.projfunc_bil_rate_date_code%TYPE;
77 l_projfunc_bil_rate_type pa_projects_all.projfunc_bil_rate_type%TYPE;
78 l_projfunc_bil_rate_date pa_projects_all.projfunc_bil_rate_date%TYPE;
79 l_projfunc_bil_exchange_rate pa_projects_all.projfunc_bil_exchange_rate%TYPE;
80 l_funding_rate_date_code pa_projects_all.funding_rate_date_code%TYPE;
81 l_funding_rate_type pa_projects_all.funding_rate_type%TYPE;
82 l_funding_rate_date pa_projects_all.funding_rate_date%TYPE;
83 l_funding_exchange_rate pa_projects_all.funding_exchange_rate%TYPE;
84
85 l_event_number pa_events.event_num%type;
86 l_encoded varchar2(1):='F';
87 l_return_status varchar2(1):= FND_API.G_RET_STS_SUCCESS;
88 BEGIN
89 -- Initialize the Error Stack
90 pa_debug.set_err_stack('PA_EVENT_PUB.CREATE_EVENT');
91
92 --Log Message
93 IF l_debug_mode = 'Y' THEN
94 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CREATE_EVENT.begin'
95 ,x_msg => 'Beginning of Create Event'
96 ,x_log_level => 5);
97 END IF;
98
99 p_msg_count := 0;
100 p_return_status := FND_API.G_RET_STS_SUCCESS;
101
102 --Log Message
103 IF l_debug_mode = 'Y' THEN
104 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CREATE_EVENT.begin'
105 ,x_msg => 'Calling mandatory input parameters-1'
106 ,x_log_level => 5);
107 END IF;
108
109 ---Validating mandatory input parameters-
110
111
112 PA_EVENT_PVT.CHECK_MDTY_PARAMS1
113 ( p_api_version_number =>p_api_version_number
114 ,p_api_name =>p_api_name
115 ,p_pm_product_code =>p_pm_product_code
116 ,p_function_name =>'PA_EV_CREATE_EVENT'
117 ,x_return_status =>p_return_status
118 ,x_msg_count =>p_msg_count
119 ,x_msg_data =>p_msg_data );
120
121
122 If p_return_status <> FND_API.G_RET_STS_SUCCESS
123 Then
124
125 IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR
126 THEN
127 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
128
129 ELSIF p_return_status = FND_API.G_RET_STS_ERROR
130 THEN
131 RAISE FND_API.G_EXC_ERROR;
132 END IF;
133 End If;
134 tot_in_rec := p_event_in_tbl.first;
135 while tot_in_rec is not null loop -- loop begins
136 -- For all the date variables using TRUNC instead of ltrim(rtrim) for bug 3053669
137 P_event_in_rec.P_pm_event_reference :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_pm_event_reference));
138 P_event_in_rec.P_task_number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_task_number));
139 P_event_in_rec.P_event_number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_event_number));
140 P_event_in_rec.P_event_type :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_event_type));
141 -- Added the below three line for federal Uptake
142 P_event_in_rec.P_agreement_number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_agreement_number));
143 P_event_in_rec.P_agreement_type :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_agreement_type));
144 P_event_in_rec.P_customer_number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_customer_number));
145 -- Bug 8410898 skkoppul
146 IF (p_event_in_tbl(tot_in_rec).P_description = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR) THEN
147 P_event_in_rec.P_description :=NULL;
148 ELSE
149 P_event_in_rec.P_description :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_description));
150 END IF;
151 P_event_in_rec.P_bill_hold_flag :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_bill_hold_flag));
152 P_event_in_rec.P_completion_date :=trunc(p_event_in_tbl(tot_in_rec).P_completion_date);
153 P_event_in_rec.P_desc_flex_name :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_desc_flex_name));
154 P_event_in_rec.P_attribute_category :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute_category));
155 P_event_in_rec.P_attribute1 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute1));
156 P_event_in_rec.P_attribute2 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute2));
157 P_event_in_rec.P_attribute3 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute3));
158 P_event_in_rec.P_attribute4 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute4));
159 P_event_in_rec.P_attribute5 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute5));
160 P_event_in_rec.P_attribute6 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute6));
161 P_event_in_rec.P_attribute7 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute7));
162 P_event_in_rec.P_attribute8 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute8));
163 P_event_in_rec.P_attribute9 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute9));
164 P_event_in_rec.P_attribute10 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute10));
165 P_event_in_rec.P_project_number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_project_number));
166 P_event_in_rec.P_organization_name :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_organization_name));
167 P_event_in_rec.P_inventory_org_name :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_inventory_org_name));
168 P_event_in_rec.P_inventory_item_id :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_inventory_item_id));
169 P_event_in_rec.P_quantity_billed :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_quantity_billed));
170 P_event_in_rec.P_uom_code :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_uom_code));
171 P_event_in_rec.P_unit_price :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_unit_price));
172 P_event_in_rec.P_reference1 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference1));
173 P_event_in_rec.P_reference2 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference2));
174 P_event_in_rec.P_reference3 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference3));
175 P_event_in_rec.P_reference4 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference4));
176 P_event_in_rec.P_reference5 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference5));
177 P_event_in_rec.P_reference6 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference6));
178 P_event_in_rec.P_reference7 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference7));
179 P_event_in_rec.P_reference8 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference8));
180 P_event_in_rec.P_reference9 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference9));
181 P_event_in_rec.P_reference10 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference10));
182 P_event_in_rec.P_bill_trans_currency_code :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_bill_trans_currency_code));
183 P_event_in_rec.P_bill_trans_bill_amount :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_bill_trans_bill_amount));
184 P_event_in_rec.P_bill_trans_rev_amount :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_bill_trans_rev_amount));
185 -- Bug 8410898 skkoppul
186 IF (p_event_in_tbl(tot_in_rec).P_project_rate_type = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR) THEN
187 P_event_in_rec.P_project_rate_type :=NULL;
188 ELSE
189 P_event_in_rec.P_project_rate_type :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_project_rate_type));
190 END IF;
191 P_event_in_rec.P_project_rate_date :=trunc(p_event_in_tbl(tot_in_rec).P_project_rate_date);
192 P_event_in_rec.P_project_exchange_rate :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_project_exchange_rate));
193 -- Bug 8410898 skkoppul
194 IF (p_event_in_tbl(tot_in_rec).P_projfunc_rate_type = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR) THEN
195 P_event_in_rec.P_projfunc_rate_type := NULL;
196 ELSE
197 P_event_in_rec.P_projfunc_rate_type :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_projfunc_rate_type));
198 END IF;
199 P_event_in_rec.P_projfunc_rate_date :=trunc(p_event_in_tbl(tot_in_rec).P_projfunc_rate_date);
200 P_event_in_rec.P_projfunc_exchange_rate :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_projfunc_exchange_rate));
201 -- Bug 8410898 skkoppul
202 IF (p_event_in_tbl(tot_in_rec).P_funding_rate_type = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR) THEN
203 P_event_in_rec.P_funding_rate_type := NULL;
204 ELSE
205 P_event_in_rec.P_funding_rate_type :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_funding_rate_type));
206 END IF;
207 P_event_in_rec.P_funding_rate_date :=trunc(p_event_in_tbl(tot_in_rec).P_funding_rate_date);
208 P_event_in_rec.P_funding_exchange_rate :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_funding_exchange_rate));
209 P_event_in_rec.P_adjusting_revenue_flag :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_adjusting_revenue_flag));
210 P_event_in_rec.P_event_id :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_event_id));
211 P_event_in_rec.P_deliverable_id :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_deliverable_id));
212 P_event_in_rec.P_action_id :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_action_id));
213 P_event_in_rec.P_context :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_context));
214
215
216 BEGIN --Start of Inner Block
217 --Seting savepoint
218 savepoint create_event;
219
220 --Log Message
221 IF l_debug_mode = 'Y' THEN
222 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CREATE_EVENT.begin'
223 ,x_msg => ' Calling mandatory input parameters-2'
224 ,x_log_level => 5);
225 END IF;
226
227 -- Validating mandatory input parameters-2
228
229 PA_EVENT_PVT.CHECK_MDTY_PARAMS2
230 (p_pm_event_reference => p_event_in_rec.p_pm_event_reference
231 ,p_pm_product_code => p_pm_product_code
232 ,p_project_number => p_event_in_rec.p_project_number
233 ,p_event_type => p_event_in_rec.p_event_type
234 ,p_organization_name => p_event_in_rec.p_organization_name
235 ,p_calling_place => 'CREATE_EVENT'
236 ,x_return_status => p_return_status );
237
238 If p_return_status <> FND_API.G_RET_STS_SUCCESS
239 Then
240 IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR
241 THEN
242 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
243
244 ELSIF p_return_status = FND_API.G_RET_STS_ERROR
245 THEN
246 RAISE FND_API.G_EXC_ERROR;
247 END IF;
248 End If;
249
250 --Log Message
251 IF l_debug_mode = 'Y' THEN
252 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CREATE_EVENT.begin'
253 ,x_msg => 'Calling check_valid_project '
254 ,x_log_level => 5);
255 END IF;
256
257 --validating the project number and derive the project_id.
258 If PA_EVENT_UTILS.CHECK_VALID_PROJECT
259 (P_project_id =>P_project_id
260 ,P_project_num =>P_event_in_rec.P_project_number) = 'N'
261 Then
262 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
263 THEN
264 pa_interface_utils_pub.map_new_amg_msg
265 ( p_old_message_code => 'PA_INVALID_PROJECT'
266 ,p_msg_attribute => 'CHANGE'
267 ,p_resize_flag => 'N'
268 ,p_msg_context => 'EVENT'
269 ,p_attribute1 => P_event_in_rec.p_pm_event_reference
270 ,p_attribute2 => ''
271 ,p_attribute3 => ''
272 ,p_attribute4 => ''
273 ,p_attribute5 => '');
274 END IF;
275 p_return_status := FND_API.G_RET_STS_ERROR;
276 --If project_id is invalid then terminate further validation by raising error.
277 RAISE FND_API.G_EXC_ERROR;
278 End If;
279
280 --Log Message
281 IF l_debug_mode = 'Y' THEN
282 pa_debug.write_log (x_module =>'pa.plsql.PA_EVENT_PUB.CREATE_EVENT.begin'
283 ,x_msg =>'Calling get_project_defaults to get defaulting currencies'
284 ,x_log_level =>5);
285 END IF;
286
287 -- Before the check_create_event_ok function is called the mcb related
288 -- fields are defaulted
289 -- Defaulting currency fields for the given project_id.
290
291 PA_MULTI_CURRENCY_BILLING.get_project_defaults (
292 p_project_id => P_project_id,
293 x_multi_currency_billing_flag => l_multi_currency_billing_flag,
294 x_baseline_funding_flag => l_baseline_funding_flag,
295 x_revproc_currency_code => l_revproc_currency_code,
296 x_invproc_currency_type => l_invproc_currency_type,
297 x_invproc_currency_code => l_invproc_currency_code,
298 x_project_currency_code => l_project_currency_code,
299 x_project_bil_rate_date_code => l_project_bil_rate_date_code,
300 x_project_bil_rate_type => l_project_bil_rate_type,
301 x_project_bil_rate_date => l_project_bil_rate_date,
302 x_project_bil_exchange_rate => l_project_bil_exchange_rate,
303 x_projfunc_currency_code => l_projfunc_currency_code,
304 x_projfunc_bil_rate_date_code => l_projfunc_bil_rate_date_code,
305 x_projfunc_bil_rate_type => l_projfunc_bil_rate_type,
306 x_projfunc_bil_rate_date => l_projfunc_bil_rate_date,
307 x_projfunc_bil_exchange_rate => l_projfunc_bil_exchange_rate,
308 x_funding_rate_date_code => l_funding_rate_date_code,
309 x_funding_rate_type => l_funding_rate_type,
310 x_funding_rate_date => l_funding_rate_date,
311 x_funding_exchange_rate => l_funding_exchange_rate,
312 x_return_status => p_return_status,
313 x_msg_count => p_msg_count,
314 x_msg_data => p_msg_data);
315
316 If p_return_status <> FND_API.G_RET_STS_SUCCESS
317 Then
318 IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR
319 THEN
320 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
321
322 ELSIF p_return_status = FND_API.G_RET_STS_ERROR
323 THEN
324 RAISE FND_API.G_EXC_ERROR;
325 END IF;
326 End If;
327
328 --Log Message
329 IF l_debug_mode = 'Y' THEN
330 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CREATE_EVENT.begin'
331 ,x_msg => 'Calling check_create_event_ok'
332 ,x_log_level => 5);
333 END IF;
334
335 -- Calls check_create_event_ok function
336
337 If PA_EVENT_PVT.check_create_event_ok
338 (P_pm_product_code =>p_pm_product_code
339 ,P_event_in_rec =>p_event_in_rec
340 ,P_project_currency_code =>l_project_currency_code
341 ,P_proj_func_currency_code =>l_projfunc_currency_code
342 ,P_project_bil_rate_date_code =>l_project_bil_rate_date_code
343 ,P_project_rate_type =>l_project_bil_rate_type
344 ,p_project_bil_rate_date =>l_project_bil_rate_date
345 ,p_projfunc_bil_rate_date_code =>l_projfunc_bil_rate_date_code
346 ,P_projfunc_rate_type =>l_projfunc_bil_rate_type
347 ,p_projfunc_bil_rate_date =>l_projfunc_bil_rate_date
348 ,P_funding_rate_type =>l_funding_rate_type
349 ,P_event_type_classification =>l_event_type_classification
350 ,P_multi_currency_billing_flag =>l_multi_currency_billing_flag
351 ,p_project_id =>p_project_id
352 ,p_projfunc_bil_exchange_rate =>l_projfunc_bil_exchange_rate -- Added for bug 3009307
353 ,p_funding_bil_rate_date_code => l_funding_rate_date_code --Added for bug 3053190
354 ,x_task_id =>p_task_id
355 ,x_organization_id =>p_organization_id
356 ,x_inv_org_id =>p_inv_org_id
357 ,x_agreement_id =>p_agreement_id -- Federal Uptake
358 ) = 'N'
359 Then
360 p_return_status := FND_API.G_RET_STS_ERROR;
361 RAISE FND_API.G_EXC_ERROR;
362 End If;
363
364 --Log Message
365 IF l_debug_mode = 'Y' THEN
366 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CREATE_EVENT.begin'
367 ,x_msg => 'Beginning Validate Flexfields'
368 ,x_log_level => 5);
369 END IF;
370
371
372 --Validating Flexfields
373 IF (p_event_in_rec.p_desc_flex_name IS NOT NULL)
374 AND (p_event_in_rec.p_desc_flex_name <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
375 THEN
376 PA_EVENT_PVT.VALIDATE_FLEXFIELD
377 ( p_desc_flex_name => p_event_in_rec.p_desc_flex_name
378 ,p_attribute_category => p_event_in_rec.p_attribute_category
379 ,p_attribute1 => p_event_in_rec.p_attribute1
380 ,p_attribute2 => p_event_in_rec.p_attribute2
381 ,p_attribute3 => p_event_in_rec.p_attribute3
382 ,p_attribute4 => p_event_in_rec.p_attribute4
383 ,p_attribute5 => p_event_in_rec.p_attribute5
384 ,p_attribute6 => p_event_in_rec.p_attribute6
385 ,p_attribute7 => p_event_in_rec.p_attribute7
386 ,p_attribute8 => p_event_in_rec.p_attribute8
387 ,p_attribute9 => p_event_in_rec.p_attribute9
388 ,p_attribute10 => p_event_in_rec.p_attribute10
389 ,p_return_msg => p_return_msg
390 ,p_valid_status => p_validate_status);
391 IF p_validate_status = 'N'
392 THEN
393 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
394 THEN
395 pa_interface_utils_pub.map_new_amg_msg
396 ( p_old_message_code => 'PA_INVALID_FF_VALUES'
397 ,p_msg_attribute => 'CHANGE'
398 ,p_resize_flag => 'N'
399 ,p_msg_context => 'EVENT'
400 ,p_attribute1 => p_event_in_rec.p_pm_event_reference
401 ,p_attribute2 => ''
402 ,p_attribute3 => ''
403 ,p_attribute4 => ''
404 ,p_attribute5 => '');
405 END IF;
406 p_return_status := FND_API.G_RET_STS_ERROR;
407 RAISE FND_API.G_EXC_ERROR;
408 END IF;
409 Else
410 p_event_in_rec.P_desc_flex_name :=NULL;
411 p_event_in_rec.P_attribute_category :=NULL;
412 p_event_in_rec.P_attribute1 :=NULL;
413 p_event_in_rec.P_attribute2 :=NULL;
414 p_event_in_rec.P_attribute3 :=NULL;
415 p_event_in_rec.P_attribute4 :=NULL;
416 p_event_in_rec.P_attribute5 :=NULL;
417 p_event_in_rec.P_attribute6 :=NULL;
418 p_event_in_rec.P_attribute7 :=NULL;
419 p_event_in_rec.P_attribute8 :=NULL;
420 p_event_in_rec.P_attribute9 :=NULL;
421 p_event_in_rec.P_attribute10 :=NULL;
422 END IF;
423
424 --Log Message
425 IF l_debug_mode = 'Y' THEN
426 pa_debug.write_log ( x_module => 'pa.plsql.PA_EVENT_PUB.CREATE_EVENT.begin'
427 ,x_msg => 'Validating or generating event number'
428 ,x_log_level => 5);
429 END IF;
430
431 -- Validating the event num.If found NULL it is populated before
432 -- inserting the record into pa_events.
433 If (p_event_in_rec.P_event_number Is NULL
434 OR p_event_in_rec.P_event_number = PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
435 Then
436 --generating event number for project level events
437 If (P_task_id Is NULL)
438 Then
439 SELECT NVL(max(event_num),0)+1
440 INTO P_event_in_rec.p_event_number
441 FROM pa_events e
442 WHERE e.project_id = P_project_id
443 AND e.task_id IS NULL;
444 Else
445 --generating event number for task level events
446 SELECT NVL(max(event_num),0)+1
447 INTO P_event_in_rec.p_event_number
448 FROM pa_events e
449 WHERE e.project_id =P_project_id
450 AND e.task_id = P_task_id;
451 End If;
452 End If;
453
454 --Validating the adjust revenue flag
455 If upper(p_event_in_rec.P_adjusting_revenue_flag) = 'Y'
456 Then
457 p_event_in_rec.P_bill_trans_bill_amount := 0;
458 p_event_in_rec.P_bill_hold_flag := 'N';
459 p_event_in_rec.P_adjusting_revenue_flag :='Y';
460 End If;
461
462 --If event type is of revenue type(Write-Off), set bill trans bill amt = 0.
463
464 If l_event_type_classification In('WRITE OFF')
465 Then
466 p_event_in_rec.P_bill_trans_bill_amount:=0;
467 End If;
468
469 --If event type is of invoice type, set bill trans rev amt = 0
470
471 If l_event_type_classification In('DEFERRED REVENUE','INVOICE REDUCTION','SCHEDULED PAYMENTS')
472 Then
473 p_event_in_rec.P_bill_trans_rev_amount:=0;
474 End If;
475
476 --If event type = 'Write-On' bill trans bill amt = rev amt.
477
478 If (l_event_type_classification = 'WRITE ON')
479 Then
480 p_event_in_rec.P_bill_trans_bill_amount := p_event_in_rec.P_bill_trans_rev_amount;
481 End If;
482
483 --If P_description is NULL then set default as event_type
484
485 If(p_event_in_rec.P_description Is NULL)
486 Then
487 p_event_in_rec.P_description:=p_event_in_rec.P_event_type;
488 End If;
489
490 --Defaulting adjusting revenue flag
491 If(p_event_in_rec.P_adjusting_revenue_flag = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
492 Then
493 p_event_in_rec.P_adjusting_revenue_flag :=NULL;
494 End If;
495
496 --Defaulting bill hold flag
497 If(p_event_in_rec.P_bill_hold_flag = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
498 Then
499 p_event_in_rec.P_bill_hold_flag :=NULL;
500 End If;
501
502
503 --Log Message
504 IF l_debug_mode = 'Y' THEN
505 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CREATE_EVENT.begin'
506 ,x_msg => 'Beginning defaulting mcb parameters'
507 ,x_log_level => 5);
508 END IF;
509
510 --Before defaulting the mcb related paramaters validating
511 --if the User has overwritten any of the fields.
512 If (l_multi_currency_billing_flag = 'Y')
513 Then
514 /* Moved the following code here from a later point for code merge of bug 5458861 */
515 --Get the conversion_type for funding_rate_type, projfunc_rate_type and project_rate_type for bug3009239
516
517 IF p_event_in_rec.p_funding_rate_type is not null
518 THEN
519 SELECT conversion_type
520 INTO l_funding_rate_type
521 FROM pa_conversion_types_v
522 WHERE user_conversion_type = p_event_in_rec.p_funding_rate_type
523 or conversion_type = p_event_in_rec.p_funding_rate_type;
524 p_event_in_rec.p_funding_rate_type := l_funding_rate_type;
525 END IF;
526
527 IF p_event_in_rec.p_projfunc_rate_type is not null
528 THEN
529 SELECT conversion_type
530 INTO l_projfunc_bil_rate_type
531 FROM pa_conversion_types_v
532 WHERE user_conversion_type = p_event_in_rec.p_projfunc_rate_type
533 or conversion_type = p_event_in_rec.p_projfunc_rate_type;
534 p_event_in_rec.p_projfunc_rate_type := l_projfunc_bil_rate_type;
535 END IF;
536
537 IF p_event_in_rec.p_project_rate_type is not null
538 THEN
539 SELECT conversion_type
540 INTO l_project_bil_rate_type
541 FROM pa_conversion_types_v
542 WHERE user_conversion_type = p_event_in_rec.p_project_rate_type
543 or conversion_type = p_event_in_rec.p_project_rate_type;
544 p_event_in_rec.p_project_rate_type := l_project_bil_rate_type;
545 END IF;
546
547 --till here for code merge of bug 5458861
548
549
550 --validating and defaulting bill transaction currency code
551 If (p_event_in_rec.P_bill_trans_currency_code Is NULL
552 OR p_event_in_rec.P_bill_trans_currency_code=PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
553 Then
554 p_event_in_rec.P_bill_trans_currency_code:=l_projfunc_currency_code;
555 End If;
556
557 --funding rate,date and type validations
558 If(p_event_in_rec.P_funding_rate_type Is NULL
559 OR p_event_in_rec.P_funding_rate_type = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
560 Then
561 p_event_in_rec.P_funding_rate_type:=l_funding_rate_type;
562 End If;
563 If (l_funding_rate_date_code = 'FIXED_DATE')
564 Then
565 If(p_event_in_rec.P_funding_rate_date Is NULL
566 OR p_event_in_rec.P_funding_rate_date = PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
567 Then
568 p_event_in_rec.P_funding_rate_date:=l_funding_rate_date;
569 End If;
570 Else
571 --Commented for Bug3009239
572 -- p_event_in_rec.P_funding_rate_date:=l_funding_rate_date;
573 --Added for Bug3009239
574 If(p_event_in_rec.P_funding_rate_date Is NULL
575 OR p_event_in_rec.P_funding_rate_date = PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
576 Then
577 p_event_in_rec.P_funding_rate_date:=l_funding_rate_date;
578 End If;
579 --till here for Bug3009239
580 End If;
581 --If fund rate type is User then only take the exchange rate from User
582 --else default it from the project level.
583 /* The following block of code has been commented for bug 3045302
584 If (p_event_in_rec.P_funding_rate_type <>l_funding_rate_type)
585 Then
586 If ( p_event_in_rec.P_funding_rate_type <> 'User' )
587 Then
588 p_event_in_rec.P_funding_exchange_rate :=NULL;
589 Else
590 If(p_event_in_rec.P_funding_exchange_rate Is NULL
591 OR p_event_in_rec.P_funding_exchange_rate =PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
592 Then
593 p_event_in_rec.P_funding_exchange_rate:=l_funding_exchange_rate;
594 End If;
595 p_event_in_rec.P_funding_rate_date := null; --Added for Bug3013256
596 End If;
597
598 Else
599 If(p_event_in_rec.P_funding_rate_type = 'User'
600 AND (p_event_in_rec.P_funding_exchange_rate Is NULL
601 OR p_event_in_rec.P_funding_exchange_rate =PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM))
602 Then
603 p_event_in_rec.P_funding_exchange_rate :=l_funding_exchange_rate;
604 p_event_in_rec.P_funding_rate_date := null; --Added for Bug3010927
605 --Added for Bug3013256
606 Else
607 If ( p_event_in_rec.P_funding_rate_type <> 'User' ) THEN
608 p_event_in_rec.p_funding_exchange_rate := null;
609 End If;
610 --till here for Bug3013256
611 End If;
612 End If;
613 End of comment for bug 3045302 */
614
615 /*Code added for bug 3045302 */
616 If ( p_event_in_rec.P_funding_rate_type <> 'User' )
617 Then
618 p_event_in_rec.P_funding_exchange_rate :=NULL;
619 Else
620 If(p_event_in_rec.P_funding_exchange_rate Is NULL
621 OR p_event_in_rec.P_funding_exchange_rate =PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
622 Then
623 p_event_in_rec.P_funding_exchange_rate:=l_funding_exchange_rate;
624 End If;
625 p_event_in_rec.P_funding_rate_date := null; --Added for Bug3013256
626 End If;
627 /*End of code change for Bug 3045302 */
628 /*The code for validation of project currency attributes has been moved from here
629 to below the validation of project functional currency attributes for
630 bug 3045302*/
631 --project functional rate,date,type validaions
632 If (p_event_in_rec.P_bill_trans_currency_code = l_projfunc_currency_code )
633 Then
634 p_event_in_rec.P_projfunc_rate_type :=NULL;
635 p_event_in_rec.P_projfunc_rate_date :=NULL;
636 p_event_in_rec.P_projfunc_exchange_rate :=NULL;
637
638 --start of validtions when project functional currency and bill trans currency are different.
639 Else
640 If(p_event_in_rec.P_projfunc_rate_type Is NULL
641 OR p_event_in_rec.P_projfunc_rate_type=PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
642 Then
643 p_event_in_rec.P_projfunc_rate_type:=l_projfunc_bil_rate_type;
644 End If;
645
646 If (l_projfunc_bil_rate_date_code= 'FIXED_DATE')
647 Then
648 If(p_event_in_rec.P_projfunc_rate_date Is NULL
649 OR p_event_in_rec.P_projfunc_rate_date=PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
650 Then
651 p_event_in_rec.P_projfunc_rate_date:=l_projfunc_bil_rate_date;
652 End If;
653 Else
654 --Commented for Bug3009239
655 -- p_event_in_rec.P_projfunc_rate_date:=l_projfunc_bil_rate_date;
656 --Added for Bug3009239
657 If(p_event_in_rec.P_projfunc_rate_date Is NULL
658 OR p_event_in_rec.P_projfunc_rate_date=PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
659 Then
660 p_event_in_rec.P_projfunc_rate_date:=l_projfunc_bil_rate_date;
661 End If;
662 --till here for Bug3009239
663
664 End If;
665
666 If(p_event_in_rec.P_projfunc_rate_type <> l_projfunc_bil_rate_type)
667 Then
668 If ( p_event_in_rec.P_projfunc_rate_type <> 'User' )
669 Then
670 p_event_in_rec.P_projfunc_exchange_rate:=NULL;
671 ELSE
672 If (p_event_in_rec.P_projfunc_exchange_rate Is NULL
673 OR p_event_in_rec.P_projfunc_exchange_rate=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
674 Then
675 p_event_in_rec.P_projfunc_exchange_rate:=l_projfunc_bil_exchange_rate;
676 End If;
677 p_event_in_rec.P_projfunc_rate_date := null; --Added for Bug3010927
678 End If;
679 Else
680 If(p_event_in_rec.P_projfunc_rate_type = 'User')
681 Then
682 If (p_event_in_rec.P_projfunc_exchange_rate Is NULL
683 OR p_event_in_rec.P_projfunc_exchange_rate=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
684 Then
685 p_event_in_rec.P_projfunc_exchange_rate:=l_projfunc_bil_exchange_rate;
686 End If;
687 p_event_in_rec.P_projfunc_rate_date := null; --Added for Bug3010927
688 Else
689 --Commented for Bug3013256
690 --p_event_in_rec.P_projfunc_exchange_rate:=l_projfunc_bil_exchange_rate;
691 p_event_in_rec.P_projfunc_exchange_rate:=null; --Added for Bug3013256
692 End If;
693 End If;
694 End If;
695
696 --project rate,date and type validations
697 If (p_event_in_rec.P_bill_trans_currency_code = l_project_currency_code)
698 Then
699 p_event_in_rec.P_project_rate_type :=NULL;
700 p_event_in_rec.P_project_rate_date :=NULL;
701 p_event_in_rec.P_project_exchange_rate :=NULL;
702
703 --start of validations when project currency and bill trans currency are different.
704 --If project currency code is same as projfunc currency code default the
705 --attributes of project currency from project functional currency attributes.
706 --Change for bug 3045302
707 Elsif (l_project_currency_code= l_projfunc_currency_code)
708 Then
709 p_event_in_rec.P_project_rate_type := p_event_in_rec.P_projfunc_rate_type;
710 p_event_in_rec.P_project_rate_date := p_event_in_rec.P_projfunc_rate_date;
711 p_event_in_rec.P_project_exchange_rate := p_event_in_rec.P_projfunc_exchange_rate;
712 Else
713 If(p_event_in_rec.P_project_rate_type Is NULL
714 OR p_event_in_rec.P_project_rate_type =PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
715 Then
716 p_event_in_rec.P_project_rate_type:=l_project_bil_rate_type;
717 End If;
718
719 If (l_project_bil_rate_date_code = 'FIXED_DATE')
720 Then
721 If(p_event_in_rec.P_project_rate_date Is NULL
722 OR p_event_in_rec.P_project_rate_date =PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
723 Then
724 p_event_in_rec.P_project_rate_date:=l_project_bil_rate_date;
725 End If;
726 Else
727 --Commented for Bug3009239
728 -- p_event_in_rec.P_project_rate_date:=l_project_bil_rate_date;
729 --Added for Bug3009239
730 If(p_event_in_rec.P_project_rate_date Is NULL
731 OR p_event_in_rec.P_project_rate_date =PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
732 Then
733 p_event_in_rec.P_project_rate_date:=l_project_bil_rate_date;
734 End If;
735 --till here for Bug3009239
736 End If;
737
738 If (p_event_in_rec.P_project_rate_type<>l_project_bil_rate_type)
739 Then
740 If ( p_event_in_rec.P_project_rate_type <> 'User' )
741 Then
742 p_event_in_rec.P_project_exchange_rate:=NULL;
743 ELSE
744 If(p_event_in_rec.P_project_exchange_rate Is NULL
745 OR p_event_in_rec.P_project_exchange_rate=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
746 Then
747 p_event_in_rec.P_project_exchange_rate:=l_project_bil_exchange_rate;
748 End If;
749 p_event_in_rec.P_project_rate_date := null; --Added for Bug3045302
750 End If;
751 Else
752 If(p_event_in_rec.P_project_rate_type= 'User')
753 Then
754 If(p_event_in_rec.P_project_exchange_rate Is NULL
755 OR p_event_in_rec.P_project_exchange_rate=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
756 Then
757 p_event_in_rec.P_project_exchange_rate:=l_project_bil_exchange_rate;
758 End If;
759 p_event_in_rec.P_project_rate_date := null; --Added for Bug3010927
760 Else
761 --Commented for Bug 3013256
762 --p_event_in_rec.P_project_exchange_rate:=l_project_bil_exchange_rate;
763 p_event_in_rec.P_project_exchange_rate := null; --Added for Bug3013256
764 End If;
765 End If;
766 End If;
767
768 Else
769 --Defaulting the mcb columns when mcb is not enabled
770 p_event_in_rec.P_project_rate_type:=l_project_bil_rate_type;
771 p_event_in_rec.P_project_rate_date:=l_project_bil_rate_date;
772 p_event_in_rec.P_project_exchange_rate:=l_project_bil_exchange_rate;
773
774 p_event_in_rec.P_projfunc_rate_type:=l_projfunc_bil_rate_type;
775 p_event_in_rec.P_projfunc_rate_date:=l_projfunc_bil_rate_date;
776 p_event_in_rec.P_projfunc_exchange_rate:=l_projfunc_bil_exchange_rate;
777
778 p_event_in_rec.P_funding_rate_type:=l_funding_rate_type;
779 p_event_in_rec.P_funding_rate_date:=l_funding_rate_date;
780 p_event_in_rec.P_funding_exchange_rate:=l_funding_exchange_rate;
781
782 p_event_in_rec.P_bill_trans_currency_code:=l_projfunc_currency_code;
783 End If;
784
785 --Assigning null to event_id
786 p_event_in_rec.p_event_id:=NULL;
787
788 --Log Message
789 IF l_debug_mode = 'Y' THEN
790 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CREATE_EVENT.begin'
791 ,x_msg => 'Beginning Insert event. '
792 ,x_log_level => 5);
793 END IF;
794
795 /* Moving the following code block to an earlier part of this procedure for code merge of bug 5458861 */
796
797 --Get the conversion_type for funding_rate_type, projfunc_rate_type and project_rate_type for bug3009239
798 /* IF p_event_in_rec.p_funding_rate_type is not null
799 THEN
800 SELECT conversion_type
801 INTO l_funding_rate_type
802 FROM pa_conversion_types_v
803 WHERE user_conversion_type = p_event_in_rec.p_funding_rate_type
804 or conversion_type = p_event_in_rec.p_funding_rate_type;
805 p_event_in_rec.p_funding_rate_type := l_funding_rate_type;
806 END IF;
807
808 IF p_event_in_rec.p_projfunc_rate_type is not null
809 THEN
810 SELECT conversion_type
811 INTO l_projfunc_bil_rate_type
812 FROM pa_conversion_types_v
813 WHERE user_conversion_type = p_event_in_rec.p_projfunc_rate_type
814 or conversion_type = p_event_in_rec.p_projfunc_rate_type;
815 p_event_in_rec.p_projfunc_rate_type := l_projfunc_bil_rate_type;
816 END IF;
817
818 IF p_event_in_rec.p_project_rate_type is not null
819 THEN
820 SELECT conversion_type
821 INTO l_project_bil_rate_type
822 FROM pa_conversion_types_v
823 WHERE user_conversion_type = p_event_in_rec.p_project_rate_type
824 or conversion_type = p_event_in_rec.p_project_rate_type;
825 p_event_in_rec.p_project_rate_type := l_project_bil_rate_type;
826 END IF;
827 --till here for bug3009239
828 Commented for code merge of bug 5458861 */
829
830 -- Adding code to populate invoice and revenue attributes
831
832 IF l_invproc_currency_type = 'PROJECT_CURRENCY' THEN
833 l_invproc_currency_code := l_project_currency_code;
834 l_invproc_rate_type := p_event_in_rec.P_project_rate_type;
835 l_invproc_rate_date := p_event_in_rec.P_project_rate_date;
836 l_invproc_exchange_rate := p_event_in_rec.P_project_exchange_rate;
837 ELSIF l_invproc_currency_type = 'PROJFUNC_CURRENCY' THEN
838 l_invproc_currency_code := l_projfunc_currency_code;
839 l_invproc_rate_type := p_event_in_rec.P_projfunc_rate_type;
840 l_invproc_rate_date := p_event_in_rec.P_projfunc_rate_date;
841 l_invproc_exchange_rate := p_event_in_rec.P_projfunc_exchange_rate;
842 ELSIF l_invproc_currency_type = 'FUNDING_CURRENCY' THEN
843 l_invproc_currency_code := '';
844 l_invproc_rate_type := p_event_in_rec.P_funding_rate_type;
845 l_invproc_rate_date := p_event_in_rec.P_funding_rate_date;
846 l_invproc_exchange_rate := p_event_in_rec.P_funding_exchange_rate;
847
848 END IF;
849
850 IF l_revproc_currency_code = l_projfunc_currency_code THEN
851 l_revproc_currency_code := l_projfunc_currency_code;
852 l_revproc_rate_type := p_event_in_rec.P_projfunc_rate_type;
853 l_revproc_rate_date := p_event_in_rec.P_projfunc_rate_date;
854 l_revproc_exchange_rate := p_event_in_rec.P_projfunc_exchange_rate;
855 END IF;
856
857 --Added the following two calls for the bug 7513054
858 p_event_in_rec.P_bill_trans_bill_amount := PA_CURRENCY.ROUND_TRANS_CURRENCY_AMT(p_event_in_rec.P_bill_trans_bill_amount,p_event_in_rec.P_bill_trans_currency_code);
859 --dbms_output.put_line('bill amount rounded');
860 p_event_in_rec.P_bill_trans_rev_amount := PA_CURRENCY.ROUND_TRANS_CURRENCY_AMT(p_event_in_rec.P_bill_trans_rev_amount,p_event_in_rec.P_bill_trans_currency_code);
861 --dbms_output.put_line('rev amt rounded');
862
863 -- Till here
864
865 --Call to table handler to insert the events into the database
866 --Calling PA_EVENTS_PKG.
867
868 PA_EVENTS_PKG.Insert_Row
869 (X_Rowid =>rowid
870 ,X_Event_Id =>p_event_in_rec.p_event_id
871 ,X_product_code =>p_pm_product_code
872 ,X_event_reference =>p_event_in_rec.p_pm_event_reference
873 ,X_Task_Id =>P_task_id
874 ,X_Event_Num =>p_event_in_rec.p_event_number
875 ,X_Last_Update_Date =>SYSDATE
876 ,X_Last_Updated_By =>G_USER_ID
877 ,X_Creation_Date =>SYSDATE
878 ,X_Created_By =>G_USER_ID
879 ,X_Last_Update_Login =>G_LOGIN_ID
880 ,X_Event_Type =>p_event_in_rec.P_event_type
881 ,X_Description =>p_event_in_rec.P_description
882 ,X_Bill_Amount =>0
883 ,X_Revenue_Amount =>0
884 ,X_Revenue_Distributed_Flag =>'N'
885 ,X_Bill_Hold_Flag =>p_event_in_rec.P_bill_hold_flag
886 ,X_Completion_date =>p_event_in_rec.P_completion_date
887 ,X_Rev_Dist_Rejection_Code =>NULL
888 ,X_Attribute_Category =>p_event_in_rec.P_attribute_category
889 ,X_Attribute1 =>p_event_in_rec.P_attribute1
890 ,X_Attribute2 =>p_event_in_rec.P_attribute2
891 ,X_Attribute3 =>p_event_in_rec.P_attribute3
892 ,X_Attribute4 =>p_event_in_rec.P_attribute4
893 ,X_Attribute5 =>p_event_in_rec.P_attribute5
894 ,X_Attribute6 =>p_event_in_rec.P_attribute6
895 ,X_Attribute7 =>p_event_in_rec.P_attribute7
896 ,X_Attribute8 =>p_event_in_rec.P_attribute8
897 ,X_Attribute9 =>p_event_in_rec.P_attribute9
898 ,X_Attribute10 =>p_event_in_rec.P_attribute10
899 ,X_Project_Id =>P_project_id
900 ,X_Organization_Id =>P_Organization_Id
901 ,X_Billing_Assignment_Id =>NULL
902 ,X_Event_Num_Reversed =>NULL
903 ,X_Calling_Place =>NULL
904 ,X_Calling_Process =>NULL
905 ,X_Bill_Trans_Currency_Code =>p_event_in_rec.P_bill_trans_currency_code
906 ,X_Bill_Trans_Bill_Amount =>p_event_in_rec.P_bill_trans_bill_amount
907 ,X_Bill_Trans_rev_Amount =>p_event_in_rec.P_bill_trans_rev_amount
908 ,X_Project_Currency_Code =>l_project_currency_code
909 ,X_Project_Rate_Type =>p_event_in_rec.P_project_rate_type
910 ,X_Project_Rate_Date =>p_event_in_rec.P_project_rate_date
911 ,X_Project_Exchange_Rate =>p_event_in_rec.P_project_exchange_rate
912 ,X_Project_Inv_Rate_Date =>NULL
913 ,X_Project_Inv_Exchange_Rate =>NULL
914 ,X_Project_Bill_Amount =>NULL
915 ,X_Project_Rev_Rate_date =>NULL
916 ,X_Project_Rev_Exchange_Rate =>NULL
917 ,X_Project_Revenue_Amount =>NULL
918 ,X_ProjFunc_Currency_Code =>l_projfunc_currency_code
919 ,X_ProjFunc_Rate_Type =>p_event_in_rec.P_projfunc_rate_type
920 ,X_ProjFunc_Rate_date =>p_event_in_rec.P_projfunc_rate_date
921 ,X_ProjFunc_Exchange_Rate =>p_event_in_rec.P_projfunc_exchange_rate
922 ,X_ProjFunc_Inv_Rate_date =>NULL
923 ,X_ProjFunc_Inv_Exchange_Rate =>NULL
924 ,X_ProjFunc_Bill_Amount =>NULL
925 ,X_ProjFunc_Rev_Rate_date =>NULL
926 ,X_Projfunc_Rev_Exchange_Rate =>NULL
927 ,X_ProjFunc_Revenue_Amount =>NULL
928 ,X_Funding_Rate_Type =>p_event_in_rec.P_funding_rate_type
929 ,X_Funding_Rate_date =>p_event_in_rec.P_funding_rate_date
930 ,X_Funding_Exchange_Rate =>p_event_in_rec.P_funding_exchange_rate
931 ,X_Invproc_Currency_Code =>l_invproc_currency_code
932 ,X_Invproc_Rate_Type =>l_invproc_rate_type
933 ,X_Invproc_Rate_date =>l_invproc_rate_date
934 ,X_Invproc_Exchange_Rate =>l_invproc_exchange_rate
935 ,X_Revproc_Currency_Code =>l_revproc_currency_code
936 ,X_Revproc_Rate_Type =>l_revproc_rate_type
937 ,X_Revproc_Rate_date =>l_revproc_rate_date
938 ,X_Revproc_Exchange_Rate =>l_revproc_exchange_rate
939 ,X_Inv_Gen_Rejection_Code =>NULL
940 ,X_Adjusting_Revenue_Flag =>p_event_in_rec.P_adjusting_revenue_flag
941 ,X_inventory_org_id =>p_inv_org_id
942 ,X_inventory_item_id =>p_event_in_rec.P_inventory_item_id
943 ,X_quantity_billed =>p_event_in_rec.P_quantity_billed
944 ,X_uom_code =>p_event_in_rec.P_uom_code
945 ,X_unit_price =>p_event_in_rec.P_unit_price
946 ,X_reference1 =>p_event_in_rec.P_reference1
947 ,X_reference2 =>p_event_in_rec.P_reference2
948 ,X_reference3 =>p_event_in_rec.P_reference3
949 ,X_reference4 =>p_event_in_rec.P_reference4
950 ,X_reference5 =>p_event_in_rec.P_reference5
951 ,X_reference6 =>p_event_in_rec.P_reference6
952 ,X_reference7 =>p_event_in_rec.P_reference7
953 ,X_reference8 =>p_event_in_rec.P_reference8
954 ,X_reference9 =>p_event_in_rec.P_reference9
955 ,X_reference10 =>p_event_in_rec.P_reference10
956 ,X_Deliverable_Id =>p_event_in_rec.P_deliverable_id
957 ,X_Action_Id =>p_event_in_rec.P_action_id
958 ,X_Record_Version_Number => 1
959 ,X_Agreement_Id =>p_agreement_id); -- Fedral Uptake
960
961 --If commit is set to true then commit to database.
962 IF FND_API.to_boolean( p_commit )
963 THEN
964 COMMIT;
965 END IF;
966
967 EXCEPTION
968 WHEN FND_API.G_EXC_ERROR
969 THEN
970 ROLLBACK TO create_event;
971 l_return_status := FND_API.G_RET_STS_ERROR;
972
973 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
974 THEN
975 ROLLBACK TO create_event;
976 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
977
978 WHEN pa_event_pvt.pub_excp
979 THEN
980 ROLLBACK TO create_event;
981 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
982 PA_EVENT_PUB.PACKAGE_NAME
983 :='(Event Reference='||p_event_in_rec.p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
984 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'CREATE_EVENT';
985
986 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
987 THEN
988 FND_MSG_PUB.add_exc_msg
989 ( p_pkg_name => PACKAGE_NAME
990 , p_procedure_name => PROCEDURE_NAME );
991 PACKAGE_NAME:=NULL;
992 PROCEDURE_NAME:=NULL;
993 END IF;
994
995 WHEN OTHERS
996 THEN
997 ROLLBACK TO create_event;
998 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
999 PA_EVENT_PUB.PACKAGE_NAME
1000 :='(Event Reference='||p_event_in_rec.p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
1001 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'CREATE_EVENT';
1002
1003 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1004 THEN
1005 FND_MSG_PUB.add_exc_msg
1006 ( p_pkg_name => PACKAGE_NAME
1007 , p_procedure_name => PROCEDURE_NAME );
1008 PACKAGE_NAME:=NULL;
1009 PROCEDURE_NAME:=NULL;
1010 END IF;
1011
1012 END; --end of Inner Block
1013
1014 --Populating the output table
1015 tot_out_rec := tot_out_rec + 1; -- Added for bug#12964074
1016 p_event_out_tbl(tot_out_rec).pm_event_reference := p_event_in_rec.p_pm_event_reference;
1017 p_event_out_tbl(tot_out_rec).Event_Id := p_event_in_rec.P_event_id;
1018 p_event_out_tbl(tot_out_rec).Return_status := P_return_status;
1019 -- tot_out_rec := tot_out_rec + 1; --Commented for bug#12964074
1020 tot_in_rec := p_event_in_tbl.next(tot_in_rec);
1021
1022 pa_debug.reset_err_stack; -- Reset error stack
1023 END LOOP; -- End of loop
1024
1025
1026 --Setting the return status to false even if one record fails the validation.
1027 p_return_status := l_return_status;
1028
1029 --Extracting and returning error message if message count is 1.
1030 FND_MSG_PUB.Count_And_Get
1031 ( p_encoded => l_encoded
1032 ,p_count => p_msg_count
1033 ,p_data => p_msg_data );
1034
1035
1036 EXCEPTION
1037 WHEN FND_API.G_EXC_ERROR
1038 THEN
1039 p_return_status := FND_API.G_RET_STS_ERROR;
1040 FND_MSG_PUB.Count_And_Get
1041 ( p_encoded => l_encoded
1042 ,p_count => p_msg_count
1043 ,p_data => p_msg_data );
1044
1045 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
1046 THEN
1047 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1048 FND_MSG_PUB.Count_And_Get
1049 ( p_encoded => l_encoded
1050 ,p_count => p_msg_count
1051 ,p_data => p_msg_data );
1052
1053 WHEN pa_event_pvt.pub_excp
1054 THEN
1055 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1056 PA_EVENT_PUB.PACKAGE_NAME
1057 :='(event_reference='||p_event_in_rec.p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
1058 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'CREATE_EVENT';
1059
1060 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1061 THEN
1062 FND_MSG_PUB.add_exc_msg
1063 ( p_pkg_name => PACKAGE_NAME
1064 , p_procedure_name => PROCEDURE_NAME );
1065 PACKAGE_NAME:=NULL;
1066 PROCEDURE_NAME:=NULL;
1067 END IF;
1068
1069 FND_MSG_PUB.Count_And_Get
1070 ( p_encoded => l_encoded
1071 ,p_count => p_msg_count
1072 ,p_data => p_msg_data );
1073
1074 WHEN OTHERS
1075 THEN
1076 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1077 PA_EVENT_PUB.PACKAGE_NAME
1078 :='(event_reference='||p_event_in_rec.p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
1079 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'CREATE_EVENT';
1080
1081 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1082 THEN
1083 FND_MSG_PUB.add_exc_msg
1084 ( p_pkg_name => PACKAGE_NAME
1085 , p_procedure_name => PROCEDURE_NAME );
1086 PACKAGE_NAME:=NULL;
1087 PROCEDURE_NAME:=NULL;
1088 END IF;
1089
1090 FND_MSG_PUB.Count_And_Get
1091 ( p_encoded => l_encoded
1092 ,p_count => p_msg_count
1093 ,p_data => p_msg_data );
1094
1095 END create_event;
1096 -- ============================================================================
1097 --
1098 --Name: update_event
1099 --Type: procedure
1100 --Description: This API updates an existing event or a set of existing events
1101 --
1102 --Called subprograms: PA_EVENT_PVT.CHECK_MDTY_PARAMS1
1103 -- PA_EVENT_PVT.CHECK_MDTY_PARAMS2
1104 -- PA_EVENT_PVT.check_update_event_ok
1105 -- PA_EVENT_PVT.VALIDATE_FLEXFIELD
1106 -- pa_events_pkg.update_row
1107 --
1108 --
1109 --
1110 --History:
1111
1112 -- ============================================================================
1113
1114 PROCEDURE UPDATE_EVENT
1115 ( p_api_version_number IN NUMBER
1116 ,p_commit IN VARCHAR2
1117 ,p_init_msg_list IN VARCHAR2
1118 ,p_pm_product_code IN VARCHAR2
1119 ,p_event_in_tbl IN Event_In_Tbl_Type
1120 ,p_event_out_tbl OUT NOCOPY Event_Out_Tbl_Type --File.Sql.39 bug 4440895
1121 ,p_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1122 ,p_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1123 ,p_return_status OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
1124 AS
1125
1126 Cursor chk_proj_curs(P_project_number VARCHAR2)
1127 Is
1128 Select project_id
1129 From pa_projects_all
1130 Where segment1 = P_project_number;
1131
1132 p_inv_org_id pa_events.inventory_item_id%type;
1133 P_project_id pa_events.project_id%type;
1134 l_project_id pa_projects_all.project_id%type;
1135 P_task_id pa_events.task_id%type;
1136 l_task_id pa_events.task_id%type;
1137 P_Organization_Id pa_projects_all.org_id%type;
1138 l_event_type_classification pa_event_types.event_type_classification%type;
1139 P_agreement_id pa_events.agreement_id%type; -- Federal Uptake
1140
1141 P_event_id_out pa_events.event_id%type;
1142 Rowid VARCHAR2(18);
1143 p_event_in_rec Event_Rec_In_Type;
1144 p_event_out_rec Event_Rec_Out_Type;
1145 tot_in_rec NUMBER:=0;
1146 tot_out_rec NUMBER:=0;
1147 p_api_name VARCHAR2(100):='UPDATE_EVENT';
1148 p_return_msg VARCHAR2(2000);
1149 p_validate_status VARCHAR2(1):='Y';
1150 l_bill_trans_curr_code pa_events.Bill_Trans_Currency_Code%type;
1151 l_project_currency_code pa_events.Project_currency_code%type;
1152 l_Project_Inv_Exchange_Rate pa_events.Project_Inv_Exchange_Rate%type;
1153 l_Project_Bill_Amount pa_events.Project_Bill_Amount%type;
1154 l_Project_Rev_Rate_date pa_events.Project_Rev_Rate_date%type;
1155 l_Project_Rev_Exchange_Rate pa_events.Project_Rev_Exchange_Rate%type;
1156 l_Project_Revenue_Amount pa_events.Project_Revenue_Amount%type;
1157 l_ProjFunc_Currency_Code pa_events.ProjFunc_Currency_Code%type;
1158 l_ProjFunc_Inv_Rate_date pa_events.ProjFunc_Inv_Rate_date%type;
1159 l_ProjFunc_Inv_Exchange_Rate pa_events.ProjFunc_Inv_Exchange_Rate%type;
1160 l_ProjFunc_Bill_Amount pa_events.ProjFunc_Bill_Amount%type;
1161 l_ProjFunc_Rev_Rate_date pa_events.ProjFunc_Rev_Rate_date%type;
1162 l_Projfunc_Rev_Exchange_Rate pa_events.Projfunc_Rev_Exchange_Rate%type;
1163 l_ProjFunc_Revenue_Amount pa_events.ProjFunc_Revenue_Amount%type;
1164 l_Invproc_Currency_Code pa_events.Invproc_Currency_Code%type;
1165 l_Invproc_Rate_Type pa_events.Invproc_Rate_Type%type;
1166 l_Invproc_Rate_date pa_events.Invproc_Rate_date%type;
1167 l_Invproc_Exchange_Rate pa_events.Invproc_Exchange_Rate%type;
1168 l_Revproc_Currency_Code pa_events.Revproc_Currency_Code%type;
1169 l_Revproc_Rate_Type pa_events.Revproc_Rate_Type%type;
1170 l_Revproc_Rate_date pa_events.Revproc_Rate_date%type;
1171 l_revproc_exchange_rate pa_events.revproc_exchange_rate%type;
1172 l_Inv_Gen_Rejection_Code pa_events.Inv_Gen_Rejection_Code%type;
1173 l_project_bil_rate_date_code pa_projects_all.project_bil_rate_date_code%type;
1174 l_projfunc_bil_rate_date_code pa_projects_all.projfunc_bil_rate_date_code%type;
1175 l_multi_currency_billing_flag pa_projects_all.multi_currency_billing_flag%type;
1176 l_project_bil_rate_type pa_events.project_rate_type%type;
1177 l_project_bil_rate_date pa_events.project_rate_date%type;
1178 l_project_bil_exchange_rate pa_events.project_exchange_rate%type;
1179 l_projfunc_bil_rate_type pa_events.projfunc_rate_type%type;
1180 l_projfunc_bil_rate_date pa_events.projfunc_rate_date%type;
1181 L_PROJFUNC_BIL_EXCHANGE_RATE pa_events.PROJFUNC_EXCHANGE_RATE%type;
1182 L_FUNDING_RATE_TYPE pa_events.FUNDING_RATE_TYPE%type;
1183 L_FUNDING_RATE_DATE pa_events.FUNDING_RATE_DATE%type;
1184 L_FUNDING_EXCHANGE_RATE pa_events.FUNDING_EXCHANGE_RATE%type;
1185 l_bill_trans_rev_amt pa_events.bill_trans_rev_amount%type;
1186 l_bill_trans_bill_amt pa_events.bill_trans_bill_amount%type;
1187 l_description pa_events.description%type;
1188 l_bill_hold_flag pa_events.bill_hold_flag%type;
1189 L_adjusting_revenue_flag pa_events.adjusting_revenue_flag%type;
1190 l_inventory_org_id pa_events.inventory_org_id%type;
1191 l_inventory_item_id pa_events.inventory_item_id%type;
1192 l_organization_id pa_events.organization_id%type;
1193 l_funding_rate_date_code pa_projects_all.funding_rate_date_code%TYPE;
1194 l_encoded varchar2(1):='F';
1195 l_return_status varchar2(1):= FND_API.G_RET_STS_SUCCESS;
1196 l_record_version_number pa_events.record_version_number%TYPE;
1197
1198 /* Added for bug 7110782 */
1199 l_event_processed varchar2(1) := 'N';
1200 l_bill_amount pa_events.bill_amount%type;
1201 l_revenue_amount pa_events.revenue_amount%type;
1202 l_revenue_distributed_flag pa_events.revenue_distributed_flag%type;
1203 l_rev_dist_rejection_code pa_events.rev_dist_rejection_code%type;
1204 l_Billing_Assignment_Id pa_events.Billing_Assignment_Id%type;
1205 l_Event_Num_Reversed pa_events.Event_Num_Reversed%type;
1206 l_Calling_Place pa_events.Calling_Place%type;
1207 l_Calling_Process pa_events.Calling_Process%type;
1208 /* Added for bug 7110782 */
1209
1210 BEGIN
1211
1212 -- Initialize the Error Stack
1213 pa_debug.set_err_stack('PA_EVENT_PUB.UPDATE_EVENT');
1214
1215 --Log Message
1216 IF l_debug_mode = 'Y' THEN
1217 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.UPDATE_EVENT.begin'
1218 ,x_msg => 'Beginning of Update Event'
1219 ,x_log_level => 5);
1220 END IF;
1221
1222 p_msg_count := 0;
1223 p_return_status := FND_API.G_RET_STS_SUCCESS;
1224
1225 --Log Message
1226 IF l_debug_mode = 'Y' THEN
1227 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.UPDATE_EVENT.begin'
1228 ,x_msg => 'Calling mandatory input parameters-1'
1229 ,x_log_level => 5);
1230 END IF;
1231
1232 -- Validating mandatory input parameters-1
1233
1234 PA_EVENT_PVT.check_mdty_params1
1235 ( p_api_version_number =>p_api_version_number
1236 ,p_api_name =>p_api_name
1237 ,p_pm_product_code =>p_pm_product_code
1238 ,p_function_name =>'PA_EV_UPDATE_EVENT'
1239 ,x_return_status =>p_return_status
1240 ,x_msg_count =>p_msg_count
1241 ,x_msg_data =>p_msg_data );
1242
1243
1244 If p_return_status <> FND_API.G_RET_STS_SUCCESS
1245 Then
1246 IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1247 THEN
1248 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1249
1250 ELSIF p_return_status = FND_API.G_RET_STS_ERROR
1251 THEN
1252 RAISE FND_API.G_EXC_ERROR;
1253 END IF;
1254 End If;
1255
1256 tot_in_rec := p_event_in_tbl.first;
1257 while tot_in_rec is not null loop -- loop begins
1258 -- For all date variables using trunc instead of ltrim(rtrim)for bug 3053669
1259 P_event_in_rec.P_pm_event_reference :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_pm_event_reference));
1260 P_event_in_rec.P_task_number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_task_number));
1261 P_event_in_rec.P_event_number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_event_number));
1262 P_event_in_rec.P_event_type :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_event_type));
1263 -- Added the below three lines for Federal Uptake
1264 P_event_in_rec.P_agreement_number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_agreement_number));
1265 P_event_in_rec.P_agreement_type :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_agreement_type));
1266 P_event_in_rec.P_customer_number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_customer_number));
1267 P_event_in_rec.P_description :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_description));
1268 P_event_in_rec.P_bill_hold_flag :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_bill_hold_flag));
1269 P_event_in_rec.P_completion_date :=trunc(p_event_in_tbl(tot_in_rec).P_completion_date);
1270 P_event_in_rec.P_desc_flex_name :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_desc_flex_name));
1271 P_event_in_rec.P_attribute_category :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute_category));
1272 P_event_in_rec.P_attribute1 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute1));
1273 P_event_in_rec.P_attribute2 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute2));
1274 P_event_in_rec.P_attribute3 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute3));
1275 P_event_in_rec.P_attribute4 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute4));
1276 P_event_in_rec.P_attribute5 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute5));
1277 P_event_in_rec.P_attribute6 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute6));
1278 P_event_in_rec.P_attribute7 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute7));
1279 P_event_in_rec.P_attribute8 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute8));
1280 P_event_in_rec.P_attribute9 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute9));
1281 P_event_in_rec.P_attribute10 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_attribute10));
1282 P_event_in_rec.P_project_number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_project_number));
1283 P_event_in_rec.P_organization_name :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_organization_name));
1284 P_event_in_rec.P_inventory_org_name :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_inventory_org_name));
1285 P_event_in_rec.P_inventory_item_id :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_inventory_item_id));
1286 P_event_in_rec.P_quantity_billed :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_quantity_billed));
1287 P_event_in_rec.P_uom_code :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_uom_code));
1288 P_event_in_rec.P_unit_price :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_unit_price));
1289 P_event_in_rec.P_reference1 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference1));
1290 P_event_in_rec.P_reference2 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference2));
1291 P_event_in_rec.P_reference3 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference3));
1292 P_event_in_rec.P_reference4 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference4));
1293 P_event_in_rec.P_reference5 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference5));
1294 P_event_in_rec.P_reference6 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference6));
1295 P_event_in_rec.P_reference7 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference7));
1296 P_event_in_rec.P_reference8 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference8));
1297 P_event_in_rec.P_reference9 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference9));
1298 P_event_in_rec.P_reference10 :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_reference10));
1299 P_event_in_rec.P_bill_trans_currency_code :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_bill_trans_currency_code));
1300 P_event_in_rec.P_bill_trans_bill_amount :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_bill_trans_bill_amount));
1301 P_event_in_rec.P_bill_trans_rev_amount :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_bill_trans_rev_amount));
1302 P_event_in_rec.P_project_rate_type :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_project_rate_type));
1303 P_event_in_rec.P_project_rate_date :=trunc(p_event_in_tbl(tot_in_rec).P_project_rate_date);
1304 P_event_in_rec.P_project_exchange_rate :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_project_exchange_rate));
1305 P_event_in_rec.P_projfunc_rate_type :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_projfunc_rate_type));
1306 P_event_in_rec.P_projfunc_rate_date :=trunc(p_event_in_tbl(tot_in_rec).P_projfunc_rate_date);
1307 P_event_in_rec.P_projfunc_exchange_rate :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_projfunc_exchange_rate));
1308 P_event_in_rec.P_funding_rate_type :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_funding_rate_type));
1309 P_event_in_rec.P_funding_rate_date :=trunc(p_event_in_tbl(tot_in_rec).P_funding_rate_date);
1310 P_event_in_rec.P_funding_exchange_rate :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_funding_exchange_rate));
1311 P_event_in_rec.P_adjusting_revenue_flag :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_adjusting_revenue_flag));
1312 P_event_in_rec.P_event_id :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_event_id));
1313 P_event_in_rec.P_deliverable_id :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_deliverable_id));
1314 P_event_in_rec.P_action_id :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_action_id));
1315 P_event_in_rec.P_context :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_context));
1316 P_event_in_rec.P_Record_Version_Number :=ltrim(rtrim(p_event_in_tbl(tot_in_rec).P_record_version_number));
1317
1318 BEGIN --Start of Inner Block
1319
1320 --Set savepoint
1321 Savepoint Update_event;
1322
1323 --Log Message
1324 IF l_debug_mode = 'Y' THEN
1325 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.UPDATE_EVENT.begin'
1326 ,x_msg => ' Calling mandatory input parameters-2'
1327 ,x_log_level => 5);
1328 END IF;
1329
1330 -- Validating mandatory input parameters-2
1331 /*Commenting out this call as the event reference is not a mandatory parameter.bug 3118781
1332 PA_EVENT_PVT.CHECK_MDTY_PARAMS2
1333 ( p_pm_event_reference => p_event_in_rec.p_pm_event_reference
1334 ,p_pm_product_code => p_pm_product_code
1335 ,p_project_number => p_event_in_rec.p_project_number
1336 ,p_event_type => p_event_in_rec.p_event_type
1337 ,p_organization_name => p_event_in_rec.p_organization_name
1338 ,p_calling_place => 'UPDATE_EVENT'
1339 ,x_return_status => p_return_status );
1340
1341 If p_return_status <> FND_API.G_RET_STS_SUCCESS
1342 Then
1343 IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1344 THEN
1345 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1346
1347 ELSIF p_return_status = FND_API.G_RET_STS_ERROR
1348 THEN
1349 RAISE FND_API.G_EXC_ERROR;
1350 END IF;
1351 End If;
1352 End of comment for 3118781*/
1353 --Log Message
1354 IF l_debug_mode = 'Y' THEN
1355 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.UPDATE_EVENT.begin'
1356 ,x_msg => 'Calling conv_event_ref_to_id'
1357 ,x_log_level => 5);
1358 END IF;
1359
1360 --Call to validate the event_id or convert the event reference to event_id.
1361 --If the validation fails then terminate further validation for this record.
1362 If PA_EVENT_PVT.CONV_EVENT_REF_TO_ID
1363 (P_pm_product_code =>P_pm_product_code
1364 ,P_pm_event_reference =>p_event_in_rec.P_pm_event_reference
1365 ,P_event_id =>p_event_in_rec.P_event_id)
1366 ='N'
1367 Then
1368 p_return_status := FND_API.G_RET_STS_ERROR;
1369 RAISE FND_API.G_EXC_ERROR;
1370 End If;
1371
1372 --Deriving the project_id using the event_reference and product_code
1373 Select project_id, record_version_number
1374 Into P_project_id, p_event_in_rec.P_record_version_number
1375 From pa_events
1376 Where event_id = p_event_in_rec.P_event_id;
1377
1378
1379 --Deriving the project_id using the project_number if provided.
1380 Open chk_proj_curs(p_event_in_rec.P_project_number);
1381 Fetch chk_proj_curs Into l_project_id;
1382 Close chk_proj_curs;
1383
1384
1385 --validation to be done only if project number is provided.
1386 If (P_project_id <> nvl(l_project_id,P_project_id))
1387 Then
1388 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1389 THEN
1390 pa_interface_utils_pub.map_new_amg_msg
1391 ( p_old_message_code => 'PA_EV_REF_PROJ_MISS'
1392 ,p_msg_attribute => 'CHANGE'
1393 ,p_resize_flag => 'N'
1394 ,p_msg_context => 'EVENT'
1395 ,p_attribute1 => P_event_in_rec.p_pm_event_reference
1396 ,p_attribute2 => ''
1397 ,p_attribute3 => ''
1398 ,p_attribute4 => ''
1399 ,p_attribute5 => '');
1400 END IF;
1401 p_return_status := FND_API.G_RET_STS_ERROR;
1402 RAISE FND_API.G_EXC_ERROR;
1403 End If;
1404
1405 --Log Message
1406 IF l_debug_mode = 'Y' THEN
1407 pa_debug.write_log (x_module =>'pa.plsql.PA_EVENT_PUB.UPDATE_EVENT.begin'
1408 ,x_msg =>'Defaulting currency from pa_events for the given event'
1409 ,x_log_level =>5);
1410 END IF;
1411
1412 --Select default currency from pa_events for the given event
1413 --And use those for validations if the currency fields are not
1414 --overwritten by the new changes.
1415 Select ev.Project_currency_code
1416 ,ev.ProjFunc_Inv_Rate_date
1417 ,ev.Project_Inv_Exchange_Rate
1418 ,ev.Project_Bill_Amount
1419 ,ev.Project_Rev_Rate_date
1420 ,ev.Project_Rev_Exchange_Rate
1421 ,ev.Project_Revenue_Amount
1422 ,ev.Project_Rate_type
1423 ,ev.Project_Rate_date
1424 ,ev.Project_Exchange_rate
1425 ,ev.ProjFunc_Currency_Code
1426 ,ev.ProjFunc_Inv_Rate_date
1427 ,ev.ProjFunc_Inv_Exchange_Rate
1428 ,ev.ProjFunc_Bill_Amount
1429 ,ev.ProjFunc_Rev_Rate_date
1430 ,ev.Projfunc_Rev_Exchange_Rate
1431 ,ev.ProjFunc_Revenue_Amount
1432 ,ev.ProjFunc_Rate_type
1433 ,ev.ProjFunc_Rate_date
1434 ,ev.ProjFunc_Exchange_rate
1435 ,ev.Invproc_Currency_Code
1436 ,ev.Invproc_Rate_Type
1437 ,ev.Invproc_Rate_date
1438 ,ev.Invproc_Exchange_Rate
1439 ,ev.Revproc_Currency_Code
1440 ,ev.Revproc_Rate_Type
1441 ,ev.Revproc_Rate_date
1442 ,ev.revproc_exchange_rate
1443 ,ev.Inv_Gen_Rejection_Code
1444 ,ev.Funding_Rate_type
1445 ,ev.Funding_Rate_date
1446 ,ev.Funding_Exchange_rate
1447 ,ev.Bill_trans_currency_code
1448 Into l_project_currency_code
1449 ,l_ProjFunc_Inv_Rate_date
1450 ,l_Project_Inv_Exchange_Rate
1451 ,l_Project_Bill_Amount
1452 ,l_Project_Rev_Rate_date
1453 ,l_Project_Rev_Exchange_Rate
1454 ,l_Project_Revenue_Amount
1455 ,l_project_bil_rate_type
1456 ,l_project_bil_rate_date
1457 ,l_project_bil_exchange_rate
1458 ,l_ProjFunc_Currency_Code
1459 ,l_ProjFunc_Inv_Rate_date
1460 ,l_ProjFunc_Inv_Exchange_Rate
1461 ,l_ProjFunc_Bill_Amount
1462 ,l_ProjFunc_Rev_Rate_date
1463 ,l_Projfunc_Rev_Exchange_Rate
1464 ,l_ProjFunc_Revenue_Amount
1465 ,l_projfunc_bil_rate_type
1466 ,l_projfunc_bil_rate_date
1467 ,l_projfunc_bil_exchange_rate
1468 ,l_Invproc_Currency_Code
1469 ,l_Invproc_Rate_Type
1470 ,l_Invproc_Rate_date
1471 ,l_Invproc_Exchange_Rate
1472 ,l_Revproc_Currency_Code
1473 ,l_Revproc_Rate_Type
1474 ,l_Revproc_Rate_date
1475 ,l_revproc_exchange_rate
1476 ,l_Inv_Gen_Rejection_Code
1477 ,l_funding_rate_type
1478 ,l_funding_rate_date
1479 ,l_funding_exchange_rate
1480 ,l_bill_trans_curr_code
1481 From pa_events ev
1482 Where event_id=p_event_in_rec.p_event_id;
1483
1484 Select multi_currency_billing_flag
1485 ,funding_rate_date_code
1486 ,project_bil_rate_date_code
1487 ,projfunc_bil_rate_date_code
1488 Into l_multi_currency_billing_flag
1489 ,l_funding_rate_date_code
1490 ,l_project_bil_rate_date_code
1491 ,l_projfunc_bil_rate_date_code
1492 From pa_projects_all
1493 Where project_id=P_project_id;
1494
1495
1496 --Log Message
1497 IF l_debug_mode = 'Y' THEN
1498 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.UPDATE_EVENT.begin'
1499 ,x_msg => 'Calling check_update_event_ok'
1500 ,x_log_level => 5);
1501 END IF;
1502
1503 -- Calls check_update_event_ok function
1504 If PA_EVENT_PVT.check_update_event_ok
1505 (P_pm_product_code =>p_pm_product_code
1506 ,P_event_in_rec =>p_event_in_rec
1507 ,P_project_currency_code =>l_project_currency_code
1508 ,P_proj_func_currency_code =>l_projfunc_currency_code
1509 ,P_project_bil_rate_date_code =>l_project_bil_rate_date_code
1510 ,P_project_rate_type =>l_project_bil_rate_type
1511 ,p_project_bil_rate_date =>l_project_bil_rate_date
1512 ,p_projfunc_bil_rate_date_code =>l_projfunc_bil_rate_date_code
1513 ,P_projfunc_rate_type =>l_projfunc_bil_rate_type
1514 ,p_projfunc_bil_rate_date =>l_projfunc_bil_rate_date
1515 ,P_funding_rate_type =>l_funding_rate_type
1516 ,P_multi_currency_billing_flag =>l_multi_currency_billing_flag
1517 ,P_event_type_classification =>l_event_type_classification
1518 ,P_event_processed =>l_event_processed /* Added for bug Bug 7110782 */
1519 ,p_project_id =>p_project_id
1520 ,p_projfunc_bil_exchange_rate =>l_projfunc_bil_exchange_rate -- Added for bug 3013137
1521 ,p_funding_bill_rate_date_code =>l_funding_rate_date_code --Added for bug 3053190
1522 ,x_task_id =>p_task_id
1523 ,x_organization_id =>p_organization_id
1524 ,x_inv_org_id =>p_inv_org_id
1525 ,x_agreement_id =>P_agreement_id -- Federal Uptake
1526 ) = 'N'
1527 Then
1528 p_return_status := FND_API.G_RET_STS_ERROR;
1529 RAISE FND_API.G_EXC_ERROR;
1530
1531 End If;
1532
1533 --Log Message
1534 IF l_debug_mode = 'Y' THEN
1535 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.UPDATE_EVENT.begin'
1536 ,x_msg => 'Beginning Validate Flexfields'
1537 ,x_log_level => 5);
1538 END IF;
1539
1540 --Validating Flexfields
1541 IF (p_event_in_rec.p_desc_flex_name IS NOT NULL)
1542 AND (p_event_in_rec.p_desc_flex_name <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
1543 THEN
1544 PA_EVENT_PVT.VALIDATE_FLEXFIELD
1545 ( p_desc_flex_name => p_event_in_rec.p_desc_flex_name
1546 ,p_attribute_category => p_event_in_rec.p_attribute_category
1547 ,p_attribute1 => p_event_in_rec.p_attribute1
1548 ,p_attribute2 => p_event_in_rec.p_attribute2
1549 ,p_attribute3 => p_event_in_rec.p_attribute3
1550 ,p_attribute4 => p_event_in_rec.p_attribute4
1551 ,p_attribute5 => p_event_in_rec.p_attribute5
1552 ,p_attribute6 => p_event_in_rec.p_attribute6
1553 ,p_attribute7 => p_event_in_rec.p_attribute7
1554 ,p_attribute8 => p_event_in_rec.p_attribute8
1555 ,p_attribute9 => p_event_in_rec.p_attribute9
1556 ,p_attribute10 => p_event_in_rec.p_attribute10
1557 ,p_return_msg => p_return_msg
1558 ,p_valid_status => p_validate_status);
1559 IF p_validate_status = 'N'
1560 THEN
1561 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1562 THEN
1563 pa_interface_utils_pub.map_new_amg_msg
1564 ( p_old_message_code => 'PA_INVALID_FF_VALUES'
1565 ,p_msg_attribute => 'CHANGE'
1566 ,p_resize_flag => 'N'
1567 ,p_msg_context => 'EVENT'
1568 ,p_attribute1 => p_event_in_rec.p_pm_event_reference
1569 ,p_attribute2 => ''
1570 ,p_attribute3 => ''
1571 ,p_attribute4 => ''
1572 ,p_attribute5 => '');
1573 END IF;
1574 p_return_status := FND_API.G_RET_STS_ERROR;
1575 RAISE FND_API.G_EXC_ERROR;
1576 END IF;
1577 --Defaulting attribute categories.
1578 Select decode(p_event_in_rec.P_attribute_category
1579 ,NULL,attribute_category
1580 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1581 ,p_event_in_rec.P_attribute_category)
1582 ,decode(p_event_in_rec.P_attribute1
1583 ,NULL,attribute1
1584 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1585 ,p_event_in_rec.P_attribute1)
1586 ,decode(p_event_in_rec.P_attribute2
1587 ,NULL,attribute2
1588 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1589 ,p_event_in_rec.P_attribute2)
1590 ,decode(p_event_in_rec.P_attribute3
1591 ,NULL,attribute3
1592 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1593 ,p_event_in_rec.P_attribute3)
1594 ,decode(p_event_in_rec.P_attribute4
1595 ,NULL,attribute4
1596 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1597 ,p_event_in_rec.P_attribute4 )
1598 ,decode(p_event_in_rec.P_attribute5
1599 ,NULL,attribute5
1600 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1601 ,p_event_in_rec.P_attribute5 )
1602 ,decode(p_event_in_rec.P_attribute6
1603 ,NULL,attribute6
1604 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1605 ,p_event_in_rec.P_attribute6 )
1606 ,decode(p_event_in_rec.P_attribute7
1607 ,NULL,attribute7
1608 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1609 ,p_event_in_rec.P_attribute7 )
1610 ,decode(p_event_in_rec.P_attribute8
1611 ,NULL,attribute8
1612 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1613 ,p_event_in_rec.P_attribute8 )
1614 ,decode(p_event_in_rec.P_attribute9
1615 ,NULL,attribute9
1616 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1617 ,p_event_in_rec.P_attribute9 )
1618 ,decode(p_event_in_rec.P_attribute10
1619 ,NULL,attribute10
1620 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1621 ,p_event_in_rec.P_attribute10 )
1622 Into p_event_in_rec.P_attribute_category
1623 ,p_event_in_rec.P_attribute1
1624 ,p_event_in_rec.P_attribute2
1625 ,p_event_in_rec.P_attribute3
1626 ,p_event_in_rec.P_attribute4
1627 ,p_event_in_rec.P_attribute5
1628 ,p_event_in_rec.P_attribute6
1629 ,p_event_in_rec.P_attribute7
1630 ,p_event_in_rec.P_attribute8
1631 ,p_event_in_rec.P_attribute9
1632 ,p_event_in_rec.P_attribute10
1633 From pa_events
1634 Where event_id=p_event_in_rec.P_event_id;
1635
1636 Else
1637 p_event_in_rec.P_desc_flex_name :=NULL;
1638 p_event_in_rec.P_attribute_category :=NULL;
1639 p_event_in_rec.P_attribute1 :=NULL;
1640 p_event_in_rec.P_attribute2 :=NULL;
1641 p_event_in_rec.P_attribute3 :=NULL;
1642 p_event_in_rec.P_attribute4 :=NULL;
1643 p_event_in_rec.P_attribute5 :=NULL;
1644 p_event_in_rec.P_attribute6 :=NULL;
1645 p_event_in_rec.P_attribute7 :=NULL;
1646 p_event_in_rec.P_attribute8 :=NULL;
1647 p_event_in_rec.P_attribute9 :=NULL;
1648 p_event_in_rec.P_attribute10 :=NULL;
1649 END IF;
1650
1651 --Log Message
1652 IF l_debug_mode = 'Y' THEN
1653 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.UPDATE_EVENT.begin'
1654 ,x_msg => 'Beginning defaulting mcb parameters'
1655 ,x_log_level => 5);
1656 END IF;
1657
1658
1659 --Before defaulting the mcb related paramaters validating
1660 --if the User has overwritten any of the fields.
1661 If (l_multi_currency_billing_flag = 'Y')
1662 Then
1663 --validating and defaulting bill transaction currency code
1664 If (p_event_in_rec.P_bill_trans_currency_code Is NULL
1665 OR p_event_in_rec.P_bill_trans_currency_code=PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
1666 Then
1667 p_event_in_rec.P_bill_trans_currency_code:=l_bill_trans_curr_code; /* 3013117 */
1668 End If;
1669
1670 --funding rate,date and type validations
1671 If(p_event_in_rec.P_funding_rate_type Is NULL
1672 OR p_event_in_rec.P_funding_rate_type = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
1673 Then
1674 p_event_in_rec.P_funding_rate_type:=l_funding_rate_type;
1675 End If;
1676
1677 If (l_funding_rate_date_code = 'FIXED_DATE')
1678 Then
1679 If(p_event_in_rec.P_funding_rate_date Is NULL
1680 OR p_event_in_rec.P_funding_rate_date = PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
1681 Then
1682 p_event_in_rec.P_funding_rate_date:=l_funding_rate_date;
1683 End If;
1684 Else
1685 --Commented for bug3013236
1686 --p_event_in_rec.P_funding_rate_date:=l_funding_rate_date;
1687 --Added for bug3013236
1688 If(p_event_in_rec.P_funding_rate_date Is NULL
1689 OR p_event_in_rec.P_funding_rate_date = PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
1690 Then
1691 p_event_in_rec.P_funding_rate_date:=l_funding_rate_date;
1692 End If;
1693 --till here for Bug3013236
1694 End If;
1695
1696 --If fund rate type is User then only take the exchange rate from User
1697 --else default it from the project level.
1698 /* The following part of the code is commented out and rewritten at the bottom. for bug 3045302
1699
1700 If (p_event_in_rec.P_funding_rate_type <>l_funding_rate_type)
1701 Then
1702 If ( p_event_in_rec.P_funding_rate_type <> 'User' )
1703 Then
1704 p_event_in_rec.P_funding_exchange_rate :=NULL;
1705 Else
1706 If(p_event_in_rec.P_funding_exchange_rate Is NULL
1707 OR p_event_in_rec.P_funding_exchange_rate =PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
1708 Then
1709 p_event_in_rec.P_funding_exchange_rate:=l_funding_exchange_rate;
1710 End If;
1711 p_event_in_rec.P_funding_rate_date := null; --Added for Bug3010927
1712 End If;
1713 Else
1714 If(p_event_in_rec.P_funding_rate_type = 'User'
1715 AND (p_event_in_rec.P_funding_exchange_rate Is NULL
1716 OR p_event_in_rec.P_funding_exchange_rate =PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM))
1717 Then
1718 p_event_in_rec.P_funding_exchange_rate :=l_funding_exchange_rate;
1719 --Added for Bug3013256
1720 Else
1721 IF ( p_event_in_rec.P_funding_rate_type <> 'User' )
1722 Then
1723 p_event_in_rec.P_funding_exchange_rate := null;
1724 End If;
1725 --till here for Bug3013256
1726 End If;
1727 p_event_in_rec.p_funding_rate_date := null; --Added for Bug3010927
1728 End If;
1729 End of commenting for Bug 3045302 */
1730 /*This is the code added for bug 3045302.*/
1731 If ( p_event_in_rec.P_funding_rate_type <> 'User' )
1732 Then
1733 p_event_in_rec.P_funding_exchange_rate :=NULL;
1734 Else
1735 If (p_event_in_rec.P_funding_exchange_rate Is NULL
1736 OR p_event_in_rec.P_funding_exchange_rate =PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
1737 Then
1738 p_event_in_rec.P_funding_exchange_rate:=l_funding_exchange_rate;
1739 End If;
1740 p_event_in_rec.P_funding_rate_date := null;
1741 End If;
1742 /*End of code added for bug 3045302 */
1743 /*The code for validation of project currency attributes has been moved
1744 below the code for validation of project functional attributes
1745 for bug 3045302 */
1746
1747 --project functional rate,date,type validaions
1748 If (p_event_in_rec.P_bill_trans_currency_code = l_projfunc_currency_code )
1749 Then
1750 p_event_in_rec.P_projfunc_rate_type :=NULL;
1751 p_event_in_rec.P_projfunc_rate_date :=NULL;
1752 p_event_in_rec.P_projfunc_exchange_rate :=NULL;
1753 Else ---validtions if project functional currency and bill trans currency are different.
1754 If(p_event_in_rec.P_projfunc_rate_type Is NULL
1755 OR p_event_in_rec.P_projfunc_rate_type=PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
1756 Then
1757 p_event_in_rec.P_projfunc_rate_type:=l_projfunc_bil_rate_type;
1758 End If;
1759
1760 If (l_projfunc_bil_rate_date_code= 'FIXED_DATE')
1761 Then
1762 If(p_event_in_rec.P_projfunc_rate_date Is NULL
1763 OR p_event_in_rec.P_projfunc_rate_date=PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
1764 Then
1765 p_event_in_rec.P_projfunc_rate_date:=l_projfunc_bil_rate_date;
1766 End If;
1767 Else
1768 --Commented for Bug3013236
1769 -- p_event_in_rec.P_projfunc_rate_date:=l_projfunc_bil_rate_date;
1770 --Added for Bug3013236
1771 If(p_event_in_rec.P_projfunc_rate_date Is NULL
1772 OR p_event_in_rec.P_projfunc_rate_date=PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
1773 Then
1774 p_event_in_rec.P_projfunc_rate_date:=l_projfunc_bil_rate_date;
1775 End If;
1776 --till here for Bug3013236
1777 End If;
1778
1779 If(p_event_in_rec.P_projfunc_rate_type <> l_projfunc_bil_rate_type)
1780 Then
1781 If ( p_event_in_rec.P_projfunc_rate_type <> 'User' )
1782 Then
1783 p_event_in_rec.P_projfunc_exchange_rate:=NULL;
1784 Else
1785 If (p_event_in_rec.P_projfunc_exchange_rate Is NULL
1786 OR p_event_in_rec.P_projfunc_exchange_rate=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
1787 Then
1788 p_event_in_rec.P_projfunc_exchange_rate:=l_projfunc_bil_exchange_rate;
1789 End If;
1790 p_event_in_rec.P_projfunc_rate_date := null; --Added for Bug3010927
1791 End If;
1792 Else
1793 If(p_event_in_rec.P_projfunc_rate_type = 'User')
1794 Then
1795 If (p_event_in_rec.P_projfunc_exchange_rate Is NULL
1796 OR p_event_in_rec.P_projfunc_exchange_rate=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
1797 Then
1798 p_event_in_rec.P_projfunc_exchange_rate:=l_projfunc_bil_exchange_rate;
1799 End If;
1800 p_event_in_rec.P_projfunc_rate_date := null; --Added for Bug3010927
1801 Else
1802 --Commented for Bug3013256
1803 --p_event_in_rec.P_projfunc_exchange_rate:=l_projfunc_bil_exchange_rate;
1804 p_event_in_rec.P_projfunc_exchange_rate:=null; --Added for Bug3013256
1805 End If;
1806 End If;
1807 End If;
1808 --project rate,date and type validations
1809 --For bug 3045302.Changed the logic to default the project currency attributes
1810 --from the project functional currency if project currency is same as project functional currency.
1811 If (p_event_in_rec.P_bill_trans_currency_code = l_project_currency_code)
1812 Then
1813 p_event_in_rec.P_project_rate_type :=NULL;
1814 p_event_in_rec.P_project_rate_date :=NULL;
1815 p_event_in_rec.P_project_exchange_rate :=NULL;
1816
1817 Elsif (l_project_currency_code = l_projfunc_currency_code )
1818 Then
1819 p_event_in_rec.P_project_rate_type := p_event_in_rec.P_projfunc_rate_type;
1820 p_event_in_rec.P_project_rate_date := p_event_in_rec.P_projfunc_rate_date;
1821 p_event_in_rec.P_project_exchange_rate := p_event_in_rec.P_projfunc_exchange_rate;
1822
1823 Else
1824 ---validations if project currency and bill trans currency are different.
1825 If(p_event_in_rec.P_project_rate_type Is NULL
1826 OR p_event_in_rec.P_project_rate_type =PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
1827 Then
1828 p_event_in_rec.P_project_rate_type:=l_project_bil_rate_type;
1829 End If;
1830
1831 If (l_project_bil_rate_date_code = 'FIXED_DATE')
1832 Then
1833 If(p_event_in_rec.P_project_rate_date Is NULL
1834 OR p_event_in_rec.P_project_rate_date =PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
1835 Then
1836 p_event_in_rec.P_project_rate_date:=l_project_bil_rate_date;
1837 End If;
1838 Else
1839 --Commented for Bug3013236
1840 --p_event_in_rec.P_project_rate_date:=l_project_bil_rate_date;
1841 --Added for Bug3013236
1842 If(p_event_in_rec.P_project_rate_date Is NULL
1843 OR p_event_in_rec.P_project_rate_date =PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
1844 Then
1845 p_event_in_rec.P_project_rate_date:=l_project_bil_rate_date;
1846 End If;
1847 --till here for Bug3013236
1848 End If;
1849
1850 If (p_event_in_rec.P_project_rate_type<>l_project_bil_rate_type)
1851 Then
1852 If ( p_event_in_rec.P_project_rate_type <> 'User' )
1853 Then
1854 p_event_in_rec.P_project_exchange_rate:=NULL;
1855 Else
1856 If(p_event_in_rec.P_project_exchange_rate Is NULL
1857 OR p_event_in_rec.P_project_exchange_rate=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
1858 Then
1859 p_event_in_rec.P_project_exchange_rate:=l_project_bil_exchange_rate;
1860 End If;
1861 p_event_in_rec.P_project_rate_date := null; --Added for Bug3010927
1862 End If;
1863 Else
1864 If(p_event_in_rec.P_project_rate_type= 'User')
1865 Then
1866 If(p_event_in_rec.P_project_exchange_rate Is NULL
1867 OR p_event_in_rec.P_project_exchange_rate=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
1868 Then
1869 p_event_in_rec.P_project_exchange_rate:=l_project_bil_exchange_rate;
1870 End If;
1871 p_event_in_rec.P_project_rate_date := null; --Added for Bug3010927
1872 Else
1873 --Commented for Bug3013256
1874 --p_event_in_rec.P_project_exchange_rate:=l_project_bil_exchange_rate;
1875 p_event_in_rec.P_project_exchange_rate:=null; --Added for Bug3013256
1876 End If;
1877 End If;
1878 End If;
1879
1880 Else
1881 --Defaulting the mcb columns when mcb is not enabled
1882 p_event_in_rec.P_project_rate_type:=l_project_bil_rate_type;
1883 p_event_in_rec.P_project_rate_date:=l_project_bil_rate_date;
1884 p_event_in_rec.P_project_exchange_rate:=l_project_bil_exchange_rate;
1885
1886 p_event_in_rec.P_projfunc_rate_type:=l_projfunc_bil_rate_type;
1887 p_event_in_rec.P_projfunc_rate_date:=l_projfunc_bil_rate_date;
1888 p_event_in_rec.P_projfunc_exchange_rate:=l_projfunc_bil_exchange_rate;
1889
1890 p_event_in_rec.P_funding_rate_type:=l_funding_rate_type;
1891 p_event_in_rec.P_funding_rate_date:=l_funding_rate_date;
1892 p_event_in_rec.P_funding_exchange_rate:=l_funding_exchange_rate;
1893
1894 p_event_in_rec.P_bill_trans_currency_code:=l_projfunc_currency_code;
1895 End If;
1896
1897
1898 --Log Message
1899 IF l_debug_mode = 'Y' THEN
1900 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.UPDATE_EVENT.begin'
1901 ,x_msg => 'Beginning defaulting parameters before updating table'
1902 ,x_log_level => 5);
1903 END IF;
1904
1905
1906 -- Validating the event num.
1907 --If task number has been changed then generate new event_num
1908 --before inserting the record into pa_events.
1909 If (p_event_in_rec.P_event_number Is NULL
1910 OR p_event_in_rec.P_event_number = PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
1911 Then
1912 SELECT task_id
1913 INTO l_task_id
1914 FROM pa_events e
1915 Where event_id=p_event_in_rec.P_event_id;
1916
1917 --Validating if the existing task_id matches with the updated task_id
1918 --In case of any mismatch new event_number is generated before updating the record.
1919 If p_event_in_rec.p_task_number is NOT NULL
1920 Then
1921 If (nvl(P_task_id,-1) <> nvl(l_task_id,-1))
1922 Then
1923 --generating event number for project level events
1924 If (P_task_id Is NULL )
1925 Then
1926 SELECT NVL(max(event_num),0)+1
1927 INTO P_event_in_rec.p_event_number
1928 FROM pa_events e
1929 WHERE e.project_id = P_project_id
1930 AND e.task_id IS NULL;
1931 Else
1932 --generating event number for task level events
1933 SELECT NVL(max(event_num),0)+1
1934 INTO P_event_in_rec.p_event_number
1935 FROM pa_events e
1936 WHERE e.project_id =P_project_id
1937 AND e.task_id = P_task_id;
1938 End If;
1939 --If task number is the same defaulting the event number.
1940 Else
1941 SELECT event_num
1942 INTO P_event_in_rec.p_event_number
1943 FROM pa_events e
1944 Where event_id=p_event_in_rec.P_event_id;
1945 End If;
1946 Else
1947 SELECT event_num
1948 INTO P_event_in_rec.p_event_number
1949 FROM pa_events e
1950 Where event_id=p_event_in_rec.P_event_id;
1951 End If; /* If p_event_in_rec.p_task_number is NOT NULL */
1952 End If; /* If event_num is null , '^' */
1953
1954 --Populating the rowid
1955 Select Rowid
1956 Into rowid
1957 From pa_events
1958 Where event_id=p_event_in_rec.p_event_id;
1959
1960 --Defaulting bill_hold_flag,adjusting_revenue_flag.
1961 Select decode(p_event_in_rec.P_bill_hold_flag
1962 ,NULL,BILL_HOLD_FLAG
1963 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1964 ,p_event_in_rec.P_bill_hold_flag)
1965 ,decode(p_event_in_rec.P_adjusting_revenue_flag
1966 ,NULL,ADJUSTING_REVENUE_FLAG
1967 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1968 ,p_event_in_rec.P_adjusting_revenue_flag)
1969 --Defaulting inventory org id and item ids
1970 ,decode(p_event_in_rec.P_inventory_org_name
1971 ,NULL,inventory_org_id
1972 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1973 ,p_inv_org_id)
1974 ,decode(p_event_in_rec.P_inventory_item_id
1975 ,NULL,inventory_item_id
1976 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,NULL
1977 ,p_event_in_rec.P_inventory_item_id)
1978 --Defaulting organization id.
1979 ,decode(p_event_in_rec.P_organization_name
1980 ,NULL,organization_id
1981 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,organization_id
1982 ,p_organization_id)
1983 --Defaulting OKE related fields.
1984 ,decode(p_event_in_rec.P_quantity_billed
1985 ,NULL,quantity_billed
1986 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,NULL
1987 ,p_event_in_rec.P_quantity_billed)
1988 ,decode(p_event_in_rec.P_uom_code
1989 ,NULL,uom_code
1990 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1991 ,p_event_in_rec.P_uom_code)
1992 ,decode(p_event_in_rec.P_unit_price
1993 ,NULL,unit_price
1994 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
1995 ,p_event_in_rec.P_unit_price)
1996 --Defaulting references.
1997 ,decode(p_event_in_rec.P_reference1
1998 ,NULL,reference1
1999 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2000 ,p_event_in_rec.P_reference1)
2001 ,decode(p_event_in_rec.P_reference2
2002 ,NULL,reference2
2003 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2004 ,p_event_in_rec.P_reference2)
2005 ,decode(p_event_in_rec.P_reference3
2006 ,NULL,reference3
2007 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2008 ,p_event_in_rec.P_reference3)
2009 ,decode(p_event_in_rec.P_reference4
2010 ,NULL,reference4
2011 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2012 ,p_event_in_rec.P_reference4 )
2013 ,decode(p_event_in_rec.P_reference5
2014 ,NULL,reference5
2015 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2016 ,p_event_in_rec.P_reference5 )
2017 ,decode(p_event_in_rec.P_reference6
2018 ,NULL,reference6
2019 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2020 ,p_event_in_rec.P_reference6 )
2021 ,decode(p_event_in_rec.P_reference7
2022 ,NULL,reference7
2023 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2024 ,p_event_in_rec.P_reference7 )
2025 ,decode(p_event_in_rec.P_reference8
2026 ,NULL,reference8
2027 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2028 ,p_event_in_rec.P_reference8 )
2029 ,decode(p_event_in_rec.P_reference9
2030 ,NULL,reference9
2031 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2032 ,p_event_in_rec.P_reference9 )
2033 ,decode(p_event_in_rec.P_reference10
2034 ,NULL,reference10
2035 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2036 ,p_event_in_rec.P_reference10 )
2037 --defaulting completion date
2038 ,decode(p_event_in_rec.P_completion_date
2039 ,NULL,completion_date
2040 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,SYSDATE
2041 ,p_event_in_rec.P_completion_date)
2042 --Defaulting event type.
2043 ,decode(p_event_in_rec.P_event_type
2044 ,NULL,event_type
2045 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,event_type
2046 ,p_event_in_rec.P_event_type)
2047 --Defaulting bill trans revenue and bill trans bill amounts
2048 ,decode(p_event_in_rec.P_bill_trans_rev_amount
2049 ,NULL,bill_trans_rev_amount
2050 ,p_event_in_rec.P_bill_trans_rev_amount)
2051 ,decode(p_event_in_rec.P_bill_trans_bill_amount
2052 ,NULL,bill_trans_bill_amount
2053 ,p_event_in_rec.P_bill_trans_bill_amount)
2054 --Defaulting task_id.
2055 ,decode(p_event_in_rec.p_task_number
2056 ,NULL,task_id
2057 ,PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,NULL
2058 ,P_task_id)
2059 ,decode(p_event_in_rec.p_description, null, description,
2060 PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR, description, p_event_in_rec.p_description)
2061 ,record_version_number
2062 ,decode(ADJUSTING_REVENUE_FLAG,'N', /* Added for bug 6863270 */
2063 decode(p_event_in_rec.p_bill_trans_bill_amount, PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM, bill_trans_bill_amount,
2064 null, bill_trans_bill_amount, p_event_in_rec.p_bill_trans_bill_amount),0)
2065 ,decode(p_event_in_rec.p_bill_trans_rev_amount, PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM, bill_trans_rev_amount,
2066 null, bill_trans_rev_amount, p_event_in_rec.p_bill_trans_rev_amount)
2067 Into p_event_in_rec.P_bill_hold_flag
2068 ,p_event_in_rec.P_adjusting_revenue_flag
2069 ,p_inv_org_id
2070 ,p_event_in_rec.P_inventory_item_id
2071 ,P_organization_id
2072 ,p_event_in_rec.P_quantity_billed
2073 ,p_event_in_rec.P_uom_code
2074 ,p_event_in_rec.P_unit_price
2075 ,p_event_in_rec.P_reference1
2076 ,p_event_in_rec.P_reference2
2077 ,p_event_in_rec.P_reference3
2078 ,p_event_in_rec.P_reference4
2079 ,p_event_in_rec.P_reference5
2080 ,p_event_in_rec.P_reference6
2081 ,p_event_in_rec.P_reference7
2082 ,p_event_in_rec.P_reference8
2083 ,p_event_in_rec.P_reference9
2084 ,p_event_in_rec.P_reference10
2085 ,p_event_in_rec.P_completion_date
2086 ,p_event_in_rec.P_event_type
2087 ,p_event_in_rec.P_bill_trans_rev_amount
2088 ,p_event_in_rec.P_bill_trans_bill_amount
2089 ,P_task_id
2090 ,p_event_in_rec.P_description
2091 ,l_record_version_number
2092 ,l_bill_trans_bill_amt /* Added for bug 4093948 */
2093 ,l_bill_trans_rev_amt /* Added for bug 4093948 */
2094
2095 From pa_events
2096 Where event_id=p_event_in_rec.P_event_id;
2097
2098 --Unless the user updates with a valid description the
2099 --description gets defaulted with the event type.
2100 If (p_event_in_rec.P_description Is NULL
2101 OR p_event_in_rec.P_description = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
2102 Then
2103 p_event_in_rec.P_description := p_event_in_rec.P_event_type;
2104 End If;
2105
2106 --If event type is of revenue type(Write-Off), setting bill trans bill amt = 0.
2107 If l_event_type_classification In('WRITE OFF')
2108 Then
2109 p_event_in_rec.P_bill_trans_bill_amount:=0;
2110 End If;
2111
2112 --If event type is of invoice type, set bill trans rev amt = 0
2113 If l_event_type_classification In('DEFERRED REVENUE','INVOICE REDUCTION','SCHEDULED PAYMENTS')
2114 Then
2115 p_event_in_rec.P_bill_trans_rev_amount:=0;
2116 End If;
2117
2118 --If event type = 'Write-On' then bill amt = rev amt.
2119 If (l_event_type_classification = 'WRITE ON')
2120 Then
2121 p_event_in_rec.P_bill_trans_bill_amount := p_event_in_rec.P_bill_trans_rev_amount;
2122 End If;
2123
2124 --Log Message
2125 IF l_debug_mode = 'Y' THEN
2126 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.UPDATE_EVENT.begin'
2127 ,x_msg => 'Begin Updating event. '
2128 ,x_log_level => 5);
2129 END IF;
2130
2131 --Get the conversion_type of the funding_rate_type, projfunc_rate_type, project_rate_type - for Bug3013236
2132 IF p_event_in_rec.p_funding_rate_type is not null
2133 THEN
2134 SELECT conversion_type
2135 INTO l_funding_rate_type
2136 FROM pa_conversion_types_v
2137 WHERE user_conversion_type = p_event_in_rec.p_funding_rate_type
2138 or conversion_type = p_event_in_rec.p_funding_rate_type;
2139 p_event_in_rec.p_funding_rate_type := l_funding_rate_type;
2140 END IF;
2141
2142 IF p_event_in_rec.p_projfunc_rate_type is not null
2143 THEN
2144 SELECT conversion_type
2145 INTO l_projfunc_bil_rate_type
2146 FROM pa_conversion_types_v
2147 WHERE user_conversion_type = p_event_in_rec.p_projfunc_rate_type
2148 or conversion_type = p_event_in_rec.p_projfunc_rate_type;
2149 p_event_in_rec.p_projfunc_rate_type := l_projfunc_bil_rate_type;
2150 END IF;
2151
2152 IF p_event_in_rec.p_project_rate_type is not null
2153 THEN
2154 SELECT conversion_type
2155 INTO l_project_bil_rate_type
2156 FROM pa_conversion_types_v
2157 WHERE user_conversion_type = p_event_in_rec.p_project_rate_type
2158 or conversion_type = p_event_in_rec.p_project_rate_type;
2159 p_event_in_rec.p_project_rate_type := l_project_bil_rate_type;
2160 END IF;
2161
2162 --till here for Bug3013236
2163
2164 -- Adding code to populate invoice and revenue attributes
2165
2166 IF l_invproc_currency_code = l_project_currency_code THEN
2167 l_invproc_currency_code := l_project_currency_code;
2168 l_invproc_rate_type := p_event_in_rec.P_project_rate_type;
2169 l_invproc_rate_date := p_event_in_rec.P_project_rate_date;
2170 l_invproc_exchange_rate := p_event_in_rec.P_project_exchange_rate;
2171 ELSIF l_invproc_currency_code = l_projfunc_currency_code THEN
2172 l_invproc_currency_code := l_projfunc_currency_code;
2173 l_invproc_rate_type := p_event_in_rec.P_projfunc_rate_type;
2174 l_invproc_rate_date := p_event_in_rec.P_projfunc_rate_date;
2175 l_invproc_exchange_rate := p_event_in_rec.P_projfunc_exchange_rate;
2176 ELSE
2177 l_invproc_currency_code := '';
2178 l_invproc_rate_type := p_event_in_rec.P_funding_rate_type;
2179 l_invproc_rate_date := p_event_in_rec.P_funding_rate_date;
2180 l_invproc_exchange_rate := p_event_in_rec.P_funding_exchange_rate;
2181
2182 END IF;
2183
2184 IF l_revproc_currency_code = l_projfunc_currency_code THEN
2185 l_revproc_currency_code := l_projfunc_currency_code;
2186 l_revproc_rate_type := p_event_in_rec.P_projfunc_rate_type;
2187 l_revproc_rate_date := p_event_in_rec.P_projfunc_rate_date;
2188 l_revproc_exchange_rate := p_event_in_rec.P_projfunc_exchange_rate;
2189 END IF;
2190
2191 -- Till here
2192
2193 IF nvl(l_record_version_number, 0) <> nvl(p_event_in_rec.P_record_version_number, 0)
2194 Then
2195 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2196 THEN
2197 pa_interface_utils_pub.map_new_amg_msg
2198 ( p_old_message_code => 'PA_RECORD_CHANGED'
2199 ,p_msg_attribute => 'CHANGE'
2200 ,p_resize_flag => 'N'
2201 ,p_msg_context => 'EVENT'
2202 ,p_attribute1 => P_event_in_rec.p_pm_event_reference
2203 ,p_attribute2 => ''
2204 ,p_attribute3 => ''
2205 ,p_attribute4 => ''
2206 ,p_attribute5 => '');
2207 END IF;
2208 p_return_status := FND_API.G_RET_STS_ERROR;
2209 RAISE FND_API.G_EXC_ERROR;
2210 End If;
2211
2212 /* Code added for Bug 7110782 - starts */
2213
2214 /* l_event_processed = 'I' means that event has been billed but not revenue distributed.
2215 In this case we are allowing to change only the bill_trans_rev_amount value */
2216 IF l_event_processed = 'I' THEN
2217
2218 SELECT ev.Task_Id
2219 ,ev.Event_Num
2220 ,ev.Event_Type
2221 ,ev.Bill_Amount
2222 ,ev.Revenue_Amount
2223 ,ev.Revenue_Distributed_Flag
2224 ,ev.Bill_Hold_Flag
2225 ,ev.Completion_date
2226 ,Rev_Dist_Rejection_Code
2227 ,ev.Attribute_Category
2228 ,ev.Attribute1
2229 ,ev.Attribute2
2230 ,ev.Attribute3
2231 ,ev.Attribute4
2232 ,ev.Attribute5
2233 ,ev.Attribute6
2234 ,ev.Attribute7
2235 ,ev.Attribute8
2236 ,ev.Attribute9
2237 ,ev.Attribute10
2238 ,ev.Project_Id
2239 ,ev.Organization_Id
2240 ,ev.Billing_Assignment_Id
2241 ,ev.Event_Num_Reversed
2242 ,ev.Calling_Place
2243 ,ev.Calling_Process
2244 ,ev.Bill_Trans_Currency_Code
2245 ,ev.Bill_Trans_Bill_Amount
2246 ,ev.Project_Currency_Code
2247 ,ev.Project_Rate_Type
2248 ,ev.Project_Rate_Date
2249 ,ev.Project_Exchange_Rate
2250 ,ev.Project_Inv_Rate_Date
2251 ,ev.Project_Inv_Exchange_Rate
2252 ,ev.Project_Bill_Amount
2253 ,ev.Project_Rev_Rate_date
2254 ,ev.Project_Rev_Exchange_Rate
2255 ,ev.Project_Revenue_Amount
2256 ,ev.ProjFunc_Currency_Code
2257 ,ev.ProjFunc_Rate_Type
2258 ,ev.ProjFunc_Rate_date
2259 ,ev.ProjFunc_Exchange_Rate
2260 ,ev.ProjFunc_Inv_Rate_date
2261 ,ev.ProjFunc_Inv_Exchange_Rate
2262 ,ev.ProjFunc_Bill_Amount
2263 ,ev.ProjFunc_Rev_Rate_date
2264 ,ev.Projfunc_Rev_Exchange_Rate
2265 ,ev.ProjFunc_Revenue_Amount
2266 ,ev.Funding_Rate_Type
2267 ,ev.Funding_Rate_date
2268 ,ev.Funding_Exchange_Rate
2269 ,ev.Invproc_Currency_Code
2270 ,ev.Invproc_Rate_Type
2271 ,ev.Invproc_Rate_date
2272 ,ev.Invproc_Exchange_Rate
2273 ,ev.Revproc_Currency_Code
2274 ,ev.Revproc_Rate_Type
2275 ,ev.Revproc_Rate_date
2276 ,ev.Revproc_Exchange_Rate
2277 ,ev.Inv_Gen_Rejection_Code
2278 ,ev.Adjusting_Revenue_Flag
2279 ,ev.inventory_org_id
2280 ,ev.inventory_item_id
2281 ,ev.quantity_billed
2282 ,ev.uom_code
2283 ,ev.unit_price
2284 ,ev.reference1
2285 ,ev.reference2
2286 ,ev.reference3
2287 ,ev.reference4
2288 ,ev.reference5
2289 ,ev.reference6
2290 ,ev.reference7
2291 ,ev.reference8
2292 ,ev.reference9
2293 ,ev.reference10
2294 ,ev.agreement_id
2295 INTO p_task_id
2296 ,p_event_in_rec.p_event_number
2297 ,p_event_in_rec.P_event_type
2298 ,l_bill_amount
2299 ,l_revenue_amount
2300 ,l_revenue_distributed_flag
2301 ,p_event_in_rec.P_bill_hold_flag
2302 ,p_event_in_rec.P_completion_date
2303 ,l_rev_dist_rejection_code
2304 ,p_event_in_rec.P_attribute_category
2305 ,p_event_in_rec.P_attribute1
2306 ,p_event_in_rec.P_attribute2
2307 ,p_event_in_rec.P_attribute3
2308 ,p_event_in_rec.P_attribute4
2309 ,p_event_in_rec.P_attribute5
2310 ,p_event_in_rec.P_attribute6
2311 ,p_event_in_rec.P_attribute7
2312 ,p_event_in_rec.P_attribute8
2313 ,p_event_in_rec.P_attribute9
2314 ,p_event_in_rec.P_attribute10
2315 ,P_project_id
2316 ,P_Organization_Id
2317 ,l_Billing_Assignment_Id
2318 ,l_Event_Num_Reversed
2319 ,l_Calling_Place
2320 ,l_Calling_Process
2321 ,p_event_in_rec.P_bill_trans_currency_code
2322 ,l_Bill_Trans_Bill_Amt
2323 ,l_project_currency_code
2324 ,p_event_in_rec.P_project_rate_type
2325 ,p_event_in_rec.P_project_rate_date
2326 ,p_event_in_rec.P_project_exchange_rate
2327 ,l_ProjFunc_Inv_Rate_date
2328 ,l_Project_Inv_Exchange_Rate
2329 ,l_Project_Bill_Amount
2330 ,l_Project_Rev_Rate_date
2331 ,l_Project_Rev_Exchange_Rate
2332 ,l_Project_Revenue_Amount
2333 ,l_ProjFunc_Currency_Code
2334 ,p_event_in_rec.P_projfunc_rate_type
2335 ,p_event_in_rec.P_projfunc_rate_date
2336 ,p_event_in_rec.P_projfunc_exchange_rate
2337 ,l_ProjFunc_Inv_Rate_date
2338 ,l_ProjFunc_Inv_Exchange_Rate
2339 ,l_ProjFunc_Bill_Amount
2340 ,l_ProjFunc_Rev_Rate_date
2341 ,l_Projfunc_Rev_Exchange_Rate
2342 ,l_ProjFunc_Revenue_Amount
2343 ,p_event_in_rec.P_funding_rate_type
2344 ,p_event_in_rec.P_funding_rate_date
2345 ,p_event_in_rec.P_funding_exchange_rate
2346 ,l_Invproc_Currency_Code
2347 ,l_Invproc_Rate_Type
2348 ,l_Invproc_Rate_date
2349 ,l_Invproc_Exchange_Rate
2350 ,l_Revproc_Currency_Code
2351 ,l_Revproc_Rate_Type
2352 ,l_Revproc_Rate_date
2353 ,l_revproc_exchange_rate
2354 ,l_Inv_Gen_Rejection_Code
2355 ,p_event_in_rec.P_adjusting_revenue_flag
2356 ,p_inv_org_id
2357 ,p_event_in_rec.P_inventory_item_id
2358 ,p_event_in_rec.P_quantity_billed
2359 ,p_event_in_rec.P_uom_code
2360 ,p_event_in_rec.P_unit_price
2361 ,p_event_in_rec.P_reference1
2362 ,p_event_in_rec.P_reference2
2363 ,p_event_in_rec.P_reference3
2364 ,p_event_in_rec.P_reference4
2365 ,p_event_in_rec.P_reference5
2366 ,p_event_in_rec.P_reference6
2367 ,p_event_in_rec.P_reference7
2368 ,p_event_in_rec.P_reference8
2369 ,p_event_in_rec.P_reference9
2370 ,p_event_in_rec.P_reference10
2371 ,P_agreement_id
2372 FROM pa_events ev
2373 WHERE event_id = p_event_in_rec.p_event_id;
2374
2375 --Added the below call for bug 7513054
2376 l_Bill_Trans_rev_Amt := PA_CURRENCY.ROUND_TRANS_CURRENCY_AMT(l_Bill_Trans_rev_Amt,p_event_in_rec.P_bill_trans_currency_code);
2377
2378
2379 PA_EVENTS_PKG.Update_Row
2380 (X_Rowid =>Rowid
2381 ,X_Event_Id =>p_event_in_rec.P_event_id
2382 ,X_Task_Id =>p_task_id
2383 ,X_Event_Num =>p_event_in_rec.p_event_number
2384 ,X_Last_Update_Date =>SYSDATE
2385 ,X_Last_Updated_By =>G_USER_ID
2386 ,X_Last_Update_Login =>G_LOGIN_ID
2387 ,X_Event_Type =>p_event_in_rec.P_event_type
2388 ,X_Description =>p_event_in_rec.P_description
2389 ,X_Bill_Amount =>0
2390 ,X_Revenue_Amount =>0
2391 ,X_Revenue_Distributed_Flag =>'N'
2392 ,X_Bill_Hold_Flag =>p_event_in_rec.P_bill_hold_flag
2393 ,X_Completion_date =>p_event_in_rec.P_completion_date
2394 ,X_Rev_Dist_Rejection_Code =>NULL
2395 ,X_Attribute_Category =>p_event_in_rec.P_attribute_category
2396 ,X_Attribute1 =>p_event_in_rec.P_attribute1
2397 ,X_Attribute2 =>p_event_in_rec.P_attribute2
2398 ,X_Attribute3 =>p_event_in_rec.P_attribute3
2399 ,X_Attribute4 =>p_event_in_rec.P_attribute4
2400 ,X_Attribute5 =>p_event_in_rec.P_attribute5
2401 ,X_Attribute6 =>p_event_in_rec.P_attribute6
2402 ,X_Attribute7 =>p_event_in_rec.P_attribute7
2403 ,X_Attribute8 =>p_event_in_rec.P_attribute8
2404 ,X_Attribute9 =>p_event_in_rec.P_attribute9
2405 ,X_Attribute10 =>p_event_in_rec.P_attribute10
2406 ,X_Project_Id =>P_project_id
2407 ,X_Organization_Id =>P_Organization_Id
2408 ,X_Billing_Assignment_Id =>NULL
2409 ,X_Event_Num_Reversed =>NULL
2410 ,X_Calling_Place =>NULL
2411 ,X_Calling_Process =>NULL
2412 ,X_Bill_Trans_Currency_Code =>p_event_in_rec.P_bill_trans_currency_code
2413 ,X_Bill_Trans_Bill_Amount =>l_Bill_Trans_Bill_Amt
2414 ,X_Bill_Trans_rev_Amount =>l_Bill_Trans_rev_Amt
2415 ,X_Project_Currency_Code =>l_project_currency_code
2416 ,X_Project_Rate_Type =>p_event_in_rec.P_project_rate_type
2417 ,X_Project_Rate_Date =>p_event_in_rec.P_project_rate_date
2418 ,X_Project_Exchange_Rate =>p_event_in_rec.P_project_exchange_rate
2419 ,X_Project_Inv_Rate_Date =>l_ProjFunc_Inv_Rate_date
2420 ,X_Project_Inv_Exchange_Rate =>l_Project_Inv_Exchange_Rate
2421 ,X_Project_Bill_Amount =>l_Project_Bill_Amount
2422 ,X_Project_Rev_Rate_date =>l_Project_Rev_Rate_date
2423 ,X_Project_Rev_Exchange_Rate =>l_Project_Rev_Exchange_Rate
2424 ,X_Project_Revenue_Amount =>l_Project_Revenue_Amount
2425 ,X_ProjFunc_Currency_Code =>l_ProjFunc_Currency_Code
2426 ,X_ProjFunc_Rate_Type =>p_event_in_rec.P_projfunc_rate_type
2427 ,X_ProjFunc_Rate_date =>p_event_in_rec.P_projfunc_rate_date
2428 ,X_ProjFunc_Exchange_Rate =>p_event_in_rec.P_projfunc_exchange_rate
2429 ,X_ProjFunc_Inv_Rate_date =>l_ProjFunc_Inv_Rate_date
2430 ,X_ProjFunc_Inv_Exchange_Rate =>l_ProjFunc_Inv_Exchange_Rate
2431 ,X_ProjFunc_Bill_Amount =>l_ProjFunc_Bill_Amount
2432 ,X_ProjFunc_Rev_Rate_date =>l_ProjFunc_Rev_Rate_date
2433 ,X_Projfunc_Rev_Exchange_Rate =>l_Projfunc_Rev_Exchange_Rate
2434 ,X_ProjFunc_Revenue_Amount =>l_ProjFunc_Revenue_Amount
2435 ,X_Funding_Rate_Type =>p_event_in_rec.P_funding_rate_type
2436 ,X_Funding_Rate_date =>p_event_in_rec.P_funding_rate_date
2437 ,X_Funding_Exchange_Rate =>p_event_in_rec.P_funding_exchange_rate
2438 ,X_Invproc_Currency_Code =>l_Invproc_Currency_Code
2439 ,X_Invproc_Rate_Type =>l_Invproc_Rate_Type
2440 ,X_Invproc_Rate_date =>l_Invproc_Rate_date
2441 ,X_Invproc_Exchange_Rate =>l_Invproc_Exchange_Rate
2442 ,X_Revproc_Currency_Code =>l_Revproc_Currency_Code
2443 ,X_Revproc_Rate_Type =>l_Revproc_Rate_Type
2444 ,X_Revproc_Rate_date =>l_Revproc_Rate_date
2445 ,X_Revproc_Exchange_Rate =>l_revproc_exchange_rate
2446 ,X_Inv_Gen_Rejection_Code =>l_Inv_Gen_Rejection_Code
2447 ,X_Adjusting_Revenue_Flag =>p_event_in_rec.P_adjusting_revenue_flag
2448 ,X_inventory_org_id =>p_inv_org_id
2449 ,X_inventory_item_id =>p_event_in_rec.P_inventory_item_id
2450 ,X_quantity_billed =>p_event_in_rec.P_quantity_billed
2451 ,X_uom_code =>p_event_in_rec.P_uom_code
2452 ,X_unit_price =>p_event_in_rec.P_unit_price
2453 ,X_reference1 =>p_event_in_rec.P_reference1
2454 ,X_reference2 =>p_event_in_rec.P_reference2
2455 ,X_reference3 =>p_event_in_rec.P_reference3
2456 ,X_reference4 =>p_event_in_rec.P_reference4
2457 ,X_reference5 =>p_event_in_rec.P_reference5
2458 ,X_reference6 =>p_event_in_rec.P_reference6
2459 ,X_reference7 =>p_event_in_rec.P_reference7
2460 ,X_reference8 =>p_event_in_rec.P_reference8
2461 ,X_reference9 =>p_event_in_rec.P_reference9
2462 ,X_reference10 =>p_event_in_rec.P_reference10
2463 ,X_agreement_id =>P_agreement_id );
2464
2465 /* l_event_processed = 'R' means that event has been revenue distributed but not billed.
2466 In this case we are allowing to change only the bill_trans_bill_amount and bill_hold_flga values */
2467 ELSIF l_event_processed = 'R' THEN
2468
2469 SELECT ev.Task_Id
2470 ,ev.Event_Num
2471 ,ev.Event_Type
2472 ,ev.Bill_Amount
2473 ,ev.Revenue_Amount
2474 ,ev.Revenue_Distributed_Flag
2475 ,ev.Completion_date
2476 ,Rev_Dist_Rejection_Code
2477 ,ev.Attribute_Category
2478 ,ev.Attribute1
2479 ,ev.Attribute2
2480 ,ev.Attribute3
2481 ,ev.Attribute4
2482 ,ev.Attribute5
2483 ,ev.Attribute6
2484 ,ev.Attribute7
2485 ,ev.Attribute8
2486 ,ev.Attribute9
2487 ,ev.Attribute10
2488 ,ev.Project_Id
2489 ,ev.Organization_Id
2490 ,ev.Billing_Assignment_Id
2491 ,ev.Event_Num_Reversed
2492 ,ev.Calling_Place
2493 ,ev.Calling_Process
2494 ,ev.Bill_Trans_Currency_Code
2495 ,ev.Bill_Trans_rev_Amount
2496 ,ev.Project_Currency_Code
2497 ,ev.Project_Rate_Type
2498 ,ev.Project_Rate_Date
2499 ,ev.Project_Exchange_Rate
2500 ,ev.Project_Inv_Rate_Date
2501 ,ev.Project_Inv_Exchange_Rate
2502 ,ev.Project_Bill_Amount
2503 ,ev.Project_Rev_Rate_date
2504 ,ev.Project_Rev_Exchange_Rate
2505 ,ev.Project_Revenue_Amount
2506 ,ev.ProjFunc_Currency_Code
2507 ,ev.ProjFunc_Rate_Type
2508 ,ev.ProjFunc_Rate_date
2509 ,ev.ProjFunc_Exchange_Rate
2510 ,ev.ProjFunc_Inv_Rate_date
2511 ,ev.ProjFunc_Inv_Exchange_Rate
2512 ,ev.ProjFunc_Bill_Amount
2513 ,ev.ProjFunc_Rev_Rate_date
2514 ,ev.Projfunc_Rev_Exchange_Rate
2515 ,ev.ProjFunc_Revenue_Amount
2516 ,ev.Funding_Rate_Type
2517 ,ev.Funding_Rate_date
2518 ,ev.Funding_Exchange_Rate
2519 ,ev.Invproc_Currency_Code
2520 ,ev.Invproc_Rate_Type
2521 ,ev.Invproc_Rate_date
2522 ,ev.Invproc_Exchange_Rate
2523 ,ev.Revproc_Currency_Code
2524 ,ev.Revproc_Rate_Type
2525 ,ev.Revproc_Rate_date
2526 ,ev.Revproc_Exchange_Rate
2527 ,ev.Inv_Gen_Rejection_Code
2528 ,ev.Adjusting_Revenue_Flag
2529 ,ev.inventory_org_id
2530 ,ev.inventory_item_id
2531 ,ev.quantity_billed
2532 ,ev.uom_code
2533 ,ev.unit_price
2534 ,ev.reference1
2535 ,ev.reference2
2536 ,ev.reference3
2537 ,ev.reference4
2538 ,ev.reference5
2539 ,ev.reference6
2540 ,ev.reference7
2541 ,ev.reference8
2542 ,ev.reference9
2543 ,ev.reference10
2544 ,ev.agreement_id
2545 INTO p_task_id
2546 ,p_event_in_rec.p_event_number
2547 ,p_event_in_rec.P_event_type
2548 ,l_bill_amount
2549 ,l_revenue_amount
2550 ,l_revenue_distributed_flag
2551 ,p_event_in_rec.P_completion_date
2552 ,l_rev_dist_rejection_code
2553 ,p_event_in_rec.P_attribute_category
2554 ,p_event_in_rec.P_attribute1
2555 ,p_event_in_rec.P_attribute2
2556 ,p_event_in_rec.P_attribute3
2557 ,p_event_in_rec.P_attribute4
2558 ,p_event_in_rec.P_attribute5
2559 ,p_event_in_rec.P_attribute6
2560 ,p_event_in_rec.P_attribute7
2561 ,p_event_in_rec.P_attribute8
2562 ,p_event_in_rec.P_attribute9
2563 ,p_event_in_rec.P_attribute10
2564 ,P_project_id
2565 ,P_Organization_Id
2566 ,l_Billing_Assignment_Id
2567 ,l_Event_Num_Reversed
2568 ,l_Calling_Place
2569 ,l_Calling_Process
2570 ,p_event_in_rec.P_bill_trans_currency_code
2571 ,l_Bill_Trans_rev_Amt
2572 ,l_project_currency_code
2573 ,p_event_in_rec.P_project_rate_type
2574 ,p_event_in_rec.P_project_rate_date
2575 ,p_event_in_rec.P_project_exchange_rate
2576 ,l_ProjFunc_Inv_Rate_date
2577 ,l_Project_Inv_Exchange_Rate
2578 ,l_Project_Bill_Amount
2579 ,l_Project_Rev_Rate_date
2580 ,l_Project_Rev_Exchange_Rate
2581 ,l_Project_Revenue_Amount
2582 ,l_ProjFunc_Currency_Code
2583 ,p_event_in_rec.P_projfunc_rate_type
2584 ,p_event_in_rec.P_projfunc_rate_date
2585 ,p_event_in_rec.P_projfunc_exchange_rate
2586 ,l_ProjFunc_Inv_Rate_date
2587 ,l_ProjFunc_Inv_Exchange_Rate
2588 ,l_ProjFunc_Bill_Amount
2589 ,l_ProjFunc_Rev_Rate_date
2590 ,l_Projfunc_Rev_Exchange_Rate
2591 ,l_ProjFunc_Revenue_Amount
2592 ,p_event_in_rec.P_funding_rate_type
2593 ,p_event_in_rec.P_funding_rate_date
2594 ,p_event_in_rec.P_funding_exchange_rate
2595 ,l_Invproc_Currency_Code
2596 ,l_Invproc_Rate_Type
2597 ,l_Invproc_Rate_date
2598 ,l_Invproc_Exchange_Rate
2599 ,l_Revproc_Currency_Code
2600 ,l_Revproc_Rate_Type
2601 ,l_Revproc_Rate_date
2602 ,l_revproc_exchange_rate
2603 ,l_Inv_Gen_Rejection_Code
2604 ,p_event_in_rec.P_adjusting_revenue_flag
2605 ,p_inv_org_id
2606 ,p_event_in_rec.P_inventory_item_id
2607 ,p_event_in_rec.P_quantity_billed
2608 ,p_event_in_rec.P_uom_code
2609 ,p_event_in_rec.P_unit_price
2610 ,p_event_in_rec.P_reference1
2611 ,p_event_in_rec.P_reference2
2612 ,p_event_in_rec.P_reference3
2613 ,p_event_in_rec.P_reference4
2614 ,p_event_in_rec.P_reference5
2615 ,p_event_in_rec.P_reference6
2616 ,p_event_in_rec.P_reference7
2617 ,p_event_in_rec.P_reference8
2618 ,p_event_in_rec.P_reference9
2619 ,p_event_in_rec.P_reference10
2620 ,P_agreement_id
2621 FROM pa_events ev
2622 WHERE event_id = p_event_in_rec.p_event_id;
2623
2624 --Added the below call for bug 7513054
2625 l_Bill_Trans_Bill_Amt := PA_CURRENCY.ROUND_TRANS_CURRENCY_AMT(l_Bill_Trans_Bill_Amt,p_event_in_rec.P_bill_trans_currency_code);
2626
2627
2628 PA_EVENTS_PKG.Update_Row
2629 (X_Rowid =>Rowid
2630 ,X_Event_Id =>p_event_in_rec.P_event_id
2631 ,X_Task_Id =>p_task_id
2632 ,X_Event_Num =>p_event_in_rec.p_event_number
2633 ,X_Last_Update_Date =>SYSDATE
2634 ,X_Last_Updated_By =>G_USER_ID
2635 ,X_Last_Update_Login =>G_LOGIN_ID
2636 ,X_Event_Type =>p_event_in_rec.P_event_type
2637 ,X_Description =>p_event_in_rec.P_description
2638 ,X_Bill_Amount =>0
2639 ,X_Revenue_Amount =>0
2640 ,X_Revenue_Distributed_Flag =>'N'
2641 ,X_Bill_Hold_Flag =>p_event_in_rec.P_bill_hold_flag
2642 ,X_Completion_date =>p_event_in_rec.P_completion_date
2643 ,X_Rev_Dist_Rejection_Code =>NULL
2644 ,X_Attribute_Category =>p_event_in_rec.P_attribute_category
2645 ,X_Attribute1 =>p_event_in_rec.P_attribute1
2646 ,X_Attribute2 =>p_event_in_rec.P_attribute2
2647 ,X_Attribute3 =>p_event_in_rec.P_attribute3
2648 ,X_Attribute4 =>p_event_in_rec.P_attribute4
2649 ,X_Attribute5 =>p_event_in_rec.P_attribute5
2650 ,X_Attribute6 =>p_event_in_rec.P_attribute6
2651 ,X_Attribute7 =>p_event_in_rec.P_attribute7
2652 ,X_Attribute8 =>p_event_in_rec.P_attribute8
2653 ,X_Attribute9 =>p_event_in_rec.P_attribute9
2654 ,X_Attribute10 =>p_event_in_rec.P_attribute10
2655 ,X_Project_Id =>P_project_id
2656 ,X_Organization_Id =>P_Organization_Id
2657 ,X_Billing_Assignment_Id =>NULL
2658 ,X_Event_Num_Reversed =>NULL
2659 ,X_Calling_Place =>NULL
2660 ,X_Calling_Process =>NULL
2661 ,X_Bill_Trans_Currency_Code =>p_event_in_rec.P_bill_trans_currency_code
2662 ,X_Bill_Trans_Bill_Amount =>l_Bill_Trans_Bill_Amt
2663 ,X_Bill_Trans_rev_Amount =>l_Bill_Trans_rev_Amt
2664 ,X_Project_Currency_Code =>l_project_currency_code
2665 ,X_Project_Rate_Type =>p_event_in_rec.P_project_rate_type
2666 ,X_Project_Rate_Date =>p_event_in_rec.P_project_rate_date
2667 ,X_Project_Exchange_Rate =>p_event_in_rec.P_project_exchange_rate
2668 ,X_Project_Inv_Rate_Date =>l_ProjFunc_Inv_Rate_date
2669 ,X_Project_Inv_Exchange_Rate =>l_Project_Inv_Exchange_Rate
2670 ,X_Project_Bill_Amount =>l_Project_Bill_Amount
2671 ,X_Project_Rev_Rate_date =>l_Project_Rev_Rate_date
2672 ,X_Project_Rev_Exchange_Rate =>l_Project_Rev_Exchange_Rate
2673 ,X_Project_Revenue_Amount =>l_Project_Revenue_Amount
2674 ,X_ProjFunc_Currency_Code =>l_ProjFunc_Currency_Code
2675 ,X_ProjFunc_Rate_Type =>p_event_in_rec.P_projfunc_rate_type
2676 ,X_ProjFunc_Rate_date =>p_event_in_rec.P_projfunc_rate_date
2677 ,X_ProjFunc_Exchange_Rate =>p_event_in_rec.P_projfunc_exchange_rate
2678 ,X_ProjFunc_Inv_Rate_date =>l_ProjFunc_Inv_Rate_date
2679 ,X_ProjFunc_Inv_Exchange_Rate =>l_ProjFunc_Inv_Exchange_Rate
2680 ,X_ProjFunc_Bill_Amount =>l_ProjFunc_Bill_Amount
2681 ,X_ProjFunc_Rev_Rate_date =>l_ProjFunc_Rev_Rate_date
2682 ,X_Projfunc_Rev_Exchange_Rate =>l_Projfunc_Rev_Exchange_Rate
2683 ,X_ProjFunc_Revenue_Amount =>l_ProjFunc_Revenue_Amount
2684 ,X_Funding_Rate_Type =>p_event_in_rec.P_funding_rate_type
2685 ,X_Funding_Rate_date =>p_event_in_rec.P_funding_rate_date
2686 ,X_Funding_Exchange_Rate =>p_event_in_rec.P_funding_exchange_rate
2687 ,X_Invproc_Currency_Code =>l_Invproc_Currency_Code
2688 ,X_Invproc_Rate_Type =>l_Invproc_Rate_Type
2689 ,X_Invproc_Rate_date =>l_Invproc_Rate_date
2690 ,X_Invproc_Exchange_Rate =>l_Invproc_Exchange_Rate
2691 ,X_Revproc_Currency_Code =>l_Revproc_Currency_Code
2692 ,X_Revproc_Rate_Type =>l_Revproc_Rate_Type
2693 ,X_Revproc_Rate_date =>l_Revproc_Rate_date
2694 ,X_Revproc_Exchange_Rate =>l_revproc_exchange_rate
2695 ,X_Inv_Gen_Rejection_Code =>l_Inv_Gen_Rejection_Code
2696 ,X_Adjusting_Revenue_Flag =>p_event_in_rec.P_adjusting_revenue_flag
2697 ,X_inventory_org_id =>p_inv_org_id
2698 ,X_inventory_item_id =>p_event_in_rec.P_inventory_item_id
2699 ,X_quantity_billed =>p_event_in_rec.P_quantity_billed
2700 ,X_uom_code =>p_event_in_rec.P_uom_code
2701 ,X_unit_price =>p_event_in_rec.P_unit_price
2702 ,X_reference1 =>p_event_in_rec.P_reference1
2703 ,X_reference2 =>p_event_in_rec.P_reference2
2704 ,X_reference3 =>p_event_in_rec.P_reference3
2705 ,X_reference4 =>p_event_in_rec.P_reference4
2706 ,X_reference5 =>p_event_in_rec.P_reference5
2707 ,X_reference6 =>p_event_in_rec.P_reference6
2708 ,X_reference7 =>p_event_in_rec.P_reference7
2709 ,X_reference8 =>p_event_in_rec.P_reference8
2710 ,X_reference9 =>p_event_in_rec.P_reference9
2711 ,X_reference10 =>p_event_in_rec.P_reference10
2712 ,X_agreement_id =>P_agreement_id );
2713
2714 /* Code added for Bug 7110782 - ends */
2715
2716 ELSE
2717
2718 --Added below calls for bug 7513054
2719 l_Bill_Trans_rev_Amt := PA_CURRENCY.ROUND_TRANS_CURRENCY_AMT(l_Bill_Trans_rev_Amt, p_event_in_rec.P_bill_trans_currency_code);
2720 l_Bill_Trans_Bill_Amt := PA_CURRENCY.ROUND_TRANS_CURRENCY_AMT(l_Bill_Trans_Bill_Amt,p_event_in_rec.P_bill_trans_currency_code);
2721
2722
2723 --Calls table handler for updating valid events.
2724 PA_EVENTS_PKG.Update_Row
2725 (X_Rowid =>Rowid
2726 ,X_Event_Id =>p_event_in_rec.P_event_id
2727 ,X_Task_Id =>p_task_id
2728 ,X_Event_Num =>p_event_in_rec.p_event_number
2729 ,X_Last_Update_Date =>SYSDATE
2730 ,X_Last_Updated_By =>G_USER_ID
2731 ,X_Last_Update_Login =>G_LOGIN_ID
2732 ,X_Event_Type =>p_event_in_rec.P_event_type
2733 ,X_Description =>p_event_in_rec.P_description
2734 ,X_Bill_Amount =>0
2735 ,X_Revenue_Amount =>0
2736 ,X_Revenue_Distributed_Flag =>'N'
2737 ,X_Bill_Hold_Flag =>p_event_in_rec.P_bill_hold_flag
2738 ,X_Completion_date =>p_event_in_rec.P_completion_date
2739 ,X_Rev_Dist_Rejection_Code =>NULL
2740 ,X_Attribute_Category =>p_event_in_rec.P_attribute_category
2741 ,X_Attribute1 =>p_event_in_rec.P_attribute1
2742 ,X_Attribute2 =>p_event_in_rec.P_attribute2
2743 ,X_Attribute3 =>p_event_in_rec.P_attribute3
2744 ,X_Attribute4 =>p_event_in_rec.P_attribute4
2745 ,X_Attribute5 =>p_event_in_rec.P_attribute5
2746 ,X_Attribute6 =>p_event_in_rec.P_attribute6
2747 ,X_Attribute7 =>p_event_in_rec.P_attribute7
2748 ,X_Attribute8 =>p_event_in_rec.P_attribute8
2749 ,X_Attribute9 =>p_event_in_rec.P_attribute9
2750 ,X_Attribute10 =>p_event_in_rec.P_attribute10
2751 ,X_Project_Id =>P_project_id
2752 ,X_Organization_Id =>P_Organization_Id
2753 ,X_Billing_Assignment_Id =>NULL
2754 ,X_Event_Num_Reversed =>NULL
2755 ,X_Calling_Place =>NULL
2756 ,X_Calling_Process =>NULL
2757 ,X_Bill_Trans_Currency_Code =>p_event_in_rec.P_bill_trans_currency_code
2758 ,X_Bill_Trans_Bill_Amount =>l_Bill_Trans_Bill_Amt
2759 ,X_Bill_Trans_rev_Amount =>l_Bill_Trans_rev_Amt
2760 ,X_Project_Currency_Code =>l_project_currency_code
2761 ,X_Project_Rate_Type =>p_event_in_rec.P_project_rate_type
2762 ,X_Project_Rate_Date =>p_event_in_rec.P_project_rate_date
2763 ,X_Project_Exchange_Rate =>p_event_in_rec.P_project_exchange_rate
2764 ,X_Project_Inv_Rate_Date =>l_ProjFunc_Inv_Rate_date
2765 ,X_Project_Inv_Exchange_Rate =>l_Project_Inv_Exchange_Rate
2766 ,X_Project_Bill_Amount =>l_Project_Bill_Amount
2767 ,X_Project_Rev_Rate_date =>l_Project_Rev_Rate_date
2768 ,X_Project_Rev_Exchange_Rate =>l_Project_Rev_Exchange_Rate
2769 ,X_Project_Revenue_Amount =>l_Project_Revenue_Amount
2770 ,X_ProjFunc_Currency_Code =>l_ProjFunc_Currency_Code
2771 ,X_ProjFunc_Rate_Type =>p_event_in_rec.P_projfunc_rate_type
2772 ,X_ProjFunc_Rate_date =>p_event_in_rec.P_projfunc_rate_date
2773 ,X_ProjFunc_Exchange_Rate =>p_event_in_rec.P_projfunc_exchange_rate
2774 ,X_ProjFunc_Inv_Rate_date =>l_ProjFunc_Inv_Rate_date
2775 ,X_ProjFunc_Inv_Exchange_Rate =>l_ProjFunc_Inv_Exchange_Rate
2776 ,X_ProjFunc_Bill_Amount =>l_ProjFunc_Bill_Amount
2777 ,X_ProjFunc_Rev_Rate_date =>l_ProjFunc_Rev_Rate_date
2778 ,X_Projfunc_Rev_Exchange_Rate =>l_Projfunc_Rev_Exchange_Rate
2779 ,X_ProjFunc_Revenue_Amount =>l_ProjFunc_Revenue_Amount
2780 ,X_Funding_Rate_Type =>p_event_in_rec.P_funding_rate_type
2781 ,X_Funding_Rate_date =>p_event_in_rec.P_funding_rate_date
2782 ,X_Funding_Exchange_Rate =>p_event_in_rec.P_funding_exchange_rate
2783 ,X_Invproc_Currency_Code =>l_Invproc_Currency_Code
2784 ,X_Invproc_Rate_Type =>l_Invproc_Rate_Type
2785 ,X_Invproc_Rate_date =>l_Invproc_Rate_date
2786 ,X_Invproc_Exchange_Rate =>l_Invproc_Exchange_Rate
2787 ,X_Revproc_Currency_Code =>l_Revproc_Currency_Code
2788 ,X_Revproc_Rate_Type =>l_Revproc_Rate_Type
2789 ,X_Revproc_Rate_date =>l_Revproc_Rate_date
2790 ,X_Revproc_Exchange_Rate =>l_revproc_exchange_rate
2791 ,X_Inv_Gen_Rejection_Code =>l_Inv_Gen_Rejection_Code
2792 ,X_Adjusting_Revenue_Flag =>p_event_in_rec.P_adjusting_revenue_flag
2793 ,X_inventory_org_id =>p_inv_org_id
2794 ,X_inventory_item_id =>p_event_in_rec.P_inventory_item_id
2795 ,X_quantity_billed =>p_event_in_rec.P_quantity_billed
2796 ,X_uom_code =>p_event_in_rec.P_uom_code
2797 ,X_unit_price =>p_event_in_rec.P_unit_price
2798 ,X_reference1 =>p_event_in_rec.P_reference1
2799 ,X_reference2 =>p_event_in_rec.P_reference2
2800 ,X_reference3 =>p_event_in_rec.P_reference3
2801 ,X_reference4 =>p_event_in_rec.P_reference4
2802 ,X_reference5 =>p_event_in_rec.P_reference5
2803 ,X_reference6 =>p_event_in_rec.P_reference6
2804 ,X_reference7 =>p_event_in_rec.P_reference7
2805 ,X_reference8 =>p_event_in_rec.P_reference8
2806 ,X_reference9 =>p_event_in_rec.P_reference9
2807 ,X_reference10 =>p_event_in_rec.P_reference10
2808 ,X_agreement_id =>P_agreement_id ); -- Federal Uptake
2809
2810 END IF; /* Added for Bug 7110782 */
2811
2812 --If commit is set to true then commit to database.
2813 IF FND_API.to_boolean( p_commit )
2814 THEN
2815 COMMIT;
2816 END IF;
2817
2818 EXCEPTION
2819 WHEN FND_API.G_EXC_ERROR
2820 THEN
2821 ROLLBACK TO Update_event;
2822 l_return_status := FND_API.G_RET_STS_ERROR;
2823
2824 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
2825 THEN
2826 ROLLBACK TO Update_event;
2827 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2828
2829 WHEN pa_event_pvt.pub_excp
2830 THEN
2831 ROLLBACK TO Update_event;
2832 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2833 PA_EVENT_PUB.PACKAGE_NAME
2834 :='(event_reference='||p_event_in_rec.p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
2835 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'UPDATE_EVENT';
2836
2837 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2838 THEN
2839 FND_MSG_PUB.add_exc_msg
2840 ( p_pkg_name => PACKAGE_NAME
2841 , p_procedure_name => PROCEDURE_NAME );
2842 PACKAGE_NAME:=NULL;
2843 PROCEDURE_NAME:=NULL;
2844 END IF;
2845
2846 WHEN OTHERS
2847 THEN
2848 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2849 ROLLBACK TO Update_event;
2850 PA_EVENT_PUB.PACKAGE_NAME
2851 :='(event_reference='||p_event_in_rec.p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
2852 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'UPDATE_EVENT';
2853
2854 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2855 THEN
2856 FND_MSG_PUB.add_exc_msg
2857 ( p_pkg_name => PACKAGE_NAME
2858 , p_procedure_name => PROCEDURE_NAME );
2859 PACKAGE_NAME:=NULL;
2860 PROCEDURE_NAME:=NULL;
2861 END IF;
2862
2863 END; --end of Inner Block
2864
2865 --Populating the output table
2866 tot_out_rec := tot_out_rec + 1; -- Added for bug#12964074
2867 p_event_out_tbl(tot_out_rec).pm_event_reference := p_event_in_rec.p_pm_event_reference;
2868 p_event_out_tbl(tot_out_rec).Event_Id := p_event_in_rec.P_event_id;
2869 p_event_out_tbl(tot_out_rec).Return_status := P_return_status;
2870 -- tot_out_rec := tot_out_rec + 1; -- Commented for bug#12964074
2871 tot_in_rec := p_event_in_tbl.next(tot_in_rec);
2872
2873 pa_debug.reset_err_stack; -- Reset error stack
2874
2875 END LOOP; --End of loop
2876
2877 --Setting the return status to false even if one record fails the validation.
2878 p_return_status := l_return_status;
2879
2880 --If there is one error message then extract the error meaasge and return it.
2881 FND_MSG_PUB.Count_And_Get
2882 ( p_encoded => l_encoded
2883 ,p_count => p_msg_count
2884 ,p_data => p_msg_data );
2885
2886 EXCEPTION
2887 WHEN FND_API.G_EXC_ERROR
2888 THEN
2889 p_return_status := FND_API.G_RET_STS_ERROR;
2890 FND_MSG_PUB.Count_And_Get
2891 ( p_encoded => l_encoded
2892 ,p_count => p_msg_count
2893 ,p_data => p_msg_data );
2894
2895 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
2896 THEN
2897 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2898 FND_MSG_PUB.Count_And_Get
2899 ( p_encoded => l_encoded
2900 ,p_count => p_msg_count
2901 ,p_data => p_msg_data );
2902
2903 WHEN pa_event_pvt.pub_excp
2904 THEN
2905 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2906 PA_EVENT_PUB.PACKAGE_NAME
2907 :='(event_reference='||p_event_in_rec.p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
2908 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'UPDATE_EVENT';
2909
2910 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2911 THEN
2912 FND_MSG_PUB.add_exc_msg
2913 ( p_pkg_name => PACKAGE_NAME
2914 , p_procedure_name => PROCEDURE_NAME );
2915 PACKAGE_NAME:=NULL;
2916 PROCEDURE_NAME:=NULL;
2917 END IF;
2918 FND_MSG_PUB.Count_And_Get
2919 ( p_encoded => l_encoded
2920 ,p_count => p_msg_count
2921 ,p_data => p_msg_data );
2922
2923 WHEN OTHERS
2924 THEN
2925 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2926
2927 PA_EVENT_PUB.PACKAGE_NAME
2928 :='(event_reference='||p_event_in_rec.p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
2929 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'UPDATE_EVENT';
2930
2931 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2932 THEN
2933 FND_MSG_PUB.add_exc_msg
2934 ( p_pkg_name => PACKAGE_NAME
2935 , p_procedure_name => PROCEDURE_NAME );
2936 PACKAGE_NAME:=NULL;
2937 PROCEDURE_NAME:=NULL;
2938 END IF;
2939
2940 FND_MSG_PUB.Count_And_Get
2941 ( p_encoded => l_encoded
2942 ,p_count => p_msg_count
2943 ,p_data => p_msg_data );
2944
2945 END UPDATE_EVENT;
2946
2947 -- ============================================================================
2948 --
2949 --Name: delete_event
2950 --Type: procedure
2951 --Description: This API deletes an existing event or a set of existing events
2952 --
2953 --Called subprograms:
2954 --Called subprograms: PA_EVENT_PVT.CHECK_MDTY_PARAMS1
2955 -- PA_EVENT_PVT.CHECK_MDTY_PARAMS2
2956 -- PA_EVENT_PVT.CHECK_DELETE_EVENT_OK
2957 -- PA_EVENTS_PKG.DELETE_ROW
2958 --
2959 --
2960 --
2961 --History:
2962
2963 -- ============================================================================
2964 PROCEDURE DELETE_EVENT
2965 (p_api_version_number IN NUMBER
2966 ,p_commit IN VARCHAR2
2967 ,p_init_msg_list IN VARCHAR2
2968 ,p_pm_product_code IN VARCHAR2
2969 ,p_pm_event_reference IN VARCHAR2
2970 ,p_event_id IN NUMBER
2971 ,p_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
2972 ,p_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
2973 ,p_return_status OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
2974 AS
2975
2976 p_api_name VARCHAR2(100):='DELETE_EVENT';
2977 P_rowid VARCHAR2(18);
2978 l_event_id_out NUMBER:=NULL;
2979 l_encoded VARCHAR2(1):='F';
2980 l_pm_event_reference VARCHAR2(25);
2981 BEGIN
2982
2983 -- Initialize the Error Stack
2984 pa_debug.set_err_stack('PA_EVENT_PUB.DELETE_EVENT');
2985
2986 --Log Message
2987 IF l_debug_mode = 'Y' THEN
2988 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.DELETE_EVENT.begin'
2989 ,x_msg => 'Beginning of Delete Event'
2990 ,x_log_level => 5);
2991 END IF;
2992
2993
2994 --Seting Savepoint
2995 Savepoint delete_event;
2996 p_msg_count := 0;
2997 p_return_status := FND_API.G_RET_STS_SUCCESS;
2998 --Log Message
2999 IF l_debug_mode = 'Y' THEN
3000 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.DELETE_EVENT.begin'
3001 ,x_msg => 'Calling mandatory input parameters-1'
3002 ,x_log_level => 5);
3003 END IF;
3004
3005 ---Validating mandatory input parameters-1
3006
3007 PA_EVENT_PVT.CHECK_MDTY_PARAMS1
3008 ( p_api_version_number =>p_api_version_number
3009 ,p_api_name =>p_api_name
3010 ,p_pm_product_code =>p_pm_product_code
3011 ,p_function_name =>'PA_EV_DELETE_EVENT'
3012 ,x_return_status =>p_return_status
3013 ,x_msg_count =>p_msg_count
3014 ,x_msg_data =>p_msg_data );
3015
3016 If p_return_status <> FND_API.G_RET_STS_SUCCESS
3017 Then
3018 IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3019 THEN
3020 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3021
3022 ELSIF p_return_status = FND_API.G_RET_STS_ERROR
3023 THEN
3024 RAISE FND_API.G_EXC_ERROR;
3025 END IF;
3026 End If;
3027
3028 --Log Message
3029 IF l_debug_mode = 'Y' THEN
3030 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.DELETE_EVENT.begin'
3031 ,x_msg => ' Calling mandatory input parameters-2'
3032 ,x_log_level => 5);
3033 END IF;
3034
3035 -- Validating mandatory input parameters-2
3036 /*Commenting out this call as the event reference is not a mandatory parameter.bug 3118781
3037 PA_EVENT_PVT.CHECK_MDTY_PARAMS2
3038 ( p_pm_event_reference => p_pm_event_reference
3039 ,p_pm_product_code => p_pm_product_code
3040 ,p_project_number => NULL
3041 ,p_event_type => NULL
3042 ,p_organization_name => NULL
3043 ,p_calling_place => 'DELETE_EVENT'
3044 ,x_return_status => p_return_status );
3045
3046 If p_return_status <> FND_API.G_RET_STS_SUCCESS
3047 Then
3048 IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3049 THEN
3050 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3051
3052 ELSIF p_return_status = FND_API.G_RET_STS_ERROR
3053 THEN
3054 RAISE FND_API.G_EXC_ERROR;
3055 END IF;
3056 End If;
3057 End of comment for 3118781 */
3058 --Log Message
3059 IF l_debug_mode = 'Y' THEN
3060 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.DELETE_EVENT.begin'
3061 ,x_msg => 'Calling conv_event_ref_to_id'
3062 ,x_log_level => 5);
3063 END IF;
3064 l_pm_event_reference :=p_pm_event_reference;
3065 l_event_id_out:=p_event_id;
3066 --Validation of event_id or pm_event_reference and conversion to event_id
3067
3068 If PA_EVENT_PVT.CONV_EVENT_REF_TO_ID
3069 (P_pm_product_code =>P_pm_product_code
3070 ,P_pm_event_reference =>l_pm_event_reference
3071 ,P_event_id =>l_event_id_out)
3072 ='N'
3073 Then
3074 p_return_status := FND_API.G_RET_STS_ERROR;
3075 RAISE FND_API.G_EXC_ERROR;
3076 End If;
3077
3078 --Log Message
3079 IF l_debug_mode = 'Y' THEN
3080 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.DELETE_EVENT.begin'
3081 ,x_msg => 'Calling check_delete_event_ok'
3082 ,x_log_level => 5);
3083 END IF;
3084
3085 -- Calling check_delete_event_ok in pa_event_pvt package
3086
3087 If PA_EVENT_PVT.CHECK_DELETE_EVENT_OK
3088 (P_pm_event_reference =>l_pm_event_reference
3089 ,P_event_id =>l_event_id_out) ='N'
3090 Then
3091 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3092 THEN
3093 pa_interface_utils_pub.map_new_amg_msg
3094 ( p_old_message_code => 'PA_TK_EVENT_IN_USE'
3095 ,p_msg_attribute => 'CHANGE'
3096 ,p_resize_flag => 'N'
3097 ,p_msg_context => 'EVENT'
3098 ,p_attribute1 => l_pm_event_reference
3099 ,p_attribute2 => ''
3100 ,p_attribute3 => ''
3101 ,p_attribute4 => ''
3102 ,p_attribute5 => '');
3103 END IF;
3104 p_return_status := FND_API.G_RET_STS_ERROR;
3105 RAISE FND_API.G_EXC_ERROR;
3106
3107 End If;
3108
3109
3110 --If validation is successful then delete the event from PA_EVENTS
3111
3112 --Populating the rowid
3113 Select Rowid
3114 Into p_rowid
3115 From pa_events
3116 Where event_id=l_event_id_out;
3117
3118
3119 --Log Message
3120 IF l_debug_mode = 'Y' THEN
3121 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.DELETE_EVENT.begin'
3122 ,x_msg => 'Calling table handler to delete event'
3123 ,x_log_level => 5);
3124 END IF;
3125
3126 --calling PROCEDURE Delete_Row to delete the event
3127
3128
3129 PA_EVENTS_PKG.Delete_Row(X_Rowid => P_rowid);
3130
3131 --If commit is set to true then commit to database.
3132 IF FND_API.to_boolean( p_commit )
3133 THEN
3134 COMMIT;
3135 END IF;
3136
3137
3138 --If there is one error message then extract the error meaasge
3139 FND_MSG_PUB.Count_And_Get
3140 ( p_encoded => l_encoded
3141 ,p_count => p_msg_count
3142 ,p_data => p_msg_data );
3143
3144 pa_debug.reset_err_stack; -- Reset error stack
3145
3146
3147 EXCEPTION
3148 WHEN FND_API.G_EXC_ERROR
3149 THEN
3150 ROLLBACK to delete_event;
3151 p_return_status := FND_API.G_RET_STS_ERROR;
3152 FND_MSG_PUB.Count_And_Get
3153 ( p_encoded => l_encoded
3154 , p_count => p_msg_count
3155 , p_data => p_msg_data );
3156
3157 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
3158 THEN
3159 ROLLBACK to delete_event;
3160 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3161 FND_MSG_PUB.Count_And_Get
3162 ( p_encoded => l_encoded
3163 , p_count => p_msg_count
3164 , p_data => p_msg_data );
3165
3166 WHEN pa_event_pvt.pub_excp
3167 THEN
3168 ROLLBACK to delete_event;
3169 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3170
3171 PA_EVENT_PUB.PACKAGE_NAME
3172 :='(event_reference='||p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
3173 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'DELETE_EVENT';
3174
3175 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3176 THEN
3177 FND_MSG_PUB.add_exc_msg
3178 ( p_pkg_name => PACKAGE_NAME
3179 , p_procedure_name => PROCEDURE_NAME );
3180 PACKAGE_NAME:=NULL;
3181 PROCEDURE_NAME:=NULL;
3182 END IF;
3183
3184 FND_MSG_PUB.Count_And_Get
3185 ( p_encoded => l_encoded
3186 , p_count => p_msg_count
3187 , p_data => p_msg_data );
3188
3189 WHEN OTHERS
3190 THEN
3191 ROLLBACK to delete_event;
3192 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3193
3194 PA_EVENT_PUB.PACKAGE_NAME
3195 :='(event_reference='||p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
3196 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'DELETE_EVENT';
3197
3198 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3199 THEN
3200 FND_MSG_PUB.add_exc_msg
3201 ( p_pkg_name => PACKAGE_NAME
3202 , p_procedure_name => PROCEDURE_NAME );
3203 PACKAGE_NAME:=NULL;
3204 PROCEDURE_NAME:=NULL;
3205 END IF;
3206
3207 FND_MSG_PUB.Count_And_Get
3208 ( p_encoded => l_encoded
3209 , p_count => p_msg_count
3210 , p_data => p_msg_data );
3211
3212
3213 END DELETE_EVENT;
3214
3215 -- ============================================================================
3216 --
3217 --Name: init_event
3218 --Type: Procedure
3219 --Description: This procedure can be used to initialize the global PL/SQL
3220 -- tables that are used by a LOAD/EXECUTE/FETCH cycle.
3221 --
3222 --History:
3223 --
3224 -- =============================================================================
3225 PROCEDURE INIT_EVENT
3226 AS
3227 BEGIN
3228
3229 --Initialising global tables
3230 G_event_in_tbl.delete;
3231 G_event_out_tbl.delete;
3232
3233 EXCEPTION
3234 WHEN OTHERS
3235 THEN
3236
3237 PA_EVENT_PUB.PACKAGE_NAME
3238 :=PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
3239 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'INIT_EVENT';
3240
3241 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3242 THEN
3243 FND_MSG_PUB.add_exc_msg
3244 ( p_pkg_name => PACKAGE_NAME
3245 , p_procedure_name => PROCEDURE_NAME );
3246 PACKAGE_NAME:=NULL;
3247 PROCEDURE_NAME:=NULL;
3248 END IF;
3249
3250 END INIT_EVENT;
3251
3252 -- ============================================================================
3253 --
3254 --Name: load_event
3255 --Type: Procedure
3256 --Description: This procedure can be used to move the event related
3257 -- parameters from the client side to a record on the server side
3258 -- , where it will be used by a LOAD/EXECUTE/FETCH cycle.
3259 --
3260 --History:
3261 --
3262 -- ============================================================================
3263
3264 PROCEDURE LOAD_EVENT
3265 (p_pm_product_code IN VARCHAR2
3266 ,P_api_version_number IN NUMBER
3267 ,P_init_msg_list IN VARCHAR2
3268 ,P_pm_event_reference IN VARCHAR2
3269 ,P_task_number IN VARCHAR2
3270 ,P_event_number IN NUMBER
3271 ,P_event_type IN VARCHAR2
3272 ,P_agreement_number IN VARCHAR2 -- Federal Uptake
3273 ,P_agreement_type IN VARCHAR2 -- Federal Uptake
3274 ,P_customer_number IN VARCHAR2 -- Federal Uptake
3275 ,P_description IN VARCHAR2
3276 ,P_bill_hold_flag IN VARCHAR2
3277 ,P_completion_date IN DATE
3278 ,P_desc_flex_name IN VARCHAR2
3279 ,P_attribute_category IN VARCHAR2
3280 ,P_attribute1 IN VARCHAR2
3281 ,P_attribute2 IN VARCHAR2
3282 ,P_attribute3 IN VARCHAR2
3283 ,P_attribute4 IN VARCHAR2
3284 ,P_attribute5 IN VARCHAR2
3285 ,P_attribute6 IN VARCHAR2
3286 ,P_attribute7 IN VARCHAR2
3287 ,P_attribute8 IN VARCHAR2
3288 ,P_attribute9 IN VARCHAR2
3289 ,P_attribute10 IN VARCHAR2
3290 ,P_project_number IN VARCHAR2
3291 ,P_organization_name IN VARCHAR2
3292 ,P_inventory_org_name IN VARCHAR2
3293 ,P_inventory_item_id IN NUMBER
3294 ,P_quantity_billed IN NUMBER
3295 ,P_uom_code IN VARCHAR2
3296 ,P_unit_price IN NUMBER
3297 ,P_reference1 IN VARCHAR2
3298 ,P_reference2 IN VARCHAR2
3299 ,P_reference3 IN VARCHAR2
3300 ,P_reference4 IN VARCHAR2
3301 ,P_reference5 IN VARCHAR2
3302 ,P_reference6 IN VARCHAR2
3303 ,P_reference7 IN VARCHAR2
3304 ,P_reference8 IN VARCHAR2
3305 ,P_reference9 IN VARCHAR2
3306 ,P_reference10 IN VARCHAR2
3307 ,P_bill_trans_currency_code IN VARCHAR2
3308 ,P_bill_trans_bill_amount IN NUMBER
3309 ,P_bill_trans_rev_amount IN NUMBER
3310 ,P_project_rate_type IN VARCHAR2
3311 ,P_project_rate_date IN DATE
3312 ,P_project_exchange_rate IN NUMBER
3313 ,P_projfunc_rate_type IN VARCHAR2
3314 ,P_projfunc_rate_date IN DATE
3315 ,P_projfunc_exchange_rate IN NUMBER
3316 ,P_funding_rate_type IN VARCHAR2
3317 ,P_funding_rate_date IN DATE
3318 ,P_funding_exchange_rate IN NUMBER
3319 ,P_adjusting_revenue_flag IN VARCHAR2
3320 ,P_event_id IN NUMBER
3321 ,P_return_status OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
3322
3323 AS
3324
3325 p_api_name VARCHAR2(100):='LOAD_EVENT';
3326 p_msg_count NUMBER:=0;
3327 p_msg_data VARCHAR2(2000);
3328 BEGIN
3329
3330 -- Initialize the Error Stack
3331 pa_debug.set_err_stack('PA_EVENT_PUB.LOAD_EVENT');
3332
3333 --Log Message
3334 IF l_debug_mode = 'Y' THEN
3335 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.LOAD_EVENT.begin'
3336 ,x_msg => 'Beginning of Load_Event'
3337 ,x_log_level => 5);
3338 End If;
3339
3340
3341 --Log Message
3342 IF l_debug_mode = 'Y' THEN
3343 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.LOAD_EVENT.begin'
3344 ,x_msg => 'Beginning of api compatibility check '
3345 ,x_log_level => 5);
3346 End If;
3347
3348 -- Standard call to check for api compatibility.
3349 IF NOT FND_API.Compatible_API_Call ( g_api_version_number ,
3350 p_api_version_number ,
3351 p_api_name ,
3352 G_PKG_NAME )
3353 THEN
3354 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3355 END IF;
3356
3357 --Log Message
3358 IF l_debug_mode = 'Y' THEN
3359 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.LOAD_EVENT.begin'
3360 ,x_msg => 'Beginning of Loading the global tables'
3361 ,x_log_level => 5);
3362 End If;
3363
3364 --If return status is success then populating the global tables
3365
3366 G_event_in_tbl(G_event_tbl_count).P_pm_event_reference :=P_pm_event_reference;
3367 G_event_in_tbl(G_event_tbl_count).P_task_number :=P_task_number;
3368 G_event_in_tbl(G_event_tbl_count).P_event_number :=P_event_number;
3369 G_event_in_tbl(G_event_tbl_count).P_event_type :=P_event_type;
3370 -- Added the below three lines for Federal Uptake
3371 G_event_in_tbl(G_event_tbl_count).P_agreement_number :=P_agreement_number;
3372 G_event_in_tbl(G_event_tbl_count).P_agreement_type :=P_agreement_type;
3373 G_event_in_tbl(G_event_tbl_count).P_customer_number :=P_customer_number;
3374 G_event_in_tbl(G_event_tbl_count).P_description :=P_description;
3375 G_event_in_tbl(G_event_tbl_count).P_bill_hold_flag :=P_bill_hold_flag;
3376 G_event_in_tbl(G_event_tbl_count).P_completion_date :=P_completion_date;
3377 G_event_in_tbl(G_event_tbl_count).P_desc_flex_name :=P_desc_flex_name;
3378 G_event_in_tbl(G_event_tbl_count).P_attribute_category :=P_attribute_category;
3379 G_event_in_tbl(G_event_tbl_count).P_attribute1 :=P_attribute1;
3380 G_event_in_tbl(G_event_tbl_count).P_attribute2 :=P_attribute2;
3381 G_event_in_tbl(G_event_tbl_count).P_attribute3 :=P_attribute3;
3382 G_event_in_tbl(G_event_tbl_count).P_attribute4 :=P_attribute4;
3383 G_event_in_tbl(G_event_tbl_count).P_attribute5 :=P_attribute5;
3384 G_event_in_tbl(G_event_tbl_count).P_attribute6 :=P_attribute6;
3385 G_event_in_tbl(G_event_tbl_count).P_attribute7 :=P_attribute7;
3386 G_event_in_tbl(G_event_tbl_count).P_attribute8 :=P_attribute8;
3387 G_event_in_tbl(G_event_tbl_count).P_attribute9 :=P_attribute9;
3388 G_event_in_tbl(G_event_tbl_count).P_attribute10 :=P_attribute10;
3389 G_event_in_tbl(G_event_tbl_count).P_project_number :=P_project_number;
3390 G_event_in_tbl(G_event_tbl_count).P_organization_name :=P_organization_name;
3391 G_event_in_tbl(G_event_tbl_count).P_inventory_org_name :=P_inventory_org_name;
3392 G_event_in_tbl(G_event_tbl_count).P_inventory_item_id :=P_inventory_item_id;
3393 G_event_in_tbl(G_event_tbl_count).P_quantity_billed :=P_quantity_billed;
3394 G_event_in_tbl(G_event_tbl_count).P_uom_code :=P_uom_code;
3395 G_event_in_tbl(G_event_tbl_count).P_unit_price :=P_unit_price;
3396 G_event_in_tbl(G_event_tbl_count).P_reference1 :=P_reference1;
3397 G_event_in_tbl(G_event_tbl_count).P_reference2 :=P_reference2;
3398 G_event_in_tbl(G_event_tbl_count).P_reference3 :=P_reference3;
3399 G_event_in_tbl(G_event_tbl_count).P_reference4 :=P_reference4;
3400 G_event_in_tbl(G_event_tbl_count).P_reference5 :=P_reference5;
3401 G_event_in_tbl(G_event_tbl_count).P_reference6 :=P_reference6;
3402 G_event_in_tbl(G_event_tbl_count).P_reference7 :=P_reference7;
3403 G_event_in_tbl(G_event_tbl_count).P_reference8 :=P_reference8;
3404 G_event_in_tbl(G_event_tbl_count).P_reference9 :=P_reference9;
3405 G_event_in_tbl(G_event_tbl_count).P_reference10 :=P_reference10;
3406 G_event_in_tbl(G_event_tbl_count).P_bill_trans_currency_code :=P_bill_trans_currency_code;
3407 G_event_in_tbl(G_event_tbl_count).P_bill_trans_bill_amount :=P_bill_trans_bill_amount;
3408 G_event_in_tbl(G_event_tbl_count).P_bill_trans_rev_amount :=P_bill_trans_rev_amount;
3409 G_event_in_tbl(G_event_tbl_count).P_project_rate_type :=P_project_rate_type;
3410 G_event_in_tbl(G_event_tbl_count).P_project_rate_date :=P_project_rate_date;
3411 G_event_in_tbl(G_event_tbl_count).P_project_exchange_rate :=P_project_exchange_rate;
3412 G_event_in_tbl(G_event_tbl_count).P_projfunc_rate_type :=P_projfunc_rate_type;
3413 G_event_in_tbl(G_event_tbl_count).P_projfunc_rate_date :=P_projfunc_rate_date;
3414 G_event_in_tbl(G_event_tbl_count).P_projfunc_exchange_rate :=P_projfunc_exchange_rate;
3415 G_event_in_tbl(G_event_tbl_count).P_funding_rate_type :=P_funding_rate_type;
3416 G_event_in_tbl(G_event_tbl_count).P_funding_rate_date :=P_funding_rate_date;
3417 G_event_in_tbl(G_event_tbl_count).P_funding_exchange_rate :=P_funding_exchange_rate;
3418 G_event_in_tbl(G_event_tbl_count).P_adjusting_revenue_flag :=P_adjusting_revenue_flag;
3419 G_event_in_tbl(G_event_tbl_count).P_event_id :=P_event_id;
3420
3421 G_event_tbl_count := G_event_tbl_count+1;
3422
3423 pa_debug.reset_err_stack; -- Reset error stack
3424 EXCEPTION
3425 WHEN FND_API.G_EXC_ERROR
3426 THEN
3427 p_return_status := FND_API.G_RET_STS_ERROR;
3428 FND_MSG_PUB.Count_And_Get
3429 ( p_count => p_msg_count ,
3430 p_data => p_msg_data );
3431
3432 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
3433 THEN
3434 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3435 FND_MSG_PUB.Count_And_Get
3436 ( p_count => p_msg_count
3437 , p_data => p_msg_data );
3438
3439 WHEN OTHERS
3440 THEN
3441 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3442
3443 PA_EVENT_PUB.PACKAGE_NAME
3444 :='(event_reference='||G_event_in_tbl(G_event_tbl_count).P_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
3445 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'LOAD_EVENT';
3446
3447 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3448 THEN
3449 FND_MSG_PUB.add_exc_msg
3450 ( p_pkg_name => PACKAGE_NAME
3451 , p_procedure_name => PROCEDURE_NAME );
3452 PACKAGE_NAME:=NULL;
3453 PROCEDURE_NAME:=NULL;
3454 END IF;
3455
3456 FND_MSG_PUB.Count_And_Get
3457 ( p_count => p_msg_count ,
3458 p_data => p_msg_data );
3459
3460
3461 END LOAD_EVENT;
3462
3463 -- ============================================================================
3464 --
3465 --Name: EXECUTE_CREATE_EVENT
3466 --Type: Procedure
3467 --Description: This procedure can be used to create an event
3468 -- using global PL/SQL tables.
3469 --
3470 --Called subprograms: XXX
3471 --
3472 --History:
3473 -- ============================================================================
3474 PROCEDURE EXECUTE_CREATE_EVENT
3475 (p_api_version_number IN NUMBER
3476 ,p_commit IN VARCHAR2
3477 ,p_init_msg_list IN VARCHAR2
3478 ,p_pm_product_code IN VARCHAR2
3479 ,p_event_id_out OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
3480 ,p_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
3481 ,p_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
3482 ,p_return_status OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
3483
3484 AS
3485 p_api_name VARCHAR2(100):='EXECUTE_CREATE_EVENT';
3486 l_encoded varchar2(1):='F';
3487 BEGIN
3488 -- Initialize the Error Stack
3489 pa_debug.set_err_stack('PA_EVENT_PUB.EXECUTE_CREATE_EVENT');
3490
3491 --Log Message
3492 IF l_debug_mode = 'Y' THEN
3493 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.EXECUTE_CREATE_EVENT.begin'
3494 ,x_msg => 'Beginning of Execute_Create_Event'
3495 ,x_log_level => 5);
3496 End If;
3497
3498
3499
3500 --Log Message
3501 IF l_debug_mode = 'Y' THEN
3502 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.EXECUTE_CREATE_EVENT.begin'
3503 ,x_msg => 'Beginning of api compatibility check '
3504 ,x_log_level => 5);
3505 End If;
3506
3507 -- Standard call to check for api compatibility.
3508 IF NOT FND_API.Compatible_API_Call ( g_api_version_number ,
3509 p_api_version_number ,
3510 p_api_name ,
3511 G_PKG_NAME )
3512 THEN
3513 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3514 END IF;
3515
3516 --Log Message
3517 IF l_debug_mode = 'Y' THEN
3518 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.EXECUTE_CREATE_EVENT.begin'
3519 ,x_msg => 'Calling Create_event '
3520 ,x_log_level => 5);
3521 End If;
3522
3523 --- Calling Create_event procedure for further processing
3524 Create_event
3525 (P_api_version_number =>p_api_version_number
3526 ,P_commit =>p_commit
3527 ,P_init_msg_list =>p_init_msg_list
3528 ,P_msg_count =>p_msg_count
3529 ,P_msg_data =>p_msg_data
3530 ,P_return_status =>p_return_status
3531 ,P_pm_product_code =>p_pm_product_code
3532 ,P_event_in_tbl =>G_event_in_tbl
3533 ,P_event_out_tbl =>G_event_out_tbl);
3534
3535
3536 If p_return_status <> FND_API.G_RET_STS_SUCCESS
3537 Then
3538 IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3539 THEN
3540 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3541
3542 ELSIF p_return_status = FND_API.G_RET_STS_ERROR
3543 THEN
3544 RAISE FND_API.G_EXC_ERROR;
3545 END IF;
3546 End If;
3547
3548 -- If single event is processed then return the event_id
3549 If G_event_out_tbl.count = 1
3550 Then
3551 p_event_id_out := G_event_out_tbl(0).event_id;
3552 End If;
3553
3554 -- Call fetch_event API in case of multiple events creation
3555 -- to get the event id of new events created
3556
3557 pa_debug.reset_err_stack; -- Reset error stack
3558
3559
3560 EXCEPTION
3561 WHEN FND_API.G_EXC_ERROR
3562 THEN
3563 p_event_id_out := NULL; -- NOCOPY
3564 p_return_status := FND_API.G_RET_STS_ERROR;
3565 FND_MSG_PUB.Count_And_Get
3566 ( p_encoded => l_encoded
3567 ,p_count => p_msg_count
3568 ,p_data => p_msg_data );
3569
3570 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
3571 THEN
3572 p_event_id_out := NULL; -- NOCOPY
3573 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3574 FND_MSG_PUB.Count_And_Get
3575 ( p_encoded => l_encoded
3576 ,p_count => p_msg_count
3577 ,p_data => p_msg_data );
3578
3579 WHEN OTHERS
3580 THEN
3581 p_event_id_out := NULL; -- NOCOPY
3582 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3583
3584 PA_EVENT_PUB.PACKAGE_NAME
3585 :=PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
3586 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'EXECUTE_CREATE_EVENT';
3587
3588 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3589 THEN
3590 FND_MSG_PUB.add_exc_msg
3591 ( p_pkg_name => PACKAGE_NAME
3592 , p_procedure_name => PROCEDURE_NAME );
3593 PACKAGE_NAME:=NULL;
3594 PROCEDURE_NAME:=NULL;
3595 END IF;
3596
3597 FND_MSG_PUB.Count_And_Get
3598 ( p_encoded => l_encoded
3599 ,p_count => p_msg_count
3600 ,p_data => p_msg_data );
3601
3602
3603 END EXECUTE_CREATE_EVENT;
3604
3605 -- ============================================================================
3606 --
3607 --Name: EXECUTE_UPDATE_EVENT
3608 --Type: Procedure
3609 --Description: This procedure can be used to update an event
3610 -- using global PL/SQL tables.
3611 --
3612 --Called subprograms: XXX
3613 --
3614 --History:
3615 --
3616 -- ============================================================================
3617
3618 PROCEDURE EXECUTE_UPDATE_EVENT
3619 (p_api_version_number IN NUMBER
3620 ,p_commit IN VARCHAR2
3621 ,p_init_msg_list IN VARCHAR2
3622 ,p_pm_product_code IN VARCHAR2
3623 ,p_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
3624 ,p_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
3625 ,p_return_status OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
3626
3627 AS
3628
3629 p_api_name VARCHAR2(100):='EXECUTE_UPDATE_EVENT';
3630 l_encoded VARCHAR2(1):='F';
3631
3632 BEGIN
3633
3634 -- Initialize the Error Stack
3635 pa_debug.set_err_stack('PA_EVENT_PUB.EXECUTE_UPDATE_EVENT');
3636
3637 --Log Message
3638 IF l_debug_mode = 'Y' THEN
3639 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.EXECUTE_UPDATE_EVENT.begin'
3640 ,x_msg => 'Beginning of Execute_Update_Event'
3641 ,x_log_level => 5);
3642 End If;
3643
3644
3645 --Log Message
3646 IF l_debug_mode = 'Y' THEN
3647 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.EXECUTE_UPDATE_EVENT.begin'
3648 ,x_msg => 'Beginning of api compatibility check '
3649 ,x_log_level => 5);
3650 End If;
3651
3652 -- Standard call to check for api compatibility.
3653 IF NOT FND_API.Compatible_API_Call ( g_api_version_number ,
3654 p_api_version_number ,
3655 p_api_name ,
3656 G_PKG_NAME )
3657 THEN
3658 p_return_status:=FND_API.G_RET_STS_ERROR;
3659 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3660 END IF;
3661
3662 --Log Message
3663 IF l_debug_mode = 'Y' THEN
3664 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.EXECUTE_UPDATE_EVENT.begin'
3665 ,x_msg => 'Calling Update_event '
3666 ,x_log_level => 5);
3667 End If;
3668
3669 --Calling update_event procedure for further processing
3670
3671 UPDATE_EVENT
3672 (P_api_version_number =>p_api_version_number
3673 ,P_commit =>p_commit
3674 ,P_init_msg_list =>p_init_msg_list
3675 ,P_msg_count =>p_msg_count
3676 ,P_msg_data =>p_msg_data
3677 ,P_return_status =>p_return_status
3678 ,P_pm_product_code =>p_pm_product_code
3679 ,P_event_in_tbl =>G_event_in_tbl
3680 ,P_event_out_tbl =>G_event_out_tbl);
3681
3682 If p_return_status <> FND_API.G_RET_STS_SUCCESS
3683 Then
3684 IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3685 THEN
3686 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3687
3688 ELSIF p_return_status = FND_API.G_RET_STS_ERROR
3689 THEN
3690 RAISE FND_API.G_EXC_ERROR;
3691 END IF;
3692 End If;
3693
3694 pa_debug.reset_err_stack; -- Reset error stack
3695
3696
3697 EXCEPTION
3698 WHEN FND_API.G_EXC_ERROR
3699 THEN
3700 p_return_status := FND_API.G_RET_STS_ERROR;
3701 FND_MSG_PUB.Count_And_Get
3702 ( p_encoded => l_encoded
3703 ,p_count => p_msg_count
3704 ,p_data => p_msg_data );
3705
3706 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
3707 THEN
3708 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3709 FND_MSG_PUB.Count_And_Get
3710 ( p_encoded => l_encoded
3711 ,p_count => p_msg_count
3712 ,p_data => p_msg_data );
3713
3714 WHEN OTHERS
3715 THEN
3716 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3717
3718 PA_EVENT_PUB.PACKAGE_NAME
3719 :=PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
3720 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'EXECUTE_UPDATE_EVENT';
3721
3722 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3723 THEN
3724 FND_MSG_PUB.add_exc_msg
3725 ( p_pkg_name => PACKAGE_NAME
3726 , p_procedure_name => PROCEDURE_NAME );
3727 PACKAGE_NAME:=NULL;
3728 PROCEDURE_NAME:=NULL;
3729 END IF;
3730
3731 FND_MSG_PUB.Count_And_Get
3732 ( p_encoded => l_encoded
3733 ,p_count => p_msg_count
3734 ,p_data => p_msg_data );
3735
3736 END EXECUTE_UPDATE_EVENT;
3737
3738 -- ============================================================================
3739 --
3740 --Name: clear_event
3741 --Type: Procedure
3742 --Description: This procedure can be used to clear the global PL/SQL
3743 -- tables that are used by a LOAD/EXECUTE/FETCH cycle.
3744 --
3745 --Called subprograms: init_event
3746 --History:
3747 --
3748 -- =======================================================================
3749 PROCEDURE CLEAR_EVENT
3750 AS
3751
3752 BEGIN
3753 -- Call init_event procedure
3754 init_event;
3755
3756 EXCEPTION
3757 WHEN OTHERS
3758 THEN
3759
3760 PA_EVENT_PUB.PACKAGE_NAME
3761 :=PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
3762 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'CLEAR_EVENT';
3763
3764 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3765 THEN
3766 FND_MSG_PUB.add_exc_msg
3767 ( p_pkg_name => PACKAGE_NAME
3768 , p_procedure_name => PROCEDURE_NAME );
3769 PACKAGE_NAME:=NULL;
3770 PROCEDURE_NAME:=NULL;
3771 END IF;
3772
3773 END CLEAR_EVENT;
3774
3775
3776 -- ============================================================================
3777 --
3778 --Name: fetch_event
3779 --Type: Procedure
3780 --Description: This procedure can be used to return the event_ids to the
3781 -- external system .
3782 --
3783 --Called subprograms: XXX
3784 --
3785 --
3786 --
3787 --History:
3788 --
3789 -- ============================================================================
3790 PROCEDURE FETCH_EVENT
3791 (p_api_version_number IN NUMBER
3792 ,P_pm_product_code IN VARCHAR2
3793 ,P_pm_event_reference IN VARCHAR2
3794 ,P_event_id_out OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
3795 ,p_return_status OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
3796 IS
3797 tot_recs NUMBER:=0;
3798 p_api_name VARCHAR2(100):='FETCH_EVENT';
3799 p_msg_count NUMBER;
3800 p_msg_data VARCHAR2(2000);
3801 l_encoded VARCHAR2(1):='F';
3802 BEGIN
3803
3804 -- Initialize the Error Stack
3805 pa_debug.set_err_stack('PA_EVENT_PUB.FETCH_EVENT');
3806
3807 --Log Message
3808 IF l_debug_mode = 'Y' THEN
3809 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.FETCH_EVENT.begin'
3810 ,x_msg => 'Beginning of Fetch_Event'
3811 ,x_log_level => 5);
3812 End If;
3813
3814
3815 --Set savepoint
3816 Savepoint fetch_event;
3817 p_msg_count := 0;
3818 p_return_status := FND_API.G_RET_STS_SUCCESS;
3819
3820 --Log Message
3821 IF l_debug_mode = 'Y' THEN
3822 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.FETCH_EVENT.begin'
3823 ,x_msg => 'Beginning of api compatibility check '
3824 ,x_log_level => 5);
3825 End If;
3826
3827 -- Standard call to check for api compatibility.
3828 IF NOT FND_API.Compatible_API_Call ( g_api_version_number ,
3829 p_api_version_number ,
3830 p_api_name ,
3831 G_PKG_NAME )
3832 THEN
3833 p_return_status:=FND_API.G_RET_STS_ERROR;
3834 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3835 END IF;
3836 -- CHECK WHETHER MANDATORY INCOMING PARAMETER PRODUCT CODE EXIST
3837
3838 IF (p_pm_product_code IS NULL)
3839 OR (p_pm_product_code = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
3840 THEN
3841 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3842 THEN
3843 pa_interface_utils_pub.map_new_amg_msg
3844 ( p_old_message_code => 'PA_PRODUCT_CODE_IS_MISS'
3845 ,p_msg_attribute => 'CHANGE'
3846 ,p_resize_flag => 'N'
3847 ,p_msg_context => 'EVENT'
3848 ,p_attribute1 => ''
3849 ,p_attribute2 => ''
3850 ,p_attribute3 => ''
3851 ,p_attribute4 => ''
3852 ,p_attribute5 => '');
3853 END IF;
3854 p_return_status := FND_API.G_RET_STS_ERROR;
3855 RAISE FND_API.G_EXC_ERROR;
3856 END IF;
3857
3858 --Log Message
3859 IF l_debug_mode = 'Y' THEN
3860 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.FETCH_EVENT.begin'
3861 ,x_msg => 'Begin Fetching event_id from event_reference'
3862 ,x_log_level => 5);
3863 End If;
3864
3865
3866 --Deriving event_id from p_pm_event_reference.
3867 If(p_pm_event_reference Is NOT NULL
3868 And p_pm_event_reference <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
3869 Then
3870 While tot_recs <= G_event_tbl_count
3871 loop
3872 If (G_event_out_tbl(tot_recs).pm_event_reference = p_pm_event_reference )
3873 Then
3874 P_event_id_out:=G_event_out_tbl(tot_recs).event_id;
3875 Exit;
3876 End If;
3877 tot_recs :=tot_recs + 1;
3878 End Loop;
3879 Else
3880 If FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3881 Then
3882 FND_MESSAGE.SET_NAME('PA','PA_API_CONV_ERROR_AMG'); -- Bug 2257612
3883 FND_MESSAGE.SET_TOKEN('ATTR_NAME','p_pm_event_reference');
3884 FND_MESSAGE.SET_TOKEN('ATTR_VALUE', p_pm_event_reference);
3885 FND_MSG_PUB.ADD;
3886 End If;
3887 p_return_status := FND_API.G_RET_STS_ERROR;
3888 RAISE FND_API.G_EXC_ERROR;
3889 END IF;
3890
3891 FND_MSG_PUB.Count_And_Get
3892 ( p_encoded => l_encoded
3893 , p_count => p_msg_count
3894 , p_data => p_msg_data );
3895
3896
3897 --Log Message
3898 IF l_debug_mode = 'Y' THEN
3899 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.FETCH_EVENT.begin'
3900 ,x_msg => 'End of Fetch_Event'
3901 ,x_log_level => 5);
3902 End If;
3903
3904 pa_debug.reset_err_stack; -- Reset error stack
3905
3906 EXCEPTION
3907 WHEN FND_API.G_EXC_ERROR
3908 THEN
3909 ROLLBACK to fetch_event;
3910 p_event_id_out := NULL; -- NOCOPY
3911 p_return_status := FND_API.G_RET_STS_ERROR;
3912 FND_MSG_PUB.Count_And_Get
3913 ( p_encoded => l_encoded
3914 , p_count => p_msg_count
3915 , p_data => p_msg_data );
3916
3917 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
3918 THEN
3919 ROLLBACK to fetch_event;
3920 p_event_id_out := NULL; -- NOCOPY
3921 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3922 FND_MSG_PUB.Count_And_Get
3923 ( p_encoded => l_encoded
3924 , p_count => p_msg_count
3925 , p_data => p_msg_data );
3926
3927 WHEN OTHERS
3928 THEN
3929 ROLLBACK to fetch_event;
3930 p_event_id_out := NULL; -- NOCOPY
3931 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3932
3933 PA_EVENT_PUB.PACKAGE_NAME
3934 :='(event_reference='||p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
3935 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'FETCH_EVENT';
3936
3937 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3938 THEN
3939 FND_MSG_PUB.add_exc_msg
3940 ( p_pkg_name => PACKAGE_NAME
3941 , p_procedure_name => PROCEDURE_NAME );
3942 PACKAGE_NAME:=NULL;
3943 PROCEDURE_NAME:=NULL;
3944 END IF;
3945
3946 FND_MSG_PUB.Count_And_Get
3947 ( p_encoded => l_encoded
3948 , p_count => p_msg_count
3949 , p_data => p_msg_data );
3950
3951
3952 END FETCH_EVENT;
3953
3954 -- ============================================================================
3955 --
3956 --Name: CHECK_DELETE_EVENT_OK
3957 --Type: procedure
3958 --Description: This API ONLY checks if an existing event or a set of existing events
3959 -- can be deleted or not.
3960 --Called subprograms:
3961 --
3962 --
3963 --
3964 --History:
3965
3966 -- ============================================================================
3967 PROCEDURE CHECK_DELETE_EVENT_OK
3968 (P_api_version_number IN NUMBER
3969 ,P_commit IN VARCHAR2
3970 ,P_init_msg_list IN VARCHAR2
3971 ,P_pm_product_code IN VARCHAR2
3972 ,P_pm_event_reference IN VARCHAR2
3973 ,P_event_id IN NUMBER
3974 ,P_del_event_ok_flag OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
3975 ,P_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
3976 ,P_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
3977 ,P_return_status OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
3978
3979
3980 AS
3981 p_api_name VARCHAR2(100):='CHECK_DELETE_EVENT_OK';
3982 l_event_id NUMBER:=NULL;
3983 l_encoded VARCHAR2(1):='F';
3984 l_pm_event_reference VARCHAR2(25);
3985 BEGIN
3986 -- Initialize the Error Stack
3987 pa_debug.set_err_stack('PA_EVENT_PUB.CHECK_DELETE_EVENT_OK');
3988
3989 --Log Message
3990 IF l_debug_mode = 'Y' THEN
3991 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CHECK_DELETE_EVENT_OK.begin'
3992 ,x_msg => 'Beginning of Check_Delete_Event_Ok'
3993 ,x_log_level => 5);
3994 END IF;
3995
3996 --Set savepoint
3997 Savepoint check_delete_event_ok;
3998 p_msg_count := 0;
3999 p_return_status := FND_API.G_RET_STS_SUCCESS;
4000
4001 --Log Message
4002 IF l_debug_mode = 'Y' THEN
4003 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CHECK_DELETE_EVENT_OK.begin'
4004 ,x_msg => 'Calling mandatory input parameters-1'
4005 ,x_log_level => 5);
4006 END IF;
4007
4008 --Validating mandatory input parameters-1
4009
4010 PA_EVENT_PVT.CHECK_MDTY_PARAMS1
4011 ( p_api_version_number =>p_api_version_number
4012 ,p_api_name =>p_api_name
4013 ,p_pm_product_code =>p_pm_product_code
4014 ,p_function_name =>'PA_EV_DEL_EVENT_OK'
4015 ,x_return_status =>p_return_status
4016 ,x_msg_count =>p_msg_count
4017 ,x_msg_data =>p_msg_data );
4018
4019 If p_return_status <> FND_API.G_RET_STS_SUCCESS
4020 Then
4021 IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR
4022 THEN
4023 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4024
4025 ELSIF p_return_status = FND_API.G_RET_STS_ERROR
4026 THEN
4027 RAISE FND_API.G_EXC_ERROR;
4028 END IF;
4029 End If;
4030
4031 --Log Message
4032 IF l_debug_mode = 'Y' THEN
4033 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CHECK_DELETE_EVENT_OK.begin'
4034 ,x_msg => 'Calling conv_event_ref_to_id'
4035 ,x_log_level => 5);
4036 END IF;
4037
4038 l_event_id:=p_event_id;
4039 --Validation of event_id or pm_event_reference and conversion to event_id
4040 If PA_EVENT_PVT.CONV_EVENT_REF_TO_ID
4041 (P_pm_product_code =>P_pm_product_code
4042 ,P_pm_event_reference =>l_pm_event_reference
4043 ,P_event_id =>l_event_id)
4044 ='N'
4045 Then
4046 p_return_status := FND_API.G_RET_STS_ERROR;
4047 RAISE FND_API.G_EXC_ERROR;
4048 End If;
4049
4050 --Log Message
4051 IF l_debug_mode = 'Y' THEN
4052 pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PUB.CHECK_DELETE_EVENT_OK.begin'
4053 ,x_msg => 'Calling Check_Event_Processed'
4054 ,x_log_level => 5);
4055 END IF;
4056
4057
4058 --Validating if the event is billed or revenue distributed
4059 --Calls PA_EVENT_UTILS.CHECK_EVENT_PROCESSED
4060
4061 If PA_EVENT_UTILS.CHECK_EVENT_PROCESSED
4062 (P_event_id =>l_event_id) IN ('N','I','R')/*For Bug 7305416*/
4063 Then
4064 pa_interface_utils_pub.map_new_amg_msg
4065 ( p_old_message_code => 'PA_TK_EVENT_IN_USE'
4066 ,p_msg_attribute => 'CHANGE'
4067 ,p_resize_flag => 'N'
4068 ,p_msg_context => 'EVENT'
4069 ,p_attribute1 => l_pm_event_reference
4070 ,p_attribute2 => ''
4071 ,p_attribute3 => ''
4072 ,p_attribute4 => ''
4073 ,p_attribute5 => '');
4074 p_return_status := FND_API.G_RET_STS_ERROR;
4075 RAISE FND_API.G_EXC_ERROR;
4076 END IF;
4077
4078 FND_MSG_PUB.Count_And_Get
4079 ( p_encoded => l_encoded
4080 , p_count => p_msg_count
4081 , p_data => p_msg_data );
4082
4083 pa_debug.reset_err_stack; -- Reset error stack
4084
4085
4086 EXCEPTION
4087 WHEN FND_API.G_EXC_ERROR
4088 THEN
4089 ROLLBACK to check_delete_event_ok;
4090 p_return_status := FND_API.G_RET_STS_ERROR;
4091 FND_MSG_PUB.Count_And_Get
4092 ( p_encoded => l_encoded
4093 , p_count => p_msg_count
4094 , p_data => p_msg_data );
4095
4096 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
4097 THEN
4098 ROLLBACK to check_delete_event_ok;
4099 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4100 FND_MSG_PUB.Count_And_Get
4101 ( p_encoded => l_encoded
4102 , p_count => p_msg_count
4103 , p_data => p_msg_data );
4104
4105 WHEN OTHERS
4106 THEN
4107 ROLLBACK to check_delete_event_ok;
4108 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4109
4110 PA_EVENT_PUB.PACKAGE_NAME
4111 :='(event_reference='||p_pm_event_reference||')'||PA_EVENT_PUB.PACKAGE_NAME||'PUBLIC';
4112 PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||substr(sqlerrm,1,80)||'CHECK_DELETE_EVENT_OK';
4113
4114 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4115 THEN
4116 FND_MSG_PUB.add_exc_msg
4117 ( p_pkg_name => PACKAGE_NAME
4118 , p_procedure_name => PROCEDURE_NAME );
4119 PACKAGE_NAME:=NULL;
4120 PROCEDURE_NAME:=NULL;
4121 END IF;
4122
4123 FND_MSG_PUB.Count_And_Get
4124 ( p_encoded => l_encoded
4125 , p_count => p_msg_count
4126 , p_data => p_msg_data );
4127
4128
4129 END CHECK_DELETE_EVENT_OK;
4130
4131 END PA_EVENT_PUB;