[Home] [Help]
PACKAGE BODY: APPS.PN_VAREN_PVT
Source
1 PACKAGE BODY pn_varen_pvt AS
2 /* $Header: PNVARPVB.pls 120.1 2010/12/15 10:22:16 seevivek noship $ */
3 --l_var_rent_id pn_var_rents_all.var_rent_id%TYPE := NULL;
4 l_var_rent_date_id pn_var_rent_dates_all.var_rent_date_id%TYPE := NULL;
5
6 --------------------------------------------------------------------------------
7 -- NAME : INSERT_CONSTRAINTS
8 -- DESCRIPTION :
9 -- PURPOSE : Calling pn_var_constr_defaults_pkg.insert_row procedure
10 -- INVOKED FROM :
11 -- ARGUMENTS : p_constraints_rec_type, x_return_status
12 -- REFERENCE :
13 -- HISTORY :
14 --
15 -- 20-SEP-2010 vkatta o Created
16 --------------------------------------------------------------------------------
17 FUNCTION get_attribute_status( p_desc_name VARCHAR2)
18 RETURN NUMBER;
19 PROCEDURE insert_constraints (
20 p_constraints_rec_type IN OUT NOCOPY constraints_rec_type
21 , x_return_status OUT NOCOPY VARCHAR2
22 )
23 IS
24 l_null VARCHAR2 (10) := NULL;
25 BEGIN
26 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Start of Insert_Constraints Procedure'
27 , 3
28 );
29 pn_varen_util.pvt_debug
30 ('PN_VAREN_PVT: Insert_Constraints: Input parameters to PN_VAR_CONSTR_DEFAULTS_PKG.Insert_Row package'
31 , 3
32 );
33 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.constr_default_id : '
34 || p_constraints_rec_type.constr_default_id
35 , 3
36 );
37 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.constr_default_num : '
38 || p_constraints_rec_type.constr_default_num
39 , 3
40 );
41 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.var_rent_id : '
42 || p_constraints_rec_type.var_rent_id
43 , 3
44 );
45 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.agreement_template_id : '
46 || p_constraints_rec_type.agreement_template_id
47 , 3
48 );
49 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.constr_template_id : '
50 || p_constraints_rec_type.constr_template_id
51 , 3
52 );
53 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.constr_start_date : '
54 || p_constraints_rec_type.constr_start_date
55 , 3
56 );
57 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.constr_end_date : '
58 || p_constraints_rec_type.constr_end_date
59 , 3
60 );
61 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.constr_cat_code : '
62 || p_constraints_rec_type.constr_cat_code
63 , 3
64 );
65 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.constr_type_code : '
66 || p_constraints_rec_type.constr_type_code
67 , 3
68 );
69 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.constr_amount : '
70 || p_constraints_rec_type.constr_amount
71 , 3
72 );
73 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.g_org_id : '
74 || g_org_id
75 , 3
76 );
77 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Constraints: p_constraints_rec_type.attribute_category : '
78 || p_constraints_rec_type.attribute_category
79 , 3
80 );
81 pn_var_constr_defaults_pkg.insert_row (x_rowid => g_rowid
82 , x_constr_default_id => p_constraints_rec_type.constr_default_id
83 , x_constr_default_num => p_constraints_rec_type.constr_default_num
84 , x_var_rent_id => p_constraints_rec_type.var_rent_id
85 , x_agreement_template_id => p_constraints_rec_type.agreement_template_id
86 , x_constr_template_id => p_constraints_rec_type.constr_template_id
87 , x_constr_start_date => p_constraints_rec_type.constr_start_date
88 , x_constr_end_date => p_constraints_rec_type.constr_end_date
89 , x_constr_cat_code => NVL
90 (p_constraints_rec_type.constr_cat_code
91 , 'VARENT'
92 )
93 , x_type_code => p_constraints_rec_type.constr_type_code
94 , x_amount => p_constraints_rec_type.constr_amount
95 , x_creation_date => NVL (p_constraints_rec_type.creation_date
96 , g_sysdate
97 )
98 , x_created_by => NVL (p_constraints_rec_type.created_by
99 , g_user_id
100 )
101 , x_last_update_date => NVL
102 (p_constraints_rec_type.last_update_date
103 , g_sysdate
104 )
105 , x_last_updated_by => NVL
106 (p_constraints_rec_type.last_updated_by
107 , g_user_id
108 )
109 , x_last_update_login => NVL
110 (p_constraints_rec_type.last_update_login
111 , g_user_id
112 )
113 , x_org_id => g_org_id
114 , x_attribute_category => p_constraints_rec_type.attribute_category
115 , x_attribute1 => p_constraints_rec_type.attribute1
116 , x_attribute2 => p_constraints_rec_type.attribute2
117 , x_attribute3 => p_constraints_rec_type.attribute3
118 , x_attribute4 => p_constraints_rec_type.attribute4
119 , x_attribute5 => p_constraints_rec_type.attribute5
120 , x_attribute6 => p_constraints_rec_type.attribute6
121 , x_attribute7 => p_constraints_rec_type.attribute7
122 , x_attribute8 => p_constraints_rec_type.attribute8
123 , x_attribute9 => p_constraints_rec_type.attribute9
124 , x_attribute10 => p_constraints_rec_type.attribute10
125 , x_attribute11 => p_constraints_rec_type.attribute11
126 , x_attribute12 => p_constraints_rec_type.attribute12
127 , x_attribute13 => p_constraints_rec_type.attribute13
128 , x_attribute14 => p_constraints_rec_type.attribute14
129 , x_attribute15 => p_constraints_rec_type.attribute15
130 );
131 x_return_status := fnd_api.g_ret_sts_success;
132 pn_varen_util.pvt_debug
133 ('PN_VAREN_PVT: Insert_Constraints: End of parameters to PN_VAR_CONSTR_DEFAULTS_PKG.Insert_Row package'
134 , 3
135 );
136 EXCEPTION
137 WHEN OTHERS
138 THEN
139 pn_varen_util.pvt_debug
140 ( 'PN_VAREN_PVT: Insert_Constraints: Exception Result of Pn_Var_Constr_Defaults_Pkg.Insert_Row procedure : '
141 || SQLERRM
142 , 3
143 );
144 x_return_status := fnd_api.g_ret_sts_error;
145 END insert_constraints;
146
147 --------------------------------------------------------------------------------
148 -- NAME : UPDATE_CONSTRAINTS
149 -- DESCRIPTION :
150 -- PURPOSE : Calling pn_var_constr_defaults_pkg.update_row procedure
151 -- INVOKED FROM :
152 -- ARGUMENTS : p_constraints_rec_type, x_return_status
153 -- REFERENCE :
154 -- HISTORY :
155 --
156 -- 11-OCT-2010 vkatta o Created
157 --------------------------------------------------------------------------------
158 PROCEDURE update_constraints (
159 p_constraints_rec_type IN OUT NOCOPY constraints_rec_type
160 , x_return_status OUT NOCOPY VARCHAR2
161 )
162 IS
163 l_null VARCHAR2 (10) := NULL;
164 BEGIN
165 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Start of Update_Constraints Procedure'
166 , 3
167 );
168 pn_varen_util.pvt_debug
169 ('PN_VAREN_PVT: Update_Constraints: Start of Input parameters to pn_var_constr_defaults_pkg.update_row package'
170 , 3
171 );
172 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.constr_default_id : '
173 || p_constraints_rec_type.constr_default_id
174 , 3
175 );
176 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.constr_default_num : '
177 || p_constraints_rec_type.constr_default_num
178 , 3
179 );
180 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.var_rent_id : '
181 || p_constraints_rec_type.var_rent_id
182 , 3
183 );
184 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.agreement_template_id : '
185 || p_constraints_rec_type.agreement_template_id
186 , 3
187 );
188 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.constr_template_id : '
189 || p_constraints_rec_type.constr_template_id
190 , 3
191 );
192 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.constr_start_date : '
193 || p_constraints_rec_type.constr_start_date
194 , 3
195 );
196 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.constr_end_date : '
197 || p_constraints_rec_type.constr_end_date
198 , 3
199 );
200 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.constr_cat_code : '
201 || p_constraints_rec_type.constr_cat_code
202 , 3
203 );
204 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.constr_type_code : '
205 || p_constraints_rec_type.constr_type_code
206 , 3
207 );
208 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.constr_amount : '
209 || p_constraints_rec_type.constr_amount
210 , 3
211 );
212 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.g_org_id : '
213 || g_org_id
214 , 3
215 );
216 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Constraints: p_constraints_rec_type.attribute_category : '
217 || p_constraints_rec_type.attribute_category
218 , 3
219 );
220 pn_varen_util.pvt_debug
221 ('PN_VAREN_PVT: Update_Constraints: End of Input parameters to pn_var_constr_defaults_pkg.update_row package'
222 , 3
223 );
224 pn_var_constr_defaults_pkg.update_row
225 (x_constr_default_id => p_constraints_rec_type.constr_default_id
226 , x_constr_default_num => p_constraints_rec_type.constr_default_num
227 , x_var_rent_id => p_constraints_rec_type.var_rent_id
228 , x_agreement_template_id => p_constraints_rec_type.agreement_template_id
229 , x_constr_template_id => p_constraints_rec_type.constr_template_id
230 , x_constr_start_date => p_constraints_rec_type.constr_start_date
231 , x_constr_end_date => p_constraints_rec_type.constr_end_date
232 , x_constr_cat_code => NVL
233 (p_constraints_rec_type.constr_cat_code
234 , 'VARENT'
235 ) -- IMP -- check the value in the updated record
236 , x_type_code => p_constraints_rec_type.constr_type_code
237 , x_amount => p_constraints_rec_type.constr_amount
238 , x_last_update_date => g_sysdate --p_constraints_rec_type.last_update_date
239 , x_last_updated_by => g_user_id --p_constraints_rec_type.last_updated_by
240 , x_last_update_login => g_user_id --p_constraints_rec_type.last_update_login
241 , x_attribute_category => p_constraints_rec_type.attribute_category
242 , x_attribute1 => p_constraints_rec_type.attribute1
243 , x_attribute2 => p_constraints_rec_type.attribute2
244 , x_attribute3 => p_constraints_rec_type.attribute3
245 , x_attribute4 => p_constraints_rec_type.attribute4
246 , x_attribute5 => p_constraints_rec_type.attribute5
247 , x_attribute6 => p_constraints_rec_type.attribute6
248 , x_attribute7 => p_constraints_rec_type.attribute7
249 , x_attribute8 => p_constraints_rec_type.attribute8
250 , x_attribute9 => p_constraints_rec_type.attribute9
251 , x_attribute10 => p_constraints_rec_type.attribute10
252 , x_attribute11 => p_constraints_rec_type.attribute11
253 , x_attribute12 => p_constraints_rec_type.attribute12
254 , x_attribute13 => p_constraints_rec_type.attribute13
255 , x_attribute14 => p_constraints_rec_type.attribute14
256 , x_attribute15 => p_constraints_rec_type.attribute15
257 );
258 x_return_status := fnd_api.g_ret_sts_success;
259 pn_varen_util.pvt_debug
260 ('PN_VAREN_PVT: Update_Constraints: End of parameters to pn_var_constr_defaults_pkg.update_Row package'
261 , 3
262 );
263 EXCEPTION
264 WHEN OTHERS
265 THEN
266 pn_varen_util.pvt_debug
267 ( 'PN_VAREN_PVT: Update_Constraints: Exception Result of Update_Constraints procedure : '
268 || SQLERRM
269 , 3
270 );
271 x_return_status := fnd_api.g_ret_sts_error;
272 END update_constraints;
273
274 --------------------------------------------------------------------------------
275 -- NAME : GENERATE_CONSTRAINTS
276 -- DESCRIPTION :
277 -- PURPOSE : Calling pn_var_defaults_pkg.create_default_constraints procedure
278 -- INVOKED FROM :
279 -- ARGUMENTS : p_var_rent_id, p_org_id, x_return_status
280 -- REFERENCE :
281 -- HISTORY :
282 --
283 -- 20-SEP-2010 vkatta o Created
284 --------------------------------------------------------------------------------
285 PROCEDURE generate_constraints (
286 -- p_commit IN VARCHAR2 DEFAULT fnd_api.g_false
287 p_var_rent_id IN NUMBER
288 -- ,p_constr_default_id IN NUMBER
289 -- ,p_constr_default_num IN NUMBER
290 , p_org_id IN NUMBER
291 -- ,p_generate_constraints IN VARCHAR2 DEFAULT 'N'
292 , x_return_status OUT NOCOPY VARCHAR2
293 )
294 IS
295 l_constr_created NUMBER := 0;
296 l_constr_default_id NUMBER;
297
298 --Check if the Constraints defaults are created
299 CURSOR c_constr_created
300 IS
301 SELECT COUNT (*)
302 , constr_default_id
303 FROM pn_var_constr_defaults_all
304 WHERE var_rent_id = p_var_rent_id
305 GROUP BY constr_default_id;
306 -- AND ( constr_default_id = p_constr_default_id
307 -- OR constr_default_num = p_constr_default_num
308 -- );
309 BEGIN
310 OPEN c_constr_created;
311
312 FETCH c_constr_created
313 INTO l_constr_created
314 , l_constr_default_id;
315
316 CLOSE c_constr_created;
317
318 IF l_constr_created <> 0
319 THEN
320 pn_var_defaults_pkg.create_default_constraints (p_var_rent_id);
321 x_return_status := fnd_api.g_ret_sts_success;
322 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Generate_Constraints is Success for constraints Details Id: '
323 || l_constr_default_id
324 , 3
325 );
326 --Commit only when success
327 -- IF p_commit = 'Y'
328 -- THEN
329 -- COMMIT;
330 -- END IF;
331 ELSE
332 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Generate_Constraints is Failed for constraints Details Id: '
333 || l_constr_default_id
334 , 3
335 );
336 x_return_status := fnd_api.g_ret_sts_error;
337 END IF;
338 EXCEPTION
339 WHEN OTHERS
340 THEN
341 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Generate_Constraints Exception Error: '
342 || SQLERRM
343 , 3
344 );
345 x_return_status := fnd_api.g_ret_sts_error;
346 END generate_constraints;
347
348 --------------------------------------------------------------------------------
349 -- NAME : UNDO_CONSTRAINTS
350 -- DESCRIPTION :
351 -- PURPOSE : Remove Constraints i.e, delete records from pn_var_constraints_all
352 -- for that VRA
353 -- INVOKED FROM :
354 -- ARGUMENTS : p_var_rent_id, x_return_status
355 -- REFERENCE :
356 -- HISTORY :
357 --
358 -- 11-OCT-2010 vkatta o Created
359 --------------------------------------------------------------------------------
360 PROCEDURE undo_constraints (
361 p_var_rent_id IN NUMBER
362 , x_return_status OUT NOCOPY VARCHAR2
363 )
364 IS
365 -- l_var_rent_id NUMBER;
366 BEGIN
367 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Undo_Constraints : Starting of removing Constraint records: '
368 , 3
369 );
370
371 DELETE FROM pn_var_constraints_all
372 WHERE constr_default_id IN (SELECT constr_default_id
373 FROM pn_var_constr_defaults_all
374 WHERE var_rent_id = p_var_rent_id);
375
376 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Undo_Constraints :Removing of Constraint record has been success '
377 , 3
378 );
379 x_return_status := fnd_api.g_ret_sts_success;
380 EXCEPTION
381 WHEN OTHERS
382 THEN
383 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Constraints Exception Error: '
384 || SQLERRM
385 , 3
386 );
387 x_return_status := fnd_api.g_ret_sts_error;
388 END undo_constraints;
389
390 --------------------------------------------------------------------------------
391 -- NAME : GENERATE_BREAKPOINTS
392 -- DESCRIPTION :
393 -- PURPOSE : Calling pn_var_defaults_pkg.create_setup_data and
394 -- pn_var_chg_cal_pkg.populate_transactions package
395 -- INVOKED FROM :
396 -- ARGUMENTS : p_var_rent_id, p_org_id, x_return_status
397 -- REFERENCE :
398 -- HISTORY :
399 --
400 -- 20-SEP-2010 vkatta o Created
401 --------------------------------------------------------------------------------
402 PROCEDURE generate_breakpoints (
403 -- p_commit IN VARCHAR2 DEFAULT fnd_api.g_false
404 p_var_rent_id IN NUMBER
405 -- ,p_bkdt_default_id IN NUMBER
406 -- ,p_bkdt_detail_num IN NUMBER
407 -- ,p_bkhd_default_id IN NUMBER
408 , p_org_id IN NUMBER
409 -- ,p_generate_breakpoints IN VARCHAR2 DEFAULT 'N'
410 , x_return_status OUT NOCOPY VARCHAR2
411 )
412 IS
413 l_bkpt_dtl_created NUMBER := 0;
414 l_bkdt_default_id NUMBER;
415
416 --Check if the Break point defaults are created
417 CURSOR c_brkpt_dtl_created
418 IS
419 SELECT COUNT (*)
420 -- ,bkdt_default_id
421 FROM pn_var_bkdt_defaults_all pvbd
422 WHERE pvbd.var_rent_id = p_var_rent_id;
423 -- AND ( pvbd.bkdt_default_id = p_bkdt_default_id
424 -- OR pvbd.bkdt_detail_num = bkdt_detail_num
425 -- )
426 -- AND pvbd.bkhd_default_id = p_bkhd_default_id;
427 BEGIN
428 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Start of Generate_Breakpoints procedure '
429 , 3
430 );
431
432 OPEN c_brkpt_dtl_created;
433
434 FETCH c_brkpt_dtl_created
435 INTO l_bkpt_dtl_created;
436
437 -- ,l_bkdt_default_id;
438 CLOSE c_brkpt_dtl_created;
439
440 IF l_bkpt_dtl_created <> 0
441 THEN
442 pn_varen_util.pvt_debug
443 ( 'PN_VAREN_PVT: Generate_Breakpoints, At least one breakpoint detail has been created : '
444 || l_bkpt_dtl_created
445 , 3
446 );
447 pn_var_defaults_pkg.create_setup_data (p_var_rent_id);
448 pn_var_chg_cal_pkg.populate_transactions (p_var_rent_id);
449 x_return_status := fnd_api.g_ret_sts_success;
450 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Generate_Breakpoints is Success for Var Rent Id: '
451 || l_var_rent_id
452 , 3
453 );
454 --Commit only when success
455 -- IF p_commit = 'Y'
456 -- THEN
457 -- COMMIT;
458 -- END IF;
459 ELSE
460 pn_varen_util.pvt_debug
461 ( 'PN_VAREN_PVT: Generate_Breakpoints: Breakpoint Detail Lines are not Created for breakpoint Hdr id: '
462 || l_bkdt_default_id
463 , 3
464 );
465 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
466 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Generate_Breakpoints: Breakpoint Detail Lines are not Created for breakpoint Hdr Id');
467 fnd_msg_pub.ADD;
468 RAISE fnd_api.g_exc_error;
469 END IF;
470 EXCEPTION
471 WHEN fnd_api.g_exc_error THEN
472 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Generate_Breakpoints: fnd_api.g_exc_error Exception Error: '
473 || SQLERRM
474 , 3
475 );
476 x_return_status := fnd_api.g_ret_sts_error;
477 WHEN OTHERS
478 THEN
479 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Generate_Breakpoints: OTHERS Exception Error: '
480 || SQLERRM
481 , 3
482 );
483 x_return_status := fnd_api.g_ret_sts_unexp_error;
484 END generate_breakpoints;
485
486 --------------------------------------------------------------------------------
487 -- NAME : UNDO_BREAKPOINTS
488 -- DESCRIPTION :
489 -- PURPOSE : Calling pn_var_defaults_pkg.delete_default_lines and
490 -- pn_var_defaults_pkg.delete_transactions package
491 -- INVOKED FROM :
492 -- ARGUMENTS : P_VAR_RENT_ID IN Parameter
493 -- : X_RETURN_STATUS OUT Parameter
494 -- : X_MSG_COUNT OUT Parameter
495 -- : X_MSG_DATA OUT Parameter
496 -- REFERENCE :
497 -- HISTORY :
498 --
499 -- 11-OCT-2010 vkatta o Created
500 --------------------------------------------------------------------------------
501 PROCEDURE undo_breakpoints (
502 p_var_rent_id IN NUMBER
503 --, p_line_default_id IN NUMBER
504 , x_return_status OUT NOCOPY VARCHAR2
505 -- , x_msg_count OUT NOCOPY NUMBER
506 -- , x_msg_data OUT NOCOPY VARCHAR2
507 )
508 IS
509 l_answer NUMBER := 1;
510 l_dummy VARCHAR2 (1);
511 l_bkhd_default_id NUMBER;
512 l_bkpt_header_id NUMBER;
513 l_line_def_id NUMBER;
514
515 CURSOR exists_line_cur
516 IS
517 SELECT line_default_id
518 FROM pn_var_line_defaults_all
519 WHERE var_rent_id = p_var_rent_id;
520
521 CURSOR exists_hd_def_cur
522 IS
523 SELECT bkhd_default_id
524 FROM pn_var_bkhd_defaults_all
525 WHERE line_default_id = l_line_def_id;
526
527 CURSOR exists_hd_def_cur_1
528 IS
529 SELECT 'x'
530 FROM DUAL
531 WHERE EXISTS (SELECT bkhd_default_id
532 FROM pn_var_bkhd_defaults_all
533 WHERE var_rent_id = p_var_rent_id);
534 BEGIN
535 x_return_status := fnd_api.g_ret_sts_success;
536 l_dummy := NULL;
537
538 OPEN exists_hd_def_cur_1;
539
540 FETCH exists_hd_def_cur_1
541 INTO l_dummy;
542
543 CLOSE exists_hd_def_cur_1;
544
545 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Breakpoints: Value of l_dummy : '
546 || l_dummy
547 , 3
548 );
549
550 IF l_dummy IS NOT NULL
551 THEN
552 -- fnd_message.set_name ('PN' , 'PN_WARN_TRANSACTION_SETUP_DEL' );
553 --fnd_msg_pub.ADD;
554 l_answer := 2;
555
556 --fnd_message.question(NAME_IN('parameter.pn_option_no'), NAME_IN('parameter.pn_option_yes'), NULL);
557 IF l_answer = 1
558 THEN -- Cancel
559 -- RAISE fnd_api.g_ret_sts_error;
560 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Breakpoints: Value of l_answer : '
561 || l_answer
562 , 3
563 );
564 x_return_status := fnd_api.g_ret_sts_error;
565 ELSE
566 FOR exists_lines_rec IN exists_line_cur
567 LOOP
568 l_line_def_id :=
569 exists_lines_rec.line_default_id;
570 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Breakpoints: Value of l_line_def_id : '
571 || l_line_def_id
572 , 3
573 );
574
575 --
576 FOR exists_hd_def_rec IN exists_hd_def_cur
577 LOOP
578 --
579 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Breakpoints: Value of p_var_rent_id : '
580 || p_var_rent_id
581 , 3
582 );
583 pn_varen_util.pvt_debug
584 ( 'PN_VAREN_PVT: Undo_Breakpoints: Value of exists_hd_def_rec.bkhd_default_id : '
585 || exists_hd_def_rec.bkhd_default_id
586 , 3
587 );
588 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Breakpoints: Value of l_bkpt_header_id : '
589 || l_bkpt_header_id
590 , 3
591 );
592 --
593 pn_var_defaults_pkg.delete_default_lines (p_var_rent_id
594 , exists_hd_def_rec.bkhd_default_id
595 , l_bkpt_header_id
596 );
597 pn_var_defaults_pkg.delete_transactions (p_var_rent_id
598 , exists_hd_def_rec.bkhd_default_id
599 , l_bkpt_header_id
600 );
601 END LOOP;
602 END LOOP;
603
604 -- fnd_message.set_name ('PN'
605 -- , 'PN_VAR_LINES_DELETED'
606 -- );
607 -- fnd_msg_pub.ADD;
608 pn_varen_util.pvt_debug
609 ('PN_VAREN_PVT: Undo_Breakpoints: You have successfully removed all breakpoint definitions from the variable rent agreement.'
610 , 3
611 );
612 END IF;
613 END IF;
614 --x_return_status := fnd_api.g_ret_sts_error;
615 EXCEPTION
616 WHEN OTHERS
617 THEN
618 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Breakpoints: Breakpoint Detail Lines Exception Error: '
619 || SQLERRM
620 , 3
621 );
622 x_return_status := fnd_api.g_ret_sts_error;
623 END undo_breakpoints;
624
625 --------------------------------------------------------------------------------
626 -- NAME : INSERT_ALLOW_ABAT
627 -- DESCRIPTION : Insert records into Allowance and Abatement table
628 -- PURPOSE : Calling pn_var_abat_defaults_pkg.insert_row package
629 -- INVOKED FROM :
630 -- ARGUMENTS : P_ALLOW_ABAT_REC_TYPE IN Parameter
631 -- : X_RETURN_STATUS OUT Parameter
632 -- REFERENCE :
633 -- HISTORY :
634 --
635 -- 20-SEP-2010 vkatta o Created
636 --------------------------------------------------------------------------------
637 PROCEDURE insert_allow_abat (
638 p_allow_abat_rec_type IN OUT NOCOPY allow_abat_rec_type
639 , x_return_status OUT NOCOPY VARCHAR2
640 )
641 IS
642 l_rowid VARCHAR2 (18);
643 l_null VARCHAR2 (10) := NULL;
644 BEGIN
645 pn_varen_util.pvt_debug
646 ('PN_VAREN_PVT: Insert_Allow_Abat: Start of Input parameters for pn_var_abat_defaults_pkg.insert_row package'
647 , 3
648 );
649 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Allow_Abat: p_allow_abat_rec_type.abatement_Id : '
650 || p_allow_abat_rec_type.abatement_id
651 , 3
652 );
653 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Allow_Abat: p_allow_abat_rec_type.abat_START_DATE : '
654 || p_allow_abat_rec_type.abat_start_date
655 , 3
656 );
657 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Allow_Abat: p_allow_abat_rec_type.abat_END_DATE : '
658 || p_allow_abat_rec_type.abat_end_date
659 , 3
660 );
661 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Allow_Abat: p_allow_abat_rec_type.abat_TYPE_CODE : '
662 || p_allow_abat_rec_type.abat_type_code
663 , 3
664 );
665 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Allow_Abat: p_allow_abat_rec_type.abat_AMOUNT : '
666 || p_allow_abat_rec_type.abat_amount
667 , 3
668 );
669 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Allow_Abat: p_allow_abat_rec_type.COMMENTS : '
670 || p_allow_abat_rec_type.comments
671 , 3
672 );
673 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Allow_Abat: p_allow_abat_rec_type.DESCRIPTION : '
674 || p_allow_abat_rec_type.description
675 , 3
676 );
677 pn_varen_util.pvt_debug
678 ( 'PN_VAREN_PVT: Insert_Allow_Abat: substr(p_allow_abat_rec_type.description , 1, 29) : '
679 || SUBSTR (p_allow_abat_rec_type.description
680 , 1
681 , 29
682 )
683 , 3
684 );
685 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Allow_Abat: p_allow_abat_rec_type.VAR_RENT_ID : '
686 || p_allow_abat_rec_type.var_rent_id
687 , 3
688 );
689 pn_varen_util.pvt_debug
690 ('PN_VAREN_PVT: Insert_Allow_Abat: End of Input parameters for pn_var_abat_defaults_pkg.insert_row package'
691 , 3
692 );
693 p_allow_abat_rec_type.description :=
694 SUBSTR (p_allow_abat_rec_type.description
695 , 1
696 , 29
697 );
698 -- p_allow_abat_rec_type.description -- form level length is 30, but where as db level it is 2000
699 pn_var_abat_defaults_pkg.insert_row (x_rowid => l_rowid
700 , x_abatement_id => p_allow_abat_rec_type.abatement_id
701 , x_var_rent_id => TO_NUMBER (p_allow_abat_rec_type.var_rent_id)
702 , x_start_date => p_allow_abat_rec_type.abat_start_date
703 , x_end_date => p_allow_abat_rec_type.abat_end_date
704 , x_type_code => p_allow_abat_rec_type.abat_type_code
705 , x_amount => TO_NUMBER (p_allow_abat_rec_type.abat_amount)
706 , x_description => p_allow_abat_rec_type.description
707 --substr (p_allow_abat_rec_type.description,1, 30)
708 , x_creation_date => NVL (p_allow_abat_rec_type.creation_date
709 , g_sysdate
710 )
711 , x_created_by => NVL (p_allow_abat_rec_type.created_by
712 , g_user_id
713 )
714 , x_last_update_date => NVL (p_allow_abat_rec_type.last_update_date
715 , g_sysdate
716 )
717 , x_last_updated_by => NVL (p_allow_abat_rec_type.last_updated_by
718 , g_user_id
719 )
720 , x_last_update_login => NVL
721 (p_allow_abat_rec_type.last_update_login
722 , g_user_id
723 )
724 , x_comments => p_allow_abat_rec_type.comments
725 , x_attribute_category => p_allow_abat_rec_type.attribute_category
726 , x_attribute1 => p_allow_abat_rec_type.attribute1
727 , x_attribute2 => p_allow_abat_rec_type.attribute2
728 , x_attribute3 => p_allow_abat_rec_type.attribute3
729 , x_attribute4 => p_allow_abat_rec_type.attribute4
730 , x_attribute5 => p_allow_abat_rec_type.attribute5
731 , x_attribute6 => p_allow_abat_rec_type.attribute6
732 , x_attribute7 => p_allow_abat_rec_type.attribute7
733 , x_attribute8 => p_allow_abat_rec_type.attribute8
734 , x_attribute9 => p_allow_abat_rec_type.attribute9
735 , x_attribute10 => p_allow_abat_rec_type.attribute10
736 , x_attribute11 => p_allow_abat_rec_type.attribute11
737 , x_attribute12 => p_allow_abat_rec_type.attribute12
738 , x_attribute13 => p_allow_abat_rec_type.attribute13
739 , x_attribute14 => p_allow_abat_rec_type.attribute14
740 , x_attribute15 => p_allow_abat_rec_type.attribute15
741 , x_org_id => g_org_id --l_org_id
742 );
743 x_return_status := fnd_api.g_ret_sts_success;
744 pn_varen_util.pvt_debug
745 ('PN_VAREN_PVT: Insert_Allow_Abat: Success Result of pn_var_abat_defaults_pkg.insert_row package'
746 , 3
747 );
748 EXCEPTION
749 WHEN OTHERS
750 THEN
751 pn_varen_util.pvt_debug
752 ( 'PN_VAREN_PVT: Insert_Allow_Abat: Exception Result of insert_allow_and_abat procedure : '
753 || SQLERRM
754 , 3
755 );
756 x_return_status := fnd_api.g_ret_sts_error;
757 END insert_allow_abat;
758
759 --------------------------------------------------------------------------------
760 -- NAME : UPDATE_ALLOW_ABAT
761 -- DESCRIPTION : Update records into Allowance and Abatement table
762 -- PURPOSE : Calling pn_var_abat_defaults_pkg.update_row package
763 -- INVOKED FROM :
764 -- ARGUMENTS : P_ALLOW_ABAT_REC_TYPE IN Parameter
765 -- : X_RETURN_STATUS OUT Parameter
766 -- REFERENCE :
767 -- HISTORY :
768 --
769 -- 11-OCT-2010 vkatta o Created
770 --------------------------------------------------------------------------------
771 PROCEDURE update_allow_abat (
772 p_allow_abat_rec_type IN OUT NOCOPY allow_abat_rec_type
773 , x_return_status OUT NOCOPY VARCHAR2
774 )
775 IS
776 l_rowid VARCHAR2 (18);
777 l_null VARCHAR2 (10) := NULL;
778 BEGIN
779 pn_varen_util.pvt_debug
780 ('PN_VAREN_PVT: Update_Allow_Abat: Start of Input parameters for pn_var_abat_defaults_pkg.update_row package'
781 , 3
782 );
783 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Allow_Abat: p_allow_abat_rec_type.abatement_Id : '
784 || p_allow_abat_rec_type.abatement_id
785 , 3
786 );
787 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Allow_Abat: p_allow_abat_rec_type.abat_START_DATE : '
788 || p_allow_abat_rec_type.abat_start_date
789 , 3
790 );
791 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Allow_Abat: p_allow_abat_rec_type.abat_END_DATE : '
792 || p_allow_abat_rec_type.abat_end_date
793 , 3
794 );
795 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Allow_Abat: p_allow_abat_rec_type.abat_TYPE_CODE : '
796 || p_allow_abat_rec_type.abat_type_code
797 , 3
798 );
799 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Allow_Abat: p_allow_abat_rec_type.abat_AMOUNT : '
800 || p_allow_abat_rec_type.abat_amount
801 , 3
802 );
803 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Allow_Abat: p_allow_abat_rec_type.COMMENTS : '
804 || p_allow_abat_rec_type.comments
805 , 3
806 );
807 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Allow_Abat: p_allow_abat_rec_type.DESCRIPTION : '
808 || p_allow_abat_rec_type.description
809 , 3
810 );
811 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Allow_Abat: p_allow_abat_rec_type.VAR_RENT_ID : '
812 || p_allow_abat_rec_type.var_rent_id
813 , 3
814 );
815 pn_varen_util.pvt_debug
816 ('PN_VAREN_PVT: Update_Allow_Abat: End of Input parameters for pn_var_abat_defaults_pkg.update_row package'
817 , 3
818 );
819 pn_varen_util.pvt_debug
820 ( 'PN_VAREN_PVT: Update_Allow_Abat: Values ofp_allow_abat_rec_type.abatement_id and p_allow_abat_rec_type.abat_type_code'
821 || p_allow_abat_rec_type.abatement_id
822 || '-'
823 || p_allow_abat_rec_type.abat_type_code
824 , 3
825 );
826 pn_var_abat_defaults_pkg.update_row (x_abatement_id => p_allow_abat_rec_type.abatement_id
827 , x_var_rent_id => p_allow_abat_rec_type.var_rent_id
828 , x_start_date => p_allow_abat_rec_type.abat_start_date
829 , x_end_date => p_allow_abat_rec_type.abat_end_date
830 , x_type_code => p_allow_abat_rec_type.abat_type_code
831 , x_amount => p_allow_abat_rec_type.abat_amount
832 , x_description => p_allow_abat_rec_type.description
833 , x_last_update_date => g_sysdate
834 --p_allow_abat_rec_type.last_update_date
835 , x_last_updated_by => g_user_id
836 --p_allow_abat_rec_type.last_updated_by
837 , x_creation_date => p_allow_abat_rec_type.creation_date
838 , x_created_by => p_allow_abat_rec_type.created_by
839 , x_last_update_login => g_user_id
840 --p_allow_abat_rec_type.last_update_login
841 , x_comments => p_allow_abat_rec_type.comments
842 , x_attribute_category => p_allow_abat_rec_type.attribute_category
843 , x_attribute1 => p_allow_abat_rec_type.attribute1
844 , x_attribute2 => p_allow_abat_rec_type.attribute2
845 , x_attribute3 => p_allow_abat_rec_type.attribute3
846 , x_attribute4 => p_allow_abat_rec_type.attribute4
847 , x_attribute5 => p_allow_abat_rec_type.attribute5
848 , x_attribute6 => p_allow_abat_rec_type.attribute6
849 , x_attribute7 => p_allow_abat_rec_type.attribute7
850 , x_attribute8 => p_allow_abat_rec_type.attribute8
851 , x_attribute9 => p_allow_abat_rec_type.attribute9
852 , x_attribute10 => p_allow_abat_rec_type.attribute10
853 , x_attribute11 => p_allow_abat_rec_type.attribute11
854 , x_attribute12 => p_allow_abat_rec_type.attribute12
855 , x_attribute13 => p_allow_abat_rec_type.attribute13
856 , x_attribute14 => p_allow_abat_rec_type.attribute14
857 , x_attribute15 => p_allow_abat_rec_type.attribute15
858 , x_org_id => p_allow_abat_rec_type.org_id
859 );
860 x_return_status := fnd_api.g_ret_sts_success;
861 pn_varen_util.pvt_debug
862 ('PN_VAREN_PVT: Update_Allow_Abat: Success Result of pn_var_abat_defaults_pkg.update_row package'
863 , 3
864 );
865 EXCEPTION
866 WHEN OTHERS
867 THEN
868 pn_varen_util.pvt_debug
869 ( 'PN_VAREN_PVT: Update_Allow_Abat: Exception Result of Update_allow_abat procedure : '
870 || SQLERRM
871 , 3
872 );
873 x_return_status := fnd_api.g_ret_sts_error;
874 END update_allow_abat;
875
876 --------------------------------------------------------------------------------
877 -- NAME : INSERT_BREAKPOINT_DETAILS
878 -- DESCRIPTION : Insert records into Breakpoint Details
879 -- PURPOSE : Calling pn_var_bkdt_defaults_pkg.insert_row package
880 -- INVOKED FROM :
881 -- ARGUMENTS : P_BREAKPOINT_DETAILS_REC_TYPE IN Parameter
882 -- : X_RETURN_STATUS OUT Parameter
883 -- REFERENCE :
884 -- HISTORY :
885 --
886 -- 20-SEP-2010 vkatta o Created
887 --------------------------------------------------------------------------------
888 PROCEDURE insert_breakpoint_details (
889 p_breakpoint_details_rec_type IN OUT NOCOPY breakpoint_details_rec_type
890 , x_return_status OUT NOCOPY VARCHAR2
891 )
892 IS
893 l_rowid VARCHAR2 (18);
894 l_null VARCHAR2 (10) := NULL;
895 BEGIN
896 p_breakpoint_details_rec_type.bkdt_default_id := NULL;
897 pn_varen_util.pvt_debug
898 ('PN_VAREN_PVT: Insert_Breakpoint_Details: Start of Input parameters for PN_VAR_BKDT_DEFAULTS_PKG.INSERT_ROW package'
899 , 3
900 );
901 pn_varen_util.pvt_debug
902 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.BKDT_DEFAULT_ID : '
903 || p_breakpoint_details_rec_type.bkdt_default_id
904 , 3
905 );
906 pn_varen_util.pvt_debug
907 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.BKDT_DETAIL_NUM : '
908 || p_breakpoint_details_rec_type.bkdt_detail_num
909 , 3
910 );
911 pn_varen_util.pvt_debug
912 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.BKHD_DEFAULT_ID : '
913 || p_breakpoint_details_rec_type.bkhd_default_id
914 , 3
915 );
916 pn_varen_util.pvt_debug
917 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.BKDT_START_DATE : '
918 || p_breakpoint_details_rec_type.bkdt_start_date
919 , 3
920 );
921 pn_varen_util.pvt_debug
922 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.BKDT_END_DATE : '
923 || p_breakpoint_details_rec_type.bkdt_end_date
924 , 3
925 );
926 pn_varen_util.pvt_debug
927 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.PERIOD_BKPT_VOL_START : '
928 || p_breakpoint_details_rec_type.period_bkpt_vol_start
929 , 3
930 );
931 pn_varen_util.pvt_debug
932 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.PERIOD_BKPT_VOL_END : '
933 || p_breakpoint_details_rec_type.period_bkpt_vol_end
934 , 3
935 );
936 pn_varen_util.pvt_debug
937 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.GROUP_BKPT_VOL_START : '
938 || p_breakpoint_details_rec_type.group_bkpt_vol_start
939 , 3
940 );
941 pn_varen_util.pvt_debug
942 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.GROUP_BKPT_VOL_END : '
943 || p_breakpoint_details_rec_type.group_bkpt_vol_end
944 , 3
945 );
946 pn_varen_util.pvt_debug
947 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.VAR_RENT_ID : '
948 || p_breakpoint_details_rec_type.var_rent_id
949 , 3
950 );
951 pn_varen_util.pvt_debug
952 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: p_breakpoint_details_rec_type.ANNUAL_BASIS_AMOUNT : '
953 || p_breakpoint_details_rec_type.annual_basis_amount
954 , 3
955 );
956 pn_varen_util.pvt_debug
957 ('PN_VAREN_PVT: Insert_Breakpoint_Details: End of Input parameters for PN_VAR_BKDT_DEFAULTS_PKG.INSERT_ROW package'
958 , 3
959 );
960 pn_varen_util.pvt_debug ( ' Value of bkdt_detail_num , before pn_var_bkdt_defaults_pkg.insert_row : '
961 || p_breakpoint_details_rec_type.bkdt_detail_num
962 , 3
963 );
964 pn_varen_util.pvt_debug ( ' Value of bkpt_rate , before pn_var_bkdt_defaults_pkg.insert_row : '
965 || p_breakpoint_details_rec_type.bkpt_rate
966 , 3
967 );
968 pn_var_bkdt_defaults_pkg.insert_row
969 (x_rowid => l_rowid
970 , x_bkdt_default_id => p_breakpoint_details_rec_type.bkdt_default_id
971 , x_bkdt_detail_num => p_breakpoint_details_rec_type.bkdt_detail_num
972 , x_bkhd_default_id => p_breakpoint_details_rec_type.bkhd_default_id
973 , x_bkdt_start_date => p_breakpoint_details_rec_type.bkdt_start_date
974 , x_bkdt_end_date => p_breakpoint_details_rec_type.bkdt_end_date
975 , x_period_bkpt_vol_start => p_breakpoint_details_rec_type.period_bkpt_vol_start
976 , x_period_bkpt_vol_end => p_breakpoint_details_rec_type.period_bkpt_vol_end
977 , x_group_bkpt_vol_start => p_breakpoint_details_rec_type.group_bkpt_vol_start
978 , x_group_bkpt_vol_end => p_breakpoint_details_rec_type.group_bkpt_vol_end
979 , x_bkpt_rate => p_breakpoint_details_rec_type.bkpt_rate
980 , x_processed_flag => l_null
981 , x_var_rent_id => p_breakpoint_details_rec_type.var_rent_id
982 , x_creation_date => NVL
983 (p_breakpoint_details_rec_type.creation_date
984 , g_sysdate
985 )
986 , x_created_by => NVL (p_breakpoint_details_rec_type.created_by
987 , g_user_id
988 )
989 , x_last_update_date => NVL
990 (p_breakpoint_details_rec_type.last_update_date
991 , g_sysdate
992 )
993 , x_last_updated_by => NVL
994 (p_breakpoint_details_rec_type.last_updated_by
995 , g_user_id
996 )
997 , x_last_update_login => NVL
998 (p_breakpoint_details_rec_type.last_update_login
999 , g_user_id
1000 )
1001 , x_org_id => g_org_id --l_org_id
1002 , x_annual_basis_amount => p_breakpoint_details_rec_type.annual_basis_amount
1003 , x_attribute_category => p_breakpoint_details_rec_type.attribute_category
1004 , x_attribute1 => p_breakpoint_details_rec_type.attribute1
1005 , x_attribute2 => p_breakpoint_details_rec_type.attribute2
1006 , x_attribute3 => p_breakpoint_details_rec_type.attribute3
1007 , x_attribute4 => p_breakpoint_details_rec_type.attribute4
1008 , x_attribute5 => p_breakpoint_details_rec_type.attribute5
1009 , x_attribute6 => p_breakpoint_details_rec_type.attribute6
1010 , x_attribute7 => p_breakpoint_details_rec_type.attribute7
1011 , x_attribute8 => p_breakpoint_details_rec_type.attribute8
1012 , x_attribute9 => p_breakpoint_details_rec_type.attribute9
1013 , x_attribute10 => p_breakpoint_details_rec_type.attribute10
1014 , x_attribute11 => p_breakpoint_details_rec_type.attribute11
1015 , x_attribute12 => p_breakpoint_details_rec_type.attribute12
1016 , x_attribute13 => p_breakpoint_details_rec_type.attribute13
1017 , x_attribute14 => p_breakpoint_details_rec_type.attribute14
1018 , x_attribute15 => p_breakpoint_details_rec_type.attribute15
1019 );
1020 x_return_status := fnd_api.g_ret_sts_success;
1021 pn_varen_util.pvt_debug
1022 ('PN_VAREN_PVT: Insert_Breakpoint_Details: Success Result of pn_var_bkdt_defaults_pkg.insert_row package'
1023 , 3
1024 );
1025 EXCEPTION
1026 WHEN OTHERS
1027 THEN
1028 pn_varen_util.pvt_debug
1029 ( 'PN_VAREN_PVT: Insert_Breakpoint_Details: Exception Result of insert_breakpoint_Details procedure : '
1030 || SQLERRM
1031 , 3
1032 );
1033 x_return_status := fnd_api.g_ret_sts_error;
1034 END insert_breakpoint_details;
1035
1036 --------------------------------------------------------------------------------
1037 -- NAME : UPDATE_BREAKPOINT_DETAILS
1038 -- DESCRIPTION : Update records into Breakpoint Details
1039 -- PURPOSE : Calling pn_var_bkdt_defaults_pkg.update_row package
1040 -- INVOKED FROM :
1041 -- ARGUMENTS : P_BREAKPOINT_DETAILS_REC_TYPE IN Parameter
1042 -- : X_RETURN_STATUS OUT Parameter
1043 -- REFERENCE :
1044 -- HISTORY :
1045 --
1046 -- 11-OCT-2010 vkatta o Created
1047 --------------------------------------------------------------------------------
1048 PROCEDURE update_breakpoint_details (
1049 p_breakpoint_details_rec_type IN OUT NOCOPY breakpoint_details_rec_type
1050 , x_return_status OUT NOCOPY VARCHAR2
1051 )
1052 IS
1053 l_not_used VARCHAR2 (20) := NULL;
1054 BEGIN
1055 pn_varen_util.pvt_debug
1056 ('PN_VAREN_PVT: Update_Breakpoint_Details: Start of Input parameters for PN_VAR_BKDT_DEFAULTS_PKG.UPDATE_ROW package'
1057 , 3
1058 );
1059 pn_varen_util.pvt_debug
1060 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.BKDT_DEFAULT_ID : '
1061 || p_breakpoint_details_rec_type.bkdt_default_id
1062 , 3
1063 );
1064 pn_varen_util.pvt_debug
1065 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.BKDT_DETAIL_NUM : '
1066 || p_breakpoint_details_rec_type.bkdt_detail_num
1067 , 3
1068 );
1069 pn_varen_util.pvt_debug
1070 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.BKHD_DEFAULT_ID : '
1071 || p_breakpoint_details_rec_type.bkhd_default_id
1072 , 3
1073 );
1074 pn_varen_util.pvt_debug
1075 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.BKDT_START_DATE : '
1076 || p_breakpoint_details_rec_type.bkdt_start_date
1077 , 3
1078 );
1079 pn_varen_util.pvt_debug
1080 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.BKDT_END_DATE : '
1081 || p_breakpoint_details_rec_type.bkdt_end_date
1082 , 3
1083 );
1084 pn_varen_util.pvt_debug
1085 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.PERIOD_BKPT_VOL_START : '
1086 || p_breakpoint_details_rec_type.period_bkpt_vol_start
1087 , 3
1088 );
1089 pn_varen_util.pvt_debug
1090 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.PERIOD_BKPT_VOL_END : '
1091 || p_breakpoint_details_rec_type.period_bkpt_vol_end
1092 , 3
1093 );
1094 pn_varen_util.pvt_debug
1095 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.GROUP_BKPT_VOL_START : '
1096 || p_breakpoint_details_rec_type.group_bkpt_vol_start
1097 , 3
1098 );
1099 pn_varen_util.pvt_debug
1100 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.GROUP_BKPT_VOL_END : '
1101 || p_breakpoint_details_rec_type.group_bkpt_vol_end
1102 , 3
1103 );
1104 pn_varen_util.pvt_debug
1105 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.VAR_RENT_ID : '
1106 || p_breakpoint_details_rec_type.var_rent_id
1107 , 3
1108 );
1109 pn_varen_util.pvt_debug
1110 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: p_breakpoint_details_rec_type.ANNUAL_BASIS_AMOUNT : '
1111 || p_breakpoint_details_rec_type.annual_basis_amount
1112 , 3
1113 );
1114 pn_varen_util.pvt_debug
1115 ('PN_VAREN_PVT: Update_Breakpoint_Details: End of Input parameters for PN_VAR_BKDT_DEFAULTS_PKG.UPDATE_ROW package'
1116 , 3
1117 );
1118 pn_var_bkdt_defaults_pkg.update_row
1119 (x_bkdt_default_id => p_breakpoint_details_rec_type.bkdt_default_id
1120 , x_bkdt_detail_num => p_breakpoint_details_rec_type.bkdt_detail_num
1121 , x_bkhd_default_id => p_breakpoint_details_rec_type.bkhd_default_id
1122 , x_bkdt_start_date => p_breakpoint_details_rec_type.bkdt_start_date
1123 , x_bkdt_end_date => p_breakpoint_details_rec_type.bkdt_end_date
1124 , x_period_bkpt_vol_start => p_breakpoint_details_rec_type.period_bkpt_vol_start
1125 , x_period_bkpt_vol_end => p_breakpoint_details_rec_type.period_bkpt_vol_end
1126 , x_group_bkpt_vol_start => p_breakpoint_details_rec_type.group_bkpt_vol_start
1127 , x_group_bkpt_vol_end => p_breakpoint_details_rec_type.group_bkpt_vol_end
1128 , x_bkpt_rate => p_breakpoint_details_rec_type.bkpt_rate
1129 , x_processed_flag => l_not_used
1130 -- IMP p_breakpoint_details_rec_type.PROCESSED_FLAG
1131 , x_var_rent_id => p_breakpoint_details_rec_type.var_rent_id
1132 , x_last_update_date => g_sysdate
1133 --p_breakpoint_details_rec_type.last_update_date
1134 , x_last_updated_by => g_user_id
1135 --p_breakpoint_details_rec_type.last_updated_by
1136 , x_last_update_login => g_user_id
1137 --p_breakpoint_details_rec_type.last_update_login
1138 , x_annual_basis_amount => l_not_used
1139 , x_attribute_category => p_breakpoint_details_rec_type.attribute_category
1140 , x_attribute1 => p_breakpoint_details_rec_type.attribute1
1141 , x_attribute2 => p_breakpoint_details_rec_type.attribute2
1142 , x_attribute3 => p_breakpoint_details_rec_type.attribute3
1143 , x_attribute4 => p_breakpoint_details_rec_type.attribute4
1144 , x_attribute5 => p_breakpoint_details_rec_type.attribute5
1145 , x_attribute6 => p_breakpoint_details_rec_type.attribute6
1146 , x_attribute7 => p_breakpoint_details_rec_type.attribute7
1147 , x_attribute8 => p_breakpoint_details_rec_type.attribute8
1148 , x_attribute9 => p_breakpoint_details_rec_type.attribute9
1149 , x_attribute10 => p_breakpoint_details_rec_type.attribute10
1150 , x_attribute11 => p_breakpoint_details_rec_type.attribute11
1151 , x_attribute12 => p_breakpoint_details_rec_type.attribute12
1152 , x_attribute13 => p_breakpoint_details_rec_type.attribute13
1153 , x_attribute14 => p_breakpoint_details_rec_type.attribute14
1154 , x_attribute15 => p_breakpoint_details_rec_type.attribute15
1155 );
1156 x_return_status := fnd_api.g_ret_sts_success;
1157 pn_varen_util.pvt_debug
1158 ('PN_VAREN_PVT: Update_Breakpoint_Details: Success Result of pn_var_bkdt_defaults_pkg.update_row package'
1159 , 3
1160 );
1161 EXCEPTION
1162 WHEN OTHERS
1163 THEN
1164 pn_varen_util.pvt_debug
1165 ( 'PN_VAREN_PVT: Update_Breakpoint_Details: Exception Result of update_breakpoint_details procedure : '
1166 || SQLERRM
1167 , 3
1168 );
1169 x_return_status := fnd_api.g_ret_sts_error;
1170 END update_breakpoint_details;
1171
1172 --------------------------------------------------------------------------------
1173 -- NAME : INSERT_BREAKPOINT_HEADERS
1174 -- DESCRIPTION : Insert records into Breakpoint Header
1175 -- PURPOSE : Calling pn_var_bkhd_defaults_pkg.insert_row package
1176 -- INVOKED FROM :
1177 -- ARGUMENTS : P_BREAKPOINT_HEADER_REC_TYPE IN Parameter
1178 -- : X_RETURN_STATUS OUT Parameter
1179 -- REFERENCE :
1180 -- HISTORY :
1181 --
1182 -- 20-SEP-2010 vkatta o Created
1183 --------------------------------------------------------------------------------
1184 PROCEDURE insert_breakpoint_headers (
1185 p_breakpoint_header_rec_type IN OUT NOCOPY breakpoint_header_rec_type
1186 , x_return_status OUT NOCOPY VARCHAR2
1187 )
1188 IS
1189 l_not_used VARCHAR2 (20) := NULL;
1190 l_base_rent_type VARCHAR2 (30) := 'ROLLING';
1191 BEGIN
1192 pn_varen_util.pvt_debug
1193 ('PN_VAREN_PVT: Insert_Breakpoint_Headers: Start of Input parameters for pn_var_bkhd_defaults_pkg.insert_row package'
1194 , 3
1195 );
1196 pn_varen_util.pvt_debug
1197 ( 'PN_VAREN_PVT: Insert_Breakpoint_Headers: p_breakpoint_header_rec_type.bkhd_default_id : '
1198 || p_breakpoint_header_rec_type.bkhd_default_id
1199 , 3
1200 );
1201 pn_varen_util.pvt_debug
1202 ( 'PN_VAREN_PVT: Insert_Breakpoint_Headers: p_breakpoint_header_rec_type.bkhd_detail_num : '
1203 || p_breakpoint_header_rec_type.bkhd_detail_num
1204 , 3
1205 );
1206 pn_varen_util.pvt_debug
1207 ( 'PN_VAREN_PVT: Insert_Breakpoint_Headers: p_breakpoint_header_rec_type.line_default_id : '
1208 || p_breakpoint_header_rec_type.line_default_id
1209 , 3
1210 );
1211 pn_varen_util.pvt_debug
1212 ( 'PN_VAREN_PVT: Insert_Breakpoint_Headers: p_breakpoint_header_rec_type.bkhd_start_date : '
1213 || p_breakpoint_header_rec_type.bkhd_start_date
1214 , 3
1215 );
1216 pn_varen_util.pvt_debug
1217 ( 'PN_VAREN_PVT: Insert_Breakpoint_Headers: p_breakpoint_header_rec_type.bkhd_end_date : '
1218 || p_breakpoint_header_rec_type.bkhd_end_date
1219 , 3
1220 );
1221 pn_varen_util.pvt_debug
1222 ( 'PN_VAREN_PVT: Insert_Breakpoint_Headers: p_breakpoint_header_rec_type.break_type_code : '
1223 || p_breakpoint_header_rec_type.break_type_code
1224 , 3
1225 );
1226 pn_varen_util.pvt_debug
1227 ( 'PN_VAREN_PVT: Insert_Breakpoint_Headers: p_breakpoint_header_rec_type.natural_break_rate : '
1228 || p_breakpoint_header_rec_type.natural_break_rate
1229 , 3
1230 );
1231 pn_varen_util.pvt_debug
1232 ( 'PN_VAREN_PVT: Insert_Breakpoint_Headers: p_breakpoint_header_rec_type.var_rent_id : '
1233 || p_breakpoint_header_rec_type.var_rent_id
1234 , 3
1235 );
1236 pn_varen_util.pvt_debug
1237 ('PN_VAREN_PVT: Insert_Breakpoint_Headers: End of Input parameters for pn_var_bkhd_defaults_pkg.insert_row package'
1238 , 3
1239 );
1240
1241 BEGIN
1242 p_breakpoint_header_rec_type.bkhd_detail_num := NULL;
1243 pn_varen_util.pvt_debug
1244 ('PN_VAREN_PVT: Insert_Breakpoint_Headers: Before the Package pn_var_bkhd_defaults_pkg.insert_row'
1245 , 3
1246 );
1247 pn_var_bkhd_defaults_pkg.insert_row
1248 (x_rowid => g_rowid
1249 , x_bkhd_default_id => p_breakpoint_header_rec_type.bkhd_default_id
1250 , x_bkhd_detail_num => p_breakpoint_header_rec_type.bkhd_detail_num
1251 , x_line_default_id => p_breakpoint_header_rec_type.line_default_id
1252 , x_bkpt_head_template_id => l_not_used
1253 , x_agreement_template_id => l_not_used
1254 , x_bkhd_start_date => p_breakpoint_header_rec_type.bkhd_start_date
1255 , x_bkhd_end_date => p_breakpoint_header_rec_type.bkhd_end_date
1256 , x_break_type => p_breakpoint_header_rec_type.break_type_code
1257 , x_base_rent_type => l_base_rent_type
1258 , x_natural_break_rate => p_breakpoint_header_rec_type.natural_break_rate
1259 , x_base_rent => l_not_used
1260 , x_breakpoint_type => p_breakpoint_header_rec_type.breakpoint_type_code
1261 , x_breakpoint_level => l_not_used
1262 , x_processed_flag => l_not_used
1263 , x_var_rent_id => p_breakpoint_header_rec_type.var_rent_id
1264 , x_creation_date => NVL
1265 (p_breakpoint_header_rec_type.creation_date
1266 , g_sysdate
1267 )
1268 , x_created_by => NVL
1269 (p_breakpoint_header_rec_type.created_by
1270 , g_user_id
1271 )
1272 , x_last_update_date => NVL
1273 (p_breakpoint_header_rec_type.last_update_date
1274 , g_sysdate
1275 )
1276 , x_last_updated_by => NVL
1277 (p_breakpoint_header_rec_type.last_updated_by
1278 , g_user_id
1279 )
1280 , x_last_update_login => NVL
1281 (p_breakpoint_header_rec_type.last_update_login
1282 , g_user_id
1283 )
1284 , x_org_id => g_org_id --l_org_id
1285 , x_attribute_category => p_breakpoint_header_rec_type.attribute_category
1286 , x_attribute1 => p_breakpoint_header_rec_type.attribute1
1287 , x_attribute2 => p_breakpoint_header_rec_type.attribute2
1288 , x_attribute3 => p_breakpoint_header_rec_type.attribute3
1289 , x_attribute4 => p_breakpoint_header_rec_type.attribute4
1290 , x_attribute5 => p_breakpoint_header_rec_type.attribute5
1291 , x_attribute6 => p_breakpoint_header_rec_type.attribute6
1292 , x_attribute7 => p_breakpoint_header_rec_type.attribute7
1293 , x_attribute8 => p_breakpoint_header_rec_type.attribute8
1294 , x_attribute9 => p_breakpoint_header_rec_type.attribute9
1295 , x_attribute10 => p_breakpoint_header_rec_type.attribute10
1296 , x_attribute11 => p_breakpoint_header_rec_type.attribute11
1297 , x_attribute12 => p_breakpoint_header_rec_type.attribute12
1298 , x_attribute13 => p_breakpoint_header_rec_type.attribute13
1299 , x_attribute14 => p_breakpoint_header_rec_type.attribute14
1300 , x_attribute15 => p_breakpoint_header_rec_type.attribute15
1301 );
1302 EXCEPTION
1303 WHEN OTHERS
1304 THEN
1305 pn_varen_util.pvt_debug
1306 ( 'PN_VAREN_PVT: Insert_Breakpoint_Headers: Exception Result of pn_var_bkhd_defaults_pkg.insert_row package : '
1307 || SQLERRM
1308 , 3
1309 );
1310 END;
1311
1312 x_return_status := fnd_api.g_ret_sts_success;
1313 pn_varen_util.pvt_debug
1314 ('PN_VAREN_PVT: Insert_Breakpoint_Headers: Success Result of pn_var_bkhd_defaults_pkg.insert_row package'
1315 , 3
1316 );
1317 EXCEPTION
1318 WHEN OTHERS
1319 THEN
1320 pn_varen_util.pvt_debug
1321 ( 'PN_VAREN_PVT: Insert_Breakpoint_Headers: Exception Result of insert_breakpoint_headers procedure : '
1322 || SQLERRM
1323 , 3
1324 );
1325 x_return_status := fnd_api.g_ret_sts_error;
1326 END insert_breakpoint_headers;
1327
1328 --------------------------------------------------------------------------------
1329 -- NAME : UPDATE_BREAKPOINT_HEADERS
1330 -- DESCRIPTION : Update records into Breakpoint Header
1331 -- PURPOSE : Calling pn_var_bkhd_defaults_pkg.update_row package
1332 -- INVOKED FROM :
1333 -- ARGUMENTS : P_BREAKPOINT_HEADER_REC_TYPE IN Parameter
1334 -- : X_RETURN_STATUS OUT Parameter
1335 -- REFERENCE :
1336 -- HISTORY :
1337 --
1338 -- 11-OCT-2010 vkatta o Created
1339 --------------------------------------------------------------------------------
1340 PROCEDURE update_breakpoint_headers (
1341 p_breakpoint_header_rec_type IN OUT NOCOPY breakpoint_header_rec_type
1342 , x_return_status OUT NOCOPY VARCHAR2
1343 )
1344 IS
1345 l_not_used VARCHAR2 (20) := NULL;
1346 l_base_rent_type VARCHAR2 (30) := 'ROLLING';
1347 BEGIN
1348 pn_varen_util.pvt_debug
1349 ('PN_VAREN_PVT: Update_Breakpoint_Headers: Start of Input parameters for pn_var_bkhd_defaults_pkg.update_row package'
1350 , 3
1351 );
1352 pn_varen_util.pvt_debug
1353 ( 'PN_VAREN_PVT: Update_Breakpoint_Headers: p_breakpoint_header_rec_type.bkhd_default_id : '
1354 || p_breakpoint_header_rec_type.bkhd_default_id
1355 , 3
1356 );
1357 pn_varen_util.pvt_debug
1358 ( 'PN_VAREN_PVT: Update_Breakpoint_Headers: p_breakpoint_header_rec_type.bkhd_detail_num : '
1359 || p_breakpoint_header_rec_type.bkhd_detail_num
1360 , 3
1361 );
1362 pn_varen_util.pvt_debug
1363 ( 'PN_VAREN_PVT: Update_Breakpoint_Headers: p_breakpoint_header_rec_type.line_default_id : '
1364 || p_breakpoint_header_rec_type.line_default_id
1365 , 3
1366 );
1367 pn_varen_util.pvt_debug
1368 ( 'PN_VAREN_PVT: Update_Breakpoint_Headers: p_breakpoint_header_rec_type.bkhd_start_date : '
1369 || p_breakpoint_header_rec_type.bkhd_start_date
1370 , 3
1371 );
1372 pn_varen_util.pvt_debug
1373 ( 'PN_VAREN_PVT: Update_Breakpoint_Headers: p_breakpoint_header_rec_type.bkhd_end_date : '
1374 || p_breakpoint_header_rec_type.bkhd_end_date
1375 , 3
1376 );
1377 pn_varen_util.pvt_debug
1378 ( 'PN_VAREN_PVT: Update_Breakpoint_Headers: p_breakpoint_header_rec_type.break_type_code : '
1379 || p_breakpoint_header_rec_type.break_type_code
1380 , 3
1381 );
1382 pn_varen_util.pvt_debug
1383 ( 'PN_VAREN_PVT: Update_Breakpoint_Headers: p_breakpoint_header_rec_type.natural_break_rate : '
1384 || p_breakpoint_header_rec_type.natural_break_rate
1385 , 3
1386 );
1387 pn_varen_util.pvt_debug
1388 ( 'PN_VAREN_PVT: Update_Breakpoint_Headers: p_breakpoint_header_rec_type.var_rent_id : '
1389 || p_breakpoint_header_rec_type.var_rent_id
1390 , 3
1391 );
1392 pn_varen_util.pvt_debug
1393 ('PN_VAREN_PVT: Update_Breakpoint_Headers: End of Input parameters for pn_var_bkhd_defaults_pkg.update_row package'
1394 , 3
1395 );
1396 pn_var_bkhd_defaults_pkg.update_row (x_bkhd_default_id => p_breakpoint_header_rec_type.bkhd_default_id
1397 , x_bkhd_detail_num => p_breakpoint_header_rec_type.bkhd_detail_num
1398 , x_line_default_id => p_breakpoint_header_rec_type.line_default_id
1399 , x_bkpt_head_template_id => l_not_used
1400 -- p_breakpoint_header_rec_type.BKPT_HEAD_TEMPLATE_ID
1401 , x_agreement_template_id => l_not_used
1402 --IMP modify the table type--p_breakpoint_header_rec_type.AGREEMENT_TEMPLATE_ID
1403 , x_bkhd_start_date => p_breakpoint_header_rec_type.bkhd_start_date
1404 , x_bkhd_end_date => p_breakpoint_header_rec_type.bkhd_end_date
1405 , x_break_type => p_breakpoint_header_rec_type.break_type_code
1406 , x_base_rent_type => l_base_rent_type
1407 --IMP --'ROLLING'either for break_type_code ARTIFICAL OR NATURAL --p_breakpoint_header_rec_type.BASE_RENT_TYPE
1408 , x_natural_break_rate => p_breakpoint_header_rec_type.natural_break_rate
1409 , x_base_rent => l_not_used
1410 --p_breakpoint_header_rec_type.BASE_RENT
1411 , x_breakpoint_type => p_breakpoint_header_rec_type.breakpoint_type_code
1412 , x_breakpoint_level => l_not_used
1413 --p_breakpoint_header_rec_type.BREAKPOINT_LEVEL
1414 , x_processed_flag => l_not_used
1415 --p_breakpoint_header_rec_type.PROCESSED_FLAG
1416 , x_var_rent_id => p_breakpoint_header_rec_type.var_rent_id
1417 , x_last_update_date => g_sysdate
1418 --p_breakpoint_header_rec_type.last_update_date
1419 , x_last_updated_by => g_user_id
1420 --p_breakpoint_header_rec_type.last_updated_by
1421 , x_last_update_login => g_user_id
1422 --p_breakpoint_header_rec_type.last_update_login
1423 , x_attribute_category => p_breakpoint_header_rec_type.attribute_category
1424 , x_attribute1 => p_breakpoint_header_rec_type.attribute1
1425 , x_attribute2 => p_breakpoint_header_rec_type.attribute2
1426 , x_attribute3 => p_breakpoint_header_rec_type.attribute3
1427 , x_attribute4 => p_breakpoint_header_rec_type.attribute4
1428 , x_attribute5 => p_breakpoint_header_rec_type.attribute5
1429 , x_attribute6 => p_breakpoint_header_rec_type.attribute6
1430 , x_attribute7 => p_breakpoint_header_rec_type.attribute7
1431 , x_attribute8 => p_breakpoint_header_rec_type.attribute8
1432 , x_attribute9 => p_breakpoint_header_rec_type.attribute9
1433 , x_attribute10 => p_breakpoint_header_rec_type.attribute10
1434 , x_attribute11 => p_breakpoint_header_rec_type.attribute11
1435 , x_attribute12 => p_breakpoint_header_rec_type.attribute12
1436 , x_attribute13 => p_breakpoint_header_rec_type.attribute13
1437 , x_attribute14 => p_breakpoint_header_rec_type.attribute14
1438 , x_attribute15 => p_breakpoint_header_rec_type.attribute15
1439 );
1440 x_return_status := fnd_api.g_ret_sts_success;
1441 pn_varen_util.pvt_debug
1442 ('PN_VAREN_PVT: Update_Breakpoint_Headers: Success Result of pn_var_bkhd_defaults_pkg.update_row package'
1443 , 3
1444 );
1445 EXCEPTION
1446 WHEN OTHERS
1447 THEN
1448 pn_varen_util.pvt_debug
1449 ( 'PN_VAREN_PVT: Update_Breakpoint_Headers: Exception Result of update_breakpoint_headers procedure : '
1450 || SQLERRM
1451 , 3
1452 );
1453 x_return_status := fnd_api.g_ret_sts_error;
1454 END update_breakpoint_headers;
1455
1456 --------------------------------------------------------------------------------
1457 -- NAME : INSERT_VARIABLE_RENT_LINES
1458 -- DESCRIPTION : Insert records into Variable Rent Lines
1459 -- PURPOSE : Calling pn_var_line_defaults_pkg.insert_row package
1460 -- INVOKED FROM :
1461 -- ARGUMENTS : P_VARIABLE_RENT_LINES_REC_TYPE IN Parameter
1462 -- : X_RETURN_STATUS OUT Parameter
1463 -- REFERENCE :
1464 -- HISTORY :
1465 --
1466 -- 20-SEP-2010 vkatta o Created
1467 --------------------------------------------------------------------------------
1468 PROCEDURE insert_variable_rent_lines (
1469 p_variable_rent_lines_rec_type IN OUT NOCOPY variable_rent_lines_rec_type
1470 , x_return_status OUT NOCOPY VARCHAR2
1471 )
1472 IS
1473 l_line_default_id pn_var_line_defaults_all.line_default_id%TYPE := NULL;
1474 l_line_num pn_var_line_defaults_all.line_num%TYPE;
1475 -- l_line_start_date would be same a variable rent commencement_date
1476 l_line_start_date pn_var_line_defaults_all.line_start_date%TYPE;
1477 -- l_end_date would be same a variable rent termination_date
1478 l_line_end_date pn_var_line_defaults_all.line_end_date%TYPE;
1479 l_agreement_template_id pn_var_line_defaults_all.agreement_template_id%TYPE;
1480 l_processed_flag pn_var_line_defaults_all.processed_flag%TYPE := NULL;
1481 l_var_rent_exist NUMBER;
1482 l_var_rent_id pn_var_rents_all.var_rent_id%TYPE;
1483 BEGIN
1484 -- NULL;
1485 pn_varen_util.pvt_debug
1486 ('PN_VAREN_PVT: Insert_Variable_Rent_Lines: Calling PN_VAR_LINE_DEFAULTS_PKG.INSERT_ROW Package'
1487 , 3
1488 );
1489 pn_varen_util.pvt_debug
1490 ('PN_VAREN_PVT: Insert_Variable_Rent_Lines: START OF CALLING PN_VAR_LINE_DEFAULTS_PKG.INSERT_ROW PACKAGE'
1491 , 3
1492 );
1493
1494 BEGIN
1495 pn_varen_util.pvt_debug
1496 ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: p_variable_rent_lines_rec_type.var_rent_id : '
1497 || p_variable_rent_lines_rec_type.var_rent_id
1498 , 3
1499 );
1500 pn_varen_util.pvt_debug
1501 ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: p_variable_rent_lines_rec_type.var_rent_num: '
1502 || p_variable_rent_lines_rec_type.var_rent_num
1503 , 3
1504 );
1505 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: G_ORG_ID : '
1506 || g_org_id
1507 , 3
1508 );
1509
1510 SELECT commencement_date
1511 , termination_date
1512 , agreement_template_id
1513 , var_rent_id
1514 INTO l_line_start_date
1515 , l_line_end_date
1516 , l_agreement_template_id
1517 , l_var_rent_id
1518 FROM pn_var_rents_all
1519 WHERE ( var_rent_id = p_variable_rent_lines_rec_type.var_rent_id
1520 OR rent_num = p_variable_rent_lines_rec_type.var_rent_num
1521 )
1522 AND org_id = g_org_id
1523 GROUP BY commencement_date
1524 , termination_date
1525 , agreement_template_id
1526 , var_rent_id;
1527
1528 p_variable_rent_lines_rec_type.var_rent_id := l_var_rent_id;
1529 EXCEPTION
1530 WHEN OTHERS
1531 THEN
1532 pn_varen_util.pvt_debug
1533 ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: Var_rent_id does not exist, please check the var_rent_id : '
1534 || SQLERRM
1535 , 3
1536 );
1537 END;
1538
1539 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Insert_Variable_Rent_Lines: Calling Insert Row package'
1540 , 3
1541 );
1542 pn_varen_util.pvt_debug
1543 ('PN_VAREN_PVT: Insert_Variable_Rent_Lines: Input parameters before calling Pn_Var_Line_Defaults_Pkg.Insert_Row procedure'
1544 , 3
1545 );
1546 pn_varen_util.pvt_debug
1547 ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: p_variable_rent_lines_rec_type.line_default_id : '
1548 || p_variable_rent_lines_rec_type.line_default_id
1549 , 3
1550 );
1551 pn_varen_util.pvt_debug
1552 ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: p_variable_rent_lines_rec_type.line_num : '
1553 || p_variable_rent_lines_rec_type.line_num
1554 , 3
1555 );
1556 pn_varen_util.pvt_debug
1557 ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: p_variable_rent_lines_rec_type.var_rent_id : '
1558 || p_variable_rent_lines_rec_type.var_rent_id
1559 , 3
1560 );
1561 pn_varen_util.pvt_debug
1562 ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: p_variable_rent_lines_rec_type.sales_channel_code : '
1563 || p_variable_rent_lines_rec_type.sales_channel_code
1564 , 3
1565 );
1566 pn_varen_util.pvt_debug
1567 ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: p_variable_rent_lines_rec_type.item_category_code : '
1568 || p_variable_rent_lines_rec_type.item_category_code
1569 , 3
1570 );
1571 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: l_agreement_template_id : '
1572 || l_agreement_template_id
1573 , 3
1574 );
1575 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: l_line_start_date : '
1576 || l_line_start_date
1577 , 3
1578 );
1579 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: g_org_id : '
1580 || g_org_id
1581 , 3
1582 );
1583 pn_varen_util.pvt_debug
1584 ('PN_VAREN_PVT: Insert_Variable_Rent_Lines: End of Input parameters before calling Pn_Var_Line_Defaults_Pkg.Insert_Row procedure'
1585 , 3
1586 );
1587 pn_var_line_defaults_pkg.insert_row
1588 (x_rowid => g_rowid
1589 , x_line_default_id => p_variable_rent_lines_rec_type.line_default_id
1590 , x_line_num => p_variable_rent_lines_rec_type.line_num
1591 , x_var_rent_id => p_variable_rent_lines_rec_type.var_rent_id
1592 , x_sales_type_code => p_variable_rent_lines_rec_type.sales_channel_code
1593 , x_item_category_code => p_variable_rent_lines_rec_type.item_category_code
1594 , x_line_template_id => NULL
1595 -- not used in pn_var_line_defaults_all
1596 , x_agreement_template_id => l_agreement_template_id
1597 , x_line_start_date => l_line_start_date
1598 , x_line_end_date => l_line_end_date
1599 , x_processed_flag => l_processed_flag
1600 , x_creation_date => NVL
1601 (p_variable_rent_lines_rec_type.creation_date
1602 , g_sysdate
1603 )
1604 , x_created_by => NVL
1605 (p_variable_rent_lines_rec_type.created_by
1606 , g_user_id
1607 )
1608 , x_last_update_date => NVL
1609 (p_variable_rent_lines_rec_type.last_update_date
1610 , g_sysdate
1611 )
1612 , x_last_updated_by => NVL
1613 (p_variable_rent_lines_rec_type.last_updated_by
1614 , g_user_id
1615 )
1616 , x_last_update_login => NVL
1617 (p_variable_rent_lines_rec_type.last_update_login
1618 , g_user_id
1619 )
1620 , x_org_id => g_org_id
1621 , x_attribute_category => p_variable_rent_lines_rec_type.attribute_category
1622 , x_attribute1 => p_variable_rent_lines_rec_type.attribute1
1623 , x_attribute2 => p_variable_rent_lines_rec_type.attribute2
1624 , x_attribute3 => p_variable_rent_lines_rec_type.attribute3
1625 , x_attribute4 => p_variable_rent_lines_rec_type.attribute4
1626 , x_attribute5 => p_variable_rent_lines_rec_type.attribute5
1627 , x_attribute6 => p_variable_rent_lines_rec_type.attribute6
1628 , x_attribute7 => p_variable_rent_lines_rec_type.attribute7
1629 , x_attribute8 => p_variable_rent_lines_rec_type.attribute8
1630 , x_attribute9 => p_variable_rent_lines_rec_type.attribute9
1631 , x_attribute10 => p_variable_rent_lines_rec_type.attribute10
1632 , x_attribute11 => p_variable_rent_lines_rec_type.attribute11
1633 , x_attribute12 => p_variable_rent_lines_rec_type.attribute12
1634 , x_attribute13 => p_variable_rent_lines_rec_type.attribute13
1635 , x_attribute14 => p_variable_rent_lines_rec_type.attribute14
1636 , x_attribute15 => p_variable_rent_lines_rec_type.attribute15
1637 );
1638 pn_varen_util.pvt_debug
1639 ('PN_VAREN_PVT: Insert_Variable_Rent_Lines: End OF CALLING PN_VAR_LINE_DEFAULTS_PKG.INSERT_ROW PACKAGE'
1640 , 3
1641 );
1642 x_return_status := fnd_api.g_ret_sts_success;
1643 EXCEPTION
1644 WHEN OTHERS
1645 THEN
1646 pn_varen_util.pvt_debug
1647 ( 'PN_VAREN_PVT: Insert_Variable_Rent_Lines: Exception Result of PN_VAR_LINE_DEFAULTS_PKG.INSERT_ROW PACKAGE'
1648 || SQLERRM
1649 , 3
1650 );
1651 x_return_status := fnd_api.g_ret_sts_error;
1652 END insert_variable_rent_lines;
1653
1654 --------------------------------------------------------------------------------
1655 -- NAME : UPDATE_VARIABLE_RENT_LINES
1656 -- DESCRIPTION : Update records into Variable Rent Lines
1657 -- PURPOSE : Calling pn_var_line_defaults_pkg.update_row package
1658 -- INVOKED FROM :
1659 -- ARGUMENTS : P_VARIABLE_RENT_LINES_REC_TYPE IN Parameter
1660 -- : X_RETURN_STATUS OUT Parameter
1661 -- REFERENCE :
1662 -- HISTORY :
1663 --
1664 -- 11-OCT-2010 vkatta o Created
1665 --------------------------------------------------------------------------------
1666 PROCEDURE update_variable_rent_lines (
1667 p_variable_rent_lines_rec_type IN OUT NOCOPY variable_rent_lines_rec_type
1668 , x_return_status OUT NOCOPY VARCHAR2
1669 )
1670 IS
1671 l_not_used NUMBER DEFAULT NULL;
1672 BEGIN
1673 pn_varen_util.pvt_debug
1674 ('PN_VAREN_PVT: Update_Variable_Rent_Lines: Start of Input parameters before calling Pn_Var_Line_Defaults_Pkg.Update_Row procedure'
1675 , 3
1676 );
1677 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : LINE_DEFAULT_ID : '
1678 || p_variable_rent_lines_rec_type.line_default_id
1679 , 3
1680 );
1681 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : LINE_NUM : '
1682 || p_variable_rent_lines_rec_type.line_num
1683 , 3
1684 );
1685 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : VAR_RENT_ID : '
1686 || p_variable_rent_lines_rec_type.var_rent_id
1687 , 3
1688 );
1689 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : SALES_CHANNEL_CODE : '
1690 || p_variable_rent_lines_rec_type.sales_channel_code
1691 , 3
1692 );
1693 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : ITEM_CATEGORY_CODE : '
1694 || p_variable_rent_lines_rec_type.item_category_code
1695 , 3
1696 );
1697 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : AGREEMENT_TEMPLATE_ID : '
1698 || p_variable_rent_lines_rec_type.agreement_template_id
1699 , 3
1700 );
1701 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : LINE_START_DATE : '
1702 || p_variable_rent_lines_rec_type.line_start_date
1703 , 3
1704 );
1705 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : LINE_END_DATE : '
1706 || p_variable_rent_lines_rec_type.line_end_date
1707 , 3
1708 );
1709 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : PROCESSED_FLAG : '
1710 || p_variable_rent_lines_rec_type.processed_flag
1711 , 3
1712 );
1713 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : LAST_UPDATE_DATE : '
1714 || p_variable_rent_lines_rec_type.last_update_date
1715 , 3
1716 );
1717 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : LAST_UPDATED_BY : '
1718 || p_variable_rent_lines_rec_type.last_updated_by
1719 , 3
1720 );
1721 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : LAST_UPDATE_LOGIN : '
1722 || p_variable_rent_lines_rec_type.last_update_login
1723 , 3
1724 );
1725 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines : ATTRIBUTE_CATEGORY : '
1726 || p_variable_rent_lines_rec_type.attribute_category
1727 , 3
1728 );
1729 pn_varen_util.pvt_debug
1730 ('PN_VAREN_PVT: Update_Variable_Rent_Lines: End of Input parameters before calling Pn_Var_Line_Defaults_Pkg.Update_Row procedure'
1731 , 3
1732 );
1733 pn_var_line_defaults_pkg.update_row
1734 (x_line_default_id => p_variable_rent_lines_rec_type.line_default_id
1735 , x_line_num => p_variable_rent_lines_rec_type.line_num
1736 , x_var_rent_id => p_variable_rent_lines_rec_type.var_rent_id
1737 , x_sales_type_code => p_variable_rent_lines_rec_type.sales_channel_code
1738 , x_item_category_code => p_variable_rent_lines_rec_type.item_category_code
1739 , x_line_template_id => l_not_used
1740 --p_variable_rent_lines_rec_type.LINE_TEMPLATE_ID
1741 , x_agreement_template_id => p_variable_rent_lines_rec_type.agreement_template_id
1742 , x_line_start_date => p_variable_rent_lines_rec_type.line_start_date
1743 , x_line_end_date => p_variable_rent_lines_rec_type.line_end_date
1744 , x_processed_flag => p_variable_rent_lines_rec_type.processed_flag
1745 , x_last_update_date => g_sysdate
1746 --p_variable_rent_lines_rec_type.last_update_date
1747 , x_last_updated_by => g_user_id
1748 --p_variable_rent_lines_rec_type.last_updated_by
1749 , x_last_update_login => g_user_id
1750 --p_variable_rent_lines_rec_type.last_update_login
1751 , x_attribute_category => p_variable_rent_lines_rec_type.attribute_category
1752 , x_attribute1 => p_variable_rent_lines_rec_type.attribute1
1753 , x_attribute2 => p_variable_rent_lines_rec_type.attribute2
1754 , x_attribute3 => p_variable_rent_lines_rec_type.attribute3
1755 , x_attribute4 => p_variable_rent_lines_rec_type.attribute4
1756 , x_attribute5 => p_variable_rent_lines_rec_type.attribute5
1757 , x_attribute6 => p_variable_rent_lines_rec_type.attribute6
1758 , x_attribute7 => p_variable_rent_lines_rec_type.attribute7
1759 , x_attribute8 => p_variable_rent_lines_rec_type.attribute8
1760 , x_attribute9 => p_variable_rent_lines_rec_type.attribute9
1761 , x_attribute10 => p_variable_rent_lines_rec_type.attribute10
1762 , x_attribute11 => p_variable_rent_lines_rec_type.attribute11
1763 , x_attribute12 => p_variable_rent_lines_rec_type.attribute12
1764 , x_attribute13 => p_variable_rent_lines_rec_type.attribute13
1765 , x_attribute14 => p_variable_rent_lines_rec_type.attribute14
1766 , x_attribute15 => p_variable_rent_lines_rec_type.attribute15
1767 );
1768 pn_varen_util.pvt_debug
1769 ('PN_VAREN_PVT: Update_Variable_Rent_Lines: End of calling PN_VAR_LINE_DEFAULTS_PKG.UPDATE_ROW PACKAGE'
1770 , 3
1771 );
1772 x_return_status := fnd_api.g_ret_sts_success;
1773 EXCEPTION
1774 WHEN OTHERS
1775 THEN
1776 pn_varen_util.pvt_debug
1777 ( 'PN_VAREN_PVT: Update_Variable_Rent_Lines: Exception Result of PN_VAR_LINE_DEFAULTS_PKG.UPDATE_ROW PACKAGE'
1778 || SQLERRM
1779 , 3
1780 );
1781 x_return_status := fnd_api.g_ret_sts_error;
1782 END update_variable_rent_lines;
1783
1784 --------------------------------------------------------------------------------
1785 -- NAME : VAL_INS_ALLOW_ABAT
1786 -- DESCRIPTION : Private procedure to validate and Insert Allowance and Abatements
1787 -- PURPOSE :
1788 -- INVOKED FROM :
1789 -- ARGUMENTS : P_ALLOW_ABAT_TBL_TYPE IN Parameter
1790 -- : P_VALIDATE_FLAG IN Parameter
1791 -- : X_RETURN_STATUS OUT Parameter
1792 -- REFERENCE :
1793 -- HISTORY :
1794 --
1795 -- 20-SEP-2010 vkatta o Created
1796 --------------------------------------------------------------------------------
1797 PROCEDURE val_ins_allow_abat (
1798 p_allow_abat_tbl_type IN OUT NOCOPY allow_abat_tbl_type
1799 , p_validate_flag IN VARCHAR2
1800 , x_return_status OUT NOCOPY VARCHAR2
1801 )
1802 IS
1803 l_return_status VARCHAR2 (1);
1804 l_var_commencement_date DATE;
1805 l_var_termination_date DATE;
1806 l_allow_abat_val VARCHAR2 (1) := 'Y';
1807 l_return_msg VARCHAR2 (10);
1808 l_variable_rent_exists NUMBER;
1809 l_var_rent_id NUMBER;
1810 l_allow_abat_count NUMBER := 0;
1811 l_exist VARCHAR2(1) := NULL;
1812
1813
1814 BEGIN
1815 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Allow_Abat:G_VAR_RENT_ID Before Abatements Loop: '
1816 || g_var_rent_id
1817 , 3
1818 );
1819
1820 FOR b IN p_allow_abat_tbl_type.FIRST .. p_allow_abat_tbl_type.LAST
1821 LOOP
1822 BEGIN
1823 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Allow_Abat: G_VAR_RENT_ID Inside Abatements Loop: '
1824 || g_var_rent_id
1825 , 3
1826 );
1827
1828 -------------------------------------------------------------------------------------
1829 -- If Allowances and Abatement record type has not been initialized then assign it to null
1830 -------------------------------------------------------------------------------------
1831 IF p_allow_abat_tbl_type (b).abatement_id = pn_varen_util.g_pn_miss_num
1832 THEN
1833 p_allow_abat_tbl_type (b).abatement_id := NULL;
1834 END IF;
1835
1836 IF ( p_allow_abat_tbl_type (b).var_rent_id = pn_varen_util.g_pn_miss_num
1837 OR p_allow_abat_tbl_type (b).var_rent_id IS NULL
1838 )
1839 THEN
1840 p_allow_abat_tbl_type (b).var_rent_id := g_var_rent_id;
1841 END IF;
1842
1843 IF p_allow_abat_tbl_type (b).var_rent_num = pn_varen_util.g_pn_miss_char
1844 THEN
1845 p_allow_abat_tbl_type (b).var_rent_num := NULL;
1846 END IF;
1847
1848 IF p_allow_abat_tbl_type (b).abat_type_code = pn_varen_util.g_pn_miss_char
1849 THEN
1850 p_allow_abat_tbl_type (b).abat_type_code := NULL;
1851 END IF;
1852
1853 IF p_allow_abat_tbl_type (b).abat_type_meaning = pn_varen_util.g_pn_miss_char
1854 THEN
1855 p_allow_abat_tbl_type (b).abat_type_meaning := NULL;
1856 END IF;
1857
1858 IF p_allow_abat_tbl_type (b).abat_start_date = pn_varen_util.g_pn_miss_date
1859 THEN
1860 p_allow_abat_tbl_type (b).abat_start_date := NULL;
1861 END IF;
1862
1863 IF p_allow_abat_tbl_type (b).abat_end_date = pn_varen_util.g_pn_miss_date
1864 THEN
1865 p_allow_abat_tbl_type (b).abat_end_date := NULL;
1866 END IF;
1867
1868 IF p_allow_abat_tbl_type (b).abat_amount = pn_varen_util.g_pn_miss_num
1869 THEN
1870 p_allow_abat_tbl_type (b).abat_amount := NULL;
1871 END IF;
1872
1873 IF p_allow_abat_tbl_type (b).description = pn_varen_util.g_pn_miss_char
1874 THEN
1875 p_allow_abat_tbl_type (b).description := NULL;
1876 END IF;
1877
1878 IF p_allow_abat_tbl_type (b).comments = pn_varen_util.g_pn_miss_char
1879 THEN
1880 p_allow_abat_tbl_type (b).comments := NULL;
1881 END IF;
1882
1883 IF p_allow_abat_tbl_type (b).last_update_date = pn_varen_util.g_pn_miss_date
1884 THEN
1885 p_allow_abat_tbl_type (b).last_update_date := NULL;
1886 END IF;
1887
1888 IF p_allow_abat_tbl_type (b).last_updated_by = pn_varen_util.g_pn_miss_num
1889 THEN
1890 p_allow_abat_tbl_type (b).last_updated_by := NULL;
1891 END IF;
1892
1893 IF p_allow_abat_tbl_type (b).creation_date = pn_varen_util.g_pn_miss_date
1894 THEN
1895 p_allow_abat_tbl_type (b).creation_date := NULL;
1896 END IF;
1897
1898 IF p_allow_abat_tbl_type (b).created_by = pn_varen_util.g_pn_miss_num
1899 THEN
1900 p_allow_abat_tbl_type (b).created_by := NULL;
1901 END IF;
1902
1903 IF p_allow_abat_tbl_type (b).last_update_login = pn_varen_util.g_pn_miss_num
1904 THEN
1905 p_allow_abat_tbl_type (b).last_update_login := NULL;
1906 END IF;
1907
1908 IF p_allow_abat_tbl_type (b).attribute_category = pn_varen_util.g_pn_miss_char
1909 THEN
1910 p_allow_abat_tbl_type (b).attribute_category := NULL;
1911 END IF;
1912
1913 IF p_allow_abat_tbl_type (b).attribute1 = pn_varen_util.g_pn_miss_char
1914 THEN
1915 p_allow_abat_tbl_type (b).attribute1 := NULL;
1916 END IF;
1917
1918 IF p_allow_abat_tbl_type (b).attribute2 = pn_varen_util.g_pn_miss_char
1919 THEN
1920 p_allow_abat_tbl_type (b).attribute2 := NULL;
1921 END IF;
1922
1923 IF p_allow_abat_tbl_type (b).attribute3 = pn_varen_util.g_pn_miss_char
1924 THEN
1925 p_allow_abat_tbl_type (b).attribute3 := NULL;
1926 END IF;
1927
1928 IF p_allow_abat_tbl_type (b).attribute4 = pn_varen_util.g_pn_miss_char
1929 THEN
1930 p_allow_abat_tbl_type (b).attribute4 := NULL;
1931 END IF;
1932
1933 IF p_allow_abat_tbl_type (b).attribute5 = pn_varen_util.g_pn_miss_char
1934 THEN
1935 p_allow_abat_tbl_type (b).attribute5 := NULL;
1936 END IF;
1937
1938 IF p_allow_abat_tbl_type (b).attribute6 = pn_varen_util.g_pn_miss_char
1939 THEN
1940 p_allow_abat_tbl_type (b).attribute6 := NULL;
1941 END IF;
1942
1943 IF p_allow_abat_tbl_type (b).attribute7 = pn_varen_util.g_pn_miss_char
1944 THEN
1945 p_allow_abat_tbl_type (b).attribute7 := NULL;
1946 END IF;
1947
1948 IF p_allow_abat_tbl_type (b).attribute8 = pn_varen_util.g_pn_miss_char
1949 THEN
1950 p_allow_abat_tbl_type (b).attribute8 := NULL;
1951 END IF;
1952
1953 IF p_allow_abat_tbl_type (b).attribute9 = pn_varen_util.g_pn_miss_char
1954 THEN
1955 p_allow_abat_tbl_type (b).attribute9 := NULL;
1956 END IF;
1957
1958 IF p_allow_abat_tbl_type (b).attribute10 = pn_varen_util.g_pn_miss_char
1959 THEN
1960 p_allow_abat_tbl_type (b).attribute10 := NULL;
1961 END IF;
1962
1963 IF p_allow_abat_tbl_type (b).attribute11 = pn_varen_util.g_pn_miss_char
1964 THEN
1965 p_allow_abat_tbl_type (b).attribute11 := NULL;
1966 END IF;
1967
1968 IF p_allow_abat_tbl_type (b).attribute12 = pn_varen_util.g_pn_miss_char
1969 THEN
1970 p_allow_abat_tbl_type (b).attribute12 := NULL;
1971 END IF;
1972
1973 IF p_allow_abat_tbl_type (b).attribute13 = pn_varen_util.g_pn_miss_char
1974 THEN
1975 p_allow_abat_tbl_type (b).attribute13 := NULL;
1976 END IF;
1977
1978 IF p_allow_abat_tbl_type (b).attribute14 = pn_varen_util.g_pn_miss_char
1979 THEN
1980 p_allow_abat_tbl_type (b).attribute14 := NULL;
1981 END IF;
1982
1983 IF p_allow_abat_tbl_type (b).attribute15 = pn_varen_util.g_pn_miss_char
1984 THEN
1985 p_allow_abat_tbl_type (b).attribute15 := NULL;
1986 END IF;
1987
1988 ---------
1989 -- End
1990 ---------
1991 -------------------------------------------------------------------------------
1992 --Allowance and Abatements validation
1993 --------------------------------------------------------------------------------
1994 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Val_Ins_Allow_Abat: Calling Allowance and Abatements Validation'
1995 , 3
1996 );
1997
1998 BEGIN
1999 SELECT COUNT (1)
2000 , var_rent_id
2001 , commencement_date
2002 , termination_date
2003 INTO l_variable_rent_exists
2004 , l_var_rent_id
2005 , l_var_commencement_date
2006 , l_var_termination_date
2007 FROM pn_var_rents_all
2008 WHERE ( rent_num = p_allow_abat_tbl_type (b).var_rent_num
2009 OR var_rent_id = p_allow_abat_tbl_type (b).var_rent_id
2010 )
2011 AND org_id = g_org_id --l_org_id
2012 GROUP BY var_rent_id
2013 , commencement_date
2014 , termination_date;
2015 EXCEPTION
2016 WHEN OTHERS
2017 THEN
2018 pn_varen_util.pvt_debug
2019 ( 'PN_VAREN_PVT: Val_Ins_Allow_Abat: Variable Rent Number or Variable Rent Id doesnot exists :'
2020 || SQLERRM
2021 , 3
2022 );
2023 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
2024 fnd_message.set_token ('ERR_MSG', 'Var Rent : Val_Ins_Allow_Abat: Variable Rent Number or Variable Rent Id doesnot exists While selecting the count');
2025 fnd_msg_pub.ADD;
2026 RAISE fnd_api.g_exc_error;
2027 END;
2028
2029 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Allow_Abat: Abatements var_rent_Id :'
2030 || l_var_rent_id
2031 , 3
2032 );
2033
2034 IF l_variable_rent_exists = 1
2035 THEN
2036 p_allow_abat_tbl_type (b).var_rent_id := l_var_rent_id;
2037
2038 IF ( p_allow_abat_tbl_type (b).abat_type_code IS NOT NULL
2039 OR p_allow_abat_tbl_type (b).abat_type_meaning IS NOT NULL
2040 )
2041 THEN
2042 pn_varen_util.pvt_debug
2043 ('PN_VAREN_PVT: Val_Ins_Allow_Abat: Calling Allowance and Abatements Validation Lookup - Inside the Loop'
2044 , 3
2045 );
2046 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Val_Ins_Allow_Abat: Calling Allowance and Abatements Validation'
2047 , 3
2048 );
2049 pn_varen_util.validate_lookups (p_lookup_type => g_abate_type_code
2050 , x_lookup_meaning => p_allow_abat_tbl_type (b).abat_type_meaning
2051 , x_lookup_code => p_allow_abat_tbl_type (b).abat_type_code
2052 , x_return_status => l_return_status
2053 );
2054 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Allow_Abat: Allowance and Abatements Output Code :'
2055 || p_allow_abat_tbl_type (b).abat_type_code
2056 , 3
2057 );
2058
2059 IF (l_return_status = fnd_api.g_ret_sts_error)
2060 THEN
2061 pn_varen_util.pvt_debug
2062 ('PN_VAREN_PVT: Val_Ins_Allow_Abat: Allowance and Abatements Lookup Validation Error'
2063 , 3
2064 );
2065 fnd_message.set_name ('PN'
2066 , 'PN_VAR_ALL_ABA_TY'
2067 );
2068 fnd_msg_pub.ADD;
2069 RAISE fnd_api.g_exc_error;
2070 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
2071 THEN
2072 pn_varen_util.pvt_debug
2073 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatements Meaning Un-Expected Error :'
2074 || p_allow_abat_tbl_type (b).abat_type_meaning
2075 , 3
2076 );
2077 fnd_message.set_name ('PN'
2078 , 'PN_VAR_ALL_ABA_TY'
2079 );
2080 fnd_msg_pub.ADD;
2081 RAISE fnd_api.g_exc_unexpected_error;
2082 END IF;
2083 END IF;
2084
2085 -----------------------------------------------------------------------------
2086 --- Allowance and Abatement Start date should be always greater than end date
2087 -----------------------------------------------------------------------------
2088 IF (p_allow_abat_tbl_type (b).abat_start_date < p_allow_abat_tbl_type (b).abat_end_date)
2089 THEN
2090
2091 pn_varen_util.pvt_debug
2092 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement Start date is less than Allowance and Abatement end date: '
2093 || p_allow_abat_tbl_type (b).abat_start_date
2094 || ' and '
2095 || p_allow_abat_tbl_type (b).abat_end_date
2096 , 3
2097 );
2098 ELSE
2099 pn_varen_util.pvt_debug
2100 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowances and abatements must start on the same date as the invoice period.Please change the allowance or abatement start date. '
2101 || p_allow_abat_tbl_type (b).abat_start_date
2102 || ' and '
2103 || p_allow_abat_tbl_type (b).abat_end_date
2104 , 3
2105 );
2106 fnd_message.set_name ('PN'
2107 , 'PN_ST_DT_INV_MSG'
2108 );
2109 fnd_msg_pub.ADD;
2110 RAISE fnd_api.g_exc_error;
2111 END IF;
2112
2113 ----------------------------------------------------------------------
2114 --- Validation of Allowance and Abatement Start date
2115 ----------------------------------------------------------------------
2116 IF (p_allow_abat_tbl_type (b).abat_start_date IS NOT NULL)
2117 THEN
2118 pn_varen_util.pvt_debug
2119 ( 'PN_VAREN_PVT: Val_Ins_Allow_Abat: Allowance and Abatement Start date is not null : '
2120 || p_allow_abat_tbl_type (b).abat_start_date
2121 , 3
2122 );
2123 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Allow_Abat: Allowance and Abatement end date : '
2124 || p_allow_abat_tbl_type (b).abat_end_date
2125 , 3
2126 );
2127 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Allow_Abat: Variable Rent Commencement Date : '
2128 || l_var_commencement_date
2129 , 3
2130 );
2131 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Allow_Abat: Variable Rent Termination Date: '
2132 || l_var_termination_date
2133 , 3
2134 );
2135
2136 IF (p_allow_abat_tbl_type (b).abat_start_date = l_var_commencement_date)
2137 THEN
2138 pn_varen_util.pvt_debug
2139 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement Start date Validation Success :'
2140 || p_allow_abat_tbl_type (b).abat_start_date
2141 , 3
2142 );
2143 ELSIF ( p_allow_abat_tbl_type (b).abat_start_date < l_var_commencement_date
2144 OR p_allow_abat_tbl_type (b).abat_start_date > l_var_termination_date
2145 )
2146 THEN
2147 pn_varen_util.pvt_debug
2148 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement Start date Validation Error : '
2149 || p_allow_abat_tbl_type (b).abat_start_date
2150 || 'Please ensure that the start date for a rolling allowance or fixed abatement is within the variable rent agreement dates.'
2151 , 3
2152 );
2153 fnd_message.set_name ('PN'
2154 , 'PN_VAR_ABT_STRDT_VAL_MSG'
2155 );
2156 fnd_msg_pub.ADD;
2157 RAISE fnd_api.g_exc_error;
2158
2159 ELSIF (p_allow_abat_tbl_type (b).abat_start_date > p_allow_abat_tbl_type (b).abat_end_date)
2160 THEN
2161 pn_varen_util.pvt_debug
2162 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement Start date Validation Error : '
2163 || p_allow_abat_tbl_type (b).abat_start_date
2164 || ' and '
2165 || p_allow_abat_tbl_type (b).abat_end_date
2166 || 'Please ensure that the start date for a rolling allowance or fixed abatement is less than the end date.'
2167 , 3
2168 );
2169 fnd_message.set_name ('PN'
2170 , 'PN_STR_GRT_END_DT'
2171 );
2172 fnd_msg_pub.ADD;
2173 RAISE fnd_api.g_exc_error;
2174 END IF;
2175 ELSE
2176 --
2177 p_allow_abat_tbl_type (b).abat_start_date := l_var_commencement_date;
2178 pn_varen_util.pvt_debug
2179 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement Start date is null then value is Defaulted Variable Rent Commencement Date : '
2180 || l_var_commencement_date
2181 || ' Success'
2182 , 3
2183 );
2184 END IF;
2185
2186 ----------------------------------------------------------------------
2187 --- Validation of Allowance and Abatement end date
2188 ------------------------------------------------------------------------
2189 IF (p_allow_abat_tbl_type (b).abat_end_date IS NOT NULL OR p_allow_abat_tbl_type (b).abat_end_date <> pn_varen_util.g_pn_miss_date) THEN
2190 IF (p_allow_abat_tbl_type (b).abat_end_date < l_var_commencement_date OR p_allow_abat_tbl_type (b).abat_end_date > l_var_termination_date) THEN
2191 fnd_message.set_name('PN', 'PN_VAR_ABT_END_MSG');
2192 fnd_msg_pub.ADD;
2193 RAISE fnd_api.g_exc_error;
2194 ELSIF( p_allow_abat_tbl_type (b).abat_start_date > p_allow_abat_tbl_type (b).abat_end_date) THEN
2195 fnd_message.set_name('PN', 'PN_STR_GRT_END_DT');
2196 fnd_msg_pub.ADD;
2197 RAISE fnd_api.g_exc_error;
2198 END IF;
2199
2200 BEGIN
2201 SELECT 'x'
2202 INTO l_exist
2203 FROM dual
2204 WHERE EXISTS (SELECT inv_end_date
2205 FROM pn_var_grp_dates_all
2206 WHERE var_rent_id = l_var_rent_id
2207 AND inv_end_date = p_allow_abat_tbl_type (b).abat_end_date
2208 );
2209 EXCEPTION
2210 WHEN OTHERS THEN
2211 l_exist := NULL;
2212 pn_varen_util.pvt_debug('PN_VAR_RENT_PVT: Val_Ins_Allow_Abat:Exception in ABAT END DATE Retrieval:'||SQLERRM,3);
2213 END;
2214 IF l_exist IS NULL THEN
2215 /* End date is not coinciding with the invoice End date */
2216 fnd_message.set_name('PN', 'PN_SED_DT_INV_MSG');
2217 fnd_msg_pub.ADD;
2218 RAISE fnd_api.g_exc_error;
2219 END IF;
2220 ELSE
2221 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
2222 fnd_message.set_token('ERR_MSG', 'Invalid ABAT End Date');
2223 fnd_msg_pub.ADD;
2224 RAISE fnd_api.g_exc_error;
2225 END IF;
2226
2227
2228 /*
2229 ----------------------------------------------------------------------
2230 --- Validation of Allowance and Abatement end date
2231 ----------------------------------------------------------------------
2232 IF (p_allow_abat_tbl_type (b).abat_end_date IS NOT NULL)
2233 THEN
2234 pn_varen_util.pvt_debug
2235 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement end date is not null : '
2236 || p_allow_abat_tbl_type (b).abat_end_date
2237 , 3
2238 );
2239 pn_varen_util.pvt_debug ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Variable Rent Termination Date: '
2240 || l_var_termination_date
2241 , 3
2242 );
2243 pn_varen_util.pvt_debug ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Abatement End Date: '
2244 || p_allow_abat_tbl_type (b).abat_end_date
2245 , 3
2246 );
2247
2248 IF (p_allow_abat_tbl_type (b).abat_end_date = l_var_termination_date)
2249 THEN
2250 pn_varen_util.pvt_debug
2251 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement end date Validation Success :'
2252 || p_allow_abat_tbl_type (b).abat_end_date
2253 , 3
2254 );
2255 ELSIF (p_allow_abat_tbl_type (b).abat_end_date <> l_var_termination_date)
2256 THEN
2257 pn_varen_util.pvt_debug
2258 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement end Date Validation Error : '
2259 || p_allow_abat_tbl_type (b).abat_end_date
2260 || 'Please ensure that the end date for a roslling allowance or fixed abatement is within the variable rent agreement dates.'
2261 , 3
2262 );
2263 fnd_message.set_name ('PN'
2264 , 'PN_VAR_ABT_END_MSG'
2265 );
2266 fnd_msg_pub.ADD;
2267 RAISE fnd_api.g_exc_error;
2268 ELSIF ( p_allow_abat_tbl_type (b).abat_end_date > l_var_termination_date
2269 OR p_allow_abat_tbl_type (b).abat_end_date < l_var_commencement_date
2270 )
2271 THEN
2272 pn_varen_util.pvt_debug
2273 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement end Date Validation Error : '
2274 || p_allow_abat_tbl_type (b).abat_end_date
2275 || 'Please ensure that the end date for a roslling allowance or fixed abatement is within the variable rent agreement dates.'
2276 , 3
2277 );
2278 fnd_message.set_name ('PN'
2279 , 'PN_VAR_ABT_END_MSG'
2280 );
2281 fnd_msg_pub.ADD;
2282 RAISE fnd_api.g_exc_error;
2283 ELSIF (p_allow_abat_tbl_type (b).abat_start_date > p_allow_abat_tbl_type (b).abat_end_date)
2284 THEN
2285 pn_varen_util.pvt_debug
2286 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement end Date Validation Error : '
2287 || p_allow_abat_tbl_type (b).abat_end_date
2288 || 'Please ensure that the start date for a rolling allowance or fixed abatement is less than the end date.'
2289 , 3
2290 );
2291 fnd_message.set_name ('PN'
2292 , 'PN_STR_GRT_END_DT'
2293 );
2294 fnd_msg_pub.ADD;
2295 RAISE fnd_api.g_exc_error;
2296 END IF;
2297 ELSE
2298 p_allow_abat_tbl_type (b).abat_end_date := l_var_termination_date;
2299 pn_varen_util.pvt_debug
2300 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement end Date is null then value is defaulted Termination Date : '
2301 || l_var_termination_date
2302 || ' Success'
2303 , 3
2304 );
2305 END IF;
2306
2307 IF p_allow_abat_tbl_type (b).abat_amount IS NULL
2308 THEN
2309 pn_varen_util.pvt_debug
2310 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatement amount is Null - Validation Error : '
2311 || p_allow_abat_tbl_type (b).abat_amount
2312 || 'Please enter Allowance and Abatement amount.'
2313 , 3
2314 );
2315 fnd_message.set_name ('PN'
2316 , 'PN_VAR_ALL_ABA_AT'
2317 );
2318 fnd_msg_pub.ADD;
2319 RAISE fnd_api.g_exc_error;
2320 END IF;
2321 */
2322
2323 -------------------------------------------------------------------------------------------
2324 -- Validating Descriptive Flex fields
2325 -------------------------------------------------------------------------------------------
2326 /* --Commented as DFF is not available
2327 IF (get_attribute_status('PN_VAR_DEDUCTIONS') > 0) THEN
2328 IF NOT ((p_allow_abat_tbl_type (b).attribute_category = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute_category IS NULL)
2329 AND (p_allow_abat_tbl_type (b).attribute1 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute1 IS NULL)
2330 AND (p_allow_abat_tbl_type (b).attribute2 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute2 IS NULL)
2331 AND (p_allow_abat_tbl_type (b).attribute3 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute3 IS NULL)
2332 AND (p_allow_abat_tbl_type (b).attribute4 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute4 IS NULL)
2333 AND (p_allow_abat_tbl_type (b).attribute5 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute5 IS NULL)
2334 AND (p_allow_abat_tbl_type (b).attribute6 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute6 IS NULL)
2335 AND (p_allow_abat_tbl_type (b).attribute7 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute7 IS NULL)
2336 AND (p_allow_abat_tbl_type (b).attribute8 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute8 IS NULL)
2337 AND (p_allow_abat_tbl_type (b).attribute9 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute9 IS NULL)
2338 AND (p_allow_abat_tbl_type (b).attribute10 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute10 IS NULL)
2339 AND (p_allow_abat_tbl_type (b).attribute11 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute11 IS NULL)
2340 AND (p_allow_abat_tbl_type (b).attribute12 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute12 IS NULL)
2341 AND (p_allow_abat_tbl_type (b).attribute13 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute13 IS NULL)
2342 AND (p_allow_abat_tbl_type (b).attribute14 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute14 IS NULL)
2343 AND (p_allow_abat_tbl_type (b).attribute15 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl_type (b).attribute15 IS NULL)
2344 ) THEN
2345 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_DEDUCTIONS'
2346 , p_attribute_category => p_allow_abat_tbl_type (b).attribute_category
2347 , p_attribute1 => p_allow_abat_tbl_type (b).attribute1
2348 , p_attribute2 => p_allow_abat_tbl_type (b).attribute2
2349 , p_attribute3 => p_allow_abat_tbl_type (b).attribute3
2350 , p_attribute4 => p_allow_abat_tbl_type (b).attribute4
2351 , p_attribute5 => p_allow_abat_tbl_type (b).attribute5
2352 , p_attribute6 => p_allow_abat_tbl_type (b).attribute6
2353 , p_attribute7 => p_allow_abat_tbl_type (b).attribute7
2354 , p_attribute8 => p_allow_abat_tbl_type (b).attribute8
2355 , p_attribute9 => p_allow_abat_tbl_type (b).attribute9
2356 , p_attribute10 => p_allow_abat_tbl_type (b).attribute10
2357 , p_attribute11 => p_allow_abat_tbl_type (b).attribute11
2358 , p_attribute12 => p_allow_abat_tbl_type (b).attribute12
2359 , p_attribute13 => p_allow_abat_tbl_type (b).attribute13
2360 , p_attribute14 => p_allow_abat_tbl_type (b).attribute14
2361 , p_attribute15 => p_allow_abat_tbl_type (b).attribute15
2362 , x_return_msg => l_return_msg
2363 , x_return_status => l_return_status
2364 );
2365
2366 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
2367 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
2368 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_ALLOW_ABATE Descriptive Fields Error');
2369 fnd_msg_pub.ADD;
2370 RAISE fnd_api.g_exc_error;
2371 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
2372 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
2373 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_ALLOW_ABATE Descriptive Fields Error');
2374 fnd_msg_pub.ADD;
2375 RAISE fnd_api.g_exc_unexpected_error;
2376 END IF;
2377 END IF;
2378 END IF; -- End of attributes valitions in create var Allow and Abate*/
2379
2380
2381 --
2382 -- End of Abatement Validations
2383 pn_varen_util.pvt_debug ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatements Validation : '
2384 || l_allow_abat_val
2385 , 3
2386 );
2387
2388 /* IF ( l_allow_abat_val <> 'N'
2389 AND x_return_status = fnd_api.g_ret_sts_success)
2390 THEN
2391 pn_varen_util.pvt_debug
2392 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Before Calling insert_Allowance and Abatements procedure : '
2393 || l_allow_abat_val
2394 , 3
2395 );*/
2396
2397 IF p_validate_flag <> 'Y'
2398 THEN
2399 insert_allow_abat (p_allow_abat_rec_type => p_allow_abat_tbl_type (b)
2400 , x_return_status => x_return_status
2401 );
2402 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
2403 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
2404 fnd_message.set_token ('ERR_MSG', 'Var Rent:INSERT_ALLOW_ABAT:Exception');
2405 fnd_msg_pub.ADD;
2406 RAISE fnd_api.g_exc_error;
2407 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
2408 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
2409 fnd_message.set_token ('ERR_MSG', 'Var Rent : INSERT_ALLOW_ABAT:Unexpected Exception');
2410 fnd_msg_pub.ADD;
2411 RAISE fnd_api.g_exc_unexpected_error;
2412 END IF;
2413 ELSE
2414 pn_varen_util.pvt_debug
2415 ('PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Abatements Procedure is ran in Validation mode, abatements would not be created '
2416 , 3
2417 );
2418 END IF;
2419 /*ELSE
2420 pn_varen_util.pvt_debug
2421 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Allowance and Abatements Validation is not success : '
2422 || l_allow_abat_val
2423 , 3
2424 );
2425 END IF;*/
2426 ELSE
2427 pn_varen_util.pvt_debug
2428 ('PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Pn_Varen_Pvt.Val_Ins_Allow_Abat - Rent_Num provided is not found'
2429 , 3
2430 );
2431 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
2432 fnd_message.set_token('ERR_MSG', 'Pn_Varen_Pvt.Val_Ins_Allow_Abat - Rent_Num provided is not found');
2433 fnd_msg_pub.ADD;
2434 RAISE fnd_api.g_exc_error;
2435 END IF;
2436
2437 EXCEPTION
2438 WHEN fnd_api.g_exc_error THEN
2439 pn_varen_util.pvt_debug(g_pkg_name||'-val_ins_allow_abat:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
2440 l_allow_abat_count := l_allow_abat_count+1;
2441 WHEN OTHERS THEN
2442 pn_varen_util.pvt_debug(g_pkg_name||'-val_ins_allow_abat:LOOOPING:EXCEPTION:'||SQLERRM,3);
2443 l_allow_abat_count := l_allow_abat_count+1;
2444 END;
2445 END LOOP;
2446
2447 IF(l_allow_abat_count = 0) THEN
2448 x_return_status := fnd_api.g_ret_sts_success;
2449 ELSE
2450 x_return_status := fnd_api.g_ret_sts_error;
2451 END IF;
2452 EXCEPTION
2453 WHEN OTHERS
2454 THEN
2455 pn_varen_util.pvt_debug
2456 ( 'PN_VAR_RENT_PVT: Val_Ins_Allow_Abat: Pn_Varen_Pvt.Val_Ins_Allow_Abat - Exception raised: '
2457 || SQLERRM
2458 , 3
2459 );
2460 x_return_status := fnd_api.g_ret_sts_error;
2461 END val_ins_allow_abat;
2462
2463 --------------------------------------------------------------------------------
2464 -- NAME : VAL_INS_CONSTRAINTS
2465 -- DESCRIPTION : Private procedure to validate Constraints
2466 -- PURPOSE :
2467 -- INVOKED FROM :
2468 -- ARGUMENTS : P_CONSTRAINTS_TBL_TYPE IN Parameter
2469 -- : P_VALIDATE_FLAG IN Parameter
2470 -- : P_GENERATE_CONSTRAINTS IN Parameter
2471 -- : X_RETURN_STATUS OUT Parameter
2472 -- REFERENCE :
2473 -- HISTORY :
2474 --
2475 -- 20-SEP-2010 vkatta o Created
2476 --------------------------------------------------------------------------------
2477 PROCEDURE val_ins_constraints (
2478 p_constraints_tbl_type IN OUT NOCOPY constraints_tbl_type
2479 , p_validate_flag IN VARCHAR2
2480 , p_generate_constraints IN VARCHAR2 DEFAULT 'N'
2481 , x_return_status OUT NOCOPY VARCHAR2
2482 )
2483 IS
2484 l_return_status VARCHAR2 (1);
2485 l_validate_success VARCHAR2 (1) := 'N';
2486 l_var_commencement_date DATE;
2487 l_var_termination_date DATE;
2488 l_const_val VARCHAR2 (1) := 'Y';
2489 l_st_date_exist VARCHAR2 (1) := NULL;
2490 l_return_msg VARCHAR2 (10);
2491 l_variable_rent_exists VARCHAR2 (30);
2492 l_var_rent_id NUMBER;
2493 l_first_constr_type_code pn_var_constr_defaults_all.type_code%TYPE;
2494 l_first_constr_amount pn_var_constr_defaults_all.amount%TYPE;
2495
2496 l_val_ins_error_count NUMBER := 0;
2497 BEGIN
2498 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Value of g_var_rent_id befor constraints loop: '
2499 || g_var_rent_id
2500 , 3
2501 );
2502
2503 FOR c IN p_constraints_tbl_type.FIRST .. p_constraints_tbl_type.LAST
2504 LOOP
2505 BEGIN
2506 pn_varen_util.pvt_debug
2507 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Value of G_VAR_RENT_ID inside constraints loop: '
2508 || g_var_rent_id
2509 , 3
2510 );
2511
2512 -------------------------------------------------------------------------------------
2513 -- If Constraints record type has not been initialized then assign it to null
2514 -------------------------------------------------------------------------------------
2515 IF p_constraints_tbl_type (c).constr_default_id = pn_varen_util.g_pn_miss_num
2516 THEN
2517 p_constraints_tbl_type (c).constr_default_id := NULL;
2518 END IF;
2519
2520 IF p_constraints_tbl_type (c).constr_default_num = pn_varen_util.g_pn_miss_num
2521 THEN
2522 p_constraints_tbl_type (c).constr_default_num := NULL;
2523 END IF;
2524
2525 IF ( p_constraints_tbl_type (c).var_rent_id = pn_varen_util.g_pn_miss_num
2526 OR p_constraints_tbl_type (c).var_rent_id IS NULL
2527 )
2528 THEN
2529 p_constraints_tbl_type (c).var_rent_id := g_var_rent_id;
2530 END IF;
2531
2532 IF p_constraints_tbl_type (c).var_rent_num = pn_varen_util.g_pn_miss_char
2533 THEN
2534 p_constraints_tbl_type (c).var_rent_num := NULL;
2535 END IF;
2536
2537 IF p_constraints_tbl_type (c).agreement_template_id = pn_varen_util.g_pn_miss_num
2538 THEN
2539 p_constraints_tbl_type (c).agreement_template_id := NULL;
2540 END IF;
2541
2542 IF p_constraints_tbl_type (c).constr_template_id = pn_varen_util.g_pn_miss_num
2543 THEN
2544 p_constraints_tbl_type (c).constr_template_id := NULL;
2545 END IF;
2546
2547 IF p_constraints_tbl_type (c).constr_start_date = pn_varen_util.g_pn_miss_date
2548 THEN
2549 p_constraints_tbl_type (c).constr_start_date := NULL;
2550 END IF;
2551
2552 IF p_constraints_tbl_type (c).constr_end_date = pn_varen_util.g_pn_miss_date
2553 THEN
2554 p_constraints_tbl_type (c).constr_end_date := NULL;
2555 END IF;
2556
2557 IF p_constraints_tbl_type (c).constr_cat_code = pn_varen_util.g_pn_miss_char
2558 THEN
2559 p_constraints_tbl_type (c).constr_cat_code := NULL;
2560 END IF;
2561
2562 IF p_constraints_tbl_type (c).constr_type_code = pn_varen_util.g_pn_miss_char
2563 THEN
2564 p_constraints_tbl_type (c).constr_type_code := NULL;
2565 END IF;
2566
2567 IF p_constraints_tbl_type (c).constr_type_meaning = pn_varen_util.g_pn_miss_char
2568 THEN
2569 p_constraints_tbl_type (c).constr_type_meaning := NULL;
2570 END IF;
2571
2572 IF p_constraints_tbl_type (c).constr_amount = pn_varen_util.g_pn_miss_num
2573 THEN
2574 p_constraints_tbl_type (c).constr_amount := NULL;
2575 END IF;
2576
2577 IF p_constraints_tbl_type (c).last_update_date = pn_varen_util.g_pn_miss_date
2578 THEN
2579 p_constraints_tbl_type (c).last_update_date := NULL;
2580 END IF;
2581
2582 IF p_constraints_tbl_type (c).last_updated_by = pn_varen_util.g_pn_miss_num
2583 THEN
2584 p_constraints_tbl_type (c).last_updated_by := NULL;
2585 END IF;
2586
2587 IF p_constraints_tbl_type (c).creation_date = pn_varen_util.g_pn_miss_date
2588 THEN
2589 p_constraints_tbl_type (c).creation_date := NULL;
2590 END IF;
2591
2592 IF p_constraints_tbl_type (c).created_by = pn_varen_util.g_pn_miss_num
2593 THEN
2594 p_constraints_tbl_type (c).created_by := NULL;
2595 END IF;
2596
2597 IF p_constraints_tbl_type (c).last_update_login = pn_varen_util.g_pn_miss_num
2598 THEN
2599 p_constraints_tbl_type (c).last_update_login := NULL;
2600 END IF;
2601
2602 IF p_constraints_tbl_type (c).attribute_category = pn_varen_util.g_pn_miss_char
2603 THEN
2604 p_constraints_tbl_type (c).attribute_category := NULL;
2605 END IF;
2606
2607 IF p_constraints_tbl_type (c).attribute1 = pn_varen_util.g_pn_miss_char
2608 THEN
2609 p_constraints_tbl_type (c).attribute1 := NULL;
2610 END IF;
2611
2612 IF p_constraints_tbl_type (c).attribute2 = pn_varen_util.g_pn_miss_char
2613 THEN
2614 p_constraints_tbl_type (c).attribute2 := NULL;
2615 END IF;
2616
2617 IF p_constraints_tbl_type (c).attribute3 = pn_varen_util.g_pn_miss_char
2618 THEN
2619 p_constraints_tbl_type (c).attribute3 := NULL;
2620 END IF;
2621
2622 IF p_constraints_tbl_type (c).attribute4 = pn_varen_util.g_pn_miss_char
2623 THEN
2624 p_constraints_tbl_type (c).attribute4 := NULL;
2625 END IF;
2626
2627 IF p_constraints_tbl_type (c).attribute5 = pn_varen_util.g_pn_miss_char
2628 THEN
2629 p_constraints_tbl_type (c).attribute5 := NULL;
2630 END IF;
2631
2632 IF p_constraints_tbl_type (c).attribute6 = pn_varen_util.g_pn_miss_char
2633 THEN
2634 p_constraints_tbl_type (c).attribute6 := NULL;
2635 END IF;
2636
2637 IF p_constraints_tbl_type (c).attribute7 = pn_varen_util.g_pn_miss_char
2638 THEN
2639 p_constraints_tbl_type (c).attribute7 := NULL;
2640 END IF;
2641
2642 IF p_constraints_tbl_type (c).attribute8 = pn_varen_util.g_pn_miss_char
2643 THEN
2644 p_constraints_tbl_type (c).attribute8 := NULL;
2645 END IF;
2646
2647 IF p_constraints_tbl_type (c).attribute9 = pn_varen_util.g_pn_miss_char
2648 THEN
2649 p_constraints_tbl_type (c).attribute9 := NULL;
2650 END IF;
2651
2652 IF p_constraints_tbl_type (c).attribute10 = pn_varen_util.g_pn_miss_char
2653 THEN
2654 p_constraints_tbl_type (c).attribute10 := NULL;
2655 END IF;
2656
2657 IF p_constraints_tbl_type (c).attribute11 = pn_varen_util.g_pn_miss_char
2658 THEN
2659 p_constraints_tbl_type (c).attribute11 := NULL;
2660 END IF;
2661
2662 IF p_constraints_tbl_type (c).attribute12 = pn_varen_util.g_pn_miss_char
2663 THEN
2664 p_constraints_tbl_type (c).attribute12 := NULL;
2665 END IF;
2666
2667 IF p_constraints_tbl_type (c).attribute13 = pn_varen_util.g_pn_miss_char
2668 THEN
2669 p_constraints_tbl_type (c).attribute13 := NULL;
2670 END IF;
2671
2672 IF p_constraints_tbl_type (c).attribute14 = pn_varen_util.g_pn_miss_char
2673 THEN
2674 p_constraints_tbl_type (c).attribute14 := NULL;
2675 END IF;
2676
2677 IF p_constraints_tbl_type (c).attribute15 = pn_varen_util.g_pn_miss_char
2678 THEN
2679 p_constraints_tbl_type (c).attribute15 := NULL;
2680 END IF;
2681
2682 ---------
2683 -- End
2684 ---------
2685 l_variable_rent_exists := NULL;
2686 ----------------------------------------------------------------------------------------------------------------------------
2687 -- Comparing const_start_date is greater than const_end_date and also whether records exists in pn_var_grp_dates_all or not
2688 ----------------------------------------------------------------------------------------------------------------------------
2689 -- BEGIN -- to capture exceptions related to individual validations
2690 --
2691 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: No of Constraints records:'
2692 || p_constraints_tbl_type.COUNT
2693 , 3
2694 );
2695
2696 BEGIN
2697 SELECT COUNT (1)
2698 , var_rent_id
2699 INTO l_variable_rent_exists
2700 , l_var_rent_id
2701 FROM pn_var_rents_all
2702 WHERE ( rent_num = p_constraints_tbl_type (c).var_rent_num
2703 OR var_rent_id = p_constraints_tbl_type (c).var_rent_id
2704 )
2705 AND org_id = g_org_id --l_org_id
2706 GROUP BY var_rent_id;
2707 EXCEPTION
2708 WHEN OTHERS
2709 THEN
2710 pn_varen_util.pvt_debug
2711 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Variable Rent Number or Variable Rent Id doesnot exists :'
2712 || SQLERRM
2713 , 3
2714 );
2715 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
2716 fnd_message.set_token('ERR_MSG', 'Rent ID/Rent Number doesnt exist.');
2717 fnd_msg_pub.ADD;
2718 RAISE fnd_api.g_exc_error;
2719 END;
2720
2721 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratints var_rent_Id :'
2722 || l_var_rent_id
2723 , 3
2724 );
2725
2726 IF l_variable_rent_exists = 1
2727 THEN
2728 p_constraints_tbl_type (c).var_rent_id := l_var_rent_id;
2729 pn_varen_util.pvt_debug
2730 ( ' PN_VAREN_PVT: Val_Ins_Constraints: Variable Rent exists and VAR_RENT_ID is : '
2731 || l_var_rent_id
2732 , 3
2733 );
2734
2735 IF (p_constraints_tbl_type (c).constr_start_date > p_constraints_tbl_type (c).constr_end_date)
2736 THEN
2737 pn_varen_util.pvt_debug
2738 ('PN_VAREN_PVT: Val_Ins_Constraints: Please ensure that constraint dates you enter coincide with invoice period dates'
2739 , 3
2740 );
2741 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
2742 fnd_message.set_token('ERR_MSG', 'Please ensure that constraint dates you enter coincide with invoice period dates');
2743 fnd_msg_pub.ADD;
2744 RAISE fnd_api.g_exc_error;
2745 --l_const_val := 'N';
2746 END IF;
2747
2748 --------------------------------------------------------------------------------
2749 --Constraint Type validation
2750 --------------------------------------------------------------------------------
2751 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Val_Ins_Constraints: Calling Constraint Type Validation'
2752 , 3
2753 );
2754
2755 IF ( p_constraints_tbl_type (c).constr_type_code IS NOT NULL
2756 OR p_constraints_tbl_type (c).constr_type_meaning IS NOT NULL
2757 )
2758 THEN
2759
2760 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Val_Ins_Constraints: Constraint Type Validation'
2761 , 3
2762 );
2763 pn_varen_util.validate_lookups (p_lookup_type => g_type_code
2764 , x_lookup_meaning => p_constraints_tbl_type (c).constr_type_meaning
2765 , x_lookup_code => p_constraints_tbl_type (c).constr_type_code
2766 , x_return_status => l_return_status
2767 );
2768 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constraint Type Output Code :'
2769 || p_constraints_tbl_type (c).constr_type_code||'-'||l_return_status
2770 , 3
2771 );
2772
2773 IF (l_return_status = fnd_api.g_ret_sts_error)
2774 THEN
2775 --
2776 fnd_message.set_name ('PN'
2777 , 'PN_VAR_CONSTR_TY'
2778 );
2779 fnd_msg_pub.ADD;
2780 RAISE fnd_api.g_exc_error;
2781 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
2782 THEN
2783 --
2784 fnd_message.set_name ('PN'
2785 , 'PN_VAR_CONSTR_TY'
2786 );
2787 fnd_msg_pub.ADD;
2788 RAISE fnd_api.g_exc_unexpected_error;
2789 END IF;
2790 END IF;
2791
2792 --
2793 -- fetching variable rent commencement date and termination date values
2794 --
2795 IF p_constraints_tbl_type (c).var_rent_id IS NOT NULL
2796 THEN
2797 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constraint Variable Rent Id '
2798 || p_constraints_tbl_type (c).var_rent_id
2799 , 3
2800 );
2801 pn_varen_util.var_rent_details (p_var_rent_id => p_constraints_tbl_type (c).var_rent_id
2802 , p_org_id => g_org_id
2803 , x_commencement_date => l_var_commencement_date
2804 , x_termination_date => l_var_termination_date
2805 , x_return_status => x_return_status
2806 );
2807
2808
2809 pn_varen_util.pvt_debug
2810 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constraint Variable Rent Id exists : '
2811 || p_constraints_tbl_type (c).var_rent_id||'-'||l_return_status
2812 , 3
2813 );
2814 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Variable Rent commencement date : '
2815 || l_var_commencement_date
2816 , 3
2817 );
2818 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Variable Rent termination date : '
2819 || l_var_termination_date
2820 , 3
2821 );
2822 IF (x_return_status = fnd_api.g_ret_sts_error)
2823 THEN
2824 pn_varen_util.pvt_debug
2825 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constraint Variable Rent Id doesnot exists : '
2826 || p_constraints_tbl_type (c).var_rent_id
2827 , 3
2828 );
2829 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
2830 fnd_message.set_token('ERR_MSG', ' Constraint Variable Rent Id doesnot exists');
2831 fnd_msg_pub.ADD;
2832 RAISE fnd_api.g_exc_error;
2833 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
2834 pn_varen_util.pvt_debug
2835 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Unexpected Error Constraint Variable Rent Id doesnot exists : '
2836 || p_constraints_tbl_type (c).var_rent_id
2837 , 3
2838 );
2839 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
2840 fnd_message.set_token('ERR_MSG', 'Unexpected Constraint Variable Rent Id doesnot exists');
2841 fnd_msg_pub.ADD;
2842 RAISE fnd_api.g_exc_unexpected_error;
2843 END IF;
2844 ELSE
2845 pn_varen_util.pvt_debug
2846 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constraint Variable Rent Id is null : '
2847 || p_constraints_tbl_type (c).var_rent_id
2848 , 3
2849 );
2850 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
2851 fnd_message.set_token ('API_NAME', 'PN_VAR_RENT_PVT');
2852 fnd_message.set_token ('NULL_PARAM', 'RENT_ID ');
2853 fnd_msg_pub.ADD;
2854 RAISE fnd_api.g_exc_error;
2855 END IF;
2856
2857 ----------------------------------------------------------------------
2858 --- Validation of Constratint start date
2859 ----------------------------------------------------------------------
2860 IF (p_constraints_tbl_type (c).constr_start_date IS NOT NULL)
2861 THEN
2862 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratint Start Date is not null : '
2863 || p_constraints_tbl_type (c).constr_start_date
2864 , 3
2865 );
2866 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratint End Date : '
2867 || p_constraints_tbl_type (c).constr_end_date
2868 , 3
2869 );
2870 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Variable Rent Commencement Date : '
2871 || l_var_commencement_date
2872 , 3
2873 );
2874 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Variable Rent Termination Date: '
2875 || l_var_termination_date
2876 , 3
2877 );
2878
2879 IF (p_constraints_tbl_type (c).constr_start_date = l_var_commencement_date)
2880 THEN
2881
2882 pn_varen_util.pvt_debug
2883 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratint Start Date Validation Success :'
2884 || p_constraints_tbl_type (c).constr_start_date
2885 , 3
2886 );
2887 pn_varen_util.pvt_debug
2888 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratint Start Date Validation Success :'
2889 || p_constraints_tbl_type (c).constr_start_date
2890 , 3
2891 );
2892 ELSIF ( p_constraints_tbl_type (c).constr_start_date < l_var_commencement_date
2893 OR p_constraints_tbl_type (c).constr_start_date > l_var_termination_date
2894 )
2895 THEN
2896 pn_varen_util.pvt_debug
2897 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratint Start Date Validation Error : '
2898 || p_constraints_tbl_type (c).constr_start_date
2899 || 'Please enter a constraint start date that is the same as or after the commencement date of the variable rent agreement.'
2900 , 3
2901 );
2902 fnd_message.set_name ('PN'
2903 , 'PN_VAR_CONSTR_STRDT_VAL_MSG'
2904 );
2905 fnd_msg_pub.ADD;
2906 RAISE fnd_api.g_exc_error;
2907 ELSIF (p_constraints_tbl_type (c).constr_start_date > l_var_commencement_date)
2908 THEN
2909 pn_varen_util.pvt_debug
2910 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratint Start Date Validation Error :'
2911 || p_constraints_tbl_type (c).constr_start_date
2912 || 'Please ensure that constraint dates you enter coincide with invoice period dates'
2913 , 3
2914 );
2915 fnd_message.set_name ('PN'
2916 , 'PN_VAR_CONSTR_STRDT_VAL_MSG'
2917 );
2918 fnd_msg_pub.ADD;
2919 RAISE fnd_api.g_exc_error;
2920 END IF;
2921 ELSE
2922 --
2923 p_constraints_tbl_type (c).constr_start_date := l_var_commencement_date;
2924 pn_varen_util.pvt_debug
2925 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratint Start Date is null then value is Defaulted Variable Rent Commencement Date : '
2926 || l_var_commencement_date
2927 || ' Success'
2928 , 3
2929 );
2930 END IF;
2931
2932 pn_varen_util.pvt_debug
2933 ( 'PN_VAREN_PVT: Val_Ins_Constraints: , p_constraints_tbl_type (c).constr_start_date :'
2934 || p_constraints_tbl_type (c).constr_start_date
2935 , 3
2936 );
2937 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: , l_var_commencement_date :'
2938 || l_var_commencement_date
2939 , 3
2940 );
2941
2942 ----------------------------------------------------------------------
2943 --- Validation of Constratint end date
2944 ----------------------------------------------------------------------
2945 IF (p_constraints_tbl_type (c).constr_end_date IS NOT NULL)
2946 THEN
2947 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratint end Date is not null : '
2948 || p_constraints_tbl_type (c).constr_end_date
2949 , 3
2950 );
2951 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Variable Rent Termination Date: '
2952 || l_var_termination_date
2953 , 3
2954 );
2955
2956 IF (p_constraints_tbl_type (c).constr_end_date = l_var_termination_date)
2957 THEN
2958 pn_varen_util.pvt_debug
2959 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratint end Date Validation Success :'
2960 || p_constraints_tbl_type (c).constr_end_date
2961 , 3
2962 );
2963 ELSIF ( p_constraints_tbl_type (c).constr_end_date > l_var_termination_date
2964 OR p_constraints_tbl_type (c).constr_end_date < l_var_commencement_date
2965 )
2966 THEN
2967 pn_varen_util.pvt_debug
2968 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constratint end Date Validation Error :'
2969 || p_constraints_tbl_type (c).constr_end_date
2970 || 'Please enter a constraint end date that is the same as or before the termination date of the variable rent agreement.'
2971 , 3
2972 );
2973 fnd_message.set_name ('PN'
2974 , 'PN_VAR_CONSTR_ENDDT_VAL_MSG'
2975 );
2976 fnd_msg_pub.ADD;
2977 RAISE fnd_api.g_exc_error;
2978 ELSIF (p_constraints_tbl_type (c).constr_end_date < l_var_termination_date)
2979 THEN
2980 pn_varen_util.pvt_debug
2981 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constraint end Date Validation Error :'
2982 || p_constraints_tbl_type (c).constr_end_date
2983 || 'Please enter an end date that is greater than or equal to the start date.'
2984 , 3
2985 );
2986 fnd_message.set_name ('PN'
2987 , 'PN_VAR_CONSTR_ENDDT_VAL_MSG'
2988 );
2989 fnd_msg_pub.ADD;
2990 RAISE fnd_api.g_exc_error;
2991 END IF;
2992 ELSE
2993 --
2994 p_constraints_tbl_type (c).constr_end_date := l_var_termination_date;
2995 pn_varen_util.pvt_debug
2996 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constraint end Date is null then value is defaulted Variable Rent Termination Date : '
2997 || l_var_termination_date
2998 || ' Success'
2999 , 3
3000 );
3001 END IF;
3002
3003 IF p_constraints_tbl_type (c).constr_amount IS NULL
3004 THEN
3005 pn_varen_util.pvt_debug
3006 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Constraint Amount is Null - Validation Error :'
3007 || p_constraints_tbl_type (c).constr_amount
3008 || 'Please enter constraint amount'
3009 , 3
3010 );
3011 fnd_message.set_name ('PN'
3012 , 'PN_VAR_CONSTR_AMT'
3013 );
3014 fnd_msg_pub.ADD;
3015 RAISE fnd_api.g_exc_error;
3016 END IF;
3017
3018 ---------------------------------------------------------------------------------------------------------------------
3019 -- For the second constraint record, need to compare the first constraint type code and amount with the second record
3020 ----------------------------------------------------------------------------------------------------------------------
3021 IF c = 1
3022 THEN
3023 l_first_constr_type_code :=
3024 p_constraints_tbl_type (c).constr_type_code;
3025 pn_varen_util.pvt_debug ( ' PN_VAREN_PVT: Val_Ins_Constraints: l_first_constr_type_code is : '
3026 || l_first_constr_type_code
3027 , 3
3028 );
3029 l_first_constr_amount :=
3030 p_constraints_tbl_type (c).constr_amount;
3031 pn_varen_util.pvt_debug ( ' PN_VAREN_PVT: Val_Ins_Constraints: l_first_constr_amount is : '
3032 || l_first_constr_amount
3033 , 3
3034 );
3035 ELSIF c = 2
3036 THEN
3037 IF ( p_constraints_tbl_type (c).constr_type_code <> l_first_constr_type_code
3038 -- second record 'MAX'
3039 AND l_first_constr_type_code = 'MIN'
3040 )
3041 THEN
3042 IF l_first_constr_amount <= p_constraints_tbl_type (c).constr_amount
3043 THEN
3044 pn_varen_util.pvt_debug
3045 ('PN_VAREN_PVT: Val_Ins_Constraints: For Next Constraint record, constraint type is MAX and amount is greater than first record amount.'
3046 , 3
3047 );
3048 ELSE
3049 pn_varen_util.pvt_debug
3050 ('PN_VAREN_PVT: Val_Ins_Constraints: For Next Constraint record, constraint type is MAX and amount is less than first record amount.'
3051 , 3
3052 );
3053 fnd_message.set_name ('PN'
3054 , 'PN_VAR_WRONG_RANGE'
3055 );
3056 fnd_msg_pub.ADD;
3057 RAISE fnd_api.g_exc_error;
3058 END IF;
3059 ELSIF ( p_constraints_tbl_type (c).constr_type_code <> l_first_constr_type_code
3060 -- second record 'MIN'
3061 AND l_first_constr_type_code = 'MAX'
3062 )
3063 THEN
3064 IF p_constraints_tbl_type (c).constr_amount <= l_first_constr_amount
3065 THEN
3066 pn_varen_util.pvt_debug
3067 ('PN_VAREN_PVT: Val_Ins_Constraints: For Next Constraint record, constraint type is MIN and amount is less than first record amount '
3068 , 3
3069 );
3070 ELSE
3071 pn_varen_util.pvt_debug
3072 ('PN_VAREN_PVT: Val_Ins_Constraints: For Next Constraint record, constraint type is MIN and amount is greater than first record amount '
3073 , 3
3074 );
3075 fnd_message.set_name ('PN'
3076 , 'PN_VAR_WRONG_RANGE'
3077 );
3078 fnd_msg_pub.ADD;
3079 RAISE fnd_api.g_exc_error;
3080 END IF;
3081 END IF;
3082 END IF;
3083
3084 -------------------------------------------------------------------------------------------
3085 -- Validating Descriptive Flex fields
3086 -------------------------------------------------------------------------------------------
3087 IF (get_attribute_status('PN_VAR_CONSTRAINTS') > 0) THEN
3088 IF NOT ((p_constraints_tbl_type(c).attribute_category = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute_category IS NULL)
3089 AND (p_constraints_tbl_type(c).attribute1 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute1 IS NULL)
3090 AND (p_constraints_tbl_type(c).attribute2 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute2 IS NULL)
3091 AND (p_constraints_tbl_type(c).attribute3 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute3 IS NULL)
3092 AND (p_constraints_tbl_type(c).attribute4 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute4 IS NULL)
3093 AND (p_constraints_tbl_type(c).attribute5 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute5 IS NULL)
3094 AND (p_constraints_tbl_type(c).attribute6 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute6 IS NULL)
3095 AND (p_constraints_tbl_type(c).attribute7 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute7 IS NULL)
3096 AND (p_constraints_tbl_type(c).attribute8 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute8 IS NULL)
3097 AND (p_constraints_tbl_type(c).attribute9 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute9 IS NULL)
3098 AND (p_constraints_tbl_type(c).attribute10 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute10 IS NULL)
3099 AND (p_constraints_tbl_type(c).attribute11 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute11 IS NULL)
3100 AND (p_constraints_tbl_type(c).attribute12 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute12 IS NULL)
3101 AND (p_constraints_tbl_type(c).attribute13 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute13 IS NULL)
3102 AND (p_constraints_tbl_type(c).attribute14 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute14 IS NULL)
3103 AND (p_constraints_tbl_type(c).attribute15 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl_type(c).attribute15 IS NULL)
3104 ) THEN
3105 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_CONSTRAINTS'
3106 , p_attribute_category => p_constraints_tbl_type(c).attribute_category
3107 , p_attribute1 => p_constraints_tbl_type(c).attribute1
3108 , p_attribute2 => p_constraints_tbl_type(c).attribute2
3109 , p_attribute3 => p_constraints_tbl_type(c).attribute3
3110 , p_attribute4 => p_constraints_tbl_type(c).attribute4
3111 , p_attribute5 => p_constraints_tbl_type(c).attribute5
3112 , p_attribute6 => p_constraints_tbl_type(c).attribute6
3113 , p_attribute7 => p_constraints_tbl_type(c).attribute7
3114 , p_attribute8 => p_constraints_tbl_type(c).attribute8
3115 , p_attribute9 => p_constraints_tbl_type(c).attribute9
3116 , p_attribute10 => p_constraints_tbl_type(c).attribute10
3117 , p_attribute11 => p_constraints_tbl_type(c).attribute11
3118 , p_attribute12 => p_constraints_tbl_type(c).attribute12
3119 , p_attribute13 => p_constraints_tbl_type(c).attribute13
3120 , p_attribute14 => p_constraints_tbl_type(c).attribute14
3121 , p_attribute15 => p_constraints_tbl_type(c).attribute15
3122 , x_return_msg => l_return_msg
3123 , x_return_status => l_return_status
3124 );
3125
3126 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
3127 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
3128 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_VAR_CONSTRAINTS Descriptive Fields Error');
3129 fnd_msg_pub.ADD;
3130 RAISE fnd_api.g_exc_error;
3131 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
3132 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
3133 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_VAR_CONSTRAINTS Descriptive Fields Error');
3134 fnd_msg_pub.ADD;
3135 RAISE fnd_api.g_exc_unexpected_error;
3136 END IF;
3137 END IF;
3138 END IF; -- End of attributes valitions in pn_var_constraints
3139
3140
3141
3142 -- End of constaints Validations
3143 IF p_validate_flag <> 'Y'
3144 THEN
3145 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Val_Ins_Constraints: Calling Insert Constraint Procedure'
3146 , 3
3147 );
3148
3149 /*IF ( l_const_val <> 'N'
3150 AND x_return_status = fnd_api.g_ret_sts_success)
3151 THEN
3152 pn_varen_util.pvt_debug
3153 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Before Calling insert_constraints procedure : '
3154 || l_const_val
3155 , 3
3156 );
3157 pn_varen_util.pvt_debug
3158 ( 'PN_VAREN_PVT: Val_Ins_Constraints: start of insert_constraints procedure and p_constraints_tbl_type (c).constr_type_code : '
3159 || p_constraints_tbl_type (c).constr_type_code
3160 , 3
3161 );*/
3162 insert_constraints (p_constraints_rec_type => p_constraints_tbl_type (c)
3163 , x_return_status => x_return_status
3164 );
3165 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
3166 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
3167 fnd_message.set_token ('ERR_MSG', 'VAR RENT Contraints : INSERT_CONSTRAINTS Error');
3168 fnd_msg_pub.ADD;
3169 RAISE fnd_api.g_exc_error;
3170 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
3171 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
3172 fnd_message.set_token ('ERR_MSG', 'VAR RENT Contraints : INSERT_CONSTRAINTS Unexpected Error');
3173 fnd_msg_pub.ADD;
3174 RAISE fnd_api.g_exc_unexpected_error;
3175 END IF;
3176 ELSE
3177 pn_varen_util.pvt_debug
3178 ('PN_VAREN_PVT: Val_Ins_Constraints: Procedure is called only for Validation, Constraints will not be created'
3179 , 3
3180 );
3181 END IF;
3182
3183 ELSE
3184 pn_varen_util.pvt_debug
3185 ('PN_VAREN_PVT: Val_Ins_Constraints: RENT_NUM not found, please provide the correct rent_num'
3186 , 3
3187 );
3188 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
3189 fnd_message.set_token ('ERR_MSG', 'VAR RENT Incorrect Rent Number:Error');
3190 fnd_msg_pub.ADD;
3191 RAISE fnd_api.g_exc_error;
3192 END IF;
3193 EXCEPTION
3194 WHEN fnd_api.g_exc_error THEN
3195 pn_varen_util.pvt_debug(g_pkg_name||'-val_ins_constraints:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
3196 l_val_ins_error_count := l_val_ins_error_count + 1;
3197 WHEN fnd_api.g_exc_unexpected_error THEN
3198 pn_varen_util.pvt_debug(g_pkg_name||'-val_ins_constraints:LOOOPING:EXCEPTION:FND_API.G_RET_STS_UNEXP_ERROR'||SQLERRM,3);
3199 l_val_ins_error_count := l_val_ins_error_count + 1;
3200 WHEN OTHERS THEN
3201 pn_varen_util.pvt_debug(g_pkg_name||'-val_ins_constraints:LOOOPING:OTHERS EXCEPTION:'||SQLERRM,3);
3202 l_val_ins_error_count := l_val_ins_error_count + 1;
3203 END;
3204 END LOOP;
3205
3206 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Val_Ins_Constraints: Value of p_generate_constraints : '
3207 || p_generate_constraints
3208 , 3
3209 );
3210
3211 IF p_generate_constraints = 'Y'
3212 THEN
3213 pn_varen_util.pvt_debug
3214 ( 'PN_VAREN_PVT: Val_Ins_Constraints: Generate_Constraints procedure - l_var_rent_id : '
3215 || l_var_rent_id
3216 , 3
3217 );
3218 generate_constraints (p_var_rent_id => l_var_rent_id
3219 , p_org_id => g_org_id
3220 , x_return_status => l_return_status
3221 );
3222 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Val_Ins_Constraints: Generate Constraints Return Status'||l_return_status
3223 , 3
3224 );
3225 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
3226 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
3227 fnd_message.set_token('ERR_MSG', 'Error in Generating the Constraints');
3228 fnd_msg_pub.ADD;
3229 RAISE fnd_api.g_exc_error;
3230 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
3231 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
3232 fnd_message.set_token('ERR_MSG', 'Unexpected Error in Generating the Constraints');
3233 fnd_msg_pub.ADD;
3234 RAISE fnd_api.g_exc_unexpected_error;
3235 END IF;
3236 ELSE
3237 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Val_Ins_Constraints: Generate Constraints not initiated'
3238 , 3
3239 );
3240 END IF;
3241
3242 IF(l_val_ins_error_count = 0) THEN
3243 x_return_status := fnd_api.g_ret_sts_success;
3244 ELSE
3245 x_return_status := fnd_api.g_ret_sts_error;
3246 END IF;
3247
3248 EXCEPTION
3249 WHEN fnd_api.g_exc_error THEN
3250 x_return_status := fnd_api.g_ret_sts_error;
3251 pn_varen_util.pvt_debug(g_pkg_name||'-:Exception:fnd_api.g_ret_sts_error:val_ins_constraints'||SQLERRM,3);
3252 WHEN fnd_api.g_exc_unexpected_error THEN
3253 x_return_status := fnd_api.g_ret_sts_unexp_error;
3254 pn_varen_util.pvt_debug(g_pkg_name||'-:Unexpected Exception:fnd_api.g_ret_sts_error:val_ins_constraints'||SQLERRM,3);
3255 WHEN OTHERS THEN
3256 x_return_status := fnd_api.g_ret_sts_unexp_error;
3257 pn_varen_util.pvt_debug(g_pkg_name||'-OTHERS:Exception:val_ins_constraints'||SQLERRM,3);
3258 END val_ins_constraints;
3259
3260 --------------------------------------------------------------------------------
3261 -- NAME : VALIDATE_BREAKPOINT_DETAILS
3262 -- DESCRIPTION : Private procedure to validate Breakpoint Details
3263 -- PURPOSE :
3264 -- INVOKED FROM :
3265 -- ARGUMENTS : P_BREAKPOINT_DETAILS_REC_TYPE IN Parameter
3266 -- : P_VALIDATE_FLAG IN Parameter
3267 -- : X_RETURN_STATUS OUT Parameter
3268 -- REFERENCE :
3269 -- HISTORY :
3270 --
3271 -- 20-SEP-2010 vkatta o Created
3272 --------------------------------------------------------------------------------
3273 PROCEDURE validate_breakpoint_details (
3274 p_breakpoint_details_rec_type IN OUT NOCOPY breakpoint_details_rec_type
3275 , p_validate_flag IN VARCHAR2
3276 , x_return_status OUT NOCOPY VARCHAR2
3277 )
3278 IS
3279 l_bkhd_default_id pn_var_bkhd_defaults_all.bkhd_default_id%TYPE;
3280 l_bkhd_start_date pn_var_bkhd_defaults_all.bkhd_start_date%TYPE;
3281 l_bkhd_end_date pn_var_bkhd_defaults_all.bkhd_end_date%TYPE;
3282 l_natural_break_rate pn_var_bkhd_defaults_all.natural_break_rate%TYPE;
3283 l_break_type pn_var_bkhd_defaults_all.break_type%TYPE;
3284 l_breakpoint_type pn_var_bkhd_defaults_all.breakpoint_type%TYPE;
3285 l_bkpt_details_val VARCHAR2 (1) := 'Y';
3286 l_period_id NUMBER;
3287 -- := to_number(name_in('BKPTS_HEADER_BLK.period_id'));
3288 l_reporting_periods NUMBER;
3289 -- := PN_VAR_RENT_PKG.find_reporting_periods(l_periodId);
3290 l_previous_bkdt_start_date DATE;
3291 l_previous_bkdt_end_date DATE;
3292 BEGIN
3293 ----------------------------------------------------------------------
3294 --- Fetching of Breakpoint Start Date and Breakpoint End date of the vairable rent
3295 ----------------------------------------------------------------------
3296 BEGIN
3297 SELECT bkhd_default_id
3298 , bkhd_start_date
3299 , bkhd_end_date
3300 , natural_break_rate
3301 , break_type
3302 , breakpoint_type
3303 INTO l_bkhd_default_id
3304 , l_bkhd_start_date
3305 , l_bkhd_end_date
3306 , l_natural_break_rate
3307 , l_break_type
3308 , l_breakpoint_type
3309 FROM pn_var_bkhd_defaults_all
3310 WHERE var_rent_id = p_breakpoint_details_rec_type.var_rent_id
3311 AND bkhd_default_id = p_breakpoint_details_rec_type.bkhd_default_id
3312 AND org_id = g_org_id; --l_org_id;
3313
3314 x_return_status := fnd_api.g_ret_sts_success;
3315 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Variable Rent : '
3316 || p_breakpoint_details_rec_type.var_rent_id
3317 || ' Breakpoint Header Start Date is : '
3318 || l_bkhd_start_date
3319 , 3
3320 );
3321 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Variable Rent'
3322 || p_breakpoint_details_rec_type.var_rent_id
3323 || ' Breakpoint Header End Date is : '
3324 || l_bkhd_end_date
3325 , 3
3326 );
3327 EXCEPTION
3328 WHEN OTHERS
3329 THEN
3330 pn_varen_util.pvt_debug
3331 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Variable Rent Id doesnot exists in Breakpoint Details: '
3332 || p_breakpoint_details_rec_type.var_rent_id
3333 , 3
3334 );
3335 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
3336 fnd_message.set_token('ERR_MSG', 'Validate_Breakpoint_Details: Variable Rent Id doesnot exists in Breakpoint Details');
3337 fnd_msg_pub.ADD;
3338 RAISE fnd_api.g_exc_error;
3339 END;
3340 IF( trim(l_break_type) <> 'NATURAL') THEN
3341 ----------------------------------------------------------------------------------------------------
3342 --- Fetching of Period Id based on the Breakpoint details for calculation of group breakpoint volumes
3343 ----------------------------------------------------------------------------------------------------
3344
3345 BEGIN
3346 SELECT period_id
3347 INTO l_period_id
3348 FROM pn_var_periods_all
3349 WHERE var_rent_id = p_breakpoint_details_rec_type.var_rent_id
3350 AND start_date <= p_breakpoint_details_rec_type.bkdt_start_date
3351 AND end_date >= p_breakpoint_details_rec_type.bkdt_start_date;
3352
3353 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Variable Rent '
3354 || p_breakpoint_details_rec_type.var_rent_id
3355 || 'Period Id '
3356 || l_period_id
3357 , 3
3358 );
3359 EXCEPTION
3360 WHEN TOO_MANY_ROWS
3361 THEN
3362 pn_varen_util.pvt_debug
3363 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Mulitple period_id exists for the same variable rent Id'
3364 || p_breakpoint_details_rec_type.var_rent_id
3365 , 3
3366 );
3367 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
3368 fnd_message.set_token('ERR_MSG', 'Validate_Breakpoint_Details: Mulitple period_id exists for the same variable rent Id');
3369 fnd_msg_pub.ADD;
3370 RAISE fnd_api.g_exc_error;
3371 WHEN OTHERS
3372 THEN
3373 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Variable Rent '
3374 || p_breakpoint_details_rec_type.var_rent_id
3375 || 'Period Id '
3376 || l_period_id
3377 , 3
3378 );
3379 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
3380 fnd_message.set_token('ERR_MSG', 'Validate_Breakpoint_Details: Mulitple period_id exists for the same variable rent Id');
3381 fnd_msg_pub.ADD;
3382 RAISE fnd_api.g_exc_error;
3383 END;
3384
3385 ----------------------------------------------------------------------
3386 --- Validation of Beakpoint Details start date
3387 ----------------------------------------------------------------------
3388 IF (p_breakpoint_details_rec_type.bkdt_start_date IS NOT NULL)
3389 THEN
3390 pn_varen_util.pvt_debug
3391 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details Start Date is not null : '
3392 || p_breakpoint_details_rec_type.bkdt_start_date
3393 , 3
3394 );
3395 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details Start Date : '
3396 || p_breakpoint_details_rec_type.bkdt_start_date
3397 , 3
3398 );
3399 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details End Date : '
3400 || p_breakpoint_details_rec_type.bkdt_end_date
3401 , 3
3402 );
3403 pn_varen_util.pvt_debug
3404 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Breakpoint Header Start Date From Var Rent: '
3405 || l_bkhd_start_date
3406 , 3
3407 );
3408 pn_varen_util.pvt_debug
3409 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Breakpoint Header End Date From Var Rent: '
3410 || l_bkhd_end_date
3411 , 3
3412 );
3413
3414
3415 IF ( TO_DATE (p_breakpoint_details_rec_type.bkdt_start_date
3416 , 'DD-MON-RRRR'
3417 ) >= TO_DATE (l_bkhd_start_date
3418 , 'DD-MON-RRRR'
3419 )
3420 AND TO_DATE (p_breakpoint_details_rec_type.bkdt_start_date
3421 , 'DD-MON-RRRR'
3422 ) <= TO_DATE (l_bkhd_end_date
3423 , 'DD-MON-RRRR'
3424 )
3425 )
3426 THEN
3427 pn_varen_util.pvt_debug
3428 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details Start Date Validation Success :'
3429 || p_breakpoint_details_rec_type.bkdt_start_date
3430 , 3
3431 );
3432 pn_varen_util.pvt_debug
3433 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details Start Date Validation Success :'
3434 || p_breakpoint_details_rec_type.bkdt_start_date
3435 , 3
3436 );
3437 ELSE
3438 pn_varen_util.pvt_debug
3439 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details Start Date Validation Error : '
3440 || p_breakpoint_details_rec_type.bkdt_start_date
3441 || 'Please enter dates for breakpoint details that coincide with the breakpoint dates'
3442 , 3
3443 );
3444 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
3445 fnd_message.set_token('ERR_MSG', 'Validate_Breakpoint_Details: Please enter dates for breakpoint details:'
3446 ||p_breakpoint_details_rec_type.bkdt_start_date||' that coincide with the breakpoint dates');
3447 fnd_msg_pub.ADD;
3448 RAISE fnd_api.g_exc_error;
3449 END IF;
3450 ELSE
3451 pn_varen_util.pvt_debug
3452 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details Start Date is null so value is defaulted Break Point Header Start Date : '
3453 || p_breakpoint_details_rec_type.bkdt_start_date
3454 || ' Success'
3455 , 3
3456 );
3457 END IF;
3458
3459 ---------------------------------------------------------------------------------------------
3460 --- Validation of Beakpoint Details End date should be less than Beakpoint Details End date
3461 --------------------------------------------------------------------------------------------
3462 IF (p_breakpoint_details_rec_type.bkdt_start_date > p_breakpoint_details_rec_type.bkdt_end_date)
3463 THEN
3464 pn_varen_util.pvt_debug
3465 ('PN_VAREN_PVT: Validate_Breakpoint_Details: Breakpoint Details start Date is greater than Breakpoint Details End Date'
3466 , 3
3467 );
3468 fnd_message.set_name ('PN'
3469 , 'PN_VAR_DATES_INTERSECT'
3470 );
3471 fnd_msg_pub.ADD;
3472 RAISE fnd_api.g_exc_error;
3473 --
3474 END IF;
3475
3476 ----------------------------------------------------------------------
3477 --- Validation of Beakpoint Details End date
3478 ----------------------------------------------------------------------
3479 IF (p_breakpoint_details_rec_type.bkdt_end_date IS NOT NULL)
3480 THEN
3481 pn_varen_util.pvt_debug
3482 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details End Date is not null : '
3483 || p_breakpoint_details_rec_type.bkdt_end_date
3484 , 3
3485 );
3486 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details End Date : '
3487 || p_breakpoint_details_rec_type.bkdt_end_date
3488 , 3
3489 );
3490
3491 IF ( TO_DATE (p_breakpoint_details_rec_type.bkdt_end_date
3492 , 'DD-MON-RRRR'
3493 ) >= TO_DATE (l_bkhd_start_date
3494 , 'DD-MON-RRRR'
3495 )
3496 AND TO_DATE (p_breakpoint_details_rec_type.bkdt_end_date
3497 , 'DD-MON-RRRR'
3498 ) <= TO_DATE (l_bkhd_end_date
3499 , 'DD-MON-RRRR'
3500 )
3501 AND TO_DATE (p_breakpoint_details_rec_type.bkdt_end_date
3502 , 'DD-MON-RRRR'
3503 ) > TO_DATE (p_breakpoint_details_rec_type.bkdt_start_date
3504 , 'DD-MON-RRRR'
3505 )
3506 )
3507 THEN
3508 pn_varen_util.pvt_debug
3509 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details End Date Validation Success :'
3510 || p_breakpoint_details_rec_type.bkdt_end_date
3511 , 3
3512 );
3513 pn_varen_util.pvt_debug
3514 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details End Date Validation Success :'
3515 || p_breakpoint_details_rec_type.bkdt_end_date
3516 , 3
3517 );
3518 ELSE
3519 pn_varen_util.pvt_debug
3520 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details End Date Validation Error :'
3521 || p_breakpoint_details_rec_type.bkdt_end_date
3522 || 'Please enter dates for breakpoint details that coincide with the breakpoint header dates'
3523 , 3
3524 );
3525 fnd_message.set_name ('PN'
3526 , 'PN_VAR_DATES_INTERSECT'
3527 );
3528 fnd_msg_pub.ADD;
3529 RAISE fnd_api.g_exc_error;
3530
3531 END IF;
3532 ELSE
3533 pn_varen_util.pvt_debug
3534 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details End Date is null so value is defaulted to Break Point End Date : '
3535 || p_breakpoint_details_rec_type.bkdt_end_date
3536 || ' Success'
3537 , 3
3538 );
3539 END IF;
3540
3541 -------------------------------------------------------------------------------
3542 --Ifthe 'Break type' is 'Artificial' and the 'Break Point type' is 'Stratified'
3543 --then copy the header start and end date into the detail start and end date
3544 -------------------------------------------------------------------------------
3545 IF ( l_break_type = 'ARTIFICIAL'
3546 AND ( l_breakpoint_type = 'STRATIFIED'
3547 OR l_breakpoint_type = 'SLIDING'
3548 OR l_breakpoint_type = 'FLAT')
3549 )
3550 THEN
3551 -----------------------------------------------------------------------------------------
3552 -- Group Breakpoint Volume start should be always less than Group Breakpoint Volume end
3553 -----------------------------------------------------------------------------------------
3554 IF (p_breakpoint_details_rec_type.period_bkpt_vol_start > p_breakpoint_details_rec_type.period_bkpt_vol_end)
3555 THEN
3556 pn_varen_util.pvt_debug
3557 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details, Period Breakpoint volume start '
3558 || p_breakpoint_details_rec_type.period_bkpt_vol_start
3559 || 'is less than Period Breakpoint volume end '
3560 || p_breakpoint_details_rec_type.period_bkpt_vol_end
3561 , 3
3562 );
3563 fnd_message.set_name ('PN'
3564 , 'PN_VAR_WRONG_RANGE'
3565 );
3566 fnd_msg_pub.ADD;
3567 RAISE fnd_api.g_exc_error;
3568 END IF;
3569
3570 -----------------------------------------------------------------------------------------
3571 -- Group Breakpoint Volume start should be always less than Group Breakpoint Volume end
3572 -----------------------------------------------------------------------------------------
3573 IF (p_breakpoint_details_rec_type.group_bkpt_vol_start > p_breakpoint_details_rec_type.group_bkpt_vol_end)
3574 THEN
3575 pn_varen_util.pvt_debug
3576 ('PN_VAREN_PVT: Validate_Breakpoint_Details: In Break Point Details, The range of numbers entered is invalid.'
3577 , 3
3578 );
3579 fnd_message.set_name ('PN'
3580 , 'PN_VAR_WRONG_RANGE'
3581 );
3582 fnd_msg_pub.ADD;
3583 RAISE fnd_api.g_exc_error;
3584 END IF;
3585
3586 ----------------------------------------------------------------------------------------------
3587 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: l_period_Id : '
3588 || l_period_id
3589 , 3
3590 );
3591 l_reporting_periods := pn_var_rent_pkg.find_reporting_periods (l_period_id);--OOPS-RHIA
3592 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: l_reporting_periods : '
3593 || l_reporting_periods
3594 , 3
3595 );
3596 --IF l_break_type = 'ARTIFICIAL'
3597 --THEN
3598 IF ( p_breakpoint_details_rec_type.period_bkpt_vol_start IS NOT NULL
3599 AND p_breakpoint_details_rec_type.period_bkpt_vol_start <> pn_varen_util.g_pn_miss_num
3600 )
3601 THEN
3602
3603 p_breakpoint_details_rec_type.group_bkpt_vol_start :=
3604 ROUND (TO_NUMBER (( p_breakpoint_details_rec_type.period_bkpt_vol_start
3605 / l_reporting_periods))
3606 , 2
3607 );
3608 END IF;
3609
3610 pn_varen_util.pvt_debug
3611 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: p_breakpoint_details_rec_type.period_bkpt_vol_start :'
3612 || p_breakpoint_details_rec_type.period_bkpt_vol_start
3613 , 3
3614 );
3615
3616 IF ( p_breakpoint_details_rec_type.period_bkpt_vol_end IS NOT NULL
3617 AND p_breakpoint_details_rec_type.period_bkpt_vol_end <> pn_varen_util.g_pn_miss_num
3618 )
3619 THEN
3620 p_breakpoint_details_rec_type.group_bkpt_vol_end :=
3621 ROUND (TO_NUMBER (( p_breakpoint_details_rec_type.period_bkpt_vol_end
3622 / l_reporting_periods))
3623 , 2
3624 );
3625 END IF;
3626
3627 pn_varen_util.pvt_debug
3628 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: p_breakpoint_details_rec_type.period_bkpt_vol_end : '
3629 || p_breakpoint_details_rec_type.period_bkpt_vol_end
3630 , 3
3631 );
3632
3633 IF ( p_breakpoint_details_rec_type.period_bkpt_vol_start IS NULL
3634 OR p_breakpoint_details_rec_type.period_bkpt_vol_start = pn_varen_util.g_pn_miss_num
3635 )
3636 AND ( p_breakpoint_details_rec_type.group_bkpt_vol_start IS NOT NULL
3637 AND p_breakpoint_details_rec_type.group_bkpt_vol_start <> pn_varen_util.g_pn_miss_num
3638 )
3639 THEN
3640 p_breakpoint_details_rec_type.period_bkpt_vol_start :=
3641 ROUND (( p_breakpoint_details_rec_type.group_bkpt_vol_start
3642 * l_reporting_periods)
3643 , 2
3644 );
3645 END IF;
3646
3647 --(p_breakpoint_details_rec_type.group_bkpt_vol_start,2);
3648 pn_varen_util.pvt_debug
3649 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: p_breakpoint_details_rec_type.group_bkpt_vol_start : '
3650 || p_breakpoint_details_rec_type.group_bkpt_vol_start
3651 , 3
3652 );
3653
3654 IF ( p_breakpoint_details_rec_type.period_bkpt_vol_end IS NULL
3655 OR p_breakpoint_details_rec_type.period_bkpt_vol_end = pn_varen_util.g_pn_miss_num
3656 )
3657 AND ( p_breakpoint_details_rec_type.group_bkpt_vol_end IS NOT NULL
3658 AND p_breakpoint_details_rec_type.group_bkpt_vol_end <> pn_varen_util.g_pn_miss_num
3659 )
3660 THEN
3661 p_breakpoint_details_rec_type.period_bkpt_vol_end :=
3662 ROUND (( p_breakpoint_details_rec_type.group_bkpt_vol_end
3663 * l_reporting_periods)
3664 , 2
3665 );
3666 END IF;
3667
3668 pn_varen_util.pvt_debug
3669 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: p_breakpoint_details_rec_type.group_bkpt_vol_end : '
3670 || p_breakpoint_details_rec_type.group_bkpt_vol_end
3671 , 3
3672 );
3673 pn_varen_util.pvt_debug
3674 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details Start Date would be same as Break Point Header Start Date'
3675 || p_breakpoint_details_rec_type.bkdt_start_date
3676 , 3
3677 );
3678 pn_varen_util.pvt_debug
3679 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details End Date would be same as Break Point Header End Date'
3680 || p_breakpoint_details_rec_type.bkdt_end_date
3681 , 3
3682 );
3683 pn_varen_util.pvt_debug ( ' p_breakpoint_details_rec_type.bkpt_rate : '
3684 || p_breakpoint_details_rec_type.bkpt_rate
3685 , 3
3686 );
3687 ELSIF ( l_break_type = 'NATURAL'
3688 AND l_breakpoint_type = 'FLAT')
3689 THEN
3690 -------------------------------------------------------------------------------------------------------
3691 -- For Break type 'NATURAL', Period Breakpoint volumes and Group Breakpoint Volumes should be NULL.
3692 -------------------------------------------------------------------------------------------------------
3693
3694 --p_breakpoint_details_rec_type.period_bkpt_vol_start := NULL; -- vkatta
3695 p_breakpoint_details_rec_type.period_bkpt_vol_start := 0;
3696 -- vkatta
3697 --p_breakpoint_details_rec_type.period_bkpt_vol_end := NULL; -- vkatta
3698 --p_breakpoint_details_rec_type.group_bkpt_vol_start := NULL; -- vkatta
3699 p_breakpoint_details_rec_type.group_bkpt_vol_start := 0;
3700 -- vkatta
3701 --p_breakpoint_details_rec_type.group_bkpt_vol_end := NULL; -- vkatta
3702 -------------------------------------------------------------------------------------------------------
3703 -- For Break type 'NATURAL',
3704 -- Breakpoint details start date equals to Breakpoint Header start date.
3705 -- Breakpoint details end date.equals to Breakpoint Header end date.
3706 -------------------------------------------------------------------------------------------------------
3707 p_breakpoint_details_rec_type.bkdt_start_date := l_bkhd_start_date;
3708 p_breakpoint_details_rec_type.bkdt_end_date := l_bkhd_end_date;
3709 -- p_breakpoint_details_rec_type.annual_basis_amount := 0;
3710 p_breakpoint_details_rec_type.bkpt_rate :=
3711 NVL (p_breakpoint_details_rec_type.bkpt_rate
3712 , l_natural_break_rate
3713 );
3714 --
3715 pn_varen_util.pvt_debug
3716 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Break Point Details break rate would be same as Break Point Header natural break rate'
3717 || p_breakpoint_details_rec_type.bkpt_rate
3718 , 3
3719 );
3720 END IF;
3721
3722 --
3723 --
3724 --
3725 IF ( l_previous_bkdt_start_date IS NOT NULL
3726 AND l_previous_bkdt_end_date IS NOT NULL)
3727 THEN
3728 pn_varen_util.pvt_debug
3729 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Previous Record Breakpoint Details start date :'
3730 || l_previous_bkdt_start_date
3731 , 3
3732 );
3733 pn_varen_util.pvt_debug
3734 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Previous Record Breakpoint Details end date :'
3735 || l_previous_bkdt_end_date
3736 , 3
3737 );
3738 pn_varen_util.pvt_debug
3739 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Current Record Breakpoint Details start date :'
3740 || p_breakpoint_details_rec_type.bkdt_start_date
3741 , 3
3742 );
3743 pn_varen_util.pvt_debug
3744 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Current Record Breakpoint Details end date :'
3745 || p_breakpoint_details_rec_type.bkdt_end_date
3746 , 3
3747 );
3748
3749 ------------------------------------------------------------------------------------------------------
3750 -- Next record Breakpoint Details start date is greater than previous record Breakpoint Details end date
3751 ------------------------------------------------------------------------------------------------------
3752 IF ( p_breakpoint_details_rec_type.bkdt_start_date > l_previous_bkdt_end_date
3753 AND p_breakpoint_details_rec_type.bkdt_start_date > l_previous_bkdt_start_date
3754 )
3755 THEN
3756 pn_varen_util.pvt_debug
3757 ('PN_VAREN_PVT: Validate_Breakpoint_Details: Next record Breakpoint Details start date is greater than previous record Breakpoint Details end date'
3758 , 3
3759 );
3760 pn_varen_util.pvt_debug
3761 ('PN_VAREN_PVT: Validate_Breakpoint_Details: Next record Breakpoint Details start date is greater than previous record Breakpoint Details start date'
3762 , 3
3763 );
3764 ELSE
3765 pn_varen_util.pvt_debug
3766 ('PN_VAREN_PVT: Validate_Breakpoint_Details: Next record Breakpoint Details start date is less than previous record Breakpoint Details start date'
3767 , 3
3768 );
3769 fnd_message.set_name ('PN'
3770 , 'PN_VAR_BKPT_OVERLAP'
3771 );
3772 fnd_msg_pub.ADD;
3773 RAISE fnd_api.g_exc_error;
3774 END IF;
3775
3776 -----------------------------------------------------------------------------------------------------
3777 -- Next record Breakpoint Details end date is greater than previous record Breakpoint Details end date
3778 ------------------------------------------------------------------------------------------------------
3779 IF ( p_breakpoint_details_rec_type.bkdt_end_date > l_previous_bkdt_end_date
3780 AND p_breakpoint_details_rec_type.bkdt_end_date > l_previous_bkdt_start_date
3781 )
3782 THEN
3783 pn_varen_util.pvt_debug
3784 ('PN_VAREN_PVT: Validate_Breakpoint_Details: Next record Breakpoint Details end date is greater than previous record Breakpoint Details end date'
3785 , 3
3786 );
3787 ELSE
3788 pn_varen_util.pvt_debug
3789 ('PN_VAREN_PVT: Validate_Breakpoint_Details: Next record Breakpoint Details end date is not greater than previous record Breakpoint Details end date'
3790 , 3
3791 );
3792 fnd_message.set_name ('PN'
3793 , 'PN_VAR_BKPT_OVERLAP'
3794 );
3795 fnd_msg_pub.ADD;
3796 RAISE fnd_api.g_exc_error;
3797 END IF;
3798 END IF;
3799
3800 IF p_validate_flag <> 'Y'
3801 THEN
3802 --IF l_bkpt_details_val <> 'N'
3803 --THEN
3804 pn_varen_util.pvt_debug
3805 ('PN_VAREN_PVT: Validate_Breakpoint_Details: Start of calling Breakpoint Details Insert Procedure '
3806 , 3
3807 );
3808 pn_varen_util.pvt_debug
3809 ('PN_VAREN_PVT: Validate_Breakpoint_Details: ---------------------------------------------'
3810 , 3
3811 );
3812 insert_breakpoint_details (p_breakpoint_details_rec_type => p_breakpoint_details_rec_type
3813 , x_return_status => x_return_status
3814 );
3815 pn_varen_util.pvt_debug
3816 ('PN_VAREN_PVT: Validate_Breakpoint_Details: End of calling Breakpoint Details Insert Procedure Return Status'||x_return_status
3817 , 3
3818 );
3819 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
3820 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
3821 fnd_message.set_token ('ERR_MSG', 'Var Rent : validate_breakpoint_details: Break Point Details not inserted properly');
3822 fnd_msg_pub.ADD;
3823 RAISE fnd_api.g_exc_error;
3824 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
3825 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
3826 fnd_message.set_token ('ERR_MSG', 'Var Rent : validate_breakpoint_details: Break Point Details not inserted properly:Unexpected Exception');
3827 fnd_msg_pub.ADD;
3828 RAISE fnd_api.g_exc_unexpected_error;
3829 END IF;
3830
3831 -- Capturing previous breakpoint details start date and breakpoint details end date.
3832 l_previous_bkdt_start_date :=
3833 p_breakpoint_details_rec_type.bkdt_start_date;
3834 l_previous_bkdt_end_date :=
3835 p_breakpoint_details_rec_type.bkdt_end_date;
3836 --
3837 -- END IF;
3838 ELSE
3839 pn_varen_util.pvt_debug
3840 ('PN_VAREN_PVT: Validate_Breakpoint_Details: Breakpoints creation procedure ran in validation mode, breakpoints will not be created '
3841 , 3
3842 );
3843 END IF;
3844 x_return_status := fnd_api.g_ret_sts_success;
3845 ELSE
3846 p_breakpoint_details_rec_type.bkdt_start_date := l_bkhd_start_date;
3847 p_breakpoint_details_rec_type.bkdt_end_date := l_bkhd_end_date;
3848 p_breakpoint_details_rec_type.period_bkpt_vol_start := 0;
3849 p_breakpoint_details_rec_type.period_bkpt_vol_end := 0;
3850 p_breakpoint_details_rec_type.group_bkpt_vol_start := 0;
3851 p_breakpoint_details_rec_type.group_bkpt_vol_end := 0;
3852 p_breakpoint_details_rec_type.bkpt_rate := l_natural_break_rate;
3853 insert_breakpoint_details (p_breakpoint_details_rec_type => p_breakpoint_details_rec_type
3854 , x_return_status => x_return_status
3855 );
3856 commit;
3857 pn_varen_util.pvt_debug
3858 ('PN_VAREN_PVT: Validate_Breakpoint_Details Natural: End of calling Breakpoint Details Insert Procedure Return Status'||x_return_status
3859 , 3
3860 );
3861 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
3862 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
3863 fnd_message.set_token ('ERR_MSG', 'Var Rent : validate_breakpoint_details: Natural::Break Point Details not inserted properly');
3864 fnd_msg_pub.ADD;
3865 RAISE fnd_api.g_exc_error;
3866 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
3867 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
3868 fnd_message.set_token ('ERR_MSG', 'Var Rent : validate_breakpoint_details:Natural:: Break Point Details not inserted properly:Unexpected Exception');
3869 fnd_msg_pub.ADD;
3870 RAISE fnd_api.g_exc_unexpected_error;
3871 END IF;
3872 x_return_status := fnd_api.g_ret_sts_success;
3873 END IF;--Artificial/Natural
3874 EXCEPTION
3875 WHEN fnd_api.g_exc_error THEN
3876 pn_varen_util.pvt_debug(g_pkg_name||'-validate_breakpoint_details:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
3877 x_return_status := fnd_api.g_ret_sts_error;
3878 WHEN OTHERS THEN
3879 pn_varen_util.pvt_debug
3880 ( 'PN_VAREN_PVT: Validate_Breakpoint_Details: Exception raised in Validate_Breakpoint_Details Procedure : '
3881 || SQLERRM
3882 , 3
3883 );
3884 x_return_status := fnd_api.g_ret_sts_unexp_error;
3885 END validate_breakpoint_details;
3886
3887 --------------------------------------------------------------------------------
3888 -- NAME : VALIDATE_BREAKPOINT_HEADER
3889 -- DESCRIPTION : Private procedure to validate Breakpoint Header
3890 -- PURPOSE :
3891 -- INVOKED FROM :
3892 -- ARGUMENTS : P_BREAKPOINT_HEADER_REC_TYPE IN Parameter
3893 -- : X_RETURN_STATUS OUT Parameter
3894 -- REFERENCE :
3895 -- HISTORY :
3896 --
3897 -- 20-SEP-2010 vkatta o Created
3898 --------------------------------------------------------------------------------
3899 PROCEDURE validate_breakpoint_header (
3900 p_breakpoint_header_rec_type IN OUT NOCOPY breakpoint_header_rec_type
3901 , x_return_status OUT NOCOPY VARCHAR2
3902 )
3903 IS
3904 l_return_status VARCHAR2 (1);
3905 l_bkhd_comm_date DATE;
3906 l_bkhd_term_date DATE;
3907 l_bkhd_var_rent_id NUMBER;
3908 l_bkhd_start_date DATE := TO_DATE ('01-01-1000'
3909 , 'DD-MM-YYYY'
3910 );
3911 e_bkhd_start_date EXCEPTION;
3912 e_bkhd_end_date EXCEPTION;
3913 l_validate_success VARCHAR2 (1) := 'Y';
3914 l_return_msg VARCHAR2 (10);
3915 l_previous_bkhd_start_date DATE;
3916 l_previous_bkhd_end_date DATE;
3917 BEGIN
3918 l_bkhd_var_rent_id := p_breakpoint_header_rec_type.var_rent_id;
3919 --------------------------------------------------------------------------------
3920 --BREAK_TYPE validation
3921 --------------------------------------------------------------------------------
3922 x_return_status := fnd_api.g_ret_sts_success;
3923 pn_varen_util.pvt_debug ('PN_VAREN_PVT: pn_varen_pvt-Calling BREAK_TYPE Validation'
3924 , 3
3925 );
3926
3927 IF ( p_breakpoint_header_rec_type.break_type_code IS NOT NULL
3928 OR p_breakpoint_header_rec_type.break_type_meaning IS NOT NULL
3929 )
3930 THEN
3931 pn_varen_util.pvt_debug
3932 ('PN_VAREN_PVT: Validate_Breakpoint_Header: Calling BREAK_TYPE Validation Lookup - Inside the Loop'
3933 , 3
3934 );
3935 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Breakpoint_Header: Calling BREAK_TYPE Validation'
3936 , 3
3937 );
3938 pn_varen_util.validate_lookups (p_lookup_type => g_break_type
3939 , x_lookup_meaning => p_breakpoint_header_rec_type.break_type_meaning
3940 , x_lookup_code => p_breakpoint_header_rec_type.break_type_code
3941 , x_return_status => l_return_status
3942 );
3943 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK_TYPE Output Code :'
3944 || p_breakpoint_header_rec_type.break_type_code
3945 , 3
3946 );
3947
3948 IF (l_return_status = fnd_api.g_ret_sts_error)
3949 THEN
3950 fnd_message.set_name ('PN'
3951 , 'PN_VAR_BKHD_BRK_TY'
3952 );
3953 fnd_msg_pub.ADD;
3954 RAISE fnd_api.g_exc_error;
3955 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
3956 fnd_message.set_name ('PN','PN_VAR_BKHD_BRK_TY');
3957 fnd_msg_pub.ADD;
3958 RAISE fnd_api.g_exc_unexpected_error;
3959 END IF;
3960 ELSE
3961 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
3962 fnd_message.set_token ('API_NAME', 'PN_VAR_RENT_PVT');
3963 fnd_message.set_token ('NULL_PARAM', 'Break Type:NULL');
3964 fnd_msg_pub.ADD;
3965 RAISE fnd_api.g_exc_error;
3966 END IF;
3967
3968 ----------------------------------------------------------------------
3969 --- Fetching of commencement and termination date of the vairable rent
3970 ----------------------------------------------------------------------
3971 BEGIN
3972 SELECT commencement_date
3973 , termination_date
3974 INTO l_bkhd_comm_date
3975 , l_bkhd_term_date
3976 FROM pn_var_rents_all
3977 WHERE var_rent_id = p_breakpoint_header_rec_type.var_rent_id
3978 AND org_id = g_org_id;
3979
3980
3981 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Variable Rent : '
3982 || p_breakpoint_header_rec_type.var_rent_id
3983 || ' Commencement Date is : '
3984 || l_bkhd_comm_date
3985 , 3
3986 );
3987 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Variable Rent'
3988 || p_breakpoint_header_rec_type.var_rent_id
3989 || ' Termination Date is : '
3990 || l_bkhd_term_date
3991 , 3
3992 );
3993 EXCEPTION
3994 WHEN OTHERS THEN
3995 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Variable Rent Id doesnot exists : '
3996 || p_breakpoint_header_rec_type.var_rent_id
3997 , 3
3998 );
3999 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
4000 fnd_message.set_token('ERR_MSG', 'Variable Rent ID doesnt exist');
4001 fnd_msg_pub.ADD;
4002 RAISE fnd_api.g_exc_error;
4003 --x_return_status := fnd_api.g_ret_sts_error;
4004 -- l_validate_success:= 'N';
4005 END;
4006
4007 ----------------------------------------------------------------------
4008 --- Validation of Beakpoint header start date
4009 ----------------------------------------------------------------------
4010 IF (p_breakpoint_header_rec_type.bkhd_start_date IS NOT NULL)
4011 THEN
4012 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT START DATE is not null : '
4013 || p_breakpoint_header_rec_type.bkhd_start_date
4014 , 3
4015 );
4016 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT START DATE : '
4017 || p_breakpoint_header_rec_type.bkhd_start_date
4018 , 3
4019 );
4020 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT End Date : '
4021 || p_breakpoint_header_rec_type.bkhd_end_date
4022 , 3
4023 );
4024 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: START DATE FROM Var Rent: '
4025 || l_bkhd_comm_date
4026 , 3
4027 );
4028 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: END DATE FROM Var Rent: '
4029 || l_bkhd_term_date
4030 , 3
4031 );
4032
4033 IF ( p_breakpoint_header_rec_type.bkhd_start_date >= l_bkhd_comm_date
4034 AND p_breakpoint_header_rec_type.bkhd_start_date <= l_bkhd_term_date
4035 )
4036 THEN
4037 /*
4038 -------------------------
4039 --- second record verification
4040 -------------------------
4041
4042 IF p_breakpoint_header_tbl( i ).bkhd_start_date > l_old_end_date or
4043 p_breakpoint_header_tbl( i ).bkhd_start_date <= l_old_end_date
4044
4045 x_return_status := fnd_api.g_ret_sts_success;
4046 pn_varen_util.pvt_debug( 'pn_varen_pvt-BREAK POINT START DATE Code Success :'
4047 || p_breakpoint_header_tbl( i ).break_type_code
4048 , 3 );
4049 pn_varen_util.pvt_debug
4050 'pn_varen_pvt- BREAK POINT START DATE Validation Success', 3 );
4051 else
4052
4053 x_return_status := fnd_api.g_ret_sts_error;
4054 pn_varen_util.pvt_debug( 'pn_varen_pvt-BREAK POINT START DATE Error ie., Start date overlap :'
4055 || p_breakpoint_header_tbl( i ).break_type_code
4056 , 3 );
4057 pn_varen_util.pvt_debug
4058 'pn_varen_pvt- BREAK POINT START DATE error i.e, Start date overlap', 3 );
4059
4060 end if;
4061 -------------------------
4062 -- end of second record verification
4063 -------------------------
4064 */
4065
4066 pn_varen_util.pvt_debug
4067 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT START DATE Validation Success :'
4068 || p_breakpoint_header_rec_type.bkhd_start_date
4069 , 3
4070 );
4071 pn_varen_util.pvt_debug
4072 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT START DATE Validation Success :'
4073 || p_breakpoint_header_rec_type.bkhd_start_date
4074 , 3
4075 );
4076 ELSE
4077 fnd_message.set_name ('PN'
4078 , 'PN_VAR_DATES_INTERSECT'
4079 );
4080 fnd_msg_pub.ADD;
4081 RAISE fnd_api.g_exc_error;
4082 pn_varen_util.pvt_debug
4083 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT START DATE Validation ERROR :'
4084 || p_breakpoint_header_rec_type.bkhd_start_date
4085 || 'Please enter dates for breakpoint details that coincide with the breakpoint dates'
4086 , 3
4087 );
4088 pn_varen_util.pvt_debug
4089 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT START DATE Validation ERROR : '
4090 || p_breakpoint_header_rec_type.bkhd_start_date
4091 || 'Please enter dates for breakpoint details that coincide with the breakpoint dates'
4092 , 3
4093 );
4094 --l_validate_success := 'N';
4095 END IF;
4096 ELSE
4097 p_breakpoint_header_rec_type.bkhd_start_date := l_bkhd_comm_date;
4098 pn_varen_util.pvt_debug
4099 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT START DATE Code Success : Defaulted variable rent Commencement date'
4100 || p_breakpoint_header_rec_type.bkhd_start_date
4101 , 3
4102 );
4103 pn_varen_util.pvt_debug
4104 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT START DATE Success : Defaulted variable rent Commencement date :'
4105 || p_breakpoint_header_rec_type.bkhd_start_date
4106 , 3
4107 );
4108 END IF;
4109
4110 --
4111 -- Next record Breakpoint Header Start date should be always greater than previous record Breakpoint Header End Date
4112 --
4113
4114 ------------------------------------------------------------------------------------------
4115 --- Validation of Beakpoint header Start date is greater than Beakpoint Header End date
4116 -----------------------------------------------------------------------------------------
4117 IF (p_breakpoint_header_rec_type.bkhd_start_date > p_breakpoint_header_rec_type.bkhd_end_date)
4118 THEN
4119 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Break Point Header Start Date '
4120 || p_breakpoint_header_rec_type.bkhd_start_date
4121 || 'is greater than '
4122 || p_breakpoint_header_rec_type.bkhd_end_date
4123 , 3
4124 );
4125 fnd_message.set_name ('PN'
4126 , 'PN_VAR_DATES_INTERSECT'
4127 );
4128 fnd_msg_pub.ADD;
4129 RAISE fnd_api.g_exc_error;
4130
4131 END IF;
4132
4133 ----------------------------------------------------------------------
4134 --- Validation of Beakpoint header End date
4135 ----------------------------------------------------------------------
4136 IF (p_breakpoint_header_rec_type.bkhd_end_date IS NOT NULL)
4137 THEN
4138 IF ( p_breakpoint_header_rec_type.bkhd_end_date <= l_bkhd_term_date
4139 OR p_breakpoint_header_rec_type.bkhd_end_date > p_breakpoint_header_rec_type.bkhd_start_date
4140 )
4141 THEN
4142
4143 pn_varen_util.pvt_debug
4144 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT End DATE Validation Success :'
4145 || p_breakpoint_header_rec_type.bkhd_end_date
4146 , 3
4147 );
4148 ELSE
4149 pn_varen_util.pvt_debug
4150 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT End DATE Validation ERROR :'
4151 || p_breakpoint_header_rec_type.bkhd_end_date
4152 || 'Please enter dates for breakpoint details that coincide with the breakpoint dates'
4153 , 3
4154 );
4155 fnd_message.set_name ('PN'
4156 , 'PN_VAR_DATES_INTERSECT'
4157 );
4158 fnd_msg_pub.ADD;
4159 RAISE fnd_api.g_exc_error;
4160 END IF;
4161 ELSE
4162 p_breakpoint_header_rec_type.bkhd_end_date := l_bkhd_term_date;
4163 pn_varen_util.pvt_debug
4164 ('PN_VAREN_PVT: Validate_Breakpoint_Header: BREAK POINT START DATE Code Success : Defaulted variable rent Termination date'
4165 || p_breakpoint_header_rec_type.bkhd_end_date,3);
4166 END IF;
4167
4168 ------------------------------------
4169 -- Breakpoint Type Validation
4170 ------------------------------------
4171 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Breakpoint_Header: Calling BREAKPOINT_TYPE Validation'
4172 , 3
4173 );
4174
4175 IF ( p_breakpoint_header_rec_type.breakpoint_type_code IS NOT NULL
4176 OR p_breakpoint_header_rec_type.breakpoint_type_meaning IS NOT NULL
4177 )
4178 THEN
4179 pn_varen_util.pvt_debug
4180 ('PN_VAREN_PVT: Validate_Breakpoint_Header: Calling BREAKPOINT_TYPE Validation Lookup - Inside the Loop'
4181 , 3
4182 );
4183 pn_varen_util.validate_lookups (p_lookup_type => g_breakpoint_type
4184 , x_lookup_meaning => p_breakpoint_header_rec_type.breakpoint_type_meaning
4185 , x_lookup_code => p_breakpoint_header_rec_type.breakpoint_type_code
4186 , x_return_status => l_return_status
4187 );
4188 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: BREAKPOINT_TYPE Output Code :'
4189 || p_breakpoint_header_rec_type.breakpoint_type_code||'-'||l_return_status
4190 , 3
4191 );
4192
4193 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
4194 fnd_message.set_name ('PN','PN_VAR_BKHD_BKPT_TY');
4195 fnd_msg_pub.ADD;
4196 RAISE fnd_api.g_exc_error;
4197 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
4198 fnd_message.set_name ('PN','PN_VAR_BKHD_BKPT_TY');
4199 fnd_msg_pub.ADD;
4200 RAISE fnd_api.g_exc_unexpected_error;
4201 END IF;
4202 ELSE
4203 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
4204 fnd_message.set_token ('API_NAME', 'PN_VAR_RENT_PVT');
4205 fnd_message.set_token ('NULL_PARAM', 'Break Point Type:NULL');
4206 fnd_msg_pub.ADD;
4207 RAISE fnd_api.g_exc_error;
4208 END IF;
4209
4210 ----------------------------------
4211 -- NATURAL_BREAK_RATE is not null
4212 ------------------------------------
4213
4214 IF (p_breakpoint_header_rec_type.break_type_code IS NOT NULL OR p_breakpoint_header_rec_type.break_type_code <> pn_varen_util.g_pn_miss_char) THEN
4215 IF (p_breakpoint_header_rec_type.break_type_code = 'NATURAL') THEN
4216 IF (p_breakpoint_header_rec_type.natural_break_rate IS NULL OR p_breakpoint_header_rec_type.natural_break_rate = pn_varen_util.g_pn_miss_num) THEN
4217 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
4218 fnd_message.set_token ('API_NAME', 'PN_VAR_RENT_PVT');
4219 fnd_message.set_token ('NULL_PARAM', 'Natural Rate: NULL');
4220 fnd_msg_pub.ADD;
4221 RAISE fnd_api.g_exc_error;
4222 END IF;
4223 ELSIF(p_breakpoint_header_rec_type.break_type_code = 'ARTIFICIAL') THEN
4224 p_breakpoint_header_rec_type.natural_break_rate := NULL;
4225 END IF;
4226 ELSE
4227 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
4228 fnd_message.set_token ('API_NAME', 'PN_VAR_RENT_PVT');
4229 fnd_message.set_token ('NULL_PARAM', 'Break Type:NULL');
4230 fnd_msg_pub.ADD;
4231 RAISE fnd_api.g_exc_error;
4232 END IF;
4233
4234 /*
4235 IF p_breakpoint_header_rec_type.natural_break_rate IS NOT NULL
4236 THEN
4237 x_return_status := fnd_api.g_ret_sts_success;
4238 pn_varen_util.pvt_debug
4239 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Natural Break Rate is not null - Success '
4240 || p_breakpoint_header_rec_type.natural_break_rate
4241 , 3
4242 );
4243 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Break Rate is not null - Success : '
4244 || p_breakpoint_header_rec_type.natural_break_rate
4245 , 3
4246 );
4247 ELSE
4248 IF ( p_breakpoint_header_rec_type.breakpoint_type_code = 'NATURAL'
4249 OR p_breakpoint_header_rec_type.breakpoint_type_meaning = 'Natural'
4250 )
4251 THEN
4252 --
4253 fnd_message.set_name ('PN'
4254 , 'PN_VAR_BKHD_BRK_RT'
4255 );
4256 fnd_msg_pub.ADD;
4257 RAISE fnd_api.g_exc_error;
4258 --
4259 x_return_status := fnd_api.g_ret_sts_error;
4260 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Natural Break Rate is null - Error '
4261 || p_breakpoint_header_rec_type.natural_break_rate
4262 , 3
4263 );
4264 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Break Rate is null - Error : '
4265 || p_breakpoint_header_rec_type.natural_break_rate
4266 , 3
4267 );
4268 l_validate_success := 'N';
4269 END IF;
4270 END IF;
4271 */
4272 -----------------------------------------------------------------------
4273 --Conditional Validation of Beakpoint Type with Break type Procedure
4274 ------------------------------------------------------------------------
4275 IF p_breakpoint_header_rec_type.break_type_code = 'NATURAL'
4276 THEN
4277 IF p_breakpoint_header_rec_type.breakpoint_type_code <> 'FLAT'
4278 THEN
4279 pn_varen_util.pvt_debug
4280 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Provide a correct combination of BREAKPOINT_TYPE_code and Break Type code - Validation Error :'
4281 || p_breakpoint_header_rec_type.breakpoint_type_code
4282 , 3
4283 );
4284 fnd_message.set_name ('PN'
4285 , 'PN_VAR_BKHD_BT_BKPT_TY'
4286 );
4287 fnd_msg_pub.ADD;
4288 RAISE fnd_api.g_exc_error;
4289 END IF;
4290 END IF;
4291
4292
4293 IF ( l_previous_bkhd_start_date IS NOT NULL
4294 AND l_previous_bkhd_end_date IS NOT NULL)
4295 THEN
4296 pn_varen_util.pvt_debug
4297 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Previous Record Breakpoint Header start date :'
4298 || l_previous_bkhd_start_date
4299 , 3
4300 );
4301 pn_varen_util.pvt_debug
4302 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Previous Record Breakpoint Header end date :'
4303 || l_previous_bkhd_end_date
4304 , 3
4305 );
4306 pn_varen_util.pvt_debug
4307 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Current Record Breakpoint Header start date :'
4308 || p_breakpoint_header_rec_type.bkhd_start_date
4309 , 3
4310 );
4311 pn_varen_util.pvt_debug
4312 ( 'PN_VAREN_PVT: Validate_Breakpoint_Header: Current Record Breakpoint Header end date :'
4313 || p_breakpoint_header_rec_type.bkhd_end_date
4314 , 3
4315 );
4316
4317 ------------------------------------------------------------------------------------------------------
4318 -- Next record Breakpoint Header start date is greater than previous record Breakpoint Header end date
4319 ------------------------------------------------------------------------------------------------------
4320 IF ( p_breakpoint_header_rec_type.bkhd_start_date > l_previous_bkhd_end_date
4321 AND p_breakpoint_header_rec_type.bkhd_start_date > l_previous_bkhd_start_date
4322 )
4323 THEN
4324 pn_varen_util.pvt_debug
4325 ('PN_VAREN_PVT: Validate_Breakpoint_Header: Next record Breakpoint Header start date is greater than previous record Breakpoint Header end date'
4326 , 3
4327 );
4328 ELSE
4329 pn_varen_util.pvt_debug
4330 ('PN_VAREN_PVT: Validate_Breakpoint_Header: Next record Breakpoint Header start date is less than previous record Breakpoint Header end date'
4331 , 3
4332 );
4333 fnd_message.set_name ('PN'
4334 , 'PN_VAR_BKPT_OVERLAP'
4335 );
4336 fnd_msg_pub.ADD;
4337 RAISE fnd_api.g_exc_error;
4338 END IF;
4339
4340 -----------------------------------------------------------------------------------------------------
4341 -- Next record Breakpoint Header end date is greater than previous record Breakpoint Header end date
4342 ------------------------------------------------------------------------------------------------------
4343 IF ( p_breakpoint_header_rec_type.bkhd_end_date > l_previous_bkhd_end_date
4344 AND p_breakpoint_header_rec_type.bkhd_end_date > l_previous_bkhd_start_date
4345 )
4346 THEN
4347 pn_varen_util.pvt_debug
4348 ('PN_VAREN_PVT: Validate_Breakpoint_Header: Next record Breakpoint Header end date is greater than previous record Breakpoint Header end date'
4349 , 3
4350 );
4351 ELSE
4352 pn_varen_util.pvt_debug
4353 ('PN_VAREN_PVT: Validate_Breakpoint_Header: Next record Breakpoint Header end date is not greater than previous record Breakpoint Header end date'
4354 , 3
4355 );
4356 fnd_message.set_name ('PN'
4357 , 'PN_VAR_BKPT_OVERLAP'
4358 );
4359 fnd_msg_pub.ADD;
4360 RAISE fnd_api.g_exc_error;
4361 END IF;
4362 END IF; --l_previous_bkhd_start_date --l_previous_bkhd_end_date
4363
4364 --------------------------------------------------------------------------------
4365 --Variable Rent Attributes Validation
4366 --------------------------------------------------------------------------------
4367 IF (get_attribute_status('PN_VAR_BKPTS_HEAD') > 0) THEN
4368 IF NOT ((p_breakpoint_header_rec_type.attribute_category = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute_category IS NULL)
4369 AND (p_breakpoint_header_rec_type.attribute1 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute1 IS NULL)
4370 AND (p_breakpoint_header_rec_type.attribute2 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute2 IS NULL)
4371 AND (p_breakpoint_header_rec_type.attribute3 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute3 IS NULL)
4372 AND (p_breakpoint_header_rec_type.attribute4 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute4 IS NULL)
4373 AND (p_breakpoint_header_rec_type.attribute5 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute5 IS NULL)
4374 AND (p_breakpoint_header_rec_type.attribute6 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute6 IS NULL)
4375 AND (p_breakpoint_header_rec_type.attribute7 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute7 IS NULL)
4376 AND (p_breakpoint_header_rec_type.attribute8 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute8 IS NULL)
4377 AND (p_breakpoint_header_rec_type.attribute9 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute9 IS NULL)
4378 AND (p_breakpoint_header_rec_type.attribute10 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute10 IS NULL)
4379 AND (p_breakpoint_header_rec_type.attribute11 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute11 IS NULL)
4380 AND (p_breakpoint_header_rec_type.attribute12 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute12 IS NULL)
4381 AND (p_breakpoint_header_rec_type.attribute13 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute13 IS NULL)
4382 AND (p_breakpoint_header_rec_type.attribute14 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute14 IS NULL)
4383 AND (p_breakpoint_header_rec_type.attribute15 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_rec_type.attribute15 IS NULL)
4384 ) THEN
4385 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_BKPTS_HEAD'
4386 , p_attribute_category => p_breakpoint_header_rec_type.attribute_category
4387 , p_attribute1 => p_breakpoint_header_rec_type.attribute1
4388 , p_attribute2 => p_breakpoint_header_rec_type.attribute2
4389 , p_attribute3 => p_breakpoint_header_rec_type.attribute3
4390 , p_attribute4 => p_breakpoint_header_rec_type.attribute4
4391 , p_attribute5 => p_breakpoint_header_rec_type.attribute5
4392 , p_attribute6 => p_breakpoint_header_rec_type.attribute6
4393 , p_attribute7 => p_breakpoint_header_rec_type.attribute7
4394 , p_attribute8 => p_breakpoint_header_rec_type.attribute8
4395 , p_attribute9 => p_breakpoint_header_rec_type.attribute9
4396 , p_attribute10 => p_breakpoint_header_rec_type.attribute10
4397 , p_attribute11 => p_breakpoint_header_rec_type.attribute11
4398 , p_attribute12 => p_breakpoint_header_rec_type.attribute12
4399 , p_attribute13 => p_breakpoint_header_rec_type.attribute13
4400 , p_attribute14 => p_breakpoint_header_rec_type.attribute14
4401 , p_attribute15 => p_breakpoint_header_rec_type.attribute15
4402 , x_return_msg => l_return_msg
4403 , x_return_status => l_return_status
4404 );
4405
4406 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
4407 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
4408 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_VAR_BKPTS_HEAD Descriptive Fields Error '||l_return_msg);
4409 fnd_msg_pub.ADD;
4410 RAISE fnd_api.g_exc_error;
4411 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
4412 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
4413 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_VAR_BKPTS_HEAD Descriptive Fields Error '||l_return_msg);
4414 fnd_msg_pub.ADD;
4415 RAISE fnd_api.g_exc_unexpected_error;
4416 END IF;
4417 END IF;
4418 END IF; -- End of attributes validations in PN_VAR_BKPTS_HEAD
4419
4420 -- Breakpoints validation ends
4421 ----------------------------------------------------
4422 --Calling Breakpoint Headers Insert Procedure
4423 ----------------------------------------------------
4424
4425 /*IF ( l_return_status = fnd_api.g_ret_sts_success
4426 AND l_validate_success <> 'N')
4427 THEN
4428 pn_varen_util.pvt_debug
4429 ('PN_VAREN_PVT: Validate_Breakpoint_Header: Calling Breakpoint Headers Insert Procedure '
4430 , 3
4431 );
4432 pn_varen_util.pvt_debug
4433 ('PN_VAREN_PVT: Validate_Breakpoint_Header: ---------------------------------------------'
4434 , 3
4435 );*/
4436
4437 insert_breakpoint_headers (p_breakpoint_header_rec_type => p_breakpoint_header_rec_type
4438 , x_return_status => l_return_status
4439 );
4440 pn_varen_util.pvt_debug('PN_VAREN_PVT: Validate_Breakpoint_Header: End of Calling Breakpoint Headers Insert Procedure :'|| l_return_status, 3);
4441
4442 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
4443 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
4444 fnd_message.set_token ('ERR_MSG', 'INSERT_BREAKPOINT_HEADERS:Error');
4445 fnd_msg_pub.ADD;
4446 RAISE fnd_api.g_exc_error;
4447 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
4448 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
4449 fnd_message.set_token ('ERR_MSG', 'INSERT_BREAKPOINT_HEADERS:Unexpected Error');
4450 fnd_msg_pub.ADD;
4451 RAISE fnd_api.g_exc_unexpected_error;
4452 END IF;
4453
4454 -- capturing the previous breakpoint header start date into a variable.
4455 l_previous_bkhd_start_date := p_breakpoint_header_rec_type.bkhd_start_date;
4456
4457 l_previous_bkhd_end_date := p_breakpoint_header_rec_type.bkhd_end_date;
4458
4459
4460
4461 EXCEPTION
4462 WHEN fnd_api.g_exc_error THEN
4463 x_return_status := fnd_api.g_ret_sts_error;
4464 pn_varen_util.pvt_debug('PN_VAREN_PVT: validate_breakpoint_header : Exception'||SQLERRM,3);
4465 WHEN OTHERS THEN
4466 x_return_status := fnd_api.g_ret_sts_unexp_error;
4467 pn_varen_util.pvt_debug('PN_VAREN_PVT: validate_breakpoint_header: Exception :'|| SQLERRM,3);
4468 END validate_breakpoint_header;
4469
4470 --------------------------------------------------------------------------------
4471 -- NAME : VAR_RENT_LINES_BKHD
4472 -- DESCRIPTION : Private procedure to validate Variable Rent Details
4473 -- PURPOSE :
4474 -- INVOKED FROM :
4475 -- ARGUMENTS : P_VARIABLE_RENT_LINES_TBL IN Parameter
4476 -- : P_BREAKPOINT_HEADER_TBL IN Parameter
4477 -- : P_BREAKPOINT_DETAILS_TBL IN Parameter
4478 -- : P_GENERATE_BREAKPOINTS IN Parameter
4479 -- : P_VALIDATE_FLAG IN Parameter
4480 -- : X_RETURN_STATUS OUT Parameter
4481 -- REFERENCE :
4482 -- HISTORY :
4483 --
4484 -- 20-SEP-2010 vkatta o Created
4485 --------------------------------------------------------------------------------
4486 PROCEDURE var_rent_lines_bkhd (
4487 p_variable_rent_lines_tbl IN OUT NOCOPY variable_rent_lines_tbl_type
4488 , p_breakpoint_header_tbl IN OUT NOCOPY breakpoint_header_tbl_type
4489 , p_breakpoint_details_tbl IN OUT NOCOPY breakpoint_details_tbl_type
4490 , p_generate_breakpoints IN VARCHAR2 DEFAULT 'N'
4491 , p_validate_flag IN VARCHAR2
4492 , x_return_status OUT NOCOPY VARCHAR2
4493 )
4494 IS
4495 l_return_status VARCHAR2 (1);
4496 l_variable_rent_exists NUMBER;
4497 l_var_rent_id NUMBER;
4498 l_period_exists NUMBER;
4499 l_var_rent_input_line_num NUMBER;
4500 l_var_bkhd_detail_num NUMBER;
4501 e_type1_error EXCEPTION;
4502 e_type1_unexpected_error EXCEPTION;
4503 e_type2_error EXCEPTION;
4504 e_type2_unexpected_error EXCEPTION;
4505
4506 l_var_lines_err_count NUMBER := 0;
4507 l_var_bkh_err_count NUMBER := 0;
4508 l_var_bkl_err_count NUMBER := 0;
4509
4510 l_date_range_count NUMBER := 0;
4511 l_date_range_bkdt_count NUMBER :=0;
4512 BEGIN
4513 --------------------------------------------------------------------------------
4514 --SALES_CHANNEL (Type 1) validation
4515 --------------------------------------------------------------------------------
4516 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: G_VAR_RENT_ID before Variable Rent Lines Loop: '
4517 || g_var_rent_id
4518 , 3
4519 );
4520
4521 FOR i IN p_variable_rent_lines_tbl.FIRST .. p_variable_rent_lines_tbl.LAST
4522 LOOP
4523 BEGIN
4524 pn_varen_util.pvt_debug
4525 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: G_VAR_RENT_ID Inside Variable Rent Lines Loop: '
4526 || g_var_rent_id
4527 , 3
4528 );
4529
4530 -------------------------------------------------------------------------------------
4531 -- If Variable Rent lines record type has not been initialized then assign it to null
4532 -------------------------------------------------------------------------------------
4533 IF p_variable_rent_lines_tbl (i).line_default_id = pn_varen_util.g_pn_miss_num
4534 THEN
4535 p_variable_rent_lines_tbl (i).line_default_id := NULL;
4536 END IF;
4537
4538 IF p_variable_rent_lines_tbl (i).line_num = pn_varen_util.g_pn_miss_num
4539 THEN
4540 p_variable_rent_lines_tbl (i).line_num := NULL;
4541 END IF;
4542
4543 IF ( p_variable_rent_lines_tbl (i).var_rent_id = pn_varen_util.g_pn_miss_num
4544 OR p_variable_rent_lines_tbl (i).var_rent_id IS NULL
4545 )
4546 THEN
4547 p_variable_rent_lines_tbl (i).var_rent_id := g_var_rent_id;
4548 END IF;
4549
4550 IF p_variable_rent_lines_tbl (i).var_rent_num = pn_varen_util.g_pn_miss_char
4551 THEN
4552 p_variable_rent_lines_tbl (i).var_rent_num := NULL;
4553 END IF;
4554
4555 IF p_variable_rent_lines_tbl (i).sales_channel_code = pn_varen_util.g_pn_miss_char
4556 THEN
4557 p_variable_rent_lines_tbl (i).sales_channel_code := NULL;
4558 END IF;
4559
4560 IF p_variable_rent_lines_tbl (i).sales_channel_meaning = pn_varen_util.g_pn_miss_char
4561 THEN
4562 p_variable_rent_lines_tbl (i).sales_channel_meaning := NULL;
4563 END IF;
4564
4565 IF p_variable_rent_lines_tbl (i).item_category_code = pn_varen_util.g_pn_miss_char
4566 THEN
4567 p_variable_rent_lines_tbl (i).item_category_code := NULL;
4568 END IF;
4569
4570 IF p_variable_rent_lines_tbl (i).item_category_meaning = pn_varen_util.g_pn_miss_char
4571 THEN
4572 p_variable_rent_lines_tbl (i).item_category_meaning := NULL;
4573 END IF;
4574
4575 IF p_variable_rent_lines_tbl (i).agreement_template_id = pn_varen_util.g_pn_miss_num
4576 THEN
4577 p_variable_rent_lines_tbl (i).agreement_template_id := NULL;
4578 END IF;
4579
4580 IF p_variable_rent_lines_tbl (i).line_start_date = pn_varen_util.g_pn_miss_date
4581 THEN
4582 p_variable_rent_lines_tbl (i).line_start_date := NULL;
4583 END IF;
4584
4585 IF p_variable_rent_lines_tbl (i).line_end_date = pn_varen_util.g_pn_miss_date
4586 THEN
4587 p_variable_rent_lines_tbl (i).line_end_date := NULL;
4588 END IF;
4589
4590 IF p_variable_rent_lines_tbl (i).processed_flag = pn_varen_util.g_pn_miss_num
4591 THEN
4592 p_variable_rent_lines_tbl (i).processed_flag := NULL;
4593 END IF;
4594
4595 IF p_variable_rent_lines_tbl (i).last_update_date = pn_varen_util.g_pn_miss_date
4596 THEN
4597 p_variable_rent_lines_tbl (i).last_update_date := NULL;
4598 END IF;
4599
4600 IF p_variable_rent_lines_tbl (i).last_updated_by = pn_varen_util.g_pn_miss_num
4601 THEN
4602 p_variable_rent_lines_tbl (i).last_updated_by := NULL;
4603 END IF;
4604
4605 IF p_variable_rent_lines_tbl (i).creation_date = pn_varen_util.g_pn_miss_date
4606 THEN
4607 p_variable_rent_lines_tbl (i).creation_date := NULL;
4608 END IF;
4609
4610 IF p_variable_rent_lines_tbl (i).created_by = pn_varen_util.g_pn_miss_num
4611 THEN
4612 p_variable_rent_lines_tbl (i).created_by := NULL;
4613 END IF;
4614
4615 IF p_variable_rent_lines_tbl (i).last_update_login = pn_varen_util.g_pn_miss_num
4616 THEN
4617 p_variable_rent_lines_tbl (i).last_update_login := NULL;
4618 END IF;
4619
4620 IF p_variable_rent_lines_tbl (i).attribute_category = pn_varen_util.g_pn_miss_char
4621 THEN
4622 p_variable_rent_lines_tbl (i).attribute_category := NULL;
4623 END IF;
4624
4625 IF p_variable_rent_lines_tbl (i).attribute1 = pn_varen_util.g_pn_miss_char
4626 THEN
4627 p_variable_rent_lines_tbl (i).attribute1 := NULL;
4628 END IF;
4629
4630 IF p_variable_rent_lines_tbl (i).attribute2 = pn_varen_util.g_pn_miss_char
4631 THEN
4632 p_variable_rent_lines_tbl (i).attribute2 := NULL;
4633 END IF;
4634
4635 IF p_variable_rent_lines_tbl (i).attribute3 = pn_varen_util.g_pn_miss_char
4636 THEN
4637 p_variable_rent_lines_tbl (i).attribute3 := NULL;
4638 END IF;
4639
4640 IF p_variable_rent_lines_tbl (i).attribute4 = pn_varen_util.g_pn_miss_char
4641 THEN
4642 p_variable_rent_lines_tbl (i).attribute4 := NULL;
4643 END IF;
4644
4645 IF p_variable_rent_lines_tbl (i).attribute5 = pn_varen_util.g_pn_miss_char
4646 THEN
4647 p_variable_rent_lines_tbl (i).attribute5 := NULL;
4648 END IF;
4649
4650 IF p_variable_rent_lines_tbl (i).attribute6 = pn_varen_util.g_pn_miss_char
4651 THEN
4652 p_variable_rent_lines_tbl (i).attribute6 := NULL;
4653 END IF;
4654
4655 IF p_variable_rent_lines_tbl (i).attribute7 = pn_varen_util.g_pn_miss_char
4656 THEN
4657 p_variable_rent_lines_tbl (i).attribute7 := NULL;
4658 END IF;
4659
4660 IF p_variable_rent_lines_tbl (i).attribute8 = pn_varen_util.g_pn_miss_char
4661 THEN
4662 p_variable_rent_lines_tbl (i).attribute8 := NULL;
4663 END IF;
4664
4665 IF p_variable_rent_lines_tbl (i).attribute9 = pn_varen_util.g_pn_miss_char
4666 THEN
4667 p_variable_rent_lines_tbl (i).attribute9 := NULL;
4668 END IF;
4669
4670 IF p_variable_rent_lines_tbl (i).attribute10 = pn_varen_util.g_pn_miss_char
4671 THEN
4672 p_variable_rent_lines_tbl (i).attribute10 := NULL;
4673 END IF;
4674
4675 IF p_variable_rent_lines_tbl (i).attribute11 = pn_varen_util.g_pn_miss_char
4676 THEN
4677 p_variable_rent_lines_tbl (i).attribute11 := NULL;
4678 END IF;
4679
4680 IF p_variable_rent_lines_tbl (i).attribute12 = pn_varen_util.g_pn_miss_char
4681 THEN
4682 p_variable_rent_lines_tbl (i).attribute12 := NULL;
4683 END IF;
4684
4685 IF p_variable_rent_lines_tbl (i).attribute13 = pn_varen_util.g_pn_miss_char
4686 THEN
4687 p_variable_rent_lines_tbl (i).attribute13 := NULL;
4688 END IF;
4689
4690 IF p_variable_rent_lines_tbl (i).attribute14 = pn_varen_util.g_pn_miss_char
4691 THEN
4692 p_variable_rent_lines_tbl (i).attribute14 := NULL;
4693 END IF;
4694
4695 IF p_variable_rent_lines_tbl (i).attribute15 = pn_varen_util.g_pn_miss_char
4696 THEN
4697 p_variable_rent_lines_tbl (i).attribute15 := NULL;
4698 END IF;
4699
4700 ---------
4701 -- End
4702 ---------
4703
4704 l_variable_rent_exists := NULL;
4705 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: p_variable_rent_lines_tbl.COUNT :'
4706 || p_variable_rent_lines_tbl.COUNT
4707 , 3
4708 );
4709 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT :VRA Lines : p_variable_rent_lines_tbl (i).var_rent_num : '
4710 || p_variable_rent_lines_tbl (i).var_rent_num
4711 , 3
4712 );
4713 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT : VRA Lines : p_variable_rent_lines_tbl (i).var_rent_id : '
4714 || p_variable_rent_lines_tbl (i).var_rent_id
4715 , 3
4716 );
4717 BEGIN
4718 SELECT COUNT (1)
4719 ,var_rent_id
4720 INTO l_variable_rent_exists
4721 ,l_var_rent_id
4722 FROM pn_var_rents_all
4723 WHERE (rent_num = p_variable_rent_lines_tbl (i).var_rent_num
4724 OR var_rent_id = p_variable_rent_lines_tbl (i).var_rent_id
4725 )
4726 AND org_id = g_org_id
4727 GROUP BY var_rent_id;
4728 EXCEPTION
4729 WHEN OTHERS THEN
4730 pn_varen_util.pvt_debug('PN_VAREN_PVT: Var_Rent_Line_Bkhd: Variable Rent Number or Variable Rent Id doesnot exists :'||SQLERRM,3);
4731 RAISE fnd_api.g_exc_error;
4732 END;
4733
4734 IF (l_variable_rent_exists = 1) THEN
4735 -- Check if Periods generated
4736 l_period_exists := pn_var_rent_pkg.find_if_period_exists (p_variable_rent_lines_tbl (i).var_rent_id);--Checking the existence of the periods.
4737 --l_return_status := fnd_api.g_ret_sts_success;
4738
4739
4740 IF l_period_exists = 1 THEN -- Only when periods are generated
4741 pn_varen_util.pvt_debug
4742 ('PN_VAREN_PVT: Var_Rent_Line_Bkhd: Calling SALES_CHANNEL (Type 1) Validation'
4743 , 3
4744 );
4745
4746 IF ( p_variable_rent_lines_tbl (i).sales_channel_code IS NOT NULL
4747 OR p_variable_rent_lines_tbl (i).sales_channel_meaning IS NOT NULL
4748 )
4749 THEN
4750 pn_varen_util.pvt_debug
4751 ('PN_VAREN_PVT: Var_Rent_Line_Bkhd: Calling Validation Lookup - Inside the Loop'
4752 , 3
4753 );
4754 pn_varen_util.pvt_debug
4755 ('PN_VAREN_PVT: Var_Rent_Line_Bkhd: Calling SALES_CHANNEL (Type 1) Validation'
4756 , 3
4757 );
4758 pn_varen_util.validate_lookups
4759 (p_lookup_type => g_sales_channel
4760 , x_lookup_meaning => p_variable_rent_lines_tbl (i).sales_channel_meaning
4761 , x_lookup_code => p_variable_rent_lines_tbl (i).sales_channel_code
4762 , x_return_status => l_return_status
4763 );
4764 pn_varen_util.pvt_debug
4765 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: SALES_CHANNEL (Type 1) Output Code :'
4766 || p_variable_rent_lines_tbl (i).sales_channel_code
4767 , 3
4768 );
4769
4770 IF (l_return_status = fnd_api.g_ret_sts_error)
4771 THEN
4772 --
4773 fnd_message.set_name ('PN'
4774 , 'PN_VAR_LIN_SAL_CHL'
4775 );
4776 fnd_msg_pub.ADD;
4777 RAISE fnd_api.g_exc_error;
4778 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
4779 THEN
4780 fnd_message.set_name ('PN'
4781 , 'PN_VAR_LIN_SAL_CHL'
4782 );
4783 fnd_msg_pub.ADD;
4784 RAISE fnd_api.g_exc_unexpected_error;
4785 END IF;
4786 END IF;
4787
4788 --------------------------------------------------------------------------------
4789 --ITEM_CATEGORY(Type 2) validation
4790 --------------------------------------------------------------------------------
4791 IF ( p_variable_rent_lines_tbl (i).item_category_code IS NOT NULL
4792 OR p_variable_rent_lines_tbl (i).item_category_meaning IS NOT NULL
4793 )
4794 THEN
4795 pn_varen_util.pvt_debug
4796 ('PN_VAREN_PVT: Var_Rent_Line_Bkhd: Calling ITEM_CATEGORY(Type 2) Validation'
4797 , 3
4798 );
4799 pn_varen_util.validate_lookups
4800 (p_lookup_type => g_item_category
4801 , x_lookup_meaning => p_variable_rent_lines_tbl (i).item_category_meaning
4802 , x_lookup_code => p_variable_rent_lines_tbl (i).item_category_code
4803 , x_return_status => l_return_status
4804 );
4805 pn_varen_util.pvt_debug
4806 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: ITEM_CATEGORY(Type 2) Code Success :'
4807 || p_variable_rent_lines_tbl (i).item_category_code
4808 , 3
4809 );
4810
4811 IF (l_return_status = fnd_api.g_ret_sts_error)
4812 THEN
4813 --
4814 fnd_message.set_name ('PN'
4815 , 'PN_VAR_LIN_ITM_CAY'
4816 );
4817 fnd_msg_pub.ADD;
4818 RAISE fnd_api.g_exc_error;
4819 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
4820 THEN
4821 --
4822 fnd_message.set_name ('PN'
4823 , 'PN_VAR_LIN_ITM_CAY'
4824 );
4825 fnd_msg_pub.ADD;
4826 RAISE fnd_api.g_exc_unexpected_error;
4827 END IF;
4828 END IF;
4829
4830 ---- End of Variable Rent Lines validations
4831 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Var_Rent_Line_Bkhd: End of Variable Rent Lines validations'
4832 , 3
4833 );
4834
4835 ---
4836 -- variable rent lines insert procedure
4837 --
4838 --IF l_return_status = fnd_api.g_ret_sts_success
4839 --THEN
4840
4841 l_var_rent_input_line_num := p_variable_rent_lines_tbl (i).line_num;
4842
4843 IF p_validate_flag <> 'Y' THEN
4844 pn_varen_util.pvt_debug( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: Variable Rent Line Number as an input parameter:'|| l_var_rent_input_line_num,3);
4845
4846 insert_variable_rent_lines (p_variable_rent_lines_rec_type => p_variable_rent_lines_tbl(i)
4847 , x_return_status => l_return_status
4848 );
4849 pn_varen_util.pvt_debug('PN_VAREN_PVT: Var_Rent_Line_Bkhd: End of Calling Variable Rent Lines Insert Procedure :'||l_return_status,3);
4850 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
4851 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
4852 fnd_message.set_token('ERR_MSG', 'Error while inserting the VRA lines.');
4853 fnd_msg_pub.ADD;
4854 RAISE fnd_api.g_exc_error;
4855 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
4856 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
4857 fnd_message.set_token('ERR_MSG', 'Unexpected Error while inserting the VRA lines.');
4858 fnd_msg_pub.ADD;
4859 RAISE fnd_api.g_exc_unexpected_error;
4860 END IF;
4861 END IF;
4862
4863 -- Calling Breakpoint Header procedure only when insert variable rent lines is success
4864 ----
4865 -- IF l_return_status = fnd_api.g_ret_sts_success
4866 -- THEN
4867 FOR j IN p_breakpoint_header_tbl.FIRST .. p_breakpoint_header_tbl.LAST
4868 LOOP
4869 BEGIN
4870
4871 -------------------------------------------------------------------------------------
4872 -- If Breakpoint Header record type has not been initialized then assign it to null
4873 -------------------------------------------------------------------------------------
4874 IF p_breakpoint_header_tbl (j).bkhd_default_id = pn_varen_util.g_pn_miss_num
4875 THEN
4876 p_breakpoint_header_tbl (j).bkhd_default_id := NULL;
4877 END IF;
4878
4879 IF p_breakpoint_header_tbl (j).bkhd_detail_num = pn_varen_util.g_pn_miss_num
4880 THEN
4881 p_breakpoint_header_tbl (j).bkhd_detail_num := NULL;
4882 END IF;
4883
4884 IF p_breakpoint_header_tbl (j).line_default_id = pn_varen_util.g_pn_miss_num
4885 THEN
4886 p_breakpoint_header_tbl (j).line_default_id := NULL;
4887 END IF;
4888
4889 IF p_breakpoint_header_tbl (j).bkhd_start_date = pn_varen_util.g_pn_miss_date
4890 THEN
4891 p_breakpoint_header_tbl (j).bkhd_start_date := NULL;
4892 END IF;
4893
4894 IF p_breakpoint_header_tbl (j).bkhd_end_date = pn_varen_util.g_pn_miss_date
4895 THEN
4896 p_breakpoint_header_tbl (j).bkhd_end_date := NULL;
4897 END IF;
4898
4899 IF p_breakpoint_header_tbl (j).break_type_code = pn_varen_util.g_pn_miss_char
4900 THEN
4901 p_breakpoint_header_tbl (j).break_type_code := NULL;
4902 END IF;
4903
4904 IF p_breakpoint_header_tbl (j).break_type_meaning = pn_varen_util.g_pn_miss_char
4905 THEN
4906 p_breakpoint_header_tbl (j).break_type_meaning := NULL;
4907 END IF;
4908
4909 IF p_breakpoint_header_tbl (j).natural_break_rate = pn_varen_util.g_pn_miss_num
4910 THEN
4911 p_breakpoint_header_tbl (j).natural_break_rate := NULL;
4912 END IF;
4913
4914 IF p_breakpoint_header_tbl (j).breakpoint_type_code = pn_varen_util.g_pn_miss_char
4915 THEN
4916 p_breakpoint_header_tbl (j).breakpoint_type_code := NULL;
4917 END IF;
4918
4919 IF p_breakpoint_header_tbl (j).breakpoint_type_meaning = pn_varen_util.g_pn_miss_char
4920 THEN
4921 p_breakpoint_header_tbl (j).breakpoint_type_meaning := NULL;
4922 END IF;
4923
4924 IF p_breakpoint_header_tbl (j).var_rent_id = pn_varen_util.g_pn_miss_num
4925 THEN
4926 p_breakpoint_header_tbl (j).var_rent_id := NULL;
4927 END IF;
4928
4929 IF p_breakpoint_header_tbl (j).last_update_date = pn_varen_util.g_pn_miss_date
4930 THEN
4931 p_breakpoint_header_tbl (j).last_update_date := NULL;
4932 END IF;
4933
4934 IF p_breakpoint_header_tbl (j).last_updated_by = pn_varen_util.g_pn_miss_num
4935 THEN
4936 p_breakpoint_header_tbl (j).last_updated_by := NULL;
4937 END IF;
4938
4939 IF p_breakpoint_header_tbl (j).creation_date = pn_varen_util.g_pn_miss_date
4940 THEN
4941 p_breakpoint_header_tbl (j).creation_date := NULL;
4942 END IF;
4943
4944 IF p_breakpoint_header_tbl (j).created_by = pn_varen_util.g_pn_miss_num
4945 THEN
4946 p_breakpoint_header_tbl (j).created_by := NULL;
4947 END IF;
4948
4949 IF p_breakpoint_header_tbl (j).last_update_login = pn_varen_util.g_pn_miss_num
4950 THEN
4951 p_breakpoint_header_tbl (j).last_update_login := NULL;
4952 END IF;
4953
4954 IF p_breakpoint_header_tbl (j).attribute_category = pn_varen_util.g_pn_miss_char
4955 THEN
4956 p_breakpoint_header_tbl (j).attribute_category := NULL;
4957 END IF;
4958
4959 IF p_breakpoint_header_tbl (j).attribute1 = pn_varen_util.g_pn_miss_char
4960 THEN
4961 p_breakpoint_header_tbl (j).attribute1 := NULL;
4962 END IF;
4963
4964 IF p_breakpoint_header_tbl (j).attribute2 = pn_varen_util.g_pn_miss_char
4965 THEN
4966 p_breakpoint_header_tbl (j).attribute2 := NULL;
4967 END IF;
4968
4969 IF p_breakpoint_header_tbl (j).attribute3 = pn_varen_util.g_pn_miss_char
4970 THEN
4971 p_breakpoint_header_tbl (j).attribute3 := NULL;
4972 END IF;
4973
4974 IF p_breakpoint_header_tbl (j).attribute4 = pn_varen_util.g_pn_miss_char
4975 THEN
4976 p_breakpoint_header_tbl (j).attribute4 := NULL;
4977 END IF;
4978
4979 IF p_breakpoint_header_tbl (j).attribute5 = pn_varen_util.g_pn_miss_char
4980 THEN
4981 p_breakpoint_header_tbl (j).attribute5 := NULL;
4982 END IF;
4983
4984 IF p_breakpoint_header_tbl (j).attribute6 = pn_varen_util.g_pn_miss_char
4985 THEN
4986 p_breakpoint_header_tbl (j).attribute6 := NULL;
4987 END IF;
4988
4989 IF p_breakpoint_header_tbl (j).attribute7 = pn_varen_util.g_pn_miss_char
4990 THEN
4991 p_breakpoint_header_tbl (j).attribute7 := NULL;
4992 END IF;
4993
4994 IF p_breakpoint_header_tbl (j).attribute8 = pn_varen_util.g_pn_miss_char
4995 THEN
4996 p_breakpoint_header_tbl (j).attribute8 := NULL;
4997 END IF;
4998
4999 IF p_breakpoint_header_tbl (j).attribute9 = pn_varen_util.g_pn_miss_char
5000 THEN
5001 p_breakpoint_header_tbl (j).attribute9 := NULL;
5002 END IF;
5003
5004 IF p_breakpoint_header_tbl (j).attribute10 = pn_varen_util.g_pn_miss_char
5005 THEN
5006 p_breakpoint_header_tbl (j).attribute10 := NULL;
5007 END IF;
5008
5009 IF p_breakpoint_header_tbl (j).attribute11 = pn_varen_util.g_pn_miss_char
5010 THEN
5011 p_breakpoint_header_tbl (j).attribute11 := NULL;
5012 END IF;
5013
5014 IF p_breakpoint_header_tbl (j).attribute12 = pn_varen_util.g_pn_miss_char
5015 THEN
5016 p_breakpoint_header_tbl (j).attribute12 := NULL;
5017 END IF;
5018
5019 IF p_breakpoint_header_tbl (j).attribute13 = pn_varen_util.g_pn_miss_char
5020 THEN
5021 p_breakpoint_header_tbl (j).attribute13 := NULL;
5022 END IF;
5023
5024 IF p_breakpoint_header_tbl (j).attribute14 = pn_varen_util.g_pn_miss_char
5025 THEN
5026 p_breakpoint_header_tbl (j).attribute14 := NULL;
5027 END IF;
5028
5029 IF p_breakpoint_header_tbl (j).attribute15 = pn_varen_util.g_pn_miss_char
5030 THEN
5031 p_breakpoint_header_tbl (j).attribute15 := NULL;
5032 END IF;
5033
5034
5035 l_var_bkhd_detail_num := p_breakpoint_header_tbl(j).bkhd_detail_num;
5036 pn_varen_util.pvt_debug('PN_VAREN_PVT: Var_Rent_Line_Bkhd: Breakpoint Header Detail Num as an input parameter:'|| l_var_bkhd_detail_num,3);
5037
5038 IF (l_var_rent_input_line_num = p_breakpoint_header_tbl (j).bkhd_detail_num) THEN
5039
5040 ---Check for the date duplicate range
5041 l_date_range_count := 0;
5042 BEGIN
5043 SELECT COUNT(1)
5044 INTO l_date_range_count
5045 FROM pn_var_bkhd_defaults_all
5046 WHERE var_rent_id = p_variable_rent_lines_tbl (i).var_rent_id
5047 AND line_default_id = p_variable_rent_lines_tbl (i).line_default_id
5048 AND (bkhd_start_date <= p_breakpoint_header_tbl (j).bkhd_end_date AND bkhd_end_date >= p_breakpoint_header_tbl (j).bkhd_start_date);
5049 EXCEPTION
5050 WHEN OTHERS THEN
5051 pn_varen_util.pvt_debug('PN_VAREN_PVT:Remove any overlap in the breakpoint Headers',3);
5052 END;
5053
5054 IF(NVL(l_date_range_count,0) > 0) THEN
5055 --fnd_message.set_name('PN','PN_VAR_BKPT_OVERLAP');
5056 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
5057 fnd_message.set_token('ERR_MSG', 'Please review each breakpoint component and remove any overlap in the breakpoint Header dates.');
5058 fnd_msg_pub.ADD;
5059 RAISE fnd_api.g_exc_error;
5060 END IF;
5061
5062
5063 p_breakpoint_header_tbl (j).line_default_id := p_variable_rent_lines_tbl (i).line_default_id;
5064 p_breakpoint_header_tbl (j).var_rent_id := p_variable_rent_lines_tbl (i).var_rent_id;
5065 pn_varen_util.pvt_debug('PN_VAREN_PVT: Var_Rent_Line_Bkhd: Calling Breakpoint Header Validations Procedure ', 3);
5066
5067 validate_breakpoint_header (p_breakpoint_header_rec_type => p_breakpoint_header_tbl (j)
5068 , x_return_status => l_return_status
5069 );
5070 IF(l_return_status <> fnd_api.g_ret_sts_success) THEN
5071 RAISE fnd_api.g_exc_error;
5072 END IF;
5073 pn_varen_util.pvt_debug
5074 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: End of calling Breakpoint Header Validations Procedure - l_return_status :'
5075 || l_return_status
5076 , 3
5077 );
5078
5079 -- IF l_return_status = fnd_api.g_ret_sts_success
5080 --THEN
5081 -- Call validate_breakpoint_details
5082 -- IF (p_breakpoint_header_tbl (j).break_type_code = 'ARTIFICIAL' OR
5083 -- p_breakpoint_header_tbl (j).break_type_meaning = 'Artificial' ) THEN
5084 FOR k IN p_breakpoint_details_tbl.FIRST .. p_breakpoint_details_tbl.LAST
5085 LOOP
5086 BEGIN
5087
5088 -------------------------------------------------------------------------------------
5089 -- If Breakpoint Details record type has not been initialized then assign it to null
5090 -------------------------------------------------------------------------------------
5091 IF p_breakpoint_details_tbl (k).bkdt_default_id = pn_varen_util.g_pn_miss_num
5092 THEN
5093 p_breakpoint_details_tbl (k).bkdt_default_id :=
5094 NULL;
5095 END IF;
5096
5097 IF p_breakpoint_details_tbl (k).bkdt_detail_num = pn_varen_util.g_pn_miss_num
5098 THEN
5099 p_breakpoint_details_tbl (k).bkdt_detail_num :=
5100 NULL;
5101 END IF;
5102
5103 IF p_breakpoint_details_tbl (k).bkhd_default_id = pn_varen_util.g_pn_miss_num
5104 THEN
5105 p_breakpoint_details_tbl (k).bkhd_default_id :=
5106 NULL;
5107 END IF;
5108
5109 IF p_breakpoint_details_tbl (k).bkdt_start_date = pn_varen_util.g_pn_miss_date
5110 THEN
5111 p_breakpoint_details_tbl (k).bkdt_start_date :=
5112 NULL;
5113 END IF;
5114
5115 IF p_breakpoint_details_tbl (k).bkdt_end_date = pn_varen_util.g_pn_miss_date
5116 THEN
5117 p_breakpoint_details_tbl (k).bkdt_end_date :=
5118 NULL;
5119 END IF;
5120
5121 IF p_breakpoint_details_tbl (k).period_bkpt_vol_start = pn_varen_util.g_pn_miss_num
5122 THEN
5123 p_breakpoint_details_tbl (k).period_bkpt_vol_start :=
5124 NULL;
5125 END IF;
5126
5127 IF p_breakpoint_details_tbl (k).period_bkpt_vol_end = pn_varen_util.g_pn_miss_num
5128 THEN
5129 p_breakpoint_details_tbl (k).period_bkpt_vol_end :=
5130 NULL;
5131 END IF;
5132
5133 IF p_breakpoint_details_tbl (k).group_bkpt_vol_start = pn_varen_util.g_pn_miss_num
5134 THEN
5135 p_breakpoint_details_tbl (k).group_bkpt_vol_start :=
5136 NULL;
5137 END IF;
5138
5139 IF p_breakpoint_details_tbl (k).group_bkpt_vol_end = pn_varen_util.g_pn_miss_num
5140 THEN
5141 p_breakpoint_details_tbl (k).group_bkpt_vol_end :=
5142 NULL;
5143 END IF;
5144
5145 pn_varen_util.pvt_debug
5146 ( ' PN_VAREN_PVT: Var_Rent_Line_Bkhd: Initialize: p_breakpoint_details_tbl (k).bkpt_rate : '
5147 || p_breakpoint_details_tbl (k).bkpt_rate
5148 , 3
5149 );
5150
5151 IF p_breakpoint_details_tbl (k).bkpt_rate = pn_varen_util.g_pn_miss_num
5152 THEN
5153 pn_varen_util.pvt_debug
5154 ( ' PN_VAREN_PVT: Var_Rent_Line_Bkhd: Initialize 2: Before p_breakpoint_details_tbl (k).bkpt_rate : '
5155 || p_breakpoint_details_tbl (k).bkpt_rate
5156 , 3
5157 );
5158 p_breakpoint_details_tbl (k).bkpt_rate :=
5159 NULL;
5160 END IF;
5161
5162 IF p_breakpoint_details_tbl (k).annual_basis_amount = pn_varen_util.g_pn_miss_num
5163 THEN
5164 p_breakpoint_details_tbl (k).annual_basis_amount :=
5165 NULL;
5166 END IF;
5167
5168 IF p_breakpoint_details_tbl (k).var_rent_id = pn_varen_util.g_pn_miss_num
5169 THEN
5170 p_breakpoint_details_tbl (k).var_rent_id :=
5171 NULL;
5172 END IF;
5173
5174 IF p_breakpoint_details_tbl (k).last_update_date = pn_varen_util.g_pn_miss_date
5175 THEN
5176 p_breakpoint_details_tbl (k).last_update_date :=
5177 NULL;
5178 END IF;
5179
5180 IF p_breakpoint_details_tbl (k).last_updated_by = pn_varen_util.g_pn_miss_num
5181 THEN
5182 p_breakpoint_details_tbl (k).last_updated_by :=
5183 NULL;
5184 END IF;
5185
5186 IF p_breakpoint_details_tbl (k).creation_date = pn_varen_util.g_pn_miss_date
5187 THEN
5188 p_breakpoint_details_tbl (k).creation_date :=
5189 NULL;
5190 END IF;
5191
5192 IF p_breakpoint_details_tbl (k).created_by = pn_varen_util.g_pn_miss_num
5193 THEN
5194 p_breakpoint_details_tbl (k).created_by :=
5195 NULL;
5196 END IF;
5197
5198 IF p_breakpoint_details_tbl (k).last_update_login = pn_varen_util.g_pn_miss_num
5199 THEN
5200 p_breakpoint_details_tbl (k).last_update_login :=
5201 NULL;
5202 END IF;
5203
5204 IF p_breakpoint_details_tbl (k).attribute_category = pn_varen_util.g_pn_miss_char
5205 THEN
5206 p_breakpoint_details_tbl (k).attribute_category :=
5207 NULL;
5208 END IF;
5209
5210 IF p_breakpoint_details_tbl (k).attribute1 = pn_varen_util.g_pn_miss_char
5211 THEN
5212 p_breakpoint_details_tbl (k).attribute1 :=
5213 NULL;
5214 END IF;
5215
5216 IF p_breakpoint_details_tbl (k).attribute2 = pn_varen_util.g_pn_miss_char
5217 THEN
5218 p_breakpoint_details_tbl (k).attribute2 :=
5219 NULL;
5220 END IF;
5221
5222 IF p_breakpoint_details_tbl (k).attribute3 = pn_varen_util.g_pn_miss_char
5223 THEN
5224 p_breakpoint_details_tbl (k).attribute3 :=
5225 NULL;
5226 END IF;
5227
5228 IF p_breakpoint_details_tbl (k).attribute4 = pn_varen_util.g_pn_miss_char
5229 THEN
5230 p_breakpoint_details_tbl (k).attribute4 :=
5231 NULL;
5232 END IF;
5233
5234 IF p_breakpoint_details_tbl (k).attribute5 = pn_varen_util.g_pn_miss_char
5235 THEN
5236 p_breakpoint_details_tbl (k).attribute5 :=
5237 NULL;
5238 END IF;
5239
5240 IF p_breakpoint_details_tbl (k).attribute6 = pn_varen_util.g_pn_miss_char
5241 THEN
5242 p_breakpoint_details_tbl (k).attribute6 :=
5243 NULL;
5244 END IF;
5245
5246 IF p_breakpoint_details_tbl (k).attribute7 = pn_varen_util.g_pn_miss_char
5247 THEN
5248 p_breakpoint_details_tbl (k).attribute7 :=
5249 NULL;
5250 END IF;
5251
5252 IF p_breakpoint_details_tbl (k).attribute8 = pn_varen_util.g_pn_miss_char
5253 THEN
5254 p_breakpoint_details_tbl (k).attribute8 :=
5255 NULL;
5256 END IF;
5257
5258 IF p_breakpoint_details_tbl (k).attribute9 = pn_varen_util.g_pn_miss_char
5259 THEN
5260 p_breakpoint_details_tbl (k).attribute9 :=
5261 NULL;
5262 END IF;
5263
5264 IF p_breakpoint_details_tbl (k).attribute10 = pn_varen_util.g_pn_miss_char
5265 THEN
5266 p_breakpoint_details_tbl (k).attribute10 :=
5267 NULL;
5268 END IF;
5269
5270 IF p_breakpoint_details_tbl (k).attribute11 = pn_varen_util.g_pn_miss_char
5271 THEN
5272 p_breakpoint_details_tbl (k).attribute11 :=
5273 NULL;
5274 END IF;
5275
5276 IF p_breakpoint_details_tbl (k).attribute12 = pn_varen_util.g_pn_miss_char
5277 THEN
5278 p_breakpoint_details_tbl (k).attribute12 :=
5279 NULL;
5280 END IF;
5281
5282 IF p_breakpoint_details_tbl (k).attribute13 = pn_varen_util.g_pn_miss_char
5283 THEN
5284 p_breakpoint_details_tbl (k).attribute13 :=
5285 NULL;
5286 END IF;
5287
5288 IF p_breakpoint_details_tbl (k).attribute14 = pn_varen_util.g_pn_miss_char
5289 THEN
5290 p_breakpoint_details_tbl (k).attribute14 :=
5291 NULL;
5292 END IF;
5293
5294 IF p_breakpoint_details_tbl (k).attribute15 = pn_varen_util.g_pn_miss_char
5295 THEN
5296 p_breakpoint_details_tbl (k).attribute15 :=
5297 NULL;
5298 END IF;
5299
5300 ---------
5301 -- End
5302 ---------
5303 pn_varen_util.pvt_debug
5304 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: Breakpoint Headers Default Num - l_var_bkhd_detail_num:'
5305 || l_var_bkhd_detail_num
5306 , 3
5307 );
5308 pn_varen_util.pvt_debug
5309 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: Breakpoint Headers Default Num - p_breakpoint_header_tbl(j).bkhd_detail_num:'
5310 || p_breakpoint_header_tbl (j).bkhd_detail_num
5311 , 3
5312 );
5313 pn_varen_util.pvt_debug
5314 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: pn_varen_pvt - Breakpoint Lines Default Num :'
5315 || p_breakpoint_details_tbl (k).bkdt_detail_num
5316 , 3
5317 );
5318
5319
5320 IF ( l_var_bkhd_detail_num = p_breakpoint_details_tbl (k).bkdt_detail_num
5321 AND (p_breakpoint_details_tbl (k).bkdt_start_date >= p_breakpoint_header_tbl (j).bkhd_start_date
5322 AND p_breakpoint_details_tbl (k).bkdt_start_date <= p_breakpoint_header_tbl (j).bkhd_end_date )
5323 AND (p_breakpoint_details_tbl (k).bkdt_end_date >= p_breakpoint_header_tbl (j).bkhd_start_date
5324 AND p_breakpoint_details_tbl (k).bkdt_end_date <= p_breakpoint_header_tbl (j).bkhd_end_date ))THEN
5325 --
5326 -- Breakpoint Headers Header default Id should be same as Breakpoint Details Header defatlt Id.
5327 --
5328 p_breakpoint_details_tbl (k).bkhd_default_id :=
5329 p_breakpoint_header_tbl (j).bkhd_default_id;
5330 --
5331 p_breakpoint_details_tbl (k).var_rent_id :=
5332 p_variable_rent_lines_tbl (i).var_rent_id;
5333 l_date_range_bkdt_count :=0;
5334 BEGIN
5335 SELECT COUNT(1)
5336 INTO l_date_range_bkdt_count
5337 FROM pn_var_bkdt_defaults_all
5338 WHERE var_rent_id = p_variable_rent_lines_tbl (i).var_rent_id
5339 AND bkhd_default_id = p_breakpoint_header_tbl (j).bkhd_default_id
5340 AND (bkdt_start_date <= p_breakpoint_details_tbl (k).bkdt_end_date AND bkdt_end_date >= p_breakpoint_details_tbl (k).bkdt_start_date);
5341 EXCEPTION
5342 WHEN OTHERS THEN
5343 pn_varen_util.pvt_debug('PN_VAREN_PVT:Remove any overlap in the breakpoint details',3);
5344 END;
5345
5346 IF(NVL(l_date_range_bkdt_count,0) > 0) THEN
5347 --fnd_message.set_name('PN','PN_VAR_BKPT_OVERLAP');
5348 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
5349 fnd_message.set_token('ERR_MSG', 'Please review each breakpoint component and remove any overlap in the breakpoint Details dates.');
5350 fnd_msg_pub.ADD;
5351 RAISE fnd_api.g_exc_error;
5352 END IF;
5353
5354
5355
5356 pn_varen_util.pvt_debug
5357 ('PN_VAREN_PVT: Var_Rent_Line_Bkhd: Calling Breakpoint Details Validations Procedure '
5358 , 3
5359 );
5360
5361 pn_varen_util.pvt_debug
5362 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd:Before validate_breakpoint_details p_breakpoint_header_tbl (j).bkhd_detail_num : '
5363 || p_breakpoint_header_tbl (j).bkhd_detail_num
5364 , 3
5365 );
5366 pn_varen_util.pvt_debug
5367 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd:Before validate_breakpoint_details p_breakpoint_details_tbl (k).bkdt_detail_num : '
5368 || p_breakpoint_details_tbl (k).bkdt_detail_num
5369 , 3
5370 );
5371 pn_varen_util.pvt_debug
5372 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd:Before validate_breakpoint_details p_breakpoint_details_tbl (k).bkpt_rate : '
5373 || p_breakpoint_details_tbl (k).bkpt_rate
5374 , 3
5375 );
5376 validate_breakpoint_details
5377 (p_breakpoint_details_rec_type => p_breakpoint_details_tbl (k)
5378 , p_validate_flag => p_validate_flag
5379 , x_return_status => l_return_status
5380 );
5381 pn_varen_util.pvt_debug
5382 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: End of calling Breakpoint Details Validations Procedure - l_return_status :'
5383 || l_return_status
5384 , 3
5385 );
5386
5387 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
5388 pn_varen_util.pvt_debug
5389 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: Breakpoint Details not created - BKDT_DETAIL_NUM : '
5390 || p_breakpoint_details_tbl (k).bkdt_detail_num
5391 , 3
5392 );
5393 --fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
5394 --fnd_message.set_token('ERR_MSG', 'Breakpoint Details not created:'|| p_breakpoint_details_tbl (k).bkdt_detail_num);
5395 --fnd_msg_pub.ADD;
5396 RAISE fnd_api.g_exc_error;
5397 ELSIF(l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
5398 pn_varen_util.pvt_debug
5399 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: Breakpoint Details not created - BKDT_DETAIL_NUM : '
5400 || p_breakpoint_details_tbl (k).bkdt_detail_num
5401 , 3
5402 );
5403 --fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
5404 --fnd_message.set_token('ERR_MSG', 'Breakpoint Details not created:'|| p_breakpoint_details_tbl (k).bkdt_detail_num);
5405 --fnd_msg_pub.ADD;
5406 RAISE fnd_api.g_exc_unexpected_error;
5407 END IF;
5408 ELSE
5409 pn_varen_util.pvt_debug
5410 ('PN_VAREN_PVT: Var_Rent_Line_Bkhd: Breakpoint Headers Default Num is not equal to Breakpoint Lines Default Num :'
5411 , 3
5412 );
5413 -- Return status of the Breakpoint Details
5414 END IF;
5415 -- Breakpoint Header Detail Num is not equal to Breakpoint Header Detail Num
5416
5417 EXCEPTION
5418 WHEN fnd_api.g_exc_error THEN
5419 l_var_lines_err_count := l_var_lines_err_count + 1;
5420 pn_varen_util.pvt_debug('PN_VAREN_PVT:FND_API.G_RET_STS_ERROR:p_breakpoint_details_tbl:LOOP:Exception:'||SQLERRM,3);
5421 WHEN OTHERS THEN
5422 l_var_lines_err_count := l_var_lines_err_count + 1;
5423 pn_varen_util.pvt_debug('PN_VAREN_PVT:FND_API.G_RET_STS_UNEXP_ERROR:p_breakpoint_details_tbl:LOOP:Unexpected Exception:'||SQLERRM,3);
5424 END;
5425 END LOOP;--p_breakpoint_details_tbl
5426 -- END IF; -- 'Artificial' Go In.
5427 --END IF; -- Breakpoint Header return status.
5428 ELSE
5429 pn_varen_util.pvt_debug
5430 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: No Breakpoint Header information would be created for the Variable Rent Line Num :'
5431 || p_variable_rent_lines_tbl (i).line_num
5432 , 3
5433 );
5434 END IF;
5435 EXCEPTION
5436 WHEN fnd_api.g_exc_error THEN
5437 l_var_lines_err_count := l_var_lines_err_count + 1;
5438 pn_varen_util.pvt_debug('PN_VAREN_PVT:FND_API.G_RET_STS_ERROR:p_breakpoint_header_tbl:LOOP:Exception:'||SQLERRM,3);
5439 WHEN OTHERS THEN
5440 l_var_lines_err_count := l_var_lines_err_count + 1;
5441 pn_varen_util.pvt_debug('PN_VAREN_PVT:FND_API.G_RET_STS_UNEXP_ERROR:p_breakpoint_header_tbl:LOOP:Unexpected Exception:'||SQLERRM,3);
5442 END;
5443 END LOOP;--p_breakpoint_header_tbl
5444
5445 BEGIN
5446 UPDATE pn_var_line_defaults_all
5447 SET line_start_date = (SELECT MIN(bkhd_start_date)
5448 FROM pn_var_bkhd_defaults_all
5449 WHERE line_default_id = p_variable_rent_lines_tbl(i).line_default_id
5450 AND org_id = g_org_id
5451 )
5452 ,line_end_date = (SELECT MAX(bkhd_end_date)
5453 FROM pn_var_bkhd_defaults_all
5454 WHERE line_default_id = p_variable_rent_lines_tbl(i).line_default_id
5455 AND org_id = g_org_id
5456 )
5457 WHERE line_default_id = p_variable_rent_lines_tbl(i).line_default_id
5458 AND org_id = g_org_id;
5459 COMMIT;
5460 EXCEPTION
5461 WHEN OTHERS THEN
5462 pn_varen_util.pvt_debug('PN_VAREN_PVT: Var_Rent_Line_Bkhd:Exception raised while updating the Var Line Rent Dates',3);
5463 END;
5464 --MEOW
5465 /*ELSE
5466 pn_varen_util.pvt_debug
5467 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: Breakpoints not created - l_return_status :'
5468 || l_return_status
5469 , 3
5470 );
5471 END IF;
5472 ----
5473 --End of Calling Breakpoint Header procedure only when insert variable rent lines is success
5474 ----
5475 /*ELSE
5476 x_return_status :=
5477 fnd_api.g_ret_sts_error;
5478 pn_varen_util.pvt_debug
5479 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: Error encountered, While calling Variable Rent Lines Insert Procedure and Return status is :'
5480 || l_return_status
5481 , 3
5482 );
5483 RAISE fnd_api.g_exc_error;
5484 END IF; -- */
5485 ELSE
5486 pn_varen_util.pvt_debug
5487 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: Periods are not generated for Rent Num :'
5488 || p_variable_rent_lines_tbl (i).var_rent_num
5489 , 3
5490 );
5491 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
5492 fnd_message.set_token('ERR_MSG', 'Periods are not generated for Rent Num :'||p_variable_rent_lines_tbl (i).var_rent_num);
5493 fnd_msg_pub.ADD;
5494 RAISE fnd_api.g_exc_error;
5495 END IF; -- End of l_period_exists condition
5496 END IF; --l_variable_rent_exists
5497
5498 EXCEPTION
5499 WHEN fnd_api.g_exc_error THEN
5500 l_var_lines_err_count := l_var_lines_err_count + 1;
5501 pn_varen_util.pvt_debug('PN_VAREN_PVT:FND_API.G_RET_STS_ERROR:p_variable_rent_lines_tbl:LOOP:Exception:'||SQLERRM,3);
5502 WHEN OTHERS THEN
5503 l_var_lines_err_count := l_var_lines_err_count + 1;
5504 pn_varen_util.pvt_debug('PN_VAREN_PVT:FND_API.G_RET_STS_UNEXP_ERROR:p_variable_rent_lines_tbl:LOOP:Unexpected Exception:'||SQLERRM,3);
5505 END;
5506 END LOOP; --END LOOP p_variable_rent_lines_tbl(i)
5507
5508
5509
5510 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: Value of p_generate_breakpoints is '
5511 || p_generate_breakpoints
5512 , 3
5513 );
5514
5515 IF p_generate_breakpoints = 'Y'
5516 THEN
5517 pn_varen_util.pvt_debug
5518 ( 'PN_VAREN_PVT: Var_Rent_Line_Bkhd: Input parameters for Generate_Breakpoints procedure l_var_rent_id is '
5519 || l_var_rent_id
5520 , 3
5521 );
5522 generate_breakpoints (p_var_rent_id => l_var_rent_id
5523 , p_org_id => g_org_id
5524 , x_return_status => l_return_status
5525 );
5526 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
5527 --fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
5528 --fnd_message.set_token('ERR_MSG', 'Break Points are not generated:'||l_var_rent_id);--OOPS(RHIA)
5529 --fnd_msg_pub.ADD;
5530 RAISE fnd_api.g_exc_error;
5531 ELSIF(l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
5532 --fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
5533 --fnd_message.set_token('ERR_MSG', 'Break Points are not generated:'||l_var_rent_id);
5534 --fnd_msg_pub.ADD;
5535 RAISE fnd_api.g_exc_unexpected_error;
5536 END IF;
5537 ELSE
5538 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Var_Rent_Line_Bkhd: Generate Constraints not initiated'
5539 , 3
5540 );
5541 END IF;
5542
5543 IF(l_var_lines_err_count = 0) THEN
5544 x_return_status := fnd_api.g_ret_sts_success;
5545 ELSE
5546 x_return_status := fnd_api.g_ret_sts_error;
5547 END IF;
5548
5549 ---- ------------------------------------------------------
5550 ---- -- Starting Constraints Validation and Insert procedure.
5551 ---- ------------------------------------------------------
5552 ----
5553 ---- val_ins_constraints (
5554 ---- p_constraints_tbl_type => p_constraints_tbl_type
5555 ---- , x_return_status => l_return_status
5556 ---- );
5557 EXCEPTION
5558 WHEN fnd_api.g_exc_error THEN
5559 x_return_status := fnd_api.g_ret_sts_error;
5560 pn_varen_util.pvt_debug(g_pkg_name||'-VAR_RENT_LINES_BKHD:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
5561 WHEN OTHERS THEN
5562 x_return_status := fnd_api.g_ret_sts_unexp_error;
5563 pn_varen_util.pvt_debug(g_pkg_name||'-VAR_RENT_LINES_BKHD:Un expected EXCEPTION:FND_API.G_RET_STS_UNEXP_ERROR'||SQLERRM,3);
5564 END var_rent_lines_bkhd;
5565
5566 --------------------------------------------------------------------------------
5567 -- NAME : INI_VAL_VAR_REC
5568 -- DESCRIPTION : Initialize Variable Rent records
5569 -- PURPOSE :
5570 -- INVOKED FROM :
5571 -- ARGUMENTS : p_var_rent_rec IN Parameter
5572 -- : X_RETURN_STATUS OUT Parameter
5573 -- REFERENCE :
5574 -- HISTORY :
5575 --
5576 -- 20-SEP-2010 vkatta o Created
5577 --------------------------------------------------------------------------------
5578 PROCEDURE ini_val_var_rec (
5579 p_var_rent_rec IN OUT NOCOPY var_rent_rec_type
5580 , x_return_status OUT NOCOPY VARCHAR2
5581 )
5582 IS
5583 BEGIN
5584 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Ini_Val_Var_Rec : Start of initializing variable rent record '
5585 , 3
5586 );
5587
5588 --------------------------------------------------------------------------------
5589 -- If Variable Rent record type has not been initialized then assign it to null
5590 --------------------------------------------------------------------------------
5591 IF p_var_rent_rec.lease_id = pn_varen_util.g_pn_miss_num
5592 THEN
5593 p_var_rent_rec.lease_id := NULL;
5594 END IF;
5595
5596 IF p_var_rent_rec.lease_num = pn_varen_util.g_pn_miss_char
5597 THEN
5598 p_var_rent_rec.lease_num := NULL;
5599 END IF;
5600
5601 IF p_var_rent_rec.lease_name = pn_varen_util.g_pn_miss_char
5602 THEN
5603 p_var_rent_rec.lease_name := NULL;
5604 END IF;
5605
5606 IF p_var_rent_rec.location_id = pn_varen_util.g_pn_miss_num
5607 THEN
5608 p_var_rent_rec.location_id := NULL;
5609 END IF;
5610
5611 IF p_var_rent_rec.location_code = pn_varen_util.g_pn_miss_char
5612 THEN
5613 p_var_rent_rec.location_code := NULL;
5614 END IF;
5615
5616 --IF p_var_rent_rec.var_rent_id = pn_varen_util.g_pn_miss_num
5617 --THEN
5618 -- p_var_rent_rec.var_rent_id := NULL;
5619 --END IF;
5620 IF p_var_rent_rec.rent_num = pn_varen_util.g_pn_miss_char
5621 THEN
5622 p_var_rent_rec.rent_num := NULL;
5623 END IF;
5624
5625 IF p_var_rent_rec.abstracted_by_user_id = pn_varen_util.g_pn_miss_num
5626 THEN
5627 p_var_rent_rec.abstracted_by_user_id := NULL;
5628 END IF;
5629
5630 IF p_var_rent_rec.abstracted_by_user = pn_varen_util.g_pn_miss_char
5631 THEN
5632 p_var_rent_rec.abstracted_by_user := NULL;
5633 END IF;
5634
5635 IF p_var_rent_rec.commencement_date = pn_varen_util.g_pn_miss_date
5636 THEN
5637 p_var_rent_rec.commencement_date := NULL;
5638 END IF;
5639
5640 IF p_var_rent_rec.termination_date = pn_varen_util.g_pn_miss_date
5641 THEN
5642 p_var_rent_rec.termination_date := NULL;
5643 END IF;
5644
5645 IF p_var_rent_rec.term_template_id = pn_varen_util.g_pn_miss_num
5646 THEN
5647 p_var_rent_rec.term_template_id := NULL;
5648 END IF;
5649
5650 IF p_var_rent_rec.term_template_name = pn_varen_util.g_pn_miss_char
5651 THEN
5652 p_var_rent_rec.term_template_name := NULL;
5653 END IF;
5654
5655 IF p_var_rent_rec.currency_code = pn_varen_util.g_pn_miss_char
5656 THEN
5657 p_var_rent_rec.currency_code := NULL;
5658 END IF;
5659
5660 IF p_var_rent_rec.proration_days = pn_varen_util.g_pn_miss_num
5661 THEN
5662 p_var_rent_rec.proration_days := NULL;
5663 END IF;
5664
5665 IF p_var_rent_rec.agreement_template_id = pn_varen_util.g_pn_miss_num
5666 THEN
5667 p_var_rent_rec.agreement_template_id := NULL;
5668 END IF;
5669
5670 IF p_var_rent_rec.agreement_template_name = pn_varen_util.g_pn_miss_char
5671 THEN
5672 p_var_rent_rec.agreement_template_name := NULL;
5673 END IF;
5674
5675 IF p_var_rent_rec.cumulative_vol_code = pn_varen_util.g_pn_miss_char
5676 THEN
5677 p_var_rent_rec.cumulative_vol_code := NULL;
5678 END IF;
5679
5680 IF p_var_rent_rec.cumulative_vol_meaning = pn_varen_util.g_pn_miss_char
5681 THEN
5682 p_var_rent_rec.cumulative_vol_meaning := NULL;
5683 END IF;
5684
5685 IF p_var_rent_rec.proration_rule_code = pn_varen_util.g_pn_miss_char
5686 THEN
5687 p_var_rent_rec.proration_rule_code := NULL;
5688 END IF;
5689
5690 IF p_var_rent_rec.proration_rule_meaning = pn_varen_util.g_pn_miss_char
5691 THEN
5692 p_var_rent_rec.proration_rule_meaning := NULL;
5693 END IF;
5694
5695 IF p_var_rent_rec.invoice_on_code = pn_varen_util.g_pn_miss_char
5696 THEN
5697 p_var_rent_rec.invoice_on_code := NULL;
5698 END IF;
5699
5700 IF p_var_rent_rec.invoice_on_meaning = pn_varen_util.g_pn_miss_char
5701 THEN
5702 p_var_rent_rec.invoice_on_meaning := NULL;
5703 END IF;
5704
5705 IF p_var_rent_rec.negative_rent_code = pn_varen_util.g_pn_miss_char
5706 THEN
5707 p_var_rent_rec.negative_rent_code := NULL;
5708 END IF;
5709
5710 IF p_var_rent_rec.negative_rent_meaning = pn_varen_util.g_pn_miss_char
5711 THEN
5712 p_var_rent_rec.negative_rent_meaning := NULL;
5713 END IF;
5714
5715 IF p_var_rent_rec.type_code = pn_varen_util.g_pn_miss_char
5716 THEN
5717 p_var_rent_rec.type_code := NULL;
5718 END IF;
5719
5720 IF p_var_rent_rec.type_meaning = pn_varen_util.g_pn_miss_char
5721 THEN
5722 p_var_rent_rec.type_meaning := NULL;
5723 END IF;
5724
5725 IF p_var_rent_rec.purpose_code = pn_varen_util.g_pn_miss_char
5726 THEN
5727 p_var_rent_rec.purpose_code := NULL;
5728 END IF;
5729
5730 IF p_var_rent_rec.purpose_code_meaning = pn_varen_util.g_pn_miss_char
5731 THEN
5732 p_var_rent_rec.purpose_code_meaning := NULL;
5733 END IF;
5734
5735 IF p_var_rent_rec.last_update_date = pn_varen_util.g_pn_miss_date
5736 THEN
5737 p_var_rent_rec.last_update_date := NULL;
5738 END IF;
5739
5740 IF p_var_rent_rec.last_updated_by = pn_varen_util.g_pn_miss_num
5741 THEN
5742 p_var_rent_rec.last_updated_by := NULL;
5743 END IF;
5744
5745 IF p_var_rent_rec.creation_date = pn_varen_util.g_pn_miss_date
5746 THEN
5747 p_var_rent_rec.creation_date := NULL;
5748 END IF;
5749
5750 IF p_var_rent_rec.created_by = pn_varen_util.g_pn_miss_num
5751 THEN
5752 p_var_rent_rec.created_by := NULL;
5753 END IF;
5754
5755 IF p_var_rent_rec.last_update_login = pn_varen_util.g_pn_miss_num
5756 THEN
5757 p_var_rent_rec.last_update_login := NULL;
5758 END IF;
5759
5760 IF p_var_rent_rec.attribute_category = pn_varen_util.g_pn_miss_char
5761 THEN
5762 p_var_rent_rec.attribute_category := NULL;
5763 END IF;
5764
5765 IF p_var_rent_rec.attribute1 = pn_varen_util.g_pn_miss_char
5766 THEN
5767 p_var_rent_rec.attribute1 := NULL;
5768 END IF;
5769
5770 IF p_var_rent_rec.attribute2 = pn_varen_util.g_pn_miss_char
5771 THEN
5772 p_var_rent_rec.attribute2 := NULL;
5773 END IF;
5774
5775 IF p_var_rent_rec.attribute3 = pn_varen_util.g_pn_miss_char
5776 THEN
5777 p_var_rent_rec.attribute3 := NULL;
5778 END IF;
5779
5780 IF p_var_rent_rec.attribute4 = pn_varen_util.g_pn_miss_char
5781 THEN
5782 p_var_rent_rec.attribute4 := NULL;
5783 END IF;
5784
5785 IF p_var_rent_rec.attribute5 = pn_varen_util.g_pn_miss_char
5786 THEN
5787 p_var_rent_rec.attribute5 := NULL;
5788 END IF;
5789
5790 IF p_var_rent_rec.attribute6 = pn_varen_util.g_pn_miss_char
5791 THEN
5792 p_var_rent_rec.attribute6 := NULL;
5793 END IF;
5794
5795 IF p_var_rent_rec.attribute7 = pn_varen_util.g_pn_miss_char
5796 THEN
5797 p_var_rent_rec.attribute7 := NULL;
5798 END IF;
5799
5800 IF p_var_rent_rec.attribute8 = pn_varen_util.g_pn_miss_char
5801 THEN
5802 p_var_rent_rec.attribute8 := NULL;
5803 END IF;
5804
5805 IF p_var_rent_rec.attribute9 = pn_varen_util.g_pn_miss_char
5806 THEN
5807 p_var_rent_rec.attribute9 := NULL;
5808 END IF;
5809
5810 IF p_var_rent_rec.attribute10 = pn_varen_util.g_pn_miss_char
5811 THEN
5812 p_var_rent_rec.attribute10 := NULL;
5813 END IF;
5814
5815 IF p_var_rent_rec.attribute11 = pn_varen_util.g_pn_miss_char
5816 THEN
5817 p_var_rent_rec.attribute11 := NULL;
5818 END IF;
5819
5820 IF p_var_rent_rec.attribute12 = pn_varen_util.g_pn_miss_char
5821 THEN
5822 p_var_rent_rec.attribute12 := NULL;
5823 END IF;
5824
5825 IF p_var_rent_rec.attribute13 = pn_varen_util.g_pn_miss_char
5826 THEN
5827 p_var_rent_rec.attribute13 := NULL;
5828 END IF;
5829
5830 IF p_var_rent_rec.attribute14 = pn_varen_util.g_pn_miss_char
5831 THEN
5832 p_var_rent_rec.attribute14 := NULL;
5833 END IF;
5834
5835 IF p_var_rent_rec.attribute15 = pn_varen_util.g_pn_miss_char
5836 THEN
5837 p_var_rent_rec.attribute15 := NULL;
5838 END IF;
5839
5840 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Ini_Val_Var_Rec : End of initializing variable rent record '
5841 , 3
5842 );
5843 x_return_status := fnd_api.g_ret_sts_success;
5844 --------
5845 -- End
5846 --------
5847 EXCEPTION
5848 WHEN OTHERS
5849 THEN
5850 pn_varen_util.pvt_debug
5851 ( 'PN_VAREN_PVT: Ini_Val_Var_Rec: Exception raised in initializing variable rent record: '
5852 || SQLERRM
5853 , 3
5854 );
5855 x_return_status := fnd_api.g_ret_sts_error;
5856 END ini_val_var_rec;
5857
5858 --------------------------------------------------------------------------------
5859 -- NAME : UPD_VAL_VAR_RENT
5860 -- DESCRIPTION :
5861 -- PURPOSE :
5862 -- INVOKED FROM :
5863 -- ARGUMENTS : P_UPD_VAR_RENT_REC_TYPE IN Parameter
5864 -- : X_RETURN_STATUS OUT Parameter
5865 -- REFERENCE :
5866 -- HISTORY :
5867 --
5868 -- 11-OCT-2010 vkatta o Created
5869 --------------------------------------------------------------------------------
5870 PROCEDURE upd_val_var_rent (
5871 p_upd_var_rent_rec_type IN OUT NOCOPY upd_var_rent_rec_type
5872 , x_return_status OUT NOCOPY VARCHAR2
5873 )
5874 IS
5875 --l_return_status
5876 BEGIN
5877 --------------------------------------------------------------------------------
5878 -- Validate variable rent number existence before update
5879 --------------------------------------------------------------------------------
5880 IF ( p_upd_var_rent_rec_type.rent_num IS NOT NULL
5881 OR p_upd_var_rent_rec_type.var_rent_id IS NOT NULL)
5882 THEN
5883 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Val_Var_Rent: Calling pn_varen_util.validate_rent_num '
5884 , 3
5885 );
5886 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Var_Rent: Parameter pn_varen_util.validate_rent_num :'
5887 || NVL (p_upd_var_rent_rec_type.rent_num
5888 , 'NO RENT NUM'
5889 )
5890 , 3
5891 );
5892 pn_varen_util.validate_rent_num (x_rent_num => p_upd_var_rent_rec_type.rent_num
5893 , x_var_rent_id => p_upd_var_rent_rec_type.var_rent_id
5894 , p_lease_id => p_upd_var_rent_rec_type.lease_id
5895 , p_org_id => g_org_id
5896 , x_return_status => x_return_status
5897 );
5898 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Var_Rent: Variable Rent Validation Output :'
5899 || l_var_rent_id
5900 , 3
5901 );
5902 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Var_Rent: validate_rent_num return_status :'
5903 || x_return_status
5904 , 3
5905 );
5906
5907 IF (x_return_status = fnd_api.g_ret_sts_error)
5908 THEN
5909 fnd_message.set_name ('PN'
5910 , 'PN_DUP_LEASE_NUMBER'
5911 );
5912 fnd_msg_pub.ADD;
5913 RAISE fnd_api.g_exc_error;
5914 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Var_Rent: Variable Rent Num Expected Error :'
5915 || p_upd_var_rent_rec_type.rent_num
5916 , 3
5917 );
5918 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
5919 THEN
5920 fnd_message.set_name ('PN'
5921 , 'PN_DUP_LEASE_NUMBER'
5922 );
5923 fnd_msg_pub.ADD;
5924 RAISE fnd_api.g_exc_unexpected_error;
5925 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Var_Rent: Variable Rent Num Un-Expected Error :'
5926 || p_upd_var_rent_rec_type.rent_num
5927 , 3
5928 );
5929 ELSE
5930 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Var_Rent: Variable Rent Id Success :'
5931 || p_upd_var_rent_rec_type.var_rent_id
5932 , 3
5933 );
5934 END IF;
5935 END IF;
5936 END upd_val_var_rent;
5937
5938 --------------------------------------------------------------------------------
5939 -- NAME : VALIDATE_VAR_RENT
5940 -- DESCRIPTION : Private procedure to validate Variable Rent Details
5941 -- PURPOSE :
5942 -- INVOKED FROM :
5943 -- ARGUMENTS : P_VAR_RENT_REC IN Parameter
5944 -- : X_RETURN_STATUS OUT Parameter
5945 -- REFERENCE :
5946 -- HISTORY :
5947 --
5948 -- 20-sep-2010 vkatta o Created
5949 --------------------------------------------------------------------------------
5950 PROCEDURE validate_var_rent (
5951 p_var_rent_rec IN OUT NOCOPY var_rent_rec_type
5952 , x_return_status OUT NOCOPY VARCHAR2
5953 )
5954 IS
5955 l_return_status VARCHAR2 (1);
5956 l_ret_status VARCHAR2 (1);
5957 l_return_msg VARCHAR2 (10);
5958 l_lease_commencement_date pn_lease_details_all.lease_commencement_date%TYPE;
5959 l_lease_termination_date pn_lease_details_all.lease_termination_date%TYPE;
5960 l_purpose_code pn_var_templates_all.purpose_code%TYPE;
5961 l_type_code pn_var_templates_all.type_code%TYPE;
5962 l_cumulative_vol pn_var_templates_all.cumulative_vol%TYPE;
5963 l_invoice_on pn_var_templates_all.invoice_on%TYPE;
5964 l_negative_rent pn_var_templates_all.negative_rent%TYPE;
5965 l_term_template_id pn_var_templates_all.term_template_id%TYPE;
5966 l_abatement_amount pn_var_templates_all.abatement_amount%TYPE;
5967 l_proration_rule pn_var_templates_all.proration_rule%TYPE;
5968 l_vrg_reptg_freq_code pn_var_templates_all.vrg_reptg_freq_code%TYPE;
5969 l_period_freq_code pn_var_templates_all.period_freq_code%TYPE;
5970 l_use_gl_calendar pn_var_templates_all.use_gl_calendar%TYPE;
5971 l_year_start_date pn_var_templates_all.year_start_date%TYPE;
5972 l_gl_period_set_name pn_var_templates_all.gl_period_set_name%TYPE;
5973 l_period_type pn_var_templates_all.period_type%TYPE;
5974 l_reptg_freq_code pn_var_templates_all.reptg_freq_code%TYPE;
5975 l_reptg_day_of_month pn_var_templates_all.reptg_day_of_month%TYPE;
5976 l_reptg_days_after pn_var_templates_all.reptg_days_after%TYPE;
5977 l_invg_freq_code pn_var_templates_all.invg_freq_code%TYPE;
5978 l_invg_spread_code pn_var_templates_all.invg_spread_code%TYPE;
5979 l_invg_day_of_month pn_var_templates_all.invg_day_of_month%TYPE;
5980 l_invg_days_after pn_var_templates_all.invg_days_after%TYPE;
5981 l_comments pn_var_templates_all.comments%TYPE;
5982 l_auto_var_rent_id pn_var_rents_all.var_rent_id%TYPE;
5983 l_auto_var_rent_num pn_system_setup_options.auto_var_rent_num_gen%TYPE;
5984
5985 l_proration_days NUMBER;
5986 l_location_id NUMBER;
5987 BEGIN
5988 --------------------------------------------------------------------------------
5989 --Validate Lease details
5990 --------------------------------------------------------------------------------
5991 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Inside Procedure'
5992 , 3
5993 );
5994 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: p_var_rent_rec.lease_id'
5995 || p_var_rent_rec.lease_id
5996 , 3
5997 );
5998 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: p_var_rent_rec.lease_name '
5999 || p_var_rent_rec.lease_name
6000 , 3
6001 );
6002 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: p_var_rent_rec.lease_num'
6003 || p_var_rent_rec.lease_num
6004 , 3
6005 );
6006
6007 IF ( p_var_rent_rec.lease_id IS NULL
6008 AND p_var_rent_rec.lease_num IS NULL
6009 AND p_var_rent_rec.lease_name IS NULL)
6010 THEN
6011 pn_varen_util.pvt_debug
6012 ('PN_VAREN_PVT: Validate_Var_Rent: Please pass the lease details to create Variable Rent'
6013 , 3
6014 );
6015 fnd_message.set_name ('PN'
6016 , 'PN_VAR_NVALID_LEASE'
6017 );
6018 fnd_msg_pub.ADD;
6019 RAISE fnd_api.g_exc_error;
6020 ELSE
6021 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Lease Validation '
6022 , 3
6023 );
6024 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Start of pn_varen_util.validate_lease procedure'
6025 , 3
6026 );
6027 pn_varen_util.validate_lease (p_lease_name => p_var_rent_rec.lease_name
6028 , p_lease_num => p_var_rent_rec.lease_num
6029 , x_lease_id => p_var_rent_rec.lease_id
6030 , x_proration_days => l_proration_days--p_var_rent_rec.proration_days
6031 , x_location_id => l_location_id--p_var_rent_rec.location_id
6032 , p_location_code => p_var_rent_rec.location_code
6033 , x_lease_commencement_date => l_lease_commencement_date
6034 , x_lease_termination_date => l_lease_termination_date
6035 , p_org_id => g_org_id
6036 , x_return_status => l_return_status
6037 );
6038 pn_varen_util.pvt_debug('PN_VAREN_PVT: Validate_Var_Rent: End of pn_varen_util.validate_lease procedure status :'||l_return_status,3);
6039 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Lease Id Validation Output :'|| p_var_rent_rec.lease_id,3);
6040
6041 IF (l_return_status = fnd_api.g_ret_sts_error)
6042 THEN
6043 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: p_var_rent_rec.lease_id Error: '
6044 || p_var_rent_rec.lease_id
6045 , 3
6046 );
6047 fnd_message.set_name ('PN'
6048 , 'PN_VAR_NVALID_LEASE'
6049 );
6050 fnd_msg_pub.ADD;
6051 RAISE fnd_api.g_exc_error;
6052
6053 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6054 THEN
6055 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: p_var_rent_rec.lease_id Unexpected Error: '
6056 || p_var_rent_rec.lease_id
6057 , 3
6058 );
6059 fnd_message.set_name ('PN'
6060 , 'PN_VAR_NVALID_LEASE'
6061 );
6062 fnd_msg_pub.ADD;
6063 RAISE fnd_api.g_exc_unexpected_error;
6064
6065 ELSE
6066 l_return_status := fnd_api.g_ret_sts_success;
6067 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: p_var_rent_rec.lease_id Success: '
6068 || p_var_rent_rec.lease_id
6069 , 3
6070 );
6071 END IF;
6072 END IF;
6073 IF(p_var_rent_rec.proration_days IS NULL OR p_var_rent_rec.proration_days = pn_varen_util.g_pn_miss_num) THEN
6074 p_var_rent_rec.proration_days := l_proration_days;
6075 END IF;
6076 IF( (p_var_rent_rec.location_id IS NULL OR p_var_rent_rec.location_id = pn_varen_util.g_pn_miss_num)
6077 AND(p_var_rent_rec.location_code IS NULL OR p_var_rent_rec.location_code = pn_varen_util.g_pn_miss_char)
6078 ) THEN
6079 p_var_rent_rec.location_id := l_location_id;
6080 END IF;
6081
6082 --------------------------------------------------------------------------------
6083 --Validate variable rent number or id
6084 --------------------------------------------------------------------------------
6085 IF ( p_var_rent_rec.rent_num IS NOT NULL
6086 AND p_var_rent_rec.rent_num <> pn_varen_util.g_pn_miss_char
6087 AND l_return_status = fnd_api.g_ret_sts_success
6088 )
6089 THEN
6090 l_return_status := NULL;
6091
6092 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling pn_varen_util.validate_rent_num '
6093 , 3
6094 );
6095 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Parameter pn_varen_util.validate_rent_num :'
6096 || NVL (p_var_rent_rec.rent_num
6097 , 'NO RENT NUM'
6098 )
6099 , 3
6100 );
6101
6102 pn_varen_util.validate_rent_num (x_rent_num => p_var_rent_rec.rent_num
6103 , x_var_rent_id => l_var_rent_id
6104 , p_lease_id => p_var_rent_rec.lease_id
6105 , p_org_id => g_org_id
6106 , x_return_status => l_return_status
6107 );
6108
6109 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Variable Rent Validation Output :'
6110 || l_var_rent_id
6111 , 3
6112 );
6113 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: validate_rent_num return_status :'
6114 || l_return_status
6115 , 3
6116 );
6117
6118 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
6119 fnd_message.set_name ('PN'
6120 , 'PN_DUP_LEASE_NUMBER'
6121 );
6122 fnd_msg_pub.ADD;
6123 RAISE fnd_api.g_exc_error;
6124 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
6125 fnd_message.set_name ('PN'
6126 , 'PN_DUP_LEASE_NUMBER'
6127 );
6128 fnd_msg_pub.ADD;
6129 RAISE fnd_api.g_exc_unexpected_error;
6130 ELSE
6131 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Variable Rent Id Success :'
6132 || l_var_rent_id
6133 , 3
6134 );
6135 END IF;
6136 ELSIF ( p_var_rent_rec.rent_num IS NULL
6137 OR p_var_rent_rec.rent_num = pn_varen_util.g_pn_miss_num)
6138 THEN
6139 p_var_rent_rec.rent_num := NULL;
6140
6141 --check the system profile option
6142 SELECT auto_var_rent_num_gen
6143 INTO l_auto_var_rent_num
6144 FROM pn_system_setup_options
6145 WHERE org_id = g_org_id;
6146
6147 IF (l_auto_var_rent_num = 'Y')
6148 THEN
6149 --both rent num and rent_id would be sequence value
6150 pn_varen_util.pvt_debug
6151 ( 'PN_VAREN_PVT: Validate_Var_Rent: Variable Rent Number generation is set as Yes'
6152 || l_auto_var_rent_num
6153 , 3
6154 );
6155 x_return_status := fnd_api.g_ret_sts_success;
6156 ELSE
6157 fnd_message.set_name ('PN'
6158 , 'PN_VAR_RENT_NUM_NULL'
6159 );
6160 fnd_msg_pub.ADD;
6161 RAISE fnd_api.g_exc_error;
6162 pn_varen_util.pvt_debug
6163 ('PN_VAREN_PVT: Validate_Var_Rent: VRA Number is Null and Automatic Number Generation for Variable Rent is set to No.'
6164 , 3
6165 );
6166 x_return_status := fnd_api.g_ret_sts_error;
6167 END IF;
6168 END IF;
6169
6170 --------------------------------------------------------------------------------------
6171 -- If Variable Rent Num already exists then no need to call the rest of the validations
6172 --------------------------------------------------------------------------------------
6173 IF (l_return_status <> fnd_api.g_ret_sts_error)
6174 THEN
6175 pn_varen_util.pvt_debug
6176 ('PN_VAREN_PVT: Validate_Var_Rent: If Variable Rent Num doesn''t exists in the system, calling the rest of the validations'
6177 , 3
6178 );
6179 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Start of Variable Rent Validations'
6180 , 3
6181 );
6182 --Variable Rent : Commencement date validation
6183 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Agreement Template validation'
6184 , 3
6185 );
6186
6187 ---------------------------------
6188 --Agreement Template validation
6189 ---------------------------------
6190 -- IF ( ( p_var_rent_rec.agreement_template_name IS NOT NULL and p_var_rent_rec.agreement_template_name <> pn_varen_util.g_pn_miss_char)
6191 -- OR ( p_var_rent_rec.agreement_template_id IS NOT NULL and p_var_rent_rec.agreement_template_id <> pn_varen_util.g_pn_miss_num)
6192 -- )
6193 -- THEN
6194 IF ( p_var_rent_rec.agreement_template_name IS NOT NULL
6195 OR p_var_rent_rec.agreement_template_id IS NOT NULL)
6196 THEN
6197 pn_varen_util.validate_agreement_temp (x_agreement_template_id => p_var_rent_rec.agreement_template_id
6198 , x_agreement_template => p_var_rent_rec.agreement_template_name
6199 , x_purpose_code => l_purpose_code
6200 , x_type_code => l_type_code
6201 , x_cumulative_vol => l_cumulative_vol
6202 , x_invoice_on => l_invoice_on
6203 , x_negative_rent => l_negative_rent
6204 , x_term_template_id => l_term_template_id
6205 , x_abatement_amount => l_abatement_amount
6206 , x_proration_rule => l_proration_rule
6207 , x_vrg_reptg_freq_code => l_vrg_reptg_freq_code
6208 , x_period_freq_code => l_period_freq_code
6209 , x_use_gl_calendar => l_use_gl_calendar
6210 , x_year_start_date => l_year_start_date
6211 , x_gl_period_set_name => l_gl_period_set_name
6212 , x_period_type => l_period_type
6213 , x_reptg_freq_code => l_reptg_freq_code
6214 , x_reptg_day_of_month => l_reptg_day_of_month
6215 , x_reptg_days_after => l_reptg_days_after
6216 , x_invg_freq_code => l_invg_freq_code
6217 , x_invg_spread_code => l_invg_spread_code
6218 , x_invg_day_of_month => l_invg_day_of_month
6219 , x_invg_days_after => l_invg_days_after
6220 , x_comments => l_comments
6221 , p_org_id => g_org_id
6222 , x_return_status => l_return_status
6223 );
6224 ELSE
6225 NULL;
6226 END IF;
6227
6228 --------------------------------------------------------------------------------
6229 --Commencement date validation
6230 --------------------------------------------------------------------------------
6231
6232
6233
6234 IF ( p_var_rent_rec.commencement_date IS NOT NULL
6235 AND p_var_rent_rec.commencement_date >= l_lease_commencement_date
6236 AND p_var_rent_rec.commencement_date <= l_lease_termination_date
6237 AND p_var_rent_rec.commencement_date <= NVL (p_var_rent_rec.termination_date,l_lease_termination_date)
6238 )
6239 THEN
6240
6241 l_return_status := fnd_api.g_ret_sts_success;
6242 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Commencement date validation Success :'
6243 || p_var_rent_rec.commencement_date
6244 , 3
6245 );
6246 ELSIF (p_var_rent_rec.commencement_date IS NULL AND l_lease_commencement_date IS NOT NULL)
6247 THEN
6248 p_var_rent_rec.commencement_date :=
6249 NVL (p_var_rent_rec.commencement_date
6250 , l_lease_commencement_date
6251 );
6252 l_return_status := fnd_api.g_ret_sts_success;
6253 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: ELSEIF:Commencement date validation Success :'
6254 || p_var_rent_rec.commencement_date
6255 , 3
6256 );
6257 ELSE
6258 l_return_status := fnd_api.g_ret_sts_error;
6259 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: ELSE: Lease Commencement date validation Failed :'
6260 || l_lease_commencement_date
6261 , 3
6262 );
6263 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
6264 fnd_message.set_token('ERR_MSG', 'Lease Commencement Date is NULL');
6265 fnd_msg_pub.ADD;
6266 RAISE fnd_api.g_exc_error;
6267 END IF;
6268
6269 --------------------------------------------------------------------------------
6270 --Termination date validation
6271 --------------------------------------------------------------------------------
6272 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Termination Dates validation'
6273 , 3
6274 );
6275
6276 IF ( p_var_rent_rec.termination_date IS NOT NULL
6277 AND p_var_rent_rec.termination_date > p_var_rent_rec.commencement_date
6278 AND p_var_rent_rec.termination_date <= l_lease_termination_date
6279 )
6280 THEN
6281 l_return_status := fnd_api.g_ret_sts_success;
6282 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Termination date validation Success :'
6283 || p_var_rent_rec.termination_date
6284 , 3
6285 );
6286 ELSIF (p_var_rent_rec.termination_date IS NULL AND l_lease_termination_date IS NOT NULL) THEN
6287 p_var_rent_rec.termination_date :=NVL (p_var_rent_rec.termination_date,l_lease_termination_date);
6288 l_return_status := fnd_api.g_ret_sts_success;
6289 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Termination date validation Success :'
6290 || p_var_rent_rec.termination_date
6291 , 3
6292 );
6293 ELSE
6294 l_return_status := fnd_api.g_ret_sts_error;
6295 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Lease Termination date validation Failed :'
6296 || l_lease_termination_date
6297 , 3
6298 );
6299 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Commencement date validation Failed :'
6300 || p_var_rent_rec.termination_date
6301 , 3
6302 );
6303 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
6304 fnd_message.set_token('ERR_MSG', 'Lease Termination Date is NULL');
6305 fnd_msg_pub.ADD;
6306 RAISE fnd_api.g_exc_error;
6307 END IF;
6308
6309 --------------------------------------------------------------------------------
6310 --Location details validation
6311 --------------------------------------------------------------------------------
6312 IF ( p_var_rent_rec.location_id IS NOT NULL
6313 OR p_var_rent_rec.location_code IS NOT NULL)
6314 THEN
6315 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Calling Validate Location :'
6316 || p_var_rent_rec.location_id||'-'||p_var_rent_rec.location_code
6317 , 3
6318 );
6319 pn_varen_util.validate_location (p_lease_id => p_var_rent_rec.lease_id
6320 , x_location_id => p_var_rent_rec.location_id
6321 , x_location_code => p_var_rent_rec.location_code
6322 , x_return_status => l_return_status
6323 );
6324 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Location ID Output :'
6325 || p_var_rent_rec.location_id
6326 , 3
6327 );
6328
6329 IF (l_return_status = fnd_api.g_ret_sts_error)
6330 THEN
6331 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
6332 fnd_message.set_token('ERR_MSG', 'Invalid Location Code/ID,Please Provide Valid Location Code/ID');
6333 fnd_msg_pub.ADD;
6334 RAISE fnd_api.g_exc_error;
6335 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6336 THEN
6337 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
6338 fnd_message.set_token('ERR_MSG', 'Invalid Location Code/ID,Please Provide Valid Location Code/ID:Unexpected Error');
6339 fnd_msg_pub.ADD;
6340 RAISE fnd_api.g_exc_unexpected_error;
6341 ELSE
6342 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Location ID Validation Success :'
6343 || p_var_rent_rec.location_id
6344 , 3
6345 );
6346 -- RAISE fnd_api.g_exc_unexpected_error;
6347 END IF;
6348 END IF;
6349
6350 --------------------------------------------------------------------------------
6351 --Purpose code validation
6352 --------------------------------------------------------------------------------
6353 IF ( p_var_rent_rec.purpose_code IS NOT NULL
6354 OR p_var_rent_rec.purpose_code_meaning IS NOT NULL)
6355 THEN
6356 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Payment Purpose Validation'
6357 , 3
6358 );
6359 pn_varen_util.validate_lookups (p_lookup_type => g_payment_purpose
6360 , x_lookup_meaning => p_var_rent_rec.purpose_code_meaning
6361 , x_lookup_code => p_var_rent_rec.purpose_code
6362 , x_return_status => l_return_status
6363 );
6364 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Payment Purpose Output Code :'
6365 || p_var_rent_rec.purpose_code
6366 , 3
6367 );
6368
6369 IF (l_return_status = fnd_api.g_ret_sts_error)
6370 THEN
6371 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Payment Purpose Meaning Expected Error :'
6372 || p_var_rent_rec.purpose_code_meaning
6373 , 3
6374 );
6375 fnd_message.set_name ('PN'
6376 , 'PN_VAR_PUR_CODE'
6377 );
6378 fnd_message.set_token ('PURPOSE_CODE_MEANING'
6379 , p_var_rent_rec.purpose_code_meaning
6380 || '/'
6381 || p_var_rent_rec.purpose_code
6382 );
6383 fnd_msg_pub.ADD;
6384 RAISE fnd_api.g_exc_error;
6385
6386 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6387 THEN
6388 pn_varen_util.pvt_debug
6389 ( 'PN_VAREN_PVT: Validate_Var_Rent: Payment Purpose Meaning Un-Expected Error :'
6390 || p_var_rent_rec.purpose_code_meaning
6391 , 3
6392 );
6393 fnd_message.set_name ('PN'
6394 , 'PN_VAR_PUR_CODE'
6395 );
6396 fnd_message.set_token ('PURPOSE_CODE_MEANING'
6397 , p_var_rent_rec.purpose_code_meaning
6398 || '/'
6399 || p_var_rent_rec.purpose_code
6400 );
6401 fnd_msg_pub.ADD;
6402 RAISE fnd_api.g_exc_unexpected_error;
6403
6404 ELSE
6405 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Payment Purpose Code Success :'
6406 || p_var_rent_rec.purpose_code
6407 , 3
6408 );
6409 END IF;
6410 ELSIF (l_purpose_code IS NOT NULL)
6411 THEN
6412 p_var_rent_rec.purpose_code := l_purpose_code;
6413 ELSE
6414 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Purpose_code is null'
6415 , 3
6416 );
6417 fnd_message.set_name ('PN'
6418 , 'PN_VAR_PUR_CODE'
6419 );
6420 fnd_message.set_token ('PURPOSE_CODE_MEANING'
6421 , p_var_rent_rec.purpose_code_meaning
6422 || '/'
6423 || p_var_rent_rec.purpose_code
6424 );
6425 fnd_msg_pub.ADD;
6426 RAISE fnd_api.g_exc_error;
6427 END IF;
6428
6429 --------------------------------------------------------------------------------
6430 --Volume Type validation
6431 --------------------------------------------------------------------------------
6432 IF ( p_var_rent_rec.type_code IS NOT NULL
6433 OR p_var_rent_rec.type_meaning IS NOT NULL)
6434 THEN
6435 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Rent Type Validation'
6436 , 3
6437 );
6438 pn_varen_util.validate_lookups (p_lookup_type => g_rent_type
6439 , x_lookup_meaning => p_var_rent_rec.type_meaning
6440 , x_lookup_code => p_var_rent_rec.type_code
6441 , x_return_status => l_return_status
6442 );
6443 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Rent Type Meaning Validation Output :'
6444 || p_var_rent_rec.type_meaning
6445 , 3
6446 );
6447 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Rent Type Code Validation Output :'
6448 || p_var_rent_rec.type_code
6449 , 3
6450 );
6451
6452 IF (l_return_status = fnd_api.g_ret_sts_error)
6453 THEN
6454 fnd_message.set_name ('PN'
6455 , 'PN_VAR_VOL_TY'
6456 );
6457 fnd_message.set_token ('VOLUME_TYPE_CODE_MEANING'
6458 , p_var_rent_rec.type_meaning
6459 || '/'
6460 || p_var_rent_rec.type_code
6461 );
6462 fnd_msg_pub.ADD;
6463 RAISE fnd_api.g_exc_error;
6464 pn_varen_util.pvt_debug
6465 ( 'PN_VAREN_PVT: Validate_Var_Rent: Rent Type Meaning Validation Expected Error :'
6466 || p_var_rent_rec.type_meaning
6467 , 3
6468 );
6469 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6470 THEN
6471 fnd_message.set_name ('PN'
6472 , 'PN_VAR_VOL_TY'
6473 );
6474 fnd_message.set_token ('VOLUME_TYPE_CODE_MEANING'
6475 , p_var_rent_rec.type_meaning
6476 || '/'
6477 || p_var_rent_rec.type_code
6478 );
6479 fnd_msg_pub.ADD;
6480 RAISE fnd_api.g_exc_unexpected_error;
6481 pn_varen_util.pvt_debug
6482 ( 'PN_VAREN_PVT: Validate_Var_Rent: Rent Type Meaning Validation Un-Expected Error :'
6483 || p_var_rent_rec.type_meaning
6484 , 3
6485 );
6486 ELSE
6487 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Rent Type Code Success :'
6488 || p_var_rent_rec.type_code
6489 , 3
6490 );
6491 END IF;
6492 ELSIF (l_type_code IS NOT NULL)
6493 THEN
6494 p_var_rent_rec.type_code := l_type_code;
6495 ELSE
6496 pn_varen_util.pvt_debug ('PN_VAREN_PVT: TYPE_CODE is NULL'
6497 , 3
6498 );
6499 fnd_message.set_name ('PN'
6500 , 'PN_VAR_VOL_TY'
6501 );
6502 fnd_message.set_token ('VOLUME_TYPE_CODE_MEANING'
6503 , p_var_rent_rec.type_meaning
6504 || '/'
6505 || p_var_rent_rec.type_code
6506 );
6507 fnd_msg_pub.ADD;
6508 RAISE fnd_api.g_exc_error;
6509 END IF;
6510
6511 --------------------------------------------------------------------------------
6512 --Abstracted by user validation
6513 --------------------------------------------------------------------------------
6514 IF ( p_var_rent_rec.abstracted_by_user_id IS NOT NULL
6515 OR p_var_rent_rec.abstracted_by_user IS NOT NULL)
6516 THEN
6517 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling User Validation'
6518 , 3
6519 );
6520 pn_varen_util.validate_abst_user (x_user_name => p_var_rent_rec.abstracted_by_user
6521 , x_user_id => p_var_rent_rec.abstracted_by_user_id
6522 , x_return_status => l_return_status
6523 );
6524 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: User Validation user id :'
6525 || p_var_rent_rec.abstracted_by_user_id
6526 , 3
6527 );
6528
6529 IF (l_return_status = fnd_api.g_ret_sts_error)
6530 THEN
6531 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: User Validation User Name Expected Error:'
6532 || p_var_rent_rec.abstracted_by_user
6533 , 3
6534 );
6535 fnd_message.set_name ('PN'
6536 , 'PN_VAR_ABS_USER'
6537 );
6538 fnd_message.set_token ('ABSTRACTED_BY_USER_ID'
6539 , p_var_rent_rec.abstracted_by_user
6540 || '/'
6541 || p_var_rent_rec.abstracted_by_user_id
6542 );
6543 fnd_msg_pub.ADD;
6544 RAISE fnd_api.g_exc_error;
6545
6546 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6547 THEN
6548 pn_varen_util.pvt_debug
6549 ( 'PN_VAREN_PVT: Validate_Var_Rent: User Validation user Name Un-Expected Error:'
6550 || p_var_rent_rec.abstracted_by_user
6551 , 3
6552 );
6553 fnd_message.set_name ('PN'
6554 , 'PN_VAR_ABS_USER'
6555 );
6556 fnd_message.set_token ('ABSTRACTED_BY_USER_ID'
6557 , p_var_rent_rec.abstracted_by_user
6558 || '/'
6559 || p_var_rent_rec.abstracted_by_user_id
6560 );
6561 fnd_msg_pub.ADD;
6562 RAISE fnd_api.g_exc_unexpected_error;
6563
6564 ELSE
6565 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: User Validation user id Success:'
6566 || p_var_rent_rec.abstracted_by_user_id
6567 , 3
6568 );
6569 END IF;
6570 ELSE
6571 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
6572 fnd_message.set_token ('API_NAME', 'PN_VAR_RENT_PVT');
6573 fnd_message.set_token ('NULL_PARAM', 'Abstracted By is NULL.Please provide the valid value');
6574 fnd_msg_pub.ADD;
6575 RAISE fnd_api.g_exc_error;
6576 END IF;
6577
6578 --------------------------------------------------------------------------------
6579 --Cumulative Volumen/Method validation
6580 --------------------------------------------------------------------------------
6581 IF ( p_var_rent_rec.cumulative_vol_code IS NOT NULL
6582 OR p_var_rent_rec.cumulative_vol_meaning IS NOT NULL)
6583 THEN
6584 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Cumulative Volume'
6585 , 3
6586 );
6587 pn_varen_util.validate_lookups (p_lookup_type => g_cumulative_vol
6588 , x_lookup_meaning => p_var_rent_rec.cumulative_vol_meaning
6589 , x_lookup_code => p_var_rent_rec.cumulative_vol_code
6590 , x_return_status => l_return_status
6591 );
6592 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Cumulative Volume Code :'
6593 || p_var_rent_rec.cumulative_vol_code
6594 , 3
6595 );
6596
6597 IF (l_return_status = fnd_api.g_ret_sts_error)
6598 THEN
6599 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Cumulative Volume Meaning Expected Error:'
6600 || p_var_rent_rec.cumulative_vol_meaning
6601 , 3
6602 );
6603 fnd_message.set_name ('PN'
6604 , 'PN_VAR_CUMM_VOL'
6605 );
6606 fnd_message.set_token ('CUMULATIVE_VOL_CODE_MEANING'
6607 , p_var_rent_rec.cumulative_vol_meaning
6608 || '/'
6609 || p_var_rent_rec.cumulative_vol_code
6610 );
6611 fnd_msg_pub.ADD;
6612 RAISE fnd_api.g_exc_error;
6613
6614 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6615 THEN
6616 pn_varen_util.pvt_debug
6617 ( 'PN_VAREN_PVT: Validate_Var_Rent: Cumulative Volume Meaning Un-Expected Error:'
6618 || p_var_rent_rec.cumulative_vol_meaning
6619 , 3
6620 );
6621 fnd_message.set_name ('PN'
6622 , 'PN_VAR_CUMM_VOL'
6623 );
6624 fnd_message.set_token ('CUMULATIVE_VOL_CODE_MEANING'
6625 , p_var_rent_rec.cumulative_vol_meaning
6626 || '/'
6627 || p_var_rent_rec.cumulative_vol_code
6628 );
6629 fnd_msg_pub.ADD;
6630 RAISE fnd_api.g_exc_unexpected_error;
6631
6632 ELSE
6633 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Cumulative Volume Code Success:'
6634 || p_var_rent_rec.cumulative_vol_code
6635 , 3
6636 );
6637 END IF;
6638 ELSIF ( p_var_rent_rec.cumulative_vol_code IS NULL
6639 OR p_var_rent_rec.cumulative_vol_meaning IS NULL)
6640 THEN
6641 p_var_rent_rec.cumulative_vol_code := 'C';
6642 p_var_rent_rec.cumulative_vol_meaning := 'Cumulative';
6643 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Cumulative Volume Code Success:'
6644 || p_var_rent_rec.cumulative_vol_code
6645 , 3
6646 );
6647 ELSIF (l_cumulative_vol IS NOT NULL)
6648 THEN
6649 p_var_rent_rec.cumulative_vol_code := l_cumulative_vol;
6650 ELSE
6651 pn_varen_util.pvt_debug ('PN_VAREN_PVT: CUMULATIVE_VOL is NULL'
6652 , 3
6653 );
6654 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
6655 fnd_message.set_token ('API_NAME', 'PN_VAR_RENT_PVT');
6656 fnd_message.set_token ('NULL_PARAM', 'CUMULATIVE_VOL is NULL');
6657 fnd_msg_pub.ADD;
6658 RAISE fnd_api.g_exc_error;
6659 END IF;
6660
6661 --------------------------------------------------------------------------------
6662 --Proration Rule validation or partial year method
6663 --------------------------------------------------------------------------------
6664 IF ( p_var_rent_rec.proration_rule_code IS NOT NULL
6665 OR p_var_rent_rec.proration_rule_meaning IS NOT NULL)
6666 THEN
6667 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Proration Rule / Parial Year Method'
6668 , 3
6669 );
6670 pn_varen_util.validate_lookups (p_lookup_type => g_proration_rule
6671 , x_lookup_meaning => p_var_rent_rec.proration_rule_meaning
6672 , x_lookup_code => p_var_rent_rec.proration_rule_code
6673 , x_return_status => l_return_status
6674 );
6675 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Proration Rule / Parial Year Method Code :'
6676 || p_var_rent_rec.proration_rule_code
6677 , 3
6678 );
6679
6680 IF (l_return_status = fnd_api.g_ret_sts_error)
6681 THEN
6682 fnd_message.set_name ('PN'
6683 , 'PN_VAR_PRO_RUL'
6684 );
6685 fnd_message.set_token ('PRORATION_RULE_CODE_MEANING'
6686 , p_var_rent_rec.proration_rule_meaning
6687 || '/'
6688 || p_var_rent_rec.proration_rule_code
6689 );
6690 fnd_msg_pub.ADD;
6691 RAISE fnd_api.g_exc_error;
6692 pn_varen_util.pvt_debug
6693 ( 'PN_VAREN_PVT: Validate_Var_Rent: Proration Rule / Parial Year Method Meaning Expected Error :'
6694 || p_var_rent_rec.proration_rule_meaning
6695 , 3
6696 );
6697 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6698 THEN
6699 fnd_message.set_name ('PN'
6700 , 'PN_VAR_PRO_RUL'
6701 );
6702 fnd_message.set_token ('PRORATION_RULE_CODE_MEANING'
6703 , p_var_rent_rec.proration_rule_meaning
6704 || '/'
6705 || p_var_rent_rec.proration_rule_code
6706 );
6707 fnd_msg_pub.ADD;
6708 RAISE fnd_api.g_exc_unexpected_error;
6709 pn_varen_util.pvt_debug
6710 ( 'PN_VAREN_PVT: Validate_Var_Rent: Proration Rule / Parial Year Method Meaning Un-Expected Error :'
6711 || p_var_rent_rec.proration_rule_meaning
6712 , 3
6713 );
6714 ELSE
6715 pn_varen_util.pvt_debug
6716 ( 'PN_VAREN_PVT: Validate_Var_Rent: Proration Rule / Parial Year Method Code Success :'
6717 || p_var_rent_rec.proration_rule_code
6718 , 3
6719 );
6720 END IF;
6721 ELSIF ( p_var_rent_rec.proration_rule_code IS NULL
6722 OR p_var_rent_rec.proration_rule_meaning IS NULL)
6723 THEN
6724 p_var_rent_rec.proration_rule_code := 'STD';
6725 p_var_rent_rec.proration_rule_meaning := 'Standard';
6726 pn_varen_util.pvt_debug
6727 ( 'PN_VAREN_PVT: Validate_Var_Rent: Proration Rule / Parial Year Method Code Success :'
6728 || p_var_rent_rec.proration_rule_code
6729 , 3
6730 );
6731 ELSIF (l_proration_rule IS NOT NULL)
6732 THEN
6733 p_var_rent_rec.proration_rule_code := l_proration_rule;
6734 END IF;
6735
6736 --------------------------------------------------------------------------------
6737 --Invoice On validation
6738 --------------------------------------------------------------------------------
6739 IF ( p_var_rent_rec.invoice_on_code IS NOT NULL
6740 OR p_var_rent_rec.invoice_on_meaning IS NOT NULL)
6741 THEN
6742 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Invoice on'
6743 , 3
6744 );
6745 pn_varen_util.validate_lookups (p_lookup_type => g_invoice_on
6746 , x_lookup_meaning => p_var_rent_rec.invoice_on_meaning
6747 , x_lookup_code => p_var_rent_rec.invoice_on_code
6748 , x_return_status => l_return_status
6749 );
6750 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Invoice on Code :'
6751 || p_var_rent_rec.invoice_on_code
6752 , 3
6753 );
6754
6755 IF (l_return_status = fnd_api.g_ret_sts_error)
6756 THEN
6757 fnd_message.set_name ('PN'
6758 , 'PN_VAR_INV_ON'
6759 );
6760 fnd_message.set_token ('INVOICE_ON_CODE_MEANING'
6761 , p_var_rent_rec.invoice_on_meaning
6762 || '/'
6763 || p_var_rent_rec.invoice_on_code
6764 );
6765 fnd_msg_pub.ADD;
6766 RAISE fnd_api.g_exc_error;
6767 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Invoice on Meaning Expected Error :'
6768 || p_var_rent_rec.invoice_on_meaning
6769 , 3
6770 );
6771 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6772 THEN
6773 fnd_message.set_name ('PN'
6774 , 'PN_VAR_INV_ON'
6775 );
6776 fnd_message.set_token ('INVOICE_ON_CODE_MEANING'
6777 , p_var_rent_rec.invoice_on_meaning
6778 || '/'
6779 || p_var_rent_rec.invoice_on_code
6780 );
6781 fnd_msg_pub.ADD;
6782 RAISE fnd_api.g_exc_unexpected_error;
6783 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Invoice on Meaning Un-Expected Error :'
6784 || p_var_rent_rec.invoice_on_meaning
6785 , 3
6786 );
6787 ELSE
6788 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Invoice on Code Success :'
6789 || p_var_rent_rec.invoice_on_code
6790 , 3
6791 );
6792 END IF;
6793 ELSIF ( p_var_rent_rec.invoice_on_code IS NULL
6794 OR p_var_rent_rec.invoice_on_meaning IS NULL)
6795 THEN
6796 p_var_rent_rec.invoice_on_code := 'ACTUAL';
6797 p_var_rent_rec.invoice_on_meaning := 'Actual';
6798 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Invoice on Code Success :'
6799 || p_var_rent_rec.invoice_on_code
6800 , 3
6801 );
6802 ELSIF (l_invoice_on IS NOT NULL)
6803 THEN
6804 p_var_rent_rec.invoice_on_code := l_invoice_on;
6805 ELSE
6806 pn_varen_util.pvt_debug ('PN_VAREN_PVT: INVOICE_ON is NULL'
6807 , 3
6808 );
6809 END IF;
6810
6811 -------------------------------------------------------------------
6812 -- Validating the combination of Proration rule and cumulative vol
6813 -------------------------------------------------------------------
6814 IF ( ( p_var_rent_rec.proration_rule_code IS NOT NULL
6815 OR p_var_rent_rec.cumulative_vol_code IS NOT NULL)
6816 OR ( p_var_rent_rec.proration_rule_meaning IS NOT NULL
6817 OR p_var_rent_rec.cumulative_vol_meaning IS NOT NULL
6818 )
6819 )
6820 THEN
6821 pn_varen_util.check_prora_cum_comb (p_proration_rule_code => p_var_rent_rec.proration_rule_code
6822 , p_cumulative_vol_code => p_var_rent_rec.cumulative_vol_code
6823 , x_return_status => l_return_status
6824 );
6825 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: check_prora_cum_comb - L_RETURN_STATUS : '
6826 || l_return_status
6827 , 3
6828 );
6829
6830 IF l_return_status = 'E'
6831 THEN
6832 fnd_message.set_name ('PN'
6833 , 'PN_VAR_CALC_PRO_CODE'
6834 );
6835 RAISE fnd_api.g_exc_error;
6836 ELSIF l_return_status = 'U'
6837 THEN
6838 fnd_message.set_name ('PN'
6839 , 'PN_VAR_CALC_PRO_CODE'
6840 );
6841 RAISE fnd_api.g_exc_unexpected_error;
6842 END IF;
6843 END IF;
6844
6845 -------------------------------------------------------------------
6846 -- Validating the combination of Proration rule and Invoice code
6847 -------------------------------------------------------------------
6848 IF ( ( p_var_rent_rec.proration_rule_code IS NOT NULL
6849 OR p_var_rent_rec.invoice_on_code IS NOT NULL)
6850 OR ( p_var_rent_rec.proration_rule_meaning IS NOT NULL
6851 OR p_var_rent_rec.invoice_on_meaning IS NOT NULL)
6852 )
6853 THEN
6854 pn_varen_util.check_prora_invon_comb (p_proration_rule_code => p_var_rent_rec.proration_rule_code
6855 , p_invoice_on_code => p_var_rent_rec.invoice_on_code
6856 , x_return_status => l_return_status
6857 );
6858 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: check_prora_invon_comb - L_RETURN_STATUS : '
6859 || l_return_status
6860 , 3
6861 );
6862
6863 IF (l_return_status = fnd_api.g_ret_sts_error)
6864 THEN
6865 fnd_message.set_name ('PN'
6866 , 'PN_VAR_FOR_PRO_CODE'
6867 );
6868 RAISE fnd_api.g_exc_error;
6869 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6870 THEN
6871 fnd_message.set_name ('PN'
6872 , 'PN_VAR_FOR_PRO_CODE'
6873 );
6874 RAISE fnd_api.g_exc_unexpected_error;
6875 END IF;
6876 END IF;
6877
6878 --------------------------------------------------------------------------------
6879 --Negative Rent Validation
6880 --------------------------------------------------------------------------------
6881 IF ( p_var_rent_rec.negative_rent_code IS NOT NULL
6882 OR p_var_rent_rec.negative_rent_meaning IS NOT NULL)
6883 THEN
6884 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Negative Rent'
6885 , 3
6886 );
6887 pn_varen_util.validate_lookups (p_lookup_type => g_negative_rent
6888 , x_lookup_meaning => p_var_rent_rec.negative_rent_meaning
6889 , x_lookup_code => p_var_rent_rec.negative_rent_code
6890 , x_return_status => l_return_status
6891 );
6892 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Negative Rent :'
6893 || p_var_rent_rec.negative_rent_code
6894 , 3
6895 );
6896
6897 IF (l_return_status = fnd_api.g_ret_sts_error)
6898 THEN
6899 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Negative Rent Meaning Expected Error :'
6900 || p_var_rent_rec.negative_rent_meaning
6901 , 3
6902 );
6903 fnd_message.set_name ('PN'
6904 , 'PN_VAR_NEG_REN'
6905 );
6906 fnd_message.set_token ('NEGATIVE_RENT_CODE_MEANING'
6907 , p_var_rent_rec.negative_rent_meaning
6908 || '/'
6909 || p_var_rent_rec.negative_rent_code
6910 );
6911 fnd_msg_pub.ADD;
6912 RAISE fnd_api.g_exc_error;
6913
6914 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6915 THEN
6916 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Negative Rent Meaning Un-Expected Error :'
6917 || p_var_rent_rec.negative_rent_meaning
6918 , 3
6919 );
6920 fnd_message.set_name ('PN'
6921 , 'PN_VAR_NEG_REN'
6922 );
6923 fnd_message.set_token ('NEGATIVE_RENT_CODE_MEANING'
6924 , p_var_rent_rec.negative_rent_meaning
6925 || '/'
6926 || p_var_rent_rec.negative_rent_code
6927 );
6928 fnd_msg_pub.ADD;
6929 RAISE fnd_api.g_exc_unexpected_error;
6930
6931 ELSE
6932 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Negative Rent Code Success :'
6933 || p_var_rent_rec.negative_rent_code
6934 , 3
6935 );
6936 END IF;
6937 ELSIF ( p_var_rent_rec.negative_rent_code IS NULL
6938 OR p_var_rent_rec.negative_rent_meaning IS NULL)
6939 THEN
6940 p_var_rent_rec.negative_rent_code := 'IGNORE';
6941 p_var_rent_rec.negative_rent_meaning := 'Ignore';
6942 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Negative Rent Code Success :'
6943 || p_var_rent_rec.negative_rent_code
6944 , 3
6945 );
6946 ELSIF (l_negative_rent IS NOT NULL)
6947 THEN
6948 p_var_rent_rec.negative_rent_code := l_negative_rent;
6949 END IF;
6950
6951 --------------------------------------------------------------------------------
6952 --Term templates validation
6953 --------------------------------------------------------------------------------
6954 IF ( p_var_rent_rec.term_template_id IS NOT NULL
6955 OR p_var_rent_rec.term_template_name IS NOT NULL)
6956 THEN
6957 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Term Template'
6958 , 3
6959 );
6960 pn_varen_util.validate_term_template (p_org_id => g_org_id
6961 , x_term_template_id => p_var_rent_rec.term_template_id
6962 , x_term_template_name => p_var_rent_rec.term_template_name
6963 , x_return_status => l_return_status
6964 );
6965 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Term Template Id :'
6966 || p_var_rent_rec.term_template_id
6967 , 3
6968 );
6969
6970 IF (l_return_status = fnd_api.g_ret_sts_error)
6971 THEN
6972 fnd_message.set_name ('PN'
6973 , 'PN_VAR_TRM_TEM'
6974 );
6975 fnd_message.set_token ('TERM_TEMPLATE_ID_NAME'
6976 , p_var_rent_rec.term_template_id
6977 || '/'
6978 || p_var_rent_rec.term_template_name
6979 );
6980 fnd_msg_pub.ADD;
6981 RAISE fnd_api.g_exc_error;
6982
6983 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6984 THEN
6985 fnd_message.set_name ('PN'
6986 , 'PN_VAR_TRM_TEM'
6987 );
6988 fnd_message.set_token ('TERM_TEMPLATE_ID_NAME'
6989 , p_var_rent_rec.term_template_id
6990 || '/'
6991 || p_var_rent_rec.term_template_name
6992 );
6993 fnd_msg_pub.ADD;
6994 RAISE fnd_api.g_exc_unexpected_error;
6995
6996 ELSE
6997 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Term Template Id Success :'
6998 || p_var_rent_rec.term_template_id
6999 , 3
7000 );
7001 END IF;
7002 ELSIF (l_term_template_id IS NOT NULL)
7003 THEN
7004 p_var_rent_rec.term_template_id := l_term_template_id;
7005 ELSE
7006 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Term Template Id IS NULL:',3);
7007 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
7008 fnd_message.set_token('ERR_MSG', 'Term Template ID has not been mentioned in either Variable Rent/Lease');
7009 fnd_msg_pub.ADD;
7010 RAISE fnd_api.g_exc_error;
7011 END IF;
7012
7013 --------------------------------------------------------------------------------
7014 --Currency Validation
7015 --------------------------------------------------------------------------------
7016 IF (p_var_rent_rec.currency_code IS NOT NULL)
7017 THEN
7018 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Currency'
7019 , 3
7020 );
7021 pn_varen_util.validate_currency (p_currency_code => p_var_rent_rec.currency_code
7022 , x_return_status => l_return_status
7023 );
7024
7025 IF (l_return_status = fnd_api.g_ret_sts_error)
7026 THEN
7027 fnd_message.set_name ('PN'
7028 , 'PN_VAR_CUR_CODE'
7029 );
7030 fnd_message.set_token ('CURRENCY_CODE'
7031 , p_var_rent_rec.currency_code
7032 );
7033 fnd_msg_pub.ADD;
7034 RAISE fnd_api.g_exc_error;
7035
7036 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
7037 THEN
7038 fnd_message.set_name ('PN'
7039 , 'PN_VAR_CUR_CODE'
7040 );
7041 fnd_message.set_token ('CURRENCY_CODE'
7042 , p_var_rent_rec.currency_code
7043 );
7044 fnd_msg_pub.ADD;
7045 RAISE fnd_api.g_exc_unexpected_error;
7046 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Currency Code Un-Expected Error :'
7047 || p_var_rent_rec.currency_code
7048 , 3
7049 );
7050 ELSE
7051 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Currency Code Success :'
7052 || p_var_rent_rec.currency_code
7053 , 3
7054 );
7055 END IF;
7056 ELSE
7057 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Var_Rent: Currency Code IS NULL:',3);
7058 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
7059 fnd_message.set_token('ERR_MSG', 'Please provide Currency Code for the VAR Rent');
7060 fnd_msg_pub.ADD;
7061 RAISE fnd_api.g_exc_error;
7062 END IF;
7063
7064 pn_varen_util.pvt_debug ('PN_VAREN_PVT: End - Variable Rent validations'
7065 , 3
7066 );
7067 END IF;
7068
7069 --------------------------------------------------------------------------------
7070 --Variable Rent Attributes Validation
7071 --------------------------------------------------------------------------------
7072 -- Below code commented by Vivek 0n 13-Dec-2010
7073
7074 IF (get_attribute_status('PN_VAR_RENTS') > 0) THEN
7075 IF NOT ((p_var_rent_rec.attribute_category = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute_category IS NULL)
7076 AND (p_var_rent_rec.attribute1 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute1 IS NULL)
7077 AND (p_var_rent_rec.attribute2 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute2 IS NULL)
7078 AND (p_var_rent_rec.attribute3 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute3 IS NULL)
7079 AND (p_var_rent_rec.attribute4 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute4 IS NULL)
7080 AND (p_var_rent_rec.attribute5 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute5 IS NULL)
7081 AND (p_var_rent_rec.attribute6 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute6 IS NULL)
7082 AND (p_var_rent_rec.attribute7 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute7 IS NULL)
7083 AND (p_var_rent_rec.attribute8 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute8 IS NULL)
7084 AND (p_var_rent_rec.attribute9 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute9 IS NULL)
7085 AND (p_var_rent_rec.attribute10 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute10 IS NULL)
7086 AND (p_var_rent_rec.attribute11 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute11 IS NULL)
7087 AND (p_var_rent_rec.attribute12 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute12 IS NULL)
7088 AND (p_var_rent_rec.attribute13 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute13 IS NULL)
7089 AND (p_var_rent_rec.attribute14 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute14 IS NULL)
7090 AND (p_var_rent_rec.attribute15 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute15 IS NULL)
7091 ) THEN
7092 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_RENTS'
7093 , p_attribute_category => p_var_rent_rec.attribute_category
7094 , p_attribute1 => p_var_rent_rec.attribute1
7095 , p_attribute2 => p_var_rent_rec.attribute2
7096 , p_attribute3 => p_var_rent_rec.attribute3
7097 , p_attribute4 => p_var_rent_rec.attribute4
7098 , p_attribute5 => p_var_rent_rec.attribute5
7099 , p_attribute6 => p_var_rent_rec.attribute6
7100 , p_attribute7 => p_var_rent_rec.attribute7
7101 , p_attribute8 => p_var_rent_rec.attribute8
7102 , p_attribute9 => p_var_rent_rec.attribute9
7103 , p_attribute10 => p_var_rent_rec.attribute10
7104 , p_attribute11 => p_var_rent_rec.attribute11
7105 , p_attribute12 => p_var_rent_rec.attribute12
7106 , p_attribute13 => p_var_rent_rec.attribute13
7107 , p_attribute14 => p_var_rent_rec.attribute14
7108 , p_attribute15 => p_var_rent_rec.attribute15
7109 , x_return_msg => l_return_msg
7110 , x_return_status => l_return_status
7111 );
7112
7113 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
7114 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
7115 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_VAR_RENTS Descriptive Fields Error'||l_return_msg);
7116 fnd_msg_pub.ADD;
7117 RAISE fnd_api.g_exc_error;
7118 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7119 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
7120 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_VAR_RENTS Descriptive Fields Error'||l_return_msg);
7121 fnd_msg_pub.ADD;
7122 RAISE fnd_api.g_exc_unexpected_error;
7123 END IF;
7124 END IF;
7125 END IF; -- End of attributes valitions in create var rent*/
7126 /* --Commented as DFF is not available
7127 IF (get_attribute_status('PN_VAR_RENTS') > 0) THEN
7128 IF NOT ((p_var_rent_rec.dates_attribute_category = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute_category IS NULL)
7129 AND (p_var_rent_rec.dates_attribute1 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute1 IS NULL)
7130 AND (p_var_rent_rec.dates_attribute2 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute2 IS NULL)
7131 AND (p_var_rent_rec.dates_attribute3 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute3 IS NULL)
7132 AND (p_var_rent_rec.dates_attribute4 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute4 IS NULL)
7133 AND (p_var_rent_rec.dates_attribute5 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute5 IS NULL)
7134 AND (p_var_rent_rec.dates_attribute6 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute6 IS NULL)
7135 AND (p_var_rent_rec.dates_attribute7 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute7 IS NULL)
7136 AND (p_var_rent_rec.dates_attribute8 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute8 IS NULL)
7137 AND (p_var_rent_rec.dates_attribute9 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute9 IS NULL)
7138 AND (p_var_rent_rec.dates_attribute10 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute10 IS NULL)
7139 AND (p_var_rent_rec.dates_attribute11 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute11 IS NULL)
7140 AND (p_var_rent_rec.dates_attribute12 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute12 IS NULL)
7141 AND (p_var_rent_rec.dates_attribute13 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute13 IS NULL)
7142 AND (p_var_rent_rec.dates_attribute14 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute14 IS NULL)
7143 AND (p_var_rent_rec.dates_attribute15 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.dates_attribute15 IS NULL)
7144 ) THEN
7145 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_RENTS'
7146 , p_attribute_category => p_var_rent_rec.dates_attribute_category
7147 , p_attribute1 => p_var_rent_rec.dates_attribute1
7148 , p_attribute2 => p_var_rent_rec.dates_attribute2
7149 , p_attribute3 => p_var_rent_rec.dates_attribute3
7150 , p_attribute4 => p_var_rent_rec.dates_attribute4
7151 , p_attribute5 => p_var_rent_rec.dates_attribute5
7152 , p_attribute6 => p_var_rent_rec.dates_attribute6
7153 , p_attribute7 => p_var_rent_rec.dates_attribute7
7154 , p_attribute8 => p_var_rent_rec.dates_attribute8
7155 , p_attribute9 => p_var_rent_rec.dates_attribute9
7156 , p_attribute10 => p_var_rent_rec.dates_attribute10
7157 , p_attribute11 => p_var_rent_rec.dates_attribute11
7158 , p_attribute12 => p_var_rent_rec.dates_attribute12
7159 , p_attribute13 => p_var_rent_rec.dates_attribute13
7160 , p_attribute14 => p_var_rent_rec.dates_attribute14
7161 , p_attribute15 => p_var_rent_rec.dates_attribute15
7162 , x_return_msg => l_return_msg
7163 , x_return_status => x_return_status
7164 );
7165
7166 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7167 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
7168 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN VAR DATES Descriptive Fields Error');
7169 fnd_msg_pub.ADD;
7170 RAISE fnd_api.g_exc_error;
7171 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7172 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
7173 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN VAR DATES Descriptive Fields Error');
7174 fnd_msg_pub.ADD;
7175 RAISE fnd_api.g_exc_unexpected_error;
7176 END IF;
7177 END IF;
7178 END IF; -- End of attributes valitions in create var rent dates */
7179
7180 x_return_status := fnd_api.g_ret_sts_success;
7181 EXCEPTION
7182 WHEN fnd_api.g_exc_error THEN
7183 x_return_status := fnd_api.g_ret_sts_error;
7184 pn_varen_util.pvt_debug('PN_VAREN_PVT: Validate_Var_Rent: Exception'||SQLERRM,3);
7185 WHEN OTHERS THEN
7186 x_return_status := fnd_api.g_ret_sts_unexp_error;
7187 pn_varen_util.pvt_debug('PN_VAREN_PVT: Validate_Var_Rent: Exception Result of Validate_Var_Rent procedure :'|| SQLERRM,3);
7188 END validate_var_rent;
7189
7190 --------------------------------------------------------------------------------
7191 -- NAME : UPD_VAL_VARENT
7192 -- DESCRIPTION : Procedure Update validate variable rent details
7193 -- PURPOSE :
7194 -- INVOKED FROM :
7195 -- ARGUMENTS : P_UPD_VAR_RENT_REC_TYPE IN Parameter
7196 -- : X_RETURN_STATUS OUT Parameter
7197 -- REFERENCE :
7198 -- HISTORY :
7199 --
7200 -- 11-OCT-2010 vkatta o Created
7201 --------------------------------------------------------------------------------
7202 PROCEDURE upd_val_varent (
7203 p_upd_var_rent_rec_type IN OUT NOCOPY upd_var_rent_rec_type
7204 , x_return_status OUT NOCOPY VARCHAR2
7205 )
7206 IS
7207 l_return_status VARCHAR2 (1);
7208 l_lease_commencement_date DATE;
7209 l_lease_termination_date DATE;
7210 BEGIN
7211
7212 pn_varen_util.pvt_debug
7213 ( 'PN_VAREN_PVT: Upd_Val_Varent: Start of Update validate variable rent details procedure'
7214 || SQLERRM
7215 , 3
7216 );
7217
7218 ------------------------------------------------------------------------------------
7219 --Capturing Lease id, location id and Variable Rent Details from variable rent number
7220 -----------------------------------------------------------------------------------
7221 -- The below code has been commented by Vivek on 08-Dec-2010
7222 /*
7223 IF (p_upd_var_rent_rec_type.rent_num IS NULL)
7224 THEN
7225 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Val_Varent: Please pass the variable rent details'
7226 , 3
7227 );
7228 --fnd_message.set_name ('PN', 'PN_VAR_NVALID_LEASE');
7229 --fnd_msg_pub.ADD;
7230 RAISE fnd_api.g_exc_error;
7231 x_return_status := fnd_api.g_ret_sts_error;
7232 ELSE
7233 pn_varen_util.val_rent_details (p_rent_num => p_upd_var_rent_rec_type.rent_num
7234 , x_var_rent_id => p_upd_var_rent_rec_type.var_rent_id
7235 , x_lease_id => p_upd_var_rent_rec_type.lease_id
7236 , x_location_id => p_upd_var_rent_rec_type.location_id
7237 , x_return_status => l_return_status
7238 );
7239 pn_varen_util.pvt_debug
7240 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of pn_varen_util.val_rent_details procedure '
7241 || l_return_status
7242 , 3
7243 );
7244
7245 IF (l_return_status = fnd_api.g_ret_sts_error)
7246 THEN
7247 --fnd_message.set_name ('PN' , 'PN_VAR_NVALID_LEASE');
7248 --fnd_msg_pub.ADD;
7249 RAISE fnd_api.g_exc_error;
7250 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec_type.rent_num error: '
7251 || p_upd_var_rent_rec_type.rent_num
7252 , 3
7253 );
7254 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
7255 THEN
7256 --fnd_message.set_name ('PN' , 'PN_VAR_NVALID_LEASE');
7257 --fnd_msg_pub.ADD;
7258 RAISE fnd_api.g_exc_unexpected_error;
7259 pn_varen_util.pvt_debug
7260 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec_type.rent_num unexpected error: '
7261 || p_upd_var_rent_rec_type.rent_num
7262 , 3
7263 );
7264 ELSE
7265 l_return_status := fnd_api.g_ret_sts_success;
7266 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec_type.rent_num success: '
7267 || p_upd_var_rent_rec_type.rent_num
7268 , 3
7269 );
7270 END IF;
7271 END IF;
7272 */
7273 -- The below code has been added by Vivek on 08-Dec-2010
7274
7275 IF (p_upd_var_rent_rec_type.rent_num IS NOT NULL AND p_upd_var_rent_rec_type.rent_num<> pn_varen_util.g_pn_miss_char)
7276 OR (p_upd_var_rent_rec_type.var_rent_id IS NOT NULL AND p_upd_var_rent_rec_type.var_rent_id<> pn_varen_util.g_pn_miss_num)
7277 THEN
7278 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Val_Varent: Please pass the variable rent details'
7279 , 3
7280 );
7281 --fnd_message.set_name ('PN', 'PN_VAR_NVALID_LEASE');
7282 --fnd_msg_pub.ADD;
7283 RAISE fnd_api.g_exc_error;
7284 x_return_status := fnd_api.g_ret_sts_error;
7285 ELSE
7286 pn_varen_util.val_rent_details (p_rent_num => p_upd_var_rent_rec_type.rent_num
7287 , x_var_rent_id => p_upd_var_rent_rec_type.var_rent_id
7288 , x_return_status => l_return_status
7289 );
7290 pn_varen_util.pvt_debug
7291 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of pn_varen_util.val_rent_details procedure '
7292 || l_return_status
7293 , 3
7294 );
7295
7296 IF (l_return_status = fnd_api.g_ret_sts_error)
7297 THEN
7298 --fnd_message.set_name ('PN' , 'PN_VAR_NVALID_LEASE');
7299 --fnd_msg_pub.ADD;
7300 RAISE fnd_api.g_exc_error;
7301 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec_type.rent_num error: '
7302 || p_upd_var_rent_rec_type.rent_num
7303 , 3
7304 );
7305 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
7306 THEN
7307 --fnd_message.set_name ('PN' , 'PN_VAR_NVALID_LEASE');
7308 --fnd_msg_pub.ADD;
7309 RAISE fnd_api.g_exc_unexpected_error;
7310 pn_varen_util.pvt_debug
7311 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec_type.rent_num unexpected error: '
7312 || p_upd_var_rent_rec_type.rent_num
7313 , 3
7314 );
7315 ELSE
7316 l_return_status := fnd_api.g_ret_sts_success;
7317 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec_type.rent_num success: '
7318 || p_upd_var_rent_rec_type.rent_num
7319 , 3
7320 );
7321 END IF;
7322 END IF;
7323
7324 IF p_upd_var_rent_rec_type.lease_id IS NOT NULL AND p_upd_var_rent_rec_type.lease_id<> pn_varen_util.g_pn_miss_num
7325 THEN
7326
7327 pn_varen_util.validate_lease_id ( p_lease_id => p_upd_var_rent_rec_type.lease_id
7328 , x_lease_commencement_date => l_lease_commencement_date
7329 , x_lease_termination_date => l_lease_termination_date
7330 , x_return_status => l_return_status
7331 );
7332
7333 pn_varen_util.pvt_debug
7334 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of pn_varen_util.validate_lease_id procedure '
7335 || l_return_status
7336 , 3
7337 );
7338
7339 IF (l_return_status <> fnd_api.g_ret_sts_success)
7340 THEN
7341 --fnd_message.set_name ('PN' , 'PN_VAR_NVALID_LEASE');
7342 --fnd_msg_pub.ADD;
7343
7344 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec_type.lease_id error: '
7345 || p_upd_var_rent_rec_type.lease_id
7346 , 3
7347 );
7348 RAISE fnd_api.g_exc_error;
7349 END IF;
7350
7351 END IF;
7352
7353
7354 IF ( p_upd_var_rent_rec_type.location_id IS NOT NULL AND p_upd_var_rent_rec_type.location_id<> pn_varen_util.g_pn_miss_num)
7355 OR(p_upd_var_rent_rec_type.location_code IS NOT NULL AND p_upd_var_rent_rec_type.location_code<> pn_varen_util.g_pn_miss_char)
7356 THEN
7357
7358 pn_varen_util.validate_location ( p_lease_id => p_upd_var_rent_rec_type.lease_id
7359 , x_location_id => p_upd_var_rent_rec_type.location_id
7360 , x_location_code => p_upd_var_rent_rec_type.location_code
7361 , x_return_status => l_return_status
7362 );
7363
7364 pn_varen_util.pvt_debug
7365 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of pn_varen_util.validate_location procedure '
7366 || l_return_status
7367 , 3
7368 );
7369
7370 IF (l_return_status <> fnd_api.g_ret_sts_success)
7371 THEN
7372 --fnd_message.set_name ('PN' , 'PN_VAR_NVALID_LEASE');
7373 --fnd_msg_pub.ADD;
7374
7375 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec_type.location_id error: '
7376 || p_upd_var_rent_rec_type.location_id
7377 , 3
7378 );
7379 RAISE fnd_api.g_exc_error;
7380 END IF;
7381
7382 END IF;
7383
7384 -----------------------------------------------------------------------------
7385 -- Validating the combination of Proration rule code and cumulative vol code
7386 -----------------------------------------------------------------------------
7387 IF ( ( p_upd_var_rent_rec_type.proration_rule_code IS NOT NULL
7388 OR p_upd_var_rent_rec_type.cumulative_vol_code IS NOT NULL
7389 )
7390 OR ( p_upd_var_rent_rec_type.proration_rule_meaning IS NOT NULL
7391 OR p_upd_var_rent_rec_type.cumulative_vol_meaning IS NOT NULL
7392 )
7393 )
7394 THEN
7395 pn_varen_util.check_prora_cum_comb (p_proration_rule_code => p_upd_var_rent_rec_type.proration_rule_code
7396 , p_cumulative_vol_code => p_upd_var_rent_rec_type.cumulative_vol_code
7397 , x_return_status => l_return_status
7398 );
7399 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: check_prora_cum_comb - L_RETURN_STATUS : '
7400 || l_return_status
7401 , 3
7402 );
7403 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of check_prora_cum_comb procedure '
7404 || l_return_status
7405 , 3
7406 );
7407
7408 IF l_return_status = fnd_api.g_ret_sts_error
7409 THEN
7410 fnd_message.set_name ('PN'
7411 , 'PN_VAR_CALC_PRO_CODE'
7412 );
7413 fnd_msg_pub.ADD;
7414 RAISE fnd_api.g_exc_error;
7415 x_return_status := fnd_api.g_ret_sts_error;
7416 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
7417 THEN
7418 fnd_message.set_name ('PN'
7419 , 'PN_VAR_CALC_PRO_CODE'
7420 );
7421 fnd_msg_pub.ADD;
7422 RAISE fnd_api.g_exc_unexpected_error;
7423 x_return_status :=
7424 fnd_api.g_ret_sts_unexp_error;
7425 ELSE
7426 x_return_status := fnd_api.g_ret_sts_success;
7427 END IF;
7428 END IF;
7429
7430 -------------------------------------------------------------------------
7431 -- Validating the combination of Proration rule code and Invoice on code
7432 -------------------------------------------------------------------------
7433 IF ( ( p_upd_var_rent_rec_type.proration_rule_code IS NOT NULL
7434 OR p_upd_var_rent_rec_type.invoice_on_code IS NOT NULL
7435 )
7436 OR ( p_upd_var_rent_rec_type.proration_rule_meaning IS NOT NULL
7437 OR p_upd_var_rent_rec_type.invoice_on_meaning IS NOT NULL
7438 )
7439 )
7440 THEN
7441 pn_varen_util.check_prora_invon_comb (p_proration_rule_code => p_upd_var_rent_rec_type.proration_rule_code
7442 , p_invoice_on_code => p_upd_var_rent_rec_type.invoice_on_code
7443 , x_return_status => l_return_status
7444 );
7445 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: check_prora_invon_comb - L_RETURN_STATUS : '
7446 || l_return_status
7447 , 3
7448 );
7449 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of check_prora_invon_comb procedure '
7450 || l_return_status
7451 , 3
7452 );
7453
7454 IF l_return_status = fnd_api.g_ret_sts_error
7455 THEN
7456 fnd_message.set_name ('PN'
7457 , 'PN_VAR_FOR_PRO_CODE'
7458 );
7459 fnd_msg_pub.ADD;
7460 RAISE fnd_api.g_exc_error;
7461 x_return_status := fnd_api.g_ret_sts_error;
7462 ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error
7463 THEN
7464 fnd_message.set_name ('PN'
7465 , 'PN_VAR_FOR_PRO_CODE'
7466 );
7467 fnd_msg_pub.ADD;
7468 RAISE fnd_api.g_exc_unexpected_error;
7469 x_return_status :=
7470 fnd_api.g_ret_sts_unexp_error;
7471 ELSE
7472 x_return_status := fnd_api.g_ret_sts_success;
7473 END IF;
7474 END IF;
7475 EXCEPTION
7476 WHEN OTHERS
7477 THEN
7478 pn_varen_util.pvt_debug
7479 ( 'PN_VAREN_PVT: Upd_Val_Varent: Exception Result of Update validate variable rent details procedure'
7480 || SQLERRM
7481 , 3
7482 );
7483 END upd_val_varent;
7484
7485 --------------------------------------------------------------------------------
7486 -- NAME : INI_VAL_DATES
7487 -- DESCRIPTION : Variable Rent Dates procedure ot initialize dates
7488 -- PURPOSE :
7489 -- INVOKED FROM :
7490 -- ARGUMENTS : P_VAR_RENT_REC IN Parameter
7491 -- : X_RETURN_STATUS OUT Parameter
7492 -- REFERENCE :
7493 -- HISTORY :
7494 --
7495 -- 20-SEP-2010 vkatta o Created
7496 --------------------------------------------------------------------------------
7497 PROCEDURE ini_val_dates (
7498 p_var_rent_rec IN OUT NOCOPY var_rent_rec_type
7499 , x_return_status OUT NOCOPY VARCHAR2
7500 )
7501 IS
7502 BEGIN
7503 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Ini_Val_Dates: Start of initializing variable rent dates record :'
7504 , 3
7505 );
7506
7507 --------------------------------------------------------------------------------
7508 -- If Variable Rent record type (Variable Rent dates) has not been initialized then assign it to null
7509 --------------------------------------------------------------------------------
7510 IF p_var_rent_rec.use_gl_calendar = pn_varen_util.g_pn_miss_char
7511 THEN
7512 p_var_rent_rec.use_gl_calendar := NULL;
7513 END IF;
7514
7515 IF p_var_rent_rec.gl_period_set_name = pn_varen_util.g_pn_miss_char
7516 THEN
7517 p_var_rent_rec.gl_period_set_name := NULL;
7518 END IF;
7519
7520 IF p_var_rent_rec.period_type = pn_varen_util.g_pn_miss_char
7521 THEN
7522 p_var_rent_rec.period_type := NULL;
7523 END IF;
7524
7525 IF p_var_rent_rec.reptg_freq_code = pn_varen_util.g_pn_miss_char
7526 THEN
7527 p_var_rent_rec.reptg_freq_code := NULL;
7528 END IF;
7529
7530 IF p_var_rent_rec.reptg_freq_meaning = pn_varen_util.g_pn_miss_char
7531 THEN
7532 p_var_rent_rec.reptg_freq_meaning := NULL;
7533 END IF;
7534
7535 IF p_var_rent_rec.reptg_day_of_month = pn_varen_util.g_pn_miss_num
7536 THEN
7537 p_var_rent_rec.reptg_day_of_month := NULL;
7538 END IF;
7539
7540 IF p_var_rent_rec.reptg_days_after = pn_varen_util.g_pn_miss_num
7541 THEN
7542 p_var_rent_rec.reptg_days_after := NULL;
7543 END IF;
7544
7545 IF p_var_rent_rec.year_start_date = pn_varen_util.g_pn_miss_date
7546 THEN
7547 p_var_rent_rec.year_start_date := NULL;
7548 END IF;
7549
7550 IF p_var_rent_rec.vrg_reptg_freq_code = pn_varen_util.g_pn_miss_char
7551 THEN
7552 p_var_rent_rec.vrg_reptg_freq_code := NULL;
7553 END IF;
7554
7555 IF p_var_rent_rec.vrg_reptg_freq_meaning = pn_varen_util.g_pn_miss_char
7556 THEN
7557 p_var_rent_rec.vrg_reptg_freq_meaning := NULL;
7558 END IF;
7559
7560 IF p_var_rent_rec.invg_day_of_month = pn_varen_util.g_pn_miss_num
7561 THEN
7562 p_var_rent_rec.invg_day_of_month := NULL;
7563 END IF;
7564
7565 IF p_var_rent_rec.invg_days_after = pn_varen_util.g_pn_miss_num
7566 THEN
7567 p_var_rent_rec.invg_days_after := NULL;
7568 END IF;
7569
7570 IF p_var_rent_rec.comments = pn_varen_util.g_pn_miss_char
7571 THEN
7572 p_var_rent_rec.comments := NULL;
7573 END IF;
7574
7575 IF p_var_rent_rec.invg_freq_code = pn_varen_util.g_pn_miss_char
7576 THEN
7577 p_var_rent_rec.invg_freq_code := NULL;
7578 END IF;
7579
7580 IF p_var_rent_rec.invg_freq_meaning = pn_varen_util.g_pn_miss_char
7581 THEN
7582 p_var_rent_rec.invg_freq_meaning := NULL;
7583 END IF;
7584
7585 IF p_var_rent_rec.last_update_date = pn_varen_util.g_pn_miss_date
7586 THEN
7587 p_var_rent_rec.last_update_date := NULL;
7588 END IF;
7589
7590 IF p_var_rent_rec.last_updated_by = pn_varen_util.g_pn_miss_num
7591 THEN
7592 p_var_rent_rec.last_updated_by := NULL;
7593 END IF;
7594
7595 IF p_var_rent_rec.creation_date = pn_varen_util.g_pn_miss_date
7596 THEN
7597 p_var_rent_rec.creation_date := NULL;
7598 END IF;
7599
7600 IF p_var_rent_rec.created_by = pn_varen_util.g_pn_miss_num
7601 THEN
7602 p_var_rent_rec.created_by := NULL;
7603 END IF;
7604
7605 IF p_var_rent_rec.last_update_login = pn_varen_util.g_pn_miss_num
7606 THEN
7607 p_var_rent_rec.last_update_login := NULL;
7608 END IF;
7609
7610 IF p_var_rent_rec.dates_attribute_category = pn_varen_util.g_pn_miss_char
7611 THEN
7612 p_var_rent_rec.dates_attribute_category := NULL;
7613 END IF;
7614
7615 IF p_var_rent_rec.dates_attribute1 = pn_varen_util.g_pn_miss_char
7616 THEN
7617 p_var_rent_rec.dates_attribute1 := NULL;
7618 END IF;
7619
7620 IF p_var_rent_rec.dates_attribute2 = pn_varen_util.g_pn_miss_char
7621 THEN
7622 p_var_rent_rec.dates_attribute2 := NULL;
7623 END IF;
7624
7625 IF p_var_rent_rec.dates_attribute3 = pn_varen_util.g_pn_miss_char
7626 THEN
7627 p_var_rent_rec.dates_attribute3 := NULL;
7628 END IF;
7629
7630 IF p_var_rent_rec.dates_attribute4 = pn_varen_util.g_pn_miss_char
7631 THEN
7632 p_var_rent_rec.dates_attribute4 := NULL;
7633 END IF;
7634
7635 IF p_var_rent_rec.dates_attribute5 = pn_varen_util.g_pn_miss_char
7636 THEN
7637 p_var_rent_rec.dates_attribute5 := NULL;
7638 END IF;
7639
7640 IF p_var_rent_rec.dates_attribute6 = pn_varen_util.g_pn_miss_char
7641 THEN
7642 p_var_rent_rec.dates_attribute6 := NULL;
7643 END IF;
7644
7645 IF p_var_rent_rec.dates_attribute7 = pn_varen_util.g_pn_miss_char
7646 THEN
7647 p_var_rent_rec.dates_attribute7 := NULL;
7648 END IF;
7649
7650 IF p_var_rent_rec.dates_attribute8 = pn_varen_util.g_pn_miss_char
7651 THEN
7652 p_var_rent_rec.dates_attribute8 := NULL;
7653 END IF;
7654
7655 IF p_var_rent_rec.dates_attribute9 = pn_varen_util.g_pn_miss_char
7656 THEN
7657 p_var_rent_rec.dates_attribute9 := NULL;
7658 END IF;
7659
7660 IF p_var_rent_rec.dates_attribute10 = pn_varen_util.g_pn_miss_char
7661 THEN
7662 p_var_rent_rec.dates_attribute10 := NULL;
7663 END IF;
7664
7665 IF p_var_rent_rec.dates_attribute11 = pn_varen_util.g_pn_miss_char
7666 THEN
7667 p_var_rent_rec.dates_attribute11 := NULL;
7668 END IF;
7669
7670 IF p_var_rent_rec.dates_attribute12 = pn_varen_util.g_pn_miss_char
7671 THEN
7672 p_var_rent_rec.dates_attribute12 := NULL;
7673 END IF;
7674
7675 IF p_var_rent_rec.dates_attribute13 = pn_varen_util.g_pn_miss_char
7676 THEN
7677 p_var_rent_rec.dates_attribute13 := NULL;
7678 END IF;
7679
7680 IF p_var_rent_rec.dates_attribute14 = pn_varen_util.g_pn_miss_char
7681 THEN
7682 p_var_rent_rec.dates_attribute14 := NULL;
7683 END IF;
7684
7685 IF p_var_rent_rec.dates_attribute15 = pn_varen_util.g_pn_miss_char
7686 THEN
7687 p_var_rent_rec.dates_attribute15 := NULL;
7688 END IF;
7689
7690 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Ini_Val_Dates: End of initializing variable rent dates record :'
7691 , 3
7692 );
7693 x_return_status := fnd_api.g_ret_sts_success;
7694 EXCEPTION
7695 WHEN OTHERS
7696 THEN
7697 x_return_status := fnd_api.g_ret_sts_error;
7698 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Ini_Val_Dates: Exception Result of variable rent dates record :'
7699 || SQLERRM
7700 , 3
7701 );
7702 END ini_val_dates;
7703
7704 --------------------------------------------------------------------------------
7705 -- NAME : VALIDATE_DATES
7706 -- DESCRIPTION : Private procedure to validate dates Variable Rent Dates
7707 -- PURPOSE :
7708 -- INVOKED FROM :
7709 -- ARGUMENTS : P_VAR_RENT_REC IN Parameter
7710 -- : X_RETURN_STATUS OUT Parameter
7711 -- REFERENCE :
7712 -- HISTORY :
7713 --
7714 -- 20-SEP-2010 vkatta o Created
7715 --------------------------------------------------------------------------------
7716 PROCEDURE validate_dates (
7717 p_var_rent_rec IN OUT NOCOPY var_rent_rec_type
7718 , x_return_status OUT NOCOPY VARCHAR2
7719 )
7720 IS
7721 l_return_status VARCHAR2 (1);
7722 l_ret_status VARCHAR2 (1);
7723 l_return_msg VARCHAR2 (2000);
7724 l_lease_commencement_date pn_lease_details_all.lease_commencement_date%TYPE;
7725 l_lease_termination_date pn_lease_details_all.lease_termination_date%TYPE;
7726 l_purpose_code pn_var_templates_all.purpose_code%TYPE;
7727 l_type_code pn_var_templates_all.type_code%TYPE;
7728 l_cumulative_vol pn_var_templates_all.cumulative_vol%TYPE;
7729 l_invoice_on pn_var_templates_all.invoice_on%TYPE;
7730 l_negative_rent pn_var_templates_all.negative_rent%TYPE;
7731 l_term_template_id pn_var_templates_all.term_template_id%TYPE;
7732 l_abatement_amount pn_var_templates_all.abatement_amount%TYPE;
7733 l_proration_rule pn_var_templates_all.proration_rule%TYPE;
7734 l_vrg_reptg_freq_code pn_var_templates_all.vrg_reptg_freq_code%TYPE;
7735 l_period_freq_code pn_var_templates_all.period_freq_code%TYPE;
7736 l_use_gl_calendar pn_var_templates_all.use_gl_calendar%TYPE;
7737 l_year_start_date pn_var_templates_all.year_start_date%TYPE := TO_DATE ('01-01-2000'
7738 , 'DD-MM-RRRR'
7739 );
7740 l_gl_period_set_name pn_var_templates_all.gl_period_set_name%TYPE;
7741 l_period_type pn_var_templates_all.period_type%TYPE;
7742 l_reptg_freq_code pn_var_templates_all.reptg_freq_code%TYPE;
7743 l_reptg_day_of_month pn_var_templates_all.reptg_day_of_month%TYPE;
7744 l_reptg_days_after pn_var_templates_all.reptg_days_after%TYPE;
7745 l_invg_freq_code pn_var_templates_all.invg_freq_code%TYPE;
7746 l_invg_spread_code pn_var_templates_all.invg_spread_code%TYPE;
7747 l_invg_day_of_month pn_var_templates_all.invg_day_of_month%TYPE;
7748 l_invg_days_after pn_var_templates_all.invg_days_after%TYPE;
7749 l_comments pn_var_templates_all.comments%TYPE;
7750 BEGIN
7751 -----------------------------------------
7752 --Agreement Template validation
7753 -----------------------------------------
7754 IF ( p_var_rent_rec.agreement_template_name IS NOT NULL
7755 OR p_var_rent_rec.agreement_template_id IS NOT NULL)
7756 THEN
7757 pn_varen_util.validate_agreement_temp (x_agreement_template_id => p_var_rent_rec.agreement_template_id
7758 , x_agreement_template => p_var_rent_rec.agreement_template_name
7759 , x_purpose_code => l_purpose_code
7760 , x_type_code => l_type_code
7761 , x_cumulative_vol => l_cumulative_vol
7762 , x_invoice_on => l_invoice_on
7763 , x_negative_rent => l_negative_rent
7764 , x_term_template_id => l_term_template_id
7765 , x_abatement_amount => l_abatement_amount
7766 , x_proration_rule => l_proration_rule
7767 , x_vrg_reptg_freq_code => l_vrg_reptg_freq_code
7768 , x_period_freq_code => l_period_freq_code
7769 , x_use_gl_calendar => l_use_gl_calendar
7770 , x_year_start_date => l_year_start_date
7771 , x_gl_period_set_name => l_gl_period_set_name
7772 , x_period_type => l_period_type
7773 , x_reptg_freq_code => l_reptg_freq_code
7774 , x_reptg_day_of_month => l_reptg_day_of_month
7775 , x_reptg_days_after => l_reptg_days_after
7776 , x_invg_freq_code => l_invg_freq_code
7777 , x_invg_spread_code => l_invg_spread_code
7778 , x_invg_day_of_month => l_invg_day_of_month
7779 , x_invg_days_after => l_invg_days_after
7780 , x_comments => l_comments
7781 , p_org_id => g_org_id
7782 , x_return_status => l_return_status
7783 );
7784 ELSE
7785 NULL;
7786 END IF;
7787
7788 ------------------------------------------------
7789 --Validation of Use GL Calendar(USE_GL_CALENDAR), GL Calendar(GL_PERIOD_SET_NAME), Period Type (PERIOD_TYPE), Annual Period Start Day(YEAR_START_DATE)
7790 -------------------------------------------------
7791 IF ( p_var_rent_rec.reptg_freq_code IS NOT NULL
7792 OR p_var_rent_rec.reptg_freq_meaning IS NOT NULL)
7793 THEN
7794 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Dates: Calling Calendar and Date Validation'
7795 , 3
7796 );
7797 pn_varen_util.validate_calendar_date (p_commencement_date => p_var_rent_rec.commencement_date
7798 , p_use_gl_calendar => p_var_rent_rec.use_gl_calendar
7799 , p_year_start_date => p_var_rent_rec.year_start_date
7800 , p_gl_period_set_name => p_var_rent_rec.gl_period_set_name
7801 , p_period_type => p_var_rent_rec.period_type
7802 , x_return_status => l_return_status
7803 );
7804 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Calendar and Date year_start_date :'
7805 || p_var_rent_rec.year_start_date
7806 , 3
7807 );
7808 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Calendar and Date gl_period_set_name :'
7809 || p_var_rent_rec.gl_period_set_name
7810 , 3
7811 );
7812 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Calendar and Date period_type :'
7813 || p_var_rent_rec.period_type
7814 , 3
7815 );
7816
7817 IF (l_return_status = fnd_api.g_ret_sts_error)
7818 THEN
7819 fnd_message.set_name ('PN'
7820 , 'PN_VAR_GL_CAL_PER_TY'
7821 );
7822 fnd_message.set_token ('GL_CALENDAR'
7823 , p_var_rent_rec.gl_period_set_name
7824 );
7825 fnd_message.set_token ('PERIOD_TYPE'
7826 , p_var_rent_rec.period_type
7827 );
7828 fnd_message.set_token ('YEAR_START_DATE'
7829 , p_var_rent_rec.year_start_date
7830 );
7831 fnd_msg_pub.ADD;
7832 RAISE fnd_api.g_exc_error;
7833 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
7834 THEN
7835 fnd_message.set_name ('PN'
7836 , 'PN_VAR_GL_CAL_PER_TY'
7837 );
7838 fnd_message.set_token ('GL_CALENDAR'
7839 , p_var_rent_rec.gl_period_set_name
7840 );
7841 fnd_message.set_token ('PERIOD_TYPE'
7842 , p_var_rent_rec.period_type
7843 );
7844 fnd_message.set_token ('YEAR_START_DATE'
7845 , p_var_rent_rec.year_start_date
7846 );
7847 fnd_msg_pub.ADD;
7848 RAISE fnd_api.g_exc_unexpected_error;
7849 ELSE
7850 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Calendar and Date year_start_date :'
7851 || p_var_rent_rec.year_start_date
7852 , 3
7853 );
7854 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Calendar and Date gl_period_set_name :'
7855 || p_var_rent_rec.gl_period_set_name
7856 , 3
7857 );
7858 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Calendar and Date period_type :'
7859 || p_var_rent_rec.period_type
7860 , 3
7861 );
7862 x_return_status := fnd_api.g_ret_sts_success;
7863 END IF;
7864 ELSIF ( l_reptg_freq_code IS NOT NULL
7865 OR l_year_start_date IS NOT NULL
7866 OR l_use_gl_calendar IS NOT NULL
7867 OR l_gl_period_set_name IS NOT NULL
7868 OR l_period_type IS NOT NULL
7869 )
7870 THEN
7871 --Assigning values from agreement template
7872 p_var_rent_rec.reptg_freq_code := l_reptg_freq_code;
7873 p_var_rent_rec.year_start_date := l_year_start_date;
7874 p_var_rent_rec.use_gl_calendar := l_use_gl_calendar;
7875 p_var_rent_rec.gl_period_set_name := l_gl_period_set_name;
7876 p_var_rent_rec.period_type := l_period_type;
7877 END IF;
7878
7879 ------------------------------------------------
7880 --Validation of Calculation Frequency
7881 -------------------------------------------------
7882 IF ( p_var_rent_rec.reptg_freq_code IS NOT NULL
7883 OR p_var_rent_rec.reptg_freq_meaning IS NOT NULL)
7884 THEN
7885 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Dates: Calling Calculation Frequency Validation'
7886 , 3
7887 );
7888 pn_varen_util.validate_periods (p_lookup_type => g_payment_frequency
7889 , x_lookup_meaning => p_var_rent_rec.reptg_freq_meaning
7890 , x_lookup_code => p_var_rent_rec.reptg_freq_code
7891 , x_return_status => l_return_status
7892 );
7893 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Calculation Frequency Output Code :'
7894 || p_var_rent_rec.reptg_freq_code
7895 , 3
7896 );
7897
7898 IF (l_return_status = fnd_api.g_ret_sts_error)
7899 THEN
7900 fnd_message.set_name ('PN'
7901 , 'PN_VAR_REPT_CODE'
7902 );
7903 fnd_message.set_token ('REPTG_FREQ_CODE_MEANING'
7904 , p_var_rent_rec.reptg_freq_meaning
7905 || '/'
7906 || p_var_rent_rec.reptg_freq_code
7907 );
7908 fnd_msg_pub.ADD;
7909 RAISE fnd_api.g_exc_error;
7910
7911 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
7912 THEN
7913 fnd_message.set_name ('PN'
7914 , 'PN_VAR_REPT_CODE'
7915 );
7916 fnd_message.set_token ('REPTG_FREQ_CODE_MEANING'
7917 , p_var_rent_rec.reptg_freq_meaning
7918 || '/'
7919 || p_var_rent_rec.reptg_freq_code
7920 );
7921 fnd_msg_pub.ADD;
7922 RAISE fnd_api.g_exc_unexpected_error;
7923
7924 ELSE
7925 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Calculation Frequency Code Success :'
7926 || p_var_rent_rec.reptg_freq_code
7927 , 3
7928 );
7929 x_return_status := fnd_api.g_ret_sts_success;
7930 END IF;
7931 ELSIF (l_invg_freq_code IS NOT NULL)
7932 THEN
7933 p_var_rent_rec.reptg_freq_code := l_invg_freq_code;
7934 ELSE
7935 p_var_rent_rec.reptg_freq_code := 'MON';
7936 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Default value for Calculation Frequency Code :'
7937 || p_var_rent_rec.reptg_freq_code
7938 , 3
7939 );
7940 x_return_status := fnd_api.g_ret_sts_success;
7941 END IF;
7942
7943 ------------------------------------------------
7944 --Validation of Reporting Frequency -- VRG_REPTG_FREQ_CODE
7945 -------------------------------------------------
7946 IF ( p_var_rent_rec.vrg_reptg_freq_code IS NOT NULL
7947 OR p_var_rent_rec.vrg_reptg_freq_meaning IS NOT NULL)
7948 THEN
7949 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Dates: Calling Reporting Frequency Validation'
7950 , 3
7951 );
7952 pn_varen_util.validate_periods (p_lookup_type => g_payment_frequency
7953 , x_lookup_meaning => p_var_rent_rec.vrg_reptg_freq_meaning
7954 , x_lookup_code => p_var_rent_rec.vrg_reptg_freq_code
7955 , x_return_status => l_return_status
7956 );
7957 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Reporting Frequency Output Code :'
7958 || p_var_rent_rec.vrg_reptg_freq_code
7959 , 3
7960 );
7961
7962 IF (l_return_status = fnd_api.g_ret_sts_error)
7963 THEN
7964 fnd_message.set_name ('PN'
7965 , 'PN_VAR_VRG_REPT_CODE'
7966 );
7967 fnd_message.set_token ('VRG_REPTG_FREQ_CODE_MEANING'
7968 , p_var_rent_rec.vrg_reptg_freq_meaning
7969 || '/'
7970 || p_var_rent_rec.vrg_reptg_freq_code
7971 );
7972 fnd_msg_pub.ADD;
7973 RAISE fnd_api.g_exc_error;
7974
7975 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
7976 THEN
7977 fnd_message.set_name ('PN'
7978 , 'PN_VAR_VRG_REPT_CODE'
7979 );
7980 fnd_message.set_token ('VRG_REPTG_FREQ_CODE_MEANING'
7981 , p_var_rent_rec.vrg_reptg_freq_meaning
7982 || '/'
7983 || p_var_rent_rec.vrg_reptg_freq_code
7984 );
7985 fnd_msg_pub.ADD;
7986 RAISE fnd_api.g_exc_unexpected_error;
7987
7988 ELSE
7989 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Reporting Frequency Code Success :'
7990 || p_var_rent_rec.vrg_reptg_freq_code
7991 , 3
7992 );
7993 x_return_status := fnd_api.g_ret_sts_success;
7994 END IF;
7995 ELSIF (l_vrg_reptg_freq_code IS NOT NULL)
7996 THEN
7997 p_var_rent_rec.vrg_reptg_freq_code := l_vrg_reptg_freq_code;
7998 ELSE
7999 p_var_rent_rec.vrg_reptg_freq_code := 'MON';
8000 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Default value for Reporting Frequency Code :'
8001 || p_var_rent_rec.vrg_reptg_freq_code
8002 , 3
8003 );
8004 x_return_status := fnd_api.g_ret_sts_success;
8005 END IF;
8006
8007 ------------------------------------------------
8008 --Validation of Invoicing Frequency -- INVG_FREQ_CODE
8009 -------------------------------------------------
8010 IF ( p_var_rent_rec.invg_freq_code IS NOT NULL
8011 OR p_var_rent_rec.invg_freq_meaning IS NOT NULL)
8012 THEN
8013 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Dates: Calling Invoicing Frequency Validation'
8014 , 3
8015 );
8016 pn_varen_util.validate_periods (p_lookup_type => g_payment_frequency
8017 , x_lookup_meaning => p_var_rent_rec.invg_freq_meaning
8018 , x_lookup_code => p_var_rent_rec.invg_freq_code
8019 , x_return_status => l_return_status
8020 );
8021 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Invoicing Frequency Output Code :'
8022 || p_var_rent_rec.invg_freq_code
8023 , 3
8024 );
8025
8026 IF (l_return_status = fnd_api.g_ret_sts_error)
8027 THEN
8028 fnd_message.set_name ('PN'
8029 , 'PN_VAR_INVG_FREQ_CODE'
8030 );
8031 fnd_message.set_token ('INVG_FREQ_CODE_MEANING'
8032 , p_var_rent_rec.invg_freq_meaning
8033 || '/'
8034 || p_var_rent_rec.invg_freq_code
8035 );
8036 fnd_msg_pub.ADD;
8037 RAISE fnd_api.g_exc_error;
8038
8039 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
8040 THEN
8041 fnd_message.set_name ('PN'
8042 , 'PN_VAR_INVG_FREQ_CODE'
8043 );
8044 fnd_message.set_token ('INVG_FREQ_CODE_MEANING'
8045 , p_var_rent_rec.invg_freq_meaning
8046 || '/'
8047 || p_var_rent_rec.invg_freq_code
8048 );
8049 fnd_msg_pub.ADD;
8050 RAISE fnd_api.g_exc_unexpected_error;
8051
8052 ELSE
8053 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Invoicing Frequency Code Success :'
8054 || p_var_rent_rec.invg_freq_code
8055 , 3
8056 );
8057 x_return_status := fnd_api.g_ret_sts_success;
8058 END IF;
8059 ELSE
8060 p_var_rent_rec.invg_freq_code := 'QTR';
8061 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: Default value for Invoicing Frequency Code :'
8062 || p_var_rent_rec.invg_freq_code
8063 , 3
8064 );
8065 x_return_status := fnd_api.g_ret_sts_success;
8066 END IF;
8067
8068 -------------------------------------------------------------------------------------------
8069 -- variable rent calculation frequency to be equal to or less than the reporting frequency.
8070 -------------------------------------------------------------------------------------------
8071 IF ( p_var_rent_rec.vrg_reptg_freq_code IS NOT NULL
8072 AND p_var_rent_rec.reptg_freq_code IS NOT NULL)
8073 THEN
8074 pn_varen_util.check_calc_rept_freq_comb (p_vrg_reptg_freq_code => p_var_rent_rec.vrg_reptg_freq_code
8075 , p_reptg_freq_code => p_var_rent_rec.reptg_freq_code
8076 , x_return_status => l_return_status
8077 );
8078 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: check_calc_rept_freq_comb - L_RETURN_STATUS : '
8079 || l_return_status
8080 , 3
8081 );
8082 END IF;
8083
8084 -------------------------------------------------------------------------------------------
8085 -- Invoicing frequency to be equal to or less than the variable rent calculation frequency.
8086 -------------------------------------------------------------------------------------------
8087 IF ( p_var_rent_rec.reptg_freq_code IS NOT NULL
8088 AND p_var_rent_rec.invg_freq_code IS NOT NULL)
8089 THEN
8090 pn_varen_util.check_calc_inv_freq_comb (p_reptg_freq_code => p_var_rent_rec.reptg_freq_code
8091 , p_invg_freq_code => p_var_rent_rec.invg_freq_code
8092 , x_return_status => l_return_status
8093 );
8094 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Validate_Dates: check_calc_inv_freq_comb - L_RETURN_STATUS : '
8095 || l_return_status
8096 , 3
8097 );
8098 END IF;
8099
8100 ------------------------------------------------------------------------------------
8101 -- If Reporting Due Day is not null then it Reporting Due Day should be between 1-28
8102 ------------------------------------------------------------------------------------
8103 IF ( p_var_rent_rec.reptg_day_of_month IS NOT NULL
8104 AND p_var_rent_rec.reptg_days_after IS NOT NULL
8105 AND p_var_rent_rec.reptg_day_of_month >= 1
8106 AND p_var_rent_rec.reptg_day_of_month <= 28
8107 )
8108 THEN
8109 -- either of the value i.e, Due Day or No. of Days After should be null
8110 p_var_rent_rec.reptg_days_after := NULL;
8111 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Dates: Reporting Frequecy Due day is success'
8112 , 3
8113 );
8114 --
8115 x_return_status := fnd_api.g_ret_sts_success;
8116 --
8117 ELSIF ( p_var_rent_rec.reptg_day_of_month IS NOT NULL
8118 AND p_var_rent_rec.reptg_days_after IS NULL
8119 AND p_var_rent_rec.reptg_day_of_month >= 1
8120 AND p_var_rent_rec.reptg_day_of_month <= 28
8121 )
8122 THEN
8123 pn_varen_util.pvt_debug
8124 ('PN_VAREN_PVT: Validate_Dates: Reporting Frequecy Due day and No. of Days After is success'
8125 , 3
8126 );
8127 --p_var_rent_rec.reptg_days_after := NULL;
8128 --
8129 x_return_status := fnd_api.g_ret_sts_success;
8130 ELSIF ( p_var_rent_rec.reptg_day_of_month IS NOT NULL
8131 AND p_var_rent_rec.reptg_days_after IS NOT NULL
8132 AND (p_var_rent_rec.reptg_day_of_month < 1
8133 OR p_var_rent_rec.reptg_day_of_month > 28)
8134 )
8135 THEN
8136 p_var_rent_rec.reptg_days_after := NULL;
8137 fnd_message.set_name ('PN'
8138 , 'PN_VAR_REPTG_DAY_OF_MONTH'
8139 );
8140 fnd_msg_pub.ADD;
8141 RAISE fnd_api.g_exc_error;
8142 END IF;
8143
8144 ------------------------------------------------------------------------------------
8145 -- If Invoicing Due Day is not null then it Invoicing Due Day should be between 1-28
8146 ------------------------------------------------------------------------------------
8147 IF ( p_var_rent_rec.invg_day_of_month IS NOT NULL
8148 AND p_var_rent_rec.invg_days_after IS NOT NULL
8149 AND ( p_var_rent_rec.invg_day_of_month >= 1
8150 AND p_var_rent_rec.invg_day_of_month <= 28)
8151 )
8152 THEN
8153 -- either of the value i.e, Due Day or No. of Days After should be null
8154 p_var_rent_rec.invg_days_after := NULL;
8155 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Dates: Invoicing Frequecy Due day is success'
8156 , 3
8157 );
8158 --
8159 x_return_status := fnd_api.g_ret_sts_success;
8160 ELSIF ( p_var_rent_rec.invg_day_of_month IS NOT NULL
8161 AND p_var_rent_rec.invg_days_after IS NULL
8162 AND ( p_var_rent_rec.invg_day_of_month >= 1
8163 AND p_var_rent_rec.invg_day_of_month <= 28)
8164 )
8165 THEN
8166 pn_varen_util.pvt_debug
8167 ('PN_VAREN_PVT: Validate_Dates: Invoicing Frequecy Due day and No. of Days After is success'
8168 , 3
8169 );
8170 --
8171 x_return_status := fnd_api.g_ret_sts_success;
8172 ELSIF ( p_var_rent_rec.invg_day_of_month IS NOT NULL
8173 AND p_var_rent_rec.invg_days_after IS NOT NULL
8174 AND ( p_var_rent_rec.invg_day_of_month < 1
8175 OR p_var_rent_rec.invg_day_of_month > 28)
8176 )
8177 THEN
8178 p_var_rent_rec.invg_days_after := NULL;
8179 fnd_message.set_name ('PN'
8180 , 'PN_VAR_INVG_DAY_OF_MONTH'
8181 );
8182 fnd_msg_pub.ADD;
8183 RAISE fnd_api.g_exc_error;
8184
8185 END IF;
8186 /*
8187 --------------------------------------------------------------------------------
8188 --Variable Rent Date Attribute Category Validation
8189 --------------------------------------------------------------------------------
8190 IF (get_attribute_status('PN_VAR_RENTS') > 0) THEN
8191 IF NOT ((p_var_rent_rec.attribute_category = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute_category IS NULL)
8192 AND (p_var_rent_rec.attribute1 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute1 IS NULL)
8193 AND (p_var_rent_rec.attribute2 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute2 IS NULL)
8194 AND (p_var_rent_rec.attribute3 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute3 IS NULL)
8195 AND (p_var_rent_rec.attribute4 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute4 IS NULL)
8196 AND (p_var_rent_rec.attribute5 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute5 IS NULL)
8197 AND (p_var_rent_rec.attribute6 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute6 IS NULL)
8198 AND (p_var_rent_rec.attribute7 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute7 IS NULL)
8199 AND (p_var_rent_rec.attribute8 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute8 IS NULL)
8200 AND (p_var_rent_rec.attribute9 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute9 IS NULL)
8201 AND (p_var_rent_rec.attribute10 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute10 IS NULL)
8202 AND (p_var_rent_rec.attribute11 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute11 IS NULL)
8203 AND (p_var_rent_rec.attribute12 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute12 IS NULL)
8204 AND (p_var_rent_rec.attribute13 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute13 IS NULL)
8205 AND (p_var_rent_rec.attribute14 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute14 IS NULL)
8206 AND (p_var_rent_rec.attribute15 = pn_varen_util.g_pn_miss_char OR p_var_rent_rec.attribute15 IS NULL)
8207 ) THEN
8208 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_RENTS'
8209 , p_attribute_category => p_var_rent_rec.attribute_category
8210 , p_attribute1 => p_var_rent_rec.attribute1
8211 , p_attribute2 => p_var_rent_rec.attribute2
8212 , p_attribute3 => p_var_rent_rec.attribute3
8213 , p_attribute4 => p_var_rent_rec.attribute4
8214 , p_attribute5 => p_var_rent_rec.attribute5
8215 , p_attribute6 => p_var_rent_rec.attribute6
8216 , p_attribute7 => p_var_rent_rec.attribute7
8217 , p_attribute8 => p_var_rent_rec.attribute8
8218 , p_attribute9 => p_var_rent_rec.attribute9
8219 , p_attribute10 => p_var_rent_rec.attribute10
8220 , p_attribute11 => p_var_rent_rec.attribute11
8221 , p_attribute12 => p_var_rent_rec.attribute12
8222 , p_attribute13 => p_var_rent_rec.attribute13
8223 , p_attribute14 => p_var_rent_rec.attribute14
8224 , p_attribute15 => p_var_rent_rec.attribute15
8225 , x_return_msg => l_return_msg
8226 , x_return_status => l_return_status
8227 );
8228
8229 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
8230 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
8231 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN VAR DATES Descriptive Fields Error '||l_return_msg);
8232 fnd_msg_pub.ADD;
8233 RAISE fnd_api.g_exc_error;
8234 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
8235 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
8236 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN VAR DATES Descriptive Fields Error '||l_return_msg);
8237 fnd_msg_pub.ADD;
8238 RAISE fnd_api.g_exc_unexpected_error;
8239 END IF;
8240 END IF;
8241 END IF; -- End of attributes valitions in create var rent
8242 */
8243 EXCEPTION
8244 WHEN fnd_api.g_exc_error THEN
8245 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Dates: fnd_api.g_exc_error:'||SQLERRM
8246 , 3
8247 );
8248 x_return_status := fnd_api.g_ret_sts_error;
8249 WHEN OTHERS THEN
8250 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Dates: OTHERS:'||SQLERRM
8251 , 3
8252 );
8253 x_return_status := fnd_api.g_ret_sts_unexp_error;
8254 END validate_dates;
8255
8256 --------------------------------------------------------------------------------
8257 -- NAME : UPD_VALIDATE_RENT_DATES
8258 -- DESCRIPTION : Private procedure of Update Variable Rent Dates
8259 -- PURPOSE :
8260 -- INVOKED FROM :
8261 -- ARGUMENTS : P_UPD_VAR_RENT_REC_TYPE IN Parameter
8262 -- : X_RETURN_STATUS OUT Parameter
8263 -- REFERENCE :
8264 -- HISTORY :
8265 --
8266 -- 11-OCT-2010 vkatta o Created
8267 --------------------------------------------------------------------------------
8268 PROCEDURE upd_validate_rent_dates (
8269 p_upd_var_rent_rec_type IN OUT NOCOPY upd_var_rent_rec_type
8270 , x_return_status OUT NOCOPY VARCHAR2
8271 )
8272 IS
8273 l_return_status VARCHAR2 (1);
8274 l_return_msg VARCHAR2 (2000);
8275 BEGIN
8276 x_return_status := fnd_api.g_ret_sts_success;
8277
8278 -------------------------------------------------------------------------------------------
8279 -- variable rent calculation frequency to be equal to or less than the reporting frequency.
8280 -------------------------------------------------------------------------------------------
8281 IF ( p_upd_var_rent_rec_type.vrg_reptg_freq_code IS NOT NULL
8282 AND p_upd_var_rent_rec_type.reptg_freq_code IS NOT NULL
8283 )
8284 THEN
8285 pn_varen_util.check_calc_rept_freq_comb (p_vrg_reptg_freq_code => p_upd_var_rent_rec_type.vrg_reptg_freq_code
8286 , p_reptg_freq_code => p_upd_var_rent_rec_type.reptg_freq_code
8287 , x_return_status => x_return_status--l_return_status
8288 );
8289 pn_varen_util.pvt_debug
8290 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: check_calc_rept_freq_comb - x_return_status : '
8291 || x_return_status
8292 , 3
8293 );
8294 pn_varen_util.pvt_debug
8295 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: check_calc_rept_freq_comb - p_upd_var_rent_rec_type.vrg_reptg_freq_code : '
8296 || p_upd_var_rent_rec_type.vrg_reptg_freq_code
8297 , 3
8298 );
8299 pn_varen_util.pvt_debug
8300 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: check_calc_rept_freq_comb - p_upd_var_rent_rec_type.reptg_freq_code : '
8301 || p_upd_var_rent_rec_type.reptg_freq_code
8302 , 3
8303 );
8304
8305 IF x_return_status = fnd_api.g_ret_sts_error
8306 THEN
8307 fnd_message.set_name ('PN'
8308 , 'PN_VAR_CALC_REPTG_FREQ'
8309 );
8310 fnd_msg_pub.ADD;
8311 RAISE fnd_api.g_exc_error;
8312 pn_varen_util.pvt_debug
8313 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: Please reset the variable rent calculation frequency to be equal to or less than the reporting frequency :'
8314 || p_upd_var_rent_rec_type.vrg_reptg_freq_code
8315 || ' , '
8316 || p_upd_var_rent_rec_type.reptg_freq_code
8317 , 3
8318 );
8319 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
8320 THEN
8321 fnd_message.set_name ('PN'
8322 , 'PN_VAR_CALC_REPTG_FREQ'
8323 );
8324 fnd_msg_pub.ADD;
8325 RAISE fnd_api.g_exc_unexpected_error;
8326 pn_varen_util.pvt_debug
8327 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: Please reset the variable rent calculation frequency to be equal to or less than the reporting frequency :'
8328 || p_upd_var_rent_rec_type.vrg_reptg_freq_code
8329 || ' , '
8330 || p_upd_var_rent_rec_type.reptg_freq_code
8331 , 3
8332 );
8333 ELSE
8334 x_return_status := fnd_api.g_ret_sts_success;
8335 END IF;
8336 END IF;
8337
8338 -------------------------------------------------------------------------------------------
8339 -- Invoicing frequency to be equal to or less than the variable rent calculation frequency.
8340 -------------------------------------------------------------------------------------------
8341 IF ( p_upd_var_rent_rec_type.reptg_freq_code IS NOT NULL
8342 AND p_upd_var_rent_rec_type.invg_freq_code IS NOT NULL)
8343 THEN
8344 pn_varen_util.check_calc_inv_freq_comb (p_reptg_freq_code => p_upd_var_rent_rec_type.reptg_freq_code
8345 , p_invg_freq_code => p_upd_var_rent_rec_type.invg_freq_code
8346 , x_return_status => x_return_status--l_return_status
8347 );
8348 pn_varen_util.pvt_debug
8349 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: check_calc_inv_freq_comb - x_return_status : '
8350 || x_return_status
8351 , 3
8352 );
8353 pn_varen_util.pvt_debug
8354 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: check_calc_inv_freq_comb - p_upd_var_rent_rec_type.reptg_freq_code : '
8355 || p_upd_var_rent_rec_type.reptg_freq_code
8356 , 3
8357 );
8358 pn_varen_util.pvt_debug
8359 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: check_calc_inv_freq_comb - p_upd_var_rent_rec_type.invg_freq_code : '
8360 || p_upd_var_rent_rec_type.invg_freq_code
8361 , 3
8362 );
8363
8364 IF x_return_status = fnd_api.g_ret_sts_error
8365 THEN
8366 fnd_message.set_name ('PN'
8367 , 'PN_VAR_INVG_CALC_FREQ'
8368 );
8369 fnd_msg_pub.ADD;
8370 RAISE fnd_api.g_exc_error;
8371 pn_varen_util.pvt_debug
8372 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: Please reset the invoicing frequency to be equal to or less than the variable rent calculation frequency.'
8373 || p_upd_var_rent_rec_type.reptg_freq_code
8374 || ' , '
8375 || p_upd_var_rent_rec_type.invg_freq_code
8376 , 3
8377 );
8378 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
8379 THEN
8380 fnd_message.set_name ('PN'
8381 , 'PN_VAR_INVG_CALC_FREQ'
8382 );
8383 fnd_msg_pub.ADD;
8384 RAISE fnd_api.g_exc_unexpected_error;
8385 pn_varen_util.pvt_debug
8386 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: Please reset the invoicing frequency to be equal to or less than the variable rent calculation frequency.'
8387 || p_upd_var_rent_rec_type.reptg_freq_code
8388 || ' , '
8389 || p_upd_var_rent_rec_type.invg_freq_code
8390 , 3
8391 );
8392 ELSE
8393
8394 x_return_status := fnd_api.g_ret_sts_success;
8395 END IF;
8396 END IF;
8397
8398 ------------------------------------------------------------------------------------
8399 -- If Reporting Due Day is not null then it Reporting Due Day should be between 1-28
8400 ------------------------------------------------------------------------------------
8401 IF ( p_upd_var_rent_rec_type.reptg_day_of_month IS NOT NULL
8402 AND p_upd_var_rent_rec_type.reptg_days_after IS NOT NULL
8403 AND p_upd_var_rent_rec_type.reptg_day_of_month >= 1
8404 AND p_upd_var_rent_rec_type.reptg_day_of_month <= 28
8405 )
8406 THEN
8407 -- either of the value i.e, Due Day or No. of Days After should be null
8408 p_upd_var_rent_rec_type.reptg_days_after := NULL;
8409 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Validate_Rent_Dates: Reporting Frequecy Due day is success'
8410 , 3
8411 );
8412 --
8413 x_return_status := fnd_api.g_ret_sts_success;
8414 --
8415 ELSIF ( p_upd_var_rent_rec_type.reptg_day_of_month IS NOT NULL
8416 AND p_upd_var_rent_rec_type.reptg_days_after IS NULL
8417 AND p_upd_var_rent_rec_type.reptg_day_of_month >= 1
8418 AND p_upd_var_rent_rec_type.reptg_day_of_month <= 28
8419 )
8420 THEN
8421 pn_varen_util.pvt_debug
8422 ('PN_VAREN_PVT: Upd_Validate_Rent_Dates: Reporting Frequecy Due day and No. of Days After is success'
8423 , 3
8424 );
8425 --p_upd_var_rent_rec_type.reptg_days_after := NULL;
8426 --
8427 x_return_status := fnd_api.g_ret_sts_success;
8428 ELSIF ( p_upd_var_rent_rec_type.reptg_day_of_month IS NOT NULL
8429 AND p_upd_var_rent_rec_type.reptg_days_after IS NOT NULL
8430 AND p_upd_var_rent_rec_type.reptg_day_of_month < 1
8431 AND p_upd_var_rent_rec_type.reptg_day_of_month > 28
8432 )
8433 THEN
8434 fnd_message.set_name ('PN'
8435 , 'PN_VAR_REPTG_DAY_OF_MONTH'
8436 );
8437 fnd_msg_pub.ADD;
8438 RAISE fnd_api.g_exc_error;
8439 p_upd_var_rent_rec_type.reptg_days_after := NULL;
8440 --
8441 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Validate_Rent_Dates: Reporting Frequecy Due day is error '
8442 , 3
8443 );
8444 pn_varen_util.pvt_debug ( 'Reporting day of month is not between 1 and 28 : '
8445 || p_upd_var_rent_rec_type.reptg_day_of_month
8446 , 3
8447 );
8448 --
8449 x_return_status := fnd_api.g_ret_sts_error;
8450 END IF;
8451
8452 ------------------------------------------------------------------------------------
8453 -- If Invoicing Due Day is not null then it Invoicing Due Day should be between 1-28
8454 ------------------------------------------------------------------------------------
8455 IF ( p_upd_var_rent_rec_type.invg_day_of_month IS NOT NULL
8456 AND p_upd_var_rent_rec_type.invg_days_after IS NOT NULL
8457 AND ( p_upd_var_rent_rec_type.invg_day_of_month >= 1
8458 AND p_upd_var_rent_rec_type.invg_day_of_month <= 28)
8459 )
8460 THEN
8461 -- either of the value i.e, Due Day or No. of Days After should be null
8462 p_upd_var_rent_rec_type.invg_days_after := NULL;
8463 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Validate_Rent_Dates: Invoicing Frequecy Due day is success'
8464 , 3
8465 );
8466 --
8467 x_return_status := fnd_api.g_ret_sts_success;
8468 ELSIF ( p_upd_var_rent_rec_type.invg_day_of_month IS NOT NULL
8469 AND p_upd_var_rent_rec_type.invg_days_after IS NULL
8470 AND ( p_upd_var_rent_rec_type.invg_day_of_month >= 1
8471 AND p_upd_var_rent_rec_type.invg_day_of_month <= 28)
8472 )
8473 THEN
8474 pn_varen_util.pvt_debug
8475 ('PN_VAREN_PVT: Upd_Validate_Rent_Dates: Invoicing Frequecy Due day and No. of Days After is success'
8476 , 3
8477 );
8478 --
8479 x_return_status := fnd_api.g_ret_sts_success;
8480 ELSIF ( p_upd_var_rent_rec_type.invg_day_of_month IS NOT NULL
8481 AND p_upd_var_rent_rec_type.invg_days_after IS NOT NULL
8482 AND ( p_upd_var_rent_rec_type.invg_day_of_month < 1
8483 AND p_upd_var_rent_rec_type.invg_day_of_month > 28)
8484 )
8485 THEN
8486 fnd_message.set_name ('PN'
8487 , 'PN_VAR_INVG_DAY_OF_MONTH'
8488 );
8489 fnd_msg_pub.ADD;
8490 RAISE fnd_api.g_exc_error;
8491 p_upd_var_rent_rec_type.invg_days_after := NULL;
8492 --
8493 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Validate_Rent_Dates: Invoicing Frequecy Due day error '
8494 , 3
8495 );
8496 pn_varen_util.pvt_debug ( 'Invoicing day of month is not between 1 and 28 : '
8497 || p_upd_var_rent_rec_type.invg_day_of_month
8498 , 3
8499 );
8500 x_return_status := fnd_api.g_ret_sts_error;
8501 END IF;
8502
8503 --------------------------------------------------------------------------------
8504 --Variable Rent Date Attribute Category Validation
8505 --------------------------------------------------------------------------------
8506 -- Below code has been commented by Vivek on 11-DEC-2010
8507 /*
8508 IF (p_upd_var_rent_rec_type.attribute_category IS NOT NULL)
8509 THEN
8510 pn_varen_util.validate_flex_fields (p_desc_flex_name => g_var_dates_desc_name
8511 , p_attribute_category => p_upd_var_rent_rec_type.dates_attribute_category
8512 , p_attribute1 => p_upd_var_rent_rec_type.dates_attribute1
8513 , p_attribute2 => p_upd_var_rent_rec_type.dates_attribute2
8514 , p_attribute3 => p_upd_var_rent_rec_type.dates_attribute3
8515 , p_attribute4 => p_upd_var_rent_rec_type.dates_attribute4
8516 , p_attribute5 => p_upd_var_rent_rec_type.dates_attribute5
8517 , p_attribute6 => p_upd_var_rent_rec_type.dates_attribute6
8518 , p_attribute7 => p_upd_var_rent_rec_type.dates_attribute7
8519 , p_attribute8 => p_upd_var_rent_rec_type.dates_attribute8
8520 , p_attribute9 => p_upd_var_rent_rec_type.dates_attribute9
8521 , p_attribute10 => p_upd_var_rent_rec_type.dates_attribute10
8522 , p_attribute11 => p_upd_var_rent_rec_type.dates_attribute11
8523 , p_attribute12 => p_upd_var_rent_rec_type.dates_attribute12
8524 , p_attribute13 => p_upd_var_rent_rec_type.dates_attribute13
8525 , p_attribute14 => p_upd_var_rent_rec_type.dates_attribute14
8526 , p_attribute15 => p_upd_var_rent_rec_type.dates_attribute15
8527 , x_return_msg => l_return_msg
8528 , x_return_status => x_return_status--l_return_status
8529 );
8530
8531 IF l_return_msg = 'VALID'
8532 THEN
8533 x_return_status := fnd_api.g_ret_sts_success;
8534 ELSE
8535 x_return_status := fnd_api.g_ret_sts_error;
8536 END IF;
8537
8538
8539 IF x_return_status <> fnd_api.g_ret_sts_success
8540 THEN
8541 fnd_message.set_name ('PN'
8542 , 'PN_OTHERS_EXCEPTION'
8543 );
8544 fnd_message.set_token('ERR_MSG', 'Rent Dates DFF validation failed');
8545 fnd_msg_pub.ADD;
8546 RAISE fnd_api.g_exc_error;
8547 pn_varen_util.pvt_debug
8548 ( 'PN_VAREN_PVT: pn_varen_util.validate_flex_fields dates dff validation failed', 3);
8549 END IF;
8550
8551 END IF;
8552 */
8553 /* --Commented as DFF is not available
8554 -- Below code has been added by Vivek on 11-DEC-2010
8555
8556 IF (get_attribute_status('PN_VAR_RENTS') > 0) THEN
8557 IF NOT ((p_upd_var_rent_rec_type.dates_attribute_category = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute_category IS NULL)
8558 AND (p_upd_var_rent_rec_type.dates_attribute1 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute1 IS NULL)
8559 AND (p_upd_var_rent_rec_type.dates_attribute2 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute2 IS NULL)
8560 AND (p_upd_var_rent_rec_type.dates_attribute3 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute3 IS NULL)
8561 AND (p_upd_var_rent_rec_type.dates_attribute4 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute4 IS NULL)
8562 AND (p_upd_var_rent_rec_type.dates_attribute5 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute5 IS NULL)
8563 AND (p_upd_var_rent_rec_type.dates_attribute6 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute6 IS NULL)
8564 AND (p_upd_var_rent_rec_type.dates_attribute7 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute7 IS NULL)
8565 AND (p_upd_var_rent_rec_type.dates_attribute8 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute8 IS NULL)
8566 AND (p_upd_var_rent_rec_type.dates_attribute9 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute9 IS NULL)
8567 AND (p_upd_var_rent_rec_type.dates_attribute10 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute10 IS NULL)
8568 AND (p_upd_var_rent_rec_type.dates_attribute11 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute11 IS NULL)
8569 AND (p_upd_var_rent_rec_type.dates_attribute12 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute12 IS NULL)
8570 AND (p_upd_var_rent_rec_type.dates_attribute13 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute13 IS NULL)
8571 AND (p_upd_var_rent_rec_type.dates_attribute14 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute14 IS NULL)
8572 AND (p_upd_var_rent_rec_type.dates_attribute15 = pn_varen_util.g_pn_miss_char OR p_upd_var_rent_rec_type.dates_attribute15 IS NULL)
8573 ) THEN
8574 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_RENTS'
8575 , p_attribute_category => p_upd_var_rent_rec_type.dates_attribute_category
8576 , p_attribute1 => p_upd_var_rent_rec_type.dates_attribute1
8577 , p_attribute2 => p_upd_var_rent_rec_type.dates_attribute2
8578 , p_attribute3 => p_upd_var_rent_rec_type.dates_attribute3
8579 , p_attribute4 => p_upd_var_rent_rec_type.dates_attribute4
8580 , p_attribute5 => p_upd_var_rent_rec_type.dates_attribute5
8581 , p_attribute6 => p_upd_var_rent_rec_type.dates_attribute6
8582 , p_attribute7 => p_upd_var_rent_rec_type.dates_attribute7
8583 , p_attribute8 => p_upd_var_rent_rec_type.dates_attribute8
8584 , p_attribute9 => p_upd_var_rent_rec_type.dates_attribute9
8585 , p_attribute10 => p_upd_var_rent_rec_type.dates_attribute10
8586 , p_attribute11 => p_upd_var_rent_rec_type.dates_attribute11
8587 , p_attribute12 => p_upd_var_rent_rec_type.dates_attribute12
8588 , p_attribute13 => p_upd_var_rent_rec_type.dates_attribute13
8589 , p_attribute14 => p_upd_var_rent_rec_type.dates_attribute14
8590 , p_attribute15 => p_upd_var_rent_rec_type.dates_attribute15
8591 , x_return_msg => l_return_msg
8592 , x_return_status => x_return_status
8593 );
8594
8595 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
8596 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
8597 fnd_message.set_token ('ERR_MSG', l_return_msg);
8598 fnd_msg_pub.ADD;
8599 RAISE fnd_api.g_exc_error;
8600 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
8601 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
8602 fnd_message.set_token ('ERR_MSG', l_return_msg);
8603 fnd_msg_pub.ADD;
8604 RAISE fnd_api.g_exc_unexpected_error;
8605 END IF;
8606 END IF;
8607 END IF; -- End of attributes valitions in update var rent dates*/
8608
8609 ------------------------End of 11-Dec-2010 DFF changes----------------------------
8610
8611
8612 EXCEPTION
8613 WHEN OTHERS
8614 THEN
8615 pn_varen_util.pvt_debug
8616 ( 'PN_VAREN_PVT: Upd_Validate_Rent_Dates: Exception Result of Update Validate Rent dates PACKAGE'
8617 || SQLERRM
8618 , 3
8619 );
8620 x_return_status := fnd_api.g_ret_sts_error;
8621 RAISE;
8622 END upd_validate_rent_dates;
8623
8624 --------------------------------------------------------------------------------
8625 -- NAME : CALL_VAREN_INSERT_ROW
8626 -- DESCRIPTION : Private procedure of Insert record into variable rent
8627 -- PURPOSE :
8628 -- INVOKED FROM :
8629 -- ARGUMENTS : P_VAR_RENT_ID IN Parameter
8630 -- : P_VAR_RENT_REC IN Parameter
8631 -- : X_RETURN_STATUS OUT Parameter
8632 -- REFERENCE :
8633 -- HISTORY :
8634 --
8635 -- 20-SEP-2010 vkatta o Created
8636 --------------------------------------------------------------------------------
8637 PROCEDURE call_varen_insert_row (
8638 p_var_rent_id IN OUT NOCOPY NUMBER
8639 , p_var_rent_rec IN OUT NOCOPY pn_varen_pvt.var_rent_rec_type
8640 , x_return_status OUT NOCOPY VARCHAR2
8641 )
8642 IS
8643 l_accrual VARCHAR2 (1) DEFAULT 'Y';
8644 l_uom_code VARCHAR2 (3) DEFAULT 'SFT';
8645 BEGIN
8646 x_return_status := fnd_api.g_ret_sts_success;
8647 pn_varen_util.pvt_debug
8648 ('PN_VAREN_PVT: Call_Varen_Insert_Row: Calling Variable Rent Insert Procedure pn_var_rents_pkg.insert_row'
8649 , 3
8650 );
8651 -- pn_varen_util.pvt_debug ('PN_VAREN_PVT: Call_Varen_Insert_Row: START OF CALLING PN_VAR_RENTS_PKG.INSERT_ROW PACKAGE');
8652 pn_var_rents_pkg.insert_row (x_rowid => g_rowid
8653 , x_var_rent_id => p_var_rent_id --l_var_rent_id
8654 , x_rent_num => p_var_rent_rec.rent_num
8655 , x_lease_id => p_var_rent_rec.lease_id
8656 , x_location_id => p_var_rent_rec.location_id
8657 , x_proration_days => p_var_rent_rec.proration_days
8658 , x_purpose_code => p_var_rent_rec.purpose_code
8659 , x_type_code => p_var_rent_rec.type_code
8660 , x_commencement_date => p_var_rent_rec.commencement_date
8661 , x_termination_date => p_var_rent_rec.termination_date
8662 , x_abstracted_by_user => p_var_rent_rec.abstracted_by_user_id
8663 ,x_cumulative_vol => p_var_rent_rec.cumulative_vol_code
8664 , x_accrual => l_accrual
8665 , x_uom_code => l_uom_code
8666 , x_invoice_on => p_var_rent_rec.invoice_on_code
8667 , x_negative_rent => p_var_rent_rec.negative_rent_code
8668 , x_term_template_id => p_var_rent_rec.term_template_id
8669 , x_attribute_category => p_var_rent_rec.attribute_category
8670 , x_attribute1 => p_var_rent_rec.attribute1
8671 , x_attribute2 => p_var_rent_rec.attribute2
8672 , x_attribute3 => p_var_rent_rec.attribute3
8673 , x_attribute4 => p_var_rent_rec.attribute4
8674 , x_attribute5 => p_var_rent_rec.attribute5
8675 , x_attribute6 => p_var_rent_rec.attribute6
8676 , x_attribute7 => p_var_rent_rec.attribute7
8677 , x_attribute8 => p_var_rent_rec.attribute8
8678 , x_attribute9 => p_var_rent_rec.attribute9
8679 , x_attribute10 => p_var_rent_rec.attribute10
8680 , x_attribute11 => p_var_rent_rec.attribute11
8681 , x_attribute12 => p_var_rent_rec.attribute12
8682 , x_attribute13 => p_var_rent_rec.attribute13
8683 , x_attribute14 => p_var_rent_rec.attribute14
8684 , x_attribute15 => p_var_rent_rec.attribute15
8685 , x_creation_date => NVL (p_var_rent_rec.creation_date,g_sysdate)
8686 , x_created_by => NVL (p_var_rent_rec.created_by,g_user_id)
8687 , x_last_update_date => NVL (p_var_rent_rec.last_update_date,g_sysdate)
8688 , x_last_updated_by => NVL (p_var_rent_rec.last_updated_by, g_user_id)
8689 , x_last_update_login => NVL (p_var_rent_rec.last_update_login,g_user_id)
8690 , x_currency_code => p_var_rent_rec.currency_code
8691 , x_org_id => g_org_id
8692 , x_agreement_template_id => p_var_rent_rec.agreement_template_id
8693 , x_proration_rule => p_var_rent_rec.proration_rule_code
8694 , x_chg_cal_var_rent_id => NULL
8695 --p_var_rent_rec.chg_cal_var_rent_id, Initial value
8696 );
8697 pn_varen_util.pvt_debug
8698 ('PN_VAREN_PVT: Call_Varen_Insert_Row: End OF CALLING PN_VAR_RENTS_PKG.INSERT_ROW PACKAGE'
8699 , 3
8700 );
8701 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Call_Varen_Insert_Row: p_var_rent_id : '
8702 || p_var_rent_id
8703 , 3
8704 );
8705 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Call_Varen_Insert_Row: Before - Value of p_var_rent_id is '
8706 || p_var_rent_id
8707 , 3
8708 );
8709 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Call_Varen_Insert_Row: Before - Value of g_var_rent_id is '
8710 || g_var_rent_id
8711 , 3
8712 );
8713 g_var_rent_id := p_var_rent_id;
8714 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Call_Varen_Insert_Row: g_var_rent_id : '
8715 || g_var_rent_id
8716 , 3
8717 );
8718 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Call_Varen_Insert_Row: After - Value of p_var_rent_id is '
8719 || p_var_rent_id
8720 , 3
8721 );
8722 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Call_Varen_Insert_Row: After - Value of g_var_rent_id is '
8723 || g_var_rent_id
8724 , 3
8725 );
8726 EXCEPTION
8727 WHEN OTHERS
8728 THEN
8729 pn_varen_util.pvt_debug
8730 ( 'PN_VAREN_PVT: Call_Varen_Insert_Row: Exception Result of PN_VAR_RENTS_PKG.INSERT_ROW PACKAGE'
8731 || SQLERRM
8732 , 3
8733 );
8734 x_return_status := fnd_api.g_ret_sts_error;
8735
8736 END call_varen_insert_row;
8737
8738 --------------------------------------------------------------------------------
8739 -- NAME : UPDATE_VARENT
8740 -- DESCRIPTION : Private procedure of Insert record into variable rent
8741 -- PURPOSE :
8742 -- INVOKED FROM :
8743 -- ARGUMENTS : P_UPD_VAR_RENT_REC_TYPE IN Parameter
8744 -- : X_RETURN_STATUS OUT Parameter
8745 -- REFERENCE :
8746 -- HISTORY :
8747 --
8748 -- 11-OCT-2010 vkatta o Created
8749 --------------------------------------------------------------------------------
8750 PROCEDURE update_varent (
8751 --p_var_rent_id IN OUT NOCOPY NUMBER
8752 p_upd_var_rent_rec_type IN OUT NOCOPY pn_varen_pvt.upd_var_rent_rec_type
8753 , x_return_status OUT NOCOPY VARCHAR2
8754 )
8755 IS
8756 l_accrual VARCHAR2 (1) DEFAULT 'Y';
8757 l_uom_code VARCHAR2 (3) DEFAULT 'SFT';
8758 l_null VARCHAR2 (1) DEFAULT NULL;
8759 BEGIN
8760 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Varent: Start of Calling PN_VAR_RENTS_PKG.UPDATE_ROW PACKAGE'
8761 , 3
8762 );
8763 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.VAR_RENT_ID :'
8764 || p_upd_var_rent_rec_type.var_rent_id
8765 , 3
8766 );
8767 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.RENT_NUM :'
8768 || p_upd_var_rent_rec_type.rent_num
8769 , 3
8770 );
8771 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.LEASE_ID :'
8772 || p_upd_var_rent_rec_type.lease_id
8773 , 3
8774 );
8775 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.LOCATION_ID :'
8776 || p_upd_var_rent_rec_type.location_id
8777 , 3
8778 );
8779 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.PRORATION_DAYS :'
8780 || p_upd_var_rent_rec_type.proration_days
8781 , 3
8782 );
8783 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.PURPOSE_CODE :'
8784 || p_upd_var_rent_rec_type.purpose_code
8785 , 3
8786 );
8787 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.TYPE_CODE :'
8788 || p_upd_var_rent_rec_type.type_code
8789 , 3
8790 );
8791 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.COMMENCEMENT_DATE :'
8792 || p_upd_var_rent_rec_type.commencement_date
8793 , 3
8794 );
8795 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.TERMINATION_DATE :'
8796 || p_upd_var_rent_rec_type.termination_date
8797 , 3
8798 );
8799 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.ABSTRACTED_BY_USER_ID :'
8800 || p_upd_var_rent_rec_type.abstracted_by_user_id
8801 , 3
8802 );
8803 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.CUMULATIVE_VOL_CODE :'
8804 || p_upd_var_rent_rec_type.cumulative_vol_code
8805 , 3
8806 );
8807 --pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.ACCRUAL_CODE :'||p_upd_var_rent_rec_type.ACCRUAL_CODE , 3 );
8808 --pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.UOM_CODE :'||p_upd_var_rent_rec_type.UOM_CODE , 3 );
8809 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.INVOICE_ON_CODE :'
8810 || p_upd_var_rent_rec_type.invoice_on_code
8811 , 3
8812 );
8813 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.NEGATIVE_RENT_CODE :'
8814 || p_upd_var_rent_rec_type.negative_rent_code
8815 , 3
8816 );
8817 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.TERM_TEMPLATE_ID :'
8818 || p_upd_var_rent_rec_type.term_template_id
8819 , 3
8820 );
8821 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.CURRENCY_CODE :'
8822 || p_upd_var_rent_rec_type.currency_code
8823 , 3
8824 );
8825 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.AGREEMENT_TEMPLATE_ID :'
8826 || p_upd_var_rent_rec_type.agreement_template_id
8827 , 3
8828 );
8829 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.PRORATION_RULE_CODE :'
8830 || p_upd_var_rent_rec_type.proration_rule_code
8831 , 3
8832 );
8833 --pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Varent: p_upd_var_rent_rec_type.CHG_CAL_VAR_RENT_ID :'||p_upd_var_rent_rec_type.CHG_CAL_VAR_RENT_ID , 3 );
8834 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Varent: End of Calling PN_VAR_RENTS_PKG.UPDATE_ROW PACKAGE'
8835 , 3
8836 );
8837 pn_var_rents_pkg.update_row (x_var_rent_id => p_upd_var_rent_rec_type.var_rent_id
8838 , x_rent_num => p_upd_var_rent_rec_type.rent_num
8839 , x_lease_id => p_upd_var_rent_rec_type.lease_id
8840 , x_location_id => p_upd_var_rent_rec_type.location_id
8841 , x_proration_days => p_upd_var_rent_rec_type.proration_days
8842 , x_purpose_code => p_upd_var_rent_rec_type.purpose_code
8843 , x_type_code => p_upd_var_rent_rec_type.type_code
8844 , x_commencement_date => p_upd_var_rent_rec_type.commencement_date
8845 , x_termination_date => p_upd_var_rent_rec_type.termination_date
8846 , x_abstracted_by_user => p_upd_var_rent_rec_type.abstracted_by_user_id
8847 , x_cumulative_vol => p_upd_var_rent_rec_type.cumulative_vol_code
8848 , x_accrual => l_accrual
8849 -- IMP -- check p_upd_var_rent_rec_type.ACCRUAL_CODE
8850 , x_uom_code => l_uom_code
8851 -- IMP -- check p_upd_var_rent_rec_type.UOM_CODE
8852 --X_ROUNDING => p_upd_var_rent_rec_type.X_ROUNDING
8853 , x_invoice_on => p_upd_var_rent_rec_type.invoice_on_code
8854 , x_negative_rent => p_upd_var_rent_rec_type.negative_rent_code
8855 , x_term_template_id => p_upd_var_rent_rec_type.term_template_id
8856 -- codev X_ABATEMENT_AMOUNT => p_upd_var_rent_rec_type.X_ABATEMENT_AMOUNT
8857 , x_attribute_category => p_upd_var_rent_rec_type.attribute_category
8858 , x_attribute1 => p_upd_var_rent_rec_type.attribute1
8859 , x_attribute2 => p_upd_var_rent_rec_type.attribute2
8860 , x_attribute3 => p_upd_var_rent_rec_type.attribute3
8861 , x_attribute4 => p_upd_var_rent_rec_type.attribute4
8862 , x_attribute5 => p_upd_var_rent_rec_type.attribute5
8863 , x_attribute6 => p_upd_var_rent_rec_type.attribute6
8864 , x_attribute7 => p_upd_var_rent_rec_type.attribute7
8865 , x_attribute8 => p_upd_var_rent_rec_type.attribute8
8866 , x_attribute9 => p_upd_var_rent_rec_type.attribute9
8867 , x_attribute10 => p_upd_var_rent_rec_type.attribute10
8868 , x_attribute11 => p_upd_var_rent_rec_type.attribute11
8869 , x_attribute12 => p_upd_var_rent_rec_type.attribute12
8870 , x_attribute13 => p_upd_var_rent_rec_type.attribute13
8871 , x_attribute14 => p_upd_var_rent_rec_type.attribute14
8872 , x_attribute15 => p_upd_var_rent_rec_type.attribute15
8873 , x_last_update_date => g_sysdate --p_upd_var_rent_rec_type.last_update_date
8874 , x_last_updated_by => g_user_id --p_upd_var_rent_rec_type.last_updated_by
8875 , x_last_update_login => g_user_id
8876 --p_upd_var_rent_rec_type.last_update_login
8877 , x_currency_code => p_upd_var_rent_rec_type.currency_code
8878 , x_agreement_template_id => p_upd_var_rent_rec_type.agreement_template_id
8879 , x_proration_rule => p_upd_var_rent_rec_type.proration_rule_code
8880 , x_chg_cal_var_rent_id => l_null
8881 --p_upd_var_rent_rec_type.CHG_CAL_VAR_RENT_ID
8882 );
8883 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Varent: End OF CALLING PN_VAR_RENTS_PKG.UPDATE_ROW PACKAGE'
8884 , 3
8885 );
8886 EXCEPTION
8887 WHEN OTHERS
8888 THEN
8889 pn_varen_util.pvt_debug
8890 ( 'PN_VAREN_PVT: Update_Varent: Exception Result of PN_VAR_RENTS_PKG.UPDATE_ROW PACKAGE'
8891 || SQLERRM
8892 , 3
8893 );
8894 END update_varent;
8895
8896 --------------------------------------------------------------------------------
8897 -- NAME : CALL_VAREN_DATES_INSERT_ROW
8898 -- DESCRIPTION : Private procedure of Insert record into variable rent dates
8899 -- PURPOSE :
8900 -- INVOKED FROM :
8901 -- ARGUMENTS : P_VAR_RENT_ID IN Parameter
8902 -- : P_VAR_RENT_REC OUT Parameter
8903 -- : X_RETURN_STATUS OUT Parameter
8904 -- REFERENCE :
8905 -- HISTORY :
8906 --
8907 -- 20-SEP-2010 vkatta o Created
8908 --------------------------------------------------------------------------------
8909 PROCEDURE call_varen_dates_insert_row (
8910 p_var_rent_id IN NUMBER
8911 , p_var_rent_rec IN OUT NOCOPY pn_varen_pvt.var_rent_rec_type
8912 , x_return_status OUT NOCOPY VARCHAR2
8913 )
8914 IS
8915 l_period_freq_code VARCHAR2 (2) DEFAULT 'YR';
8916 l_invg_spread_code VARCHAR2 (2) DEFAULT 'OT';
8917 l_audit_freq_code VARCHAR2 (3) DEFAULT 'MON';
8918 l_recon_freq_code VARCHAR2 (2) DEFAULT 'YR';
8919 l_var_year_start_date DATE DEFAULT TO_DATE ('01-01-2000'
8920 , 'DD-MM-RRRR'
8921 );
8922 BEGIN
8923 l_var_rent_date_id := NULL;
8924 x_return_status := fnd_api.g_ret_sts_success;
8925 pn_varen_util.pvt_debug
8926 ('PN_VAREN_PVT: call_varen_dates_insert_row: Calling PN_VAR_RENT_DATES_PKG.INSERT_ROW Package'
8927 , 3
8928 );
8929 pn_varen_util.pvt_debug
8930 ('PN_VAREN_PVT: call_varen_dates_insert_row: START OF CALLING PN_VAR_RENT_DATES_PKG.INSERT_ROW PACKAGE'
8931 , 3
8932 );
8933 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: call_varen_dates_insert_row: Var Rent Date ID: '
8934 || l_var_rent_date_id
8935 , 3
8936 );
8937 pn_var_rent_dates_pkg.insert_row (x_rowid => g_rowid
8938 , x_var_rent_date_id => l_var_rent_date_id
8939 , x_var_rent_id => l_var_rent_id
8940 , x_gl_period_set_name => p_var_rent_rec.gl_period_set_name
8941 , x_period_freq_code => l_period_freq_code -- 'YR'
8942 , x_reptg_freq_code => p_var_rent_rec.reptg_freq_code
8943 , x_reptg_day_of_month => p_var_rent_rec.reptg_day_of_month
8944 , x_reptg_days_after => p_var_rent_rec.reptg_days_after
8945 , x_invg_freq_code => p_var_rent_rec.invg_freq_code
8946 , x_invg_day_of_month => p_var_rent_rec.invg_day_of_month
8947 , x_invg_days_after => p_var_rent_rec.invg_days_after
8948 , x_invg_spread_code => l_invg_spread_code -- 'OT'
8949 , x_invg_term => NULL
8950 , x_audit_freq_code => l_audit_freq_code --'MON'
8951 , x_audit_day_of_month => NULL
8952 , x_audit_days_after => NULL
8953 , x_recon_freq_code => l_recon_freq_code -- 'YR'
8954 , x_recon_day_of_month => NULL
8955 , x_recon_days_after => NULL
8956 , x_attribute_category => p_var_rent_rec.dates_attribute_category
8957 , x_attribute1 => p_var_rent_rec.dates_attribute1
8958 , x_attribute2 => p_var_rent_rec.dates_attribute2
8959 , x_attribute3 => p_var_rent_rec.dates_attribute3
8960 , x_attribute4 => p_var_rent_rec.dates_attribute4
8961 , x_attribute5 => p_var_rent_rec.dates_attribute5
8962 , x_attribute6 => p_var_rent_rec.dates_attribute6
8963 , x_attribute7 => p_var_rent_rec.dates_attribute7
8964 , x_attribute8 => p_var_rent_rec.dates_attribute8
8965 , x_attribute9 => p_var_rent_rec.dates_attribute9
8966 , x_attribute10 => p_var_rent_rec.dates_attribute10
8967 , x_attribute11 => p_var_rent_rec.dates_attribute11
8968 , x_attribute12 => p_var_rent_rec.dates_attribute12
8969 , x_attribute13 => p_var_rent_rec.dates_attribute13
8970 , x_attribute14 => p_var_rent_rec.dates_attribute14
8971 , x_attribute15 => p_var_rent_rec.dates_attribute15
8972 , x_creation_date => NVL (p_var_rent_rec.creation_date
8973 , g_sysdate
8974 )
8975 , x_created_by => NVL (p_var_rent_rec.created_by
8976 , g_user_id
8977 )
8978 , x_last_update_date => NVL (p_var_rent_rec.last_update_date
8979 , g_sysdate
8980 )
8981 , x_last_updated_by => NVL (p_var_rent_rec.last_updated_by
8982 , g_user_id
8983 )
8984 , x_last_update_login => NVL (p_var_rent_rec.last_update_login
8985 , g_user_id
8986 )
8987 , x_org_id => g_org_id
8988 , x_use_gl_calendar => NVL (p_var_rent_rec.use_gl_calendar
8989 , 'N'
8990 )
8991 , x_period_type => p_var_rent_rec.period_type
8992 , x_year_start_date => NVL (p_var_rent_rec.year_start_date
8993 , l_var_year_start_date
8994 )
8995 , x_comments => p_var_rent_rec.comments
8996 , x_vrg_reptg_freq_code => p_var_rent_rec.vrg_reptg_freq_code
8997 );
8998 -- END IF;
8999 pn_varen_util.pvt_debug
9000 ('PN_VAREN_PVT: call_varen_dates_insert_row: End OF CALLING PN_VAR_RENT_DATES_PKG.INSERT_ROW PACKAGE'||l_var_rent_date_id
9001 , 3
9002 );
9003 x_return_status := fnd_api.g_ret_sts_success;
9004 EXCEPTION
9005 WHEN OTHERS
9006 THEN
9007 pn_varen_util.pvt_debug
9008 ('PN_VAREN_PVT: call_varen_dates_insert_row: Exception Result of PN_VAR_RENT_DATES_PKG.INSERT_ROW PACKAGE'
9009 , 3
9010 );
9011 x_return_status := fnd_api.g_ret_sts_error;
9012 END call_varen_dates_insert_row;
9013
9014 --------------------------------------------------------------------------------
9015 -- NAME : UPDATE_VAREN_DATES
9016 -- DESCRIPTION : Private procedure of Update record into variable rent dates
9017 -- PURPOSE :
9018 -- INVOKED FROM :
9019 -- ARGUMENTS : P_UPD_VAR_RENT_REC_TYPE IN Parameter
9020 -- : X_RETURN_STATUS OUT Parameter
9021 -- REFERENCE :
9022 -- HISTORY :
9023 --
9024 -- 11-OCT-2010 vkatta o Created
9025 --------------------------------------------------------------------------------
9026 PROCEDURE update_varen_dates (
9027 --p_var_rent_id IN NUMBER
9028 --,
9029 p_upd_var_rent_rec_type IN OUT NOCOPY pn_varen_pvt.upd_var_rent_rec_type
9030 , x_return_status OUT NOCOPY VARCHAR2
9031 )
9032 IS
9033 l_period_freq_code VARCHAR2 (2) DEFAULT 'YR';
9034 l_invg_spread_code VARCHAR2 (2) DEFAULT NULL;
9035 l_audit_freq_code VARCHAR2 (3) DEFAULT NULL;
9036 l_invg_term NUMBER DEFAULT NULL;
9037 l_null NUMBER DEFAULT NULL;
9038 BEGIN
9039
9040 x_return_status := fnd_api.g_ret_sts_success;
9041 pn_varen_util.pvt_debug
9042 ('PN_VAREN_PVT: Call_Varen_Insert_Row: Start of calling PN_VAR_RENT_DATES_PKG.UPDATE_ROW PACKAGE'
9043 , 3
9044 );
9045 pn_varen_util.pvt_debug
9046 ('PN_VAREN_PVT: Call_Varen_Insert_Row: Start of Input parameters PN_VAR_RENT_DATES_PKG.UPDATE_ROW PACKAGE'
9047 , 3
9048 );
9049 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.VAR_RENT_DATE_ID :'
9050 || p_upd_var_rent_rec_type.var_rent_date_id
9051 , 3
9052 );
9053 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.VAR_RENT_ID :'
9054 || p_upd_var_rent_rec_type.var_rent_id
9055 , 3
9056 );
9057 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.GL_PERIOD_SET_NAME :'
9058 || p_upd_var_rent_rec_type.gl_period_set_name
9059 , 3
9060 );
9061 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.REPTG_FREQ_CODE :'
9062 || p_upd_var_rent_rec_type.reptg_freq_code
9063 , 3
9064 );
9065 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.REPTG_DAY_OF_MONTH :'
9066 || p_upd_var_rent_rec_type.reptg_day_of_month
9067 , 3
9068 );
9069 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.REPTG_DAYS_AFTER :'
9070 || p_upd_var_rent_rec_type.reptg_days_after
9071 , 3
9072 );
9073 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.INVG_FREQ_CODE :'
9074 || p_upd_var_rent_rec_type.invg_freq_code
9075 , 3
9076 );
9077 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.INVG_DAY_OF_MONTH :'
9078 || p_upd_var_rent_rec_type.invg_day_of_month
9079 , 3
9080 );
9081 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.INVG_DAYS_AFTER :'
9082 || p_upd_var_rent_rec_type.invg_days_after
9083 , 3
9084 );
9085 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.AUDIT_DAY_OF_MONTH :'
9086 || p_upd_var_rent_rec_type.audit_day_of_month
9087 , 3
9088 );
9089 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.AUDIT_DAYS_AFTER :'
9090 || p_upd_var_rent_rec_type.audit_days_after
9091 , 3
9092 );
9093 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.RECON_DAY_OF_MONTH :'
9094 || p_upd_var_rent_rec_type.recon_day_of_month
9095 , 3
9096 );
9097 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.RECON_DAYS_AFTER :'
9098 || p_upd_var_rent_rec_type.recon_days_after
9099 , 3
9100 );
9101 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.ATTRIBUTE_CATEGORY :'
9102 || p_upd_var_rent_rec_type.attribute_category
9103 , 3
9104 );
9105 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.USE_GL_CALENDAR :'
9106 || p_upd_var_rent_rec_type.use_gl_calendar
9107 , 3
9108 );
9109 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.PERIOD_TYPE :'
9110 || p_upd_var_rent_rec_type.period_type
9111 , 3
9112 );
9113 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.YEAR_START_DATE :'
9114 || p_upd_var_rent_rec_type.year_start_date
9115 , 3
9116 );
9117 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.COMMENTS :'
9118 || p_upd_var_rent_rec_type.comments
9119 , 3
9120 );
9121 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Varen_Dates : p_upd_var_rent_rec_type.VRG_REPTG_FREQ_CODE :'
9122 || p_upd_var_rent_rec_type.vrg_reptg_freq_code
9123 , 3
9124 );
9125 pn_varen_util.pvt_debug
9126 ('PN_VAREN_PVT: Call_Varen_Insert_Row: End of Input parameters PN_VAR_RENT_DATES_PKG.UPDATE_ROW PACKAGE'
9127 , 3
9128 );
9129 pn_var_rent_dates_pkg.update_row (x_var_rent_date_id => p_upd_var_rent_rec_type.var_rent_date_id
9130 , x_var_rent_id => p_upd_var_rent_rec_type.var_rent_id
9131 , x_gl_period_set_name => p_upd_var_rent_rec_type.gl_period_set_name
9132 , x_period_freq_code => l_period_freq_code
9133 --p_upd_var_rent_rec_type.PERIOD_FREQ_CODE
9134 , x_reptg_freq_code => p_upd_var_rent_rec_type.reptg_freq_code
9135 , x_reptg_day_of_month => p_upd_var_rent_rec_type.reptg_day_of_month
9136 , x_reptg_days_after => p_upd_var_rent_rec_type.reptg_days_after
9137 , x_invg_freq_code => p_upd_var_rent_rec_type.invg_freq_code
9138 , x_invg_day_of_month => p_upd_var_rent_rec_type.invg_day_of_month
9139 , x_invg_days_after => p_upd_var_rent_rec_type.invg_days_after
9140 , x_invg_spread_code => l_invg_spread_code
9141 --p_upd_var_rent_rec_type.INVG_SPREAD_CODE
9142 , x_invg_term => l_invg_term
9143 -- IMP -- verify the pld --p_upd_var_rent_rec_type.INVG_TERM
9144 , x_audit_freq_code => l_audit_freq_code
9145 --p_upd_var_rent_rec_type.AUDIT_FREQ_CODE
9146 , x_audit_day_of_month => p_upd_var_rent_rec_type.audit_day_of_month
9147 , x_audit_days_after => p_upd_var_rent_rec_type.audit_days_after
9148 , x_recon_freq_code => l_null
9149 -- p_upd_var_rent_rec_type.RECON_FREQ_CODE
9150 , x_recon_day_of_month => p_upd_var_rent_rec_type.recon_day_of_month
9151 , x_recon_days_after => p_upd_var_rent_rec_type.recon_days_after
9152 , x_attribute_category => p_upd_var_rent_rec_type.attribute_category
9153 , x_attribute1 => p_upd_var_rent_rec_type.dates_attribute1
9154 , x_attribute2 => p_upd_var_rent_rec_type.dates_attribute2
9155 , x_attribute3 => p_upd_var_rent_rec_type.dates_attribute3
9156 , x_attribute4 => p_upd_var_rent_rec_type.dates_attribute4
9157 , x_attribute5 => p_upd_var_rent_rec_type.dates_attribute5
9158 , x_attribute6 => p_upd_var_rent_rec_type.dates_attribute6
9159 , x_attribute7 => p_upd_var_rent_rec_type.dates_attribute7
9160 , x_attribute8 => p_upd_var_rent_rec_type.dates_attribute8
9161 , x_attribute9 => p_upd_var_rent_rec_type.dates_attribute9
9162 , x_attribute10 => p_upd_var_rent_rec_type.dates_attribute10
9163 , x_attribute11 => p_upd_var_rent_rec_type.dates_attribute11
9164 , x_attribute12 => p_upd_var_rent_rec_type.dates_attribute12
9165 , x_attribute13 => p_upd_var_rent_rec_type.dates_attribute13
9166 , x_attribute14 => p_upd_var_rent_rec_type.dates_attribute14
9167 , x_attribute15 => p_upd_var_rent_rec_type.dates_attribute15
9168 , x_last_update_date => g_sysdate
9169 --p_upd_var_rent_rec_type.last_update_date
9170 , x_last_updated_by => g_user_id
9171 --p_upd_var_rent_rec_type.last_updated_by
9172 , x_last_update_login => g_user_id
9173 --p_upd_var_rent_rec_type.last_update_login
9174 , x_use_gl_calendar => p_upd_var_rent_rec_type.use_gl_calendar
9175 , x_period_type => p_upd_var_rent_rec_type.period_type
9176 , x_year_start_date => p_upd_var_rent_rec_type.year_start_date
9177 , x_comments => p_upd_var_rent_rec_type.comments
9178 , x_vrg_reptg_freq_code => p_upd_var_rent_rec_type.vrg_reptg_freq_code
9179 );
9180 EXCEPTION
9181 WHEN OTHERS
9182 THEN
9183 pn_varen_util.pvt_debug
9184 ('PN_VAREN_PVT: Update_Varen_Dates: Exception Result of PN_VAR_RENT_DATES_PKG.UPDATE_ROW PACKAGE'
9185 , 3
9186 );
9187 x_return_status := fnd_api.g_ret_sts_error;
9188 END update_varen_dates;
9189
9190 --------------------------------------------------------------------------------
9191 -- NAME : CREATE_VAR_RENT
9192 -- DESCRIPTION : Private procedure of Create VRA record
9193 -- PURPOSE :
9194 -- INVOKED FROM :
9195 -- ARGUMENTS : P_UPD_VAR_RENT_REC_TYPE IN Parameter
9196 -- : p_api_version IN Parameter
9197 -- : p_init_msg_list IN Parameter
9198 -- : p_commit IN Parameter
9199 -- : p_validate_flag IN Parameter
9200 -- : p_var_rent_rec IN OUT Parameter
9201 -- : p_variable_rent_lines_tbl IN OUT Parameter
9202 -- : p_breakpoint_header_tbl IN OUT Parameter
9203 -- : p_breakpoint_details_tbl IN OUT Parameter
9204 -- : p_constraints_tbl IN OUT Parameter
9205 -- : p_allow_abat_tbl IN OUT Parameter
9206 -- : p_generate_periods IN Parameter
9207 -- : p_generate_breakpoints IN Parameter
9208 -- : p_generate_constraints IN Parameter
9209 -- : ,p_recurring_abatements IN Parameter
9210 -- : x_return_status OUT Parameter
9211 -- : x_msg_count OUT Parameter
9212 -- : x_msg_data OUT Parameter
9213 -- : x_var_rent_id OUT Parameter
9214 -- : x_var_rent_num OUT Parameter
9215 -- REFERENCE :
9216 -- HISTORY :
9217 --
9218 -- 20-SEP-2010 vkatta o Created
9219 --------------------------------------------------------------------------------
9220 PROCEDURE create_var_rent (
9221 p_api_version IN NUMBER
9222 , p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false
9223 , p_commit IN VARCHAR2 DEFAULT fnd_api.g_false
9224 , p_validate_flag IN VARCHAR2 DEFAULT 'N'
9225 , p_var_rent_rec IN OUT NOCOPY pn_varen_pvt.var_rent_rec_type
9226 , p_variable_rent_lines_tbl IN OUT NOCOPY pn_varen_pvt.variable_rent_lines_tbl_type
9227 , p_breakpoint_header_tbl IN OUT NOCOPY pn_varen_pvt.breakpoint_header_tbl_type
9228 , p_breakpoint_details_tbl IN OUT NOCOPY pn_varen_pvt.breakpoint_details_tbl_type
9229 , p_constraints_tbl IN OUT NOCOPY pn_varen_pvt.constraints_tbl_type
9230 , p_allow_abat_tbl IN OUT NOCOPY pn_varen_pvt.allow_abat_tbl_type
9231 , p_generate_periods IN VARCHAR2 DEFAULT 'N'
9232 , p_generate_breakpoints IN VARCHAR2 DEFAULT 'N'
9233 , p_generate_constraints IN VARCHAR2 DEFAULT 'N'
9234 -- ,p_recurring_abatements IN VARCHAR2 DEFAULT 'N'
9235 , x_return_status OUT NOCOPY VARCHAR2
9236 , x_msg_count OUT NOCOPY NUMBER
9237 , x_msg_data OUT NOCOPY VARCHAR2
9238 , x_var_rent_id OUT NOCOPY NUMBER
9239 , x_var_rent_num OUT NOCOPY VARCHAR2
9240 )
9241 IS
9242 l_var_rent_rec pn_varen_pvt.var_rent_rec_type;
9243 --
9244 l_leaseid pn_leases_all.lease_id%TYPE := NULL;
9245 -- VALUE IN PN_VAR_RENTS_ALL.PRORATION_DAYS WOULD BE THE SAME AS THE VALUE IN PN_LEASES_ALL.PAYMENT_TERM_PRORATION_RULE
9246 -- l_var_rent_id pn_var_rents_all.var_rent_id%TYPE;
9247 l_rent_num pn_var_rents_all.rent_num%TYPE;
9248 l_prorationdays pn_var_rents_all.proration_days%TYPE := NULL;
9249 l_payment_purpose_meaning fnd_lookups.meaning%TYPE;
9250 l_payment_purpose_lkp_code fnd_lookups.lookup_code%TYPE;
9251 l_location_code pn_locations_all.location_code%TYPE;
9252 l_rent_type_meaning fnd_lookups.meaning%TYPE;
9253 l_rent_type_lkp_code fnd_lookups.lookup_code%TYPE;
9254 l_abstracted_by_user fnd_user.user_name%TYPE;
9255 l_user_id fnd_user.user_id%TYPE;
9256 l_cumulative_vol_meaning fnd_lookups.meaning%TYPE;
9257 l_cumulative_vol_code fnd_lookups.lookup_code%TYPE;
9258 l_invoice_on_meaning fnd_lookups.meaning%TYPE;
9259 l_invoice_on_code fnd_lookups.lookup_code%TYPE;
9260 l_negative_rent_meaning fnd_lookups.meaning%TYPE;
9261 l_negative_rent_code fnd_lookups.lookup_code%TYPE;
9262 l_term_template_id pn_term_templates_all.term_template_id%TYPE;
9263 l_term_template_name pn_term_templates_all.NAME%TYPE;
9264 l_proration_rule_meaning fnd_lookups.meaning%TYPE;
9265 l_proration_rule_code fnd_lookups.lookup_code%TYPE;
9266 --
9267 l_var_rent_date_id pn_var_rent_dates_all.var_rent_date_id%TYPE;
9268 --
9269 l_location_id pn_locations_all.location_id%TYPE;
9270 -- l_location_code pn_locations_all.location_code%type;
9271 l_lease_commencement_date pn_lease_details_all.lease_commencement_date%TYPE;
9272 l_lease_termination_date pn_lease_details_all.lease_termination_date%TYPE;
9273 --
9274 -- l_rowid VARCHAR2( 18 ) := NULL;
9275 l_varentid NUMBER := NULL;
9276 l_rentnum VARCHAR2 (30) := NULL;
9277 l_leasechangeid NUMBER := NULL;
9278 l_leasedetailid NUMBER := NULL;
9279 l_commencementdate DATE := NULL;
9280 l_terminationdate DATE := NULL;
9281 l_leaseexecutiondate DATE := NULL;
9282 l_lastupdatedate DATE := NULL;
9283 l_creationdate DATE := NULL;
9284 l_api_version CONSTANT NUMBER := 1.0;
9285 l_api_name CONSTANT VARCHAR2 (30) := 'CREATE_VAR_RENT';
9286 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name
9287 || '.'
9288 || l_api_name;
9289 l_msg_count NUMBER;
9290 l_msg_data VARCHAR2 (2000);
9291 l_return_status VARCHAR2 (1);
9292 l_debug_mode VARCHAR2 (1);
9293 l_debug_level1 CONSTANT NUMBER := 1;
9294 l_debug_level2 CONSTANT NUMBER := 2;
9295 l_debug_level3 CONSTANT NUMBER := 3;
9296 l_debug_level4 CONSTANT NUMBER := 4;
9297 l_debug_level5 CONSTANT NUMBER := 5;
9298
9299 l_var_rent_err_count NUMBER := 0;
9300
9301 BEGIN
9302 x_return_status := fnd_api.g_ret_sts_success;
9303 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: pn_varen_util.g_debug :'
9304 || pn_varen_util.g_debug
9305 , 3
9306 );
9307 pn_debug.set_err_stack ('PN_VAREN_PVT: Create_Var_Rent: TESTING');
9308 fnd_msg_pub.initialize;
9309 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Start of pn_varen_pvt.CREATE_VAR_RENT'
9310 , 3
9311 );
9312 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: g_org_id :'
9313 || g_org_id
9314 , 3
9315 );
9316 SAVEPOINT create_var_rent;
9317
9318 -- Standard call to check for call compatibility
9319 IF NOT fnd_api.compatible_api_call (l_api_version
9320 , p_api_version
9321 , l_api_name
9322 , g_pkg_name
9323 )
9324 THEN
9325 RAISE fnd_api.g_exc_error;
9326 END IF;
9327
9328 --
9329 -- IF NVL (mo_global.check_valid_org (g_org_id), 'N') <> 'Y'
9330 -- THEN
9331 -- fnd_message.set_name ('MO', 'MO_ORG_INVALID');
9332 -- fnd_msg_pub.ADD;
9333 -- RAISE fnd_api.g_exc_error;
9334 -- END IF;
9335 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: x_return_status Before assigning value to the API: '
9336 || x_return_status
9337 , 3
9338 );
9339 x_return_status := fnd_api.g_ret_sts_success;
9340 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Input Parameters'
9341 , 3
9342 );
9343 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.lease_id :'
9344 || p_var_rent_rec.lease_id
9345 , 3
9346 );
9347 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.lease_num : '
9348 || p_var_rent_rec.lease_num
9349 , 3
9350 );
9351 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.lease_name : '
9352 || p_var_rent_rec.lease_name
9353 , 3
9354 );
9355 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.rent_num : '
9356 || p_var_rent_rec.rent_num
9357 , 3
9358 );
9359 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.location_id : '
9360 || p_var_rent_rec.location_id
9361 , 3
9362 );
9363 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.location_code : '
9364 || p_var_rent_rec.location_code
9365 , 3
9366 );
9367 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.purpose_code : '
9368 || p_var_rent_rec.purpose_code
9369 , 3
9370 );
9371 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.purpose_code_meaning : '
9372 || p_var_rent_rec.purpose_code_meaning
9373 , 3
9374 );
9375 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.type_code : '
9376 || p_var_rent_rec.type_code
9377 , 3
9378 );
9379 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.type_meaning : '
9380 || p_var_rent_rec.type_meaning
9381 , 3
9382 );
9383 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.abstracted_by_user : '
9384 || p_var_rent_rec.abstracted_by_user
9385 , 3
9386 );
9387 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.cumulative_vol_code : '
9388 || p_var_rent_rec.cumulative_vol_code
9389 , 3
9390 );
9391 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.cumulative_vol_meaning : '
9392 || p_var_rent_rec.cumulative_vol_meaning
9393 , 3
9394 );
9395 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.proration_rule_code : '
9396 || p_var_rent_rec.proration_rule_code
9397 , 3
9398 );
9399 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.proration_rule_meaning : '
9400 || p_var_rent_rec.proration_rule_meaning
9401 , 3
9402 );
9403 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.invoice_on_code : '
9404 || p_var_rent_rec.invoice_on_code
9405 , 3
9406 );
9407 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.invoice_on_meaning : '
9408 || p_var_rent_rec.invoice_on_meaning
9409 , 3
9410 );
9411 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.negative_rent_code : '
9412 || p_var_rent_rec.negative_rent_code
9413 , 3
9414 );
9415 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.negative_rent_meaning : '
9416 || p_var_rent_rec.negative_rent_meaning
9417 , 3
9418 );
9419 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.term_template_id : '
9420 || p_var_rent_rec.term_template_id
9421 , 3
9422 );
9423 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.term_template_name : '
9424 || p_var_rent_rec.term_template_name
9425 , 3
9426 );
9427 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.proration_rule_code : '
9428 || p_var_rent_rec.proration_rule_code
9429 , 3
9430 );
9431 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.proration_rule_meaning : '
9432 || p_var_rent_rec.proration_rule_meaning
9433 , 3
9434 );
9435 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: p_var_rent_rec.currency_code : '
9436 || p_var_rent_rec.currency_code
9437 , 3
9438 );
9439 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: End of Input Parameters'
9440 , 3
9441 );
9442 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Calling Validate VALIDATE_VAR_RENT Procedure'
9443 , 3
9444 );
9445 ini_val_var_rec (p_var_rent_rec => p_var_rent_rec
9446 , x_return_status => x_return_status
9447 );
9448
9449 validate_var_rent (p_var_rent_rec => p_var_rent_rec
9450 , x_return_status => l_return_status
9451 );
9452 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: End of VALIDATE_VAR_RENT Procedure status : '
9453 || l_return_status
9454 , 3
9455 );
9456 IF(l_return_status <> fnd_api.g_ret_sts_success) THEN
9457 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Validation on Var Rent Failed'
9458 , 3
9459 );
9460 --fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9461 --fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_VAR_RENTS: Validation on Var Rent Failed');
9462 --fnd_msg_pub.ADD;
9463 RAISE fnd_api.g_exc_error;
9464 END IF;
9465
9466 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Before PN_VAR_RENTS_PKG.INSERT_ROW PACKAGE'
9467 , 3
9468 );
9469 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Row Id : '
9470 || g_rowid
9471 , 3
9472 );
9473 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Variable Rent Id : '
9474 || l_var_rent_id
9475 , 3
9476 );
9477 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Variable Rent Num : '
9478 || p_var_rent_rec.rent_num
9479 , 3
9480 );
9481 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Lease Id : '
9482 || p_var_rent_rec.lease_id
9483 , 3
9484 );
9485 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Location Id : '
9486 || p_var_rent_rec.location_id
9487 , 3
9488 );
9489 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Proration Days : '
9490 || p_var_rent_rec.proration_days
9491 , 3
9492 );
9493 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Purpose Code : '
9494 || p_var_rent_rec.purpose_code
9495 , 3
9496 );
9497 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Rent Type Lookup Code : '
9498 || p_var_rent_rec.type_meaning
9499 , 3
9500 );
9501 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Abstracted By User Id : '
9502 || p_var_rent_rec.abstracted_by_user_id
9503 , 3
9504 );
9505 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Cumulative Volume Code : '
9506 || p_var_rent_rec.cumulative_vol_code
9507 , 3
9508 );
9509 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Invoice On Code : '
9510 || p_var_rent_rec.invoice_on_code
9511 , 3
9512 );
9513 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Negative Rent Code : '
9514 || p_var_rent_rec.negative_rent_code
9515 , 3
9516 );
9517 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Term Template Id : '
9518 || p_var_rent_rec.term_template_id
9519 , 3
9520 );
9521 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Currency Code : '
9522 || p_var_rent_rec.currency_code
9523 , 3
9524 );
9525 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Org Id : '
9526 || g_org_id
9527 , 3
9528 );
9529 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Proration Rule Code : '
9530 || p_var_rent_rec.proration_rule_code
9531 , 3
9532 );
9533
9534 IF p_validate_flag <> 'Y'
9535 THEN
9536 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Start of CALL_VAREN_INSERT_ROW Procedure'
9537 , 3
9538 );
9539 call_varen_insert_row (p_var_rent_id => l_var_rent_id
9540 , p_var_rent_rec => p_var_rent_rec
9541 , x_return_status => x_return_status
9542 );
9543 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9544 l_var_rent_err_count := l_var_rent_err_count+1;
9545 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9546 fnd_message.set_token ('ERR_MSG', 'CREATE_VAR_RENT : VAR RENT INSERTION Error');
9547 fnd_msg_pub.ADD;
9548 RAISE fnd_api.g_exc_error;
9549 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9550 l_var_rent_err_count := l_var_rent_err_count+1;
9551 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9552 fnd_message.set_token ('ERR_MSG', 'CREATE_VAR_RENT : VAR RENT INSERTION Unexpected Error');
9553 fnd_msg_pub.ADD;
9554 RAISE fnd_api.g_exc_unexpected_error;
9555 END IF;
9556 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: End of CALL_VAREN_INSERT_ROW Procedure status : '
9557 || x_return_status
9558 , 3
9559 );
9560 ELSE
9561 pn_varen_util.pvt_debug
9562 ('PN_VAREN_PVT: Create_Var_Rent: Variable Rent not create as it is run in Validation Mode'
9563 , 3
9564 );
9565 END IF;
9566
9567 IF l_var_rent_id IS NOT NULL
9568 THEN
9569 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Start of OF CALLING Validate_Dates Procedure '
9570 , 3
9571 );
9572 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Start of calling VALIDATE_DATES Procedure '
9573 , 3
9574 );
9575 ini_val_dates (p_var_rent_rec => p_var_rent_rec
9576 , x_return_status => x_return_status
9577 );
9578 validate_dates (p_var_rent_rec => p_var_rent_rec
9579 , x_return_status => l_return_status
9580 );
9581 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
9582 --l_var_rent_err_count := l_var_rent_err_count+1;
9583 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9584 fnd_message.set_token ('ERR_MSG', 'CREATE_VAR_RENT : GENERATE_PERIODS Return Status Error');
9585 fnd_msg_pub.ADD;
9586 RAISE fnd_api.g_exc_error;
9587 ELSIF(l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9588 --l_var_rent_err_count := l_var_rent_err_count+1;
9589 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9590 fnd_message.set_token ('ERR_MSG', 'CREATE_VAR_RENT : GENERATE_PERIODS Return Status Unexpected Error');
9591 fnd_msg_pub.ADD;
9592 RAISE fnd_api.g_exc_unexpected_error;
9593 END IF;
9594 pn_varen_util.pvt_debug
9595 ( 'PN_VAREN_PVT: Create_Var_Rent: End of calling VALIDATE_DATES Procedure status : '
9596 || l_return_status
9597 , 3
9598 );
9599 pn_varen_util.pvt_debug
9600 ( 'PN_VAREN_PVT: Create_Var_Rent: CALLING Validate_Dates Procedure - l_return_status : '
9601 || l_return_status
9602 , 3
9603 );
9604
9605 IF l_return_status = fnd_api.g_ret_sts_success
9606 THEN
9607 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Before PN_VAR_RENT_DATES_PKG.INSERT_ROW PACKAGE'
9608 , 3
9609 );
9610 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Variable Rent Id : '
9611 || l_var_rent_id
9612 , 3
9613 );
9614 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Use Gl Calendar : '
9615 || p_var_rent_rec.use_gl_calendar
9616 , 3
9617 );
9618 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: GL Period Set Name : '
9619 || p_var_rent_rec.gl_period_set_name
9620 , 3
9621 );
9622 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Annual Period Start Day : '
9623 || p_var_rent_rec.year_start_date
9624 , 3
9625 );
9626 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Period Type : '
9627 || p_var_rent_rec.period_type
9628 , 3
9629 );
9630 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Calculation Frequency : '
9631 || p_var_rent_rec.reptg_freq_code
9632 , 3
9633 );
9634 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Reporting Due Day : '
9635 || p_var_rent_rec.reptg_day_of_month
9636 , 3
9637 );
9638 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Reporting No. of Days After : '
9639 || p_var_rent_rec.reptg_days_after
9640 , 3
9641 );
9642 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Invoicing Frequency : '
9643 || p_var_rent_rec.invg_freq_code
9644 , 3
9645 );
9646 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Invoicing Due Day : '
9647 || p_var_rent_rec.invg_day_of_month
9648 , 3
9649 );
9650 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Invoicing No. of Days After : '
9651 || p_var_rent_rec.invg_days_after
9652 , 3
9653 );
9654 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: Comments : '
9655 || p_var_rent_rec.comments
9656 , 3
9657 );
9658
9659 IF p_validate_flag <> 'Y'
9660 THEN
9661 pn_varen_util.pvt_debug
9662 ('PN_VAREN_PVT: Create_Var_Rent: Start of calling CALL_VAREN_DATES_INSERT_ROW Procedure '
9663 , 3
9664 );
9665 call_varen_dates_insert_row (p_var_rent_id => l_var_rent_id
9666 , p_var_rent_rec => p_var_rent_rec
9667 , x_return_status => x_return_status
9668 );
9669 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9670 --l_var_rent_err_count := l_var_rent_err_count+1;
9671 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9672 fnd_message.set_token ('ERR_MSG', 'CREATE_VAR_RENT : GENERATE_PERIODS Return Status Error');
9673 fnd_msg_pub.ADD;
9674 RAISE fnd_api.g_exc_error;
9675 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9676 --l_var_rent_err_count := l_var_rent_err_count+1;
9677 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9678 fnd_message.set_token ('ERR_MSG', 'CREATE_VAR_RENT : GENERATE_PERIODS Return Status Unexpected Error');
9679 fnd_msg_pub.ADD;
9680 RAISE fnd_api.g_exc_unexpected_error;
9681 END IF;
9682 pn_varen_util.pvt_debug
9683 ( 'PN_VAREN_PVT: Create_Var_Rent: End of calling CALL_VAREN_DATES_INSERT_ROW Procedure status : '
9684 || x_return_status
9685 , 3
9686 );
9687 ELSE
9688 pn_varen_util.pvt_debug
9689 ('PN_VAREN_PVT: Create_Var_Rent: Validate Dates is run in Validation mode, Variable rent Dates will not be created'
9690 , 3
9691 );
9692 pn_varen_util.pvt_debug
9693 ('PN_VAREN_PVT: Create_Var_Rent: Validate Dates is run in Validation mode, Variable rent Dates will not be created'
9694 , 3
9695 );
9696 END IF;
9697 ELSE
9698 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Call_Varen_Dates_Insert_Row Failed'
9699 , 3
9700 );
9701 END IF;
9702 END IF;
9703
9704 -- Call generate periods procedure
9705 IF p_generate_periods = 'Y'
9706 THEN
9707 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: start of Calling Generate Periods procedure'
9708 , 3
9709 );
9710 generate_periods (p_api_version => 1.0
9711 , p_commit => p_commit
9712 , p_var_rent_id => l_var_rent_id
9713 , p_var_rent_num => NULL --for future use
9714 , p_org_id => g_org_id
9715 , p_generate_periods => p_generate_periods
9716 , x_return_status => l_return_status
9717 , x_msg_count => x_msg_count
9718 , x_msg_data => x_msg_data
9719 );
9720 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
9721 --l_var_rent_err_count := l_var_rent_err_count+1;
9722 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9723 fnd_message.set_token ('ERR_MSG', 'CREATE_VAR_RENT : GENERATE_PERIODS Return Status Error');
9724 fnd_msg_pub.ADD;
9725 RAISE fnd_api.g_exc_error;
9726 ELSIF(l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9727 --l_var_rent_err_count := l_var_rent_err_count+1;
9728 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9729 fnd_message.set_token ('ERR_MSG', 'CREATE_VAR_RENT : GENERATE_PERIODS Return Status Unexpected Error');
9730 fnd_msg_pub.ADD;
9731 RAISE fnd_api.g_exc_unexpected_error;
9732 END IF;
9733 pn_varen_util.pvt_debug
9734 ( 'PN_VAREN_PVT: Create_Var_Rent: start of Calling Generate Periods procedure status : '
9735 || l_return_status
9736 , 3
9737 );
9738 ELSE
9739 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: Couldnot GeneratePeriods as User passed p_generate_periods<>Y '
9740 , 3
9741 );
9742
9743 END IF;
9744
9745 -- Call Breakpoints, Constraints and Abatements creation procedure
9746 -- only if the breakpoint data is passed
9747 IF (p_variable_rent_lines_tbl.COUNT <> 0 OR p_constraints_tbl.COUNT <>0 OR p_allow_abat_tbl.COUNT<>0)
9748 THEN
9749 pn_varen_util.pvt_debug
9750 (' PN_VAREN_PVT: Create_Var_Rent: start of Calling CREATE_BKPT_CONST_ALLOW_ABAT procedure'
9751 , 3
9752 );
9753 pn_varen_util.pvt_debug ('------------------------------------'
9754 , 3
9755 );
9756 create_bkpt_const_allow_abat (p_api_version => 1.0
9757 , p_init_msg_list => p_init_msg_list
9758 , p_commit => p_commit
9759 , p_validate_flag => p_validate_flag
9760 , p_generate_breakpoints => p_generate_breakpoints
9761 , p_generate_constraints => p_generate_constraints
9762 , p_variable_rent_lines_tbl => p_variable_rent_lines_tbl
9763 , p_breakpoint_header_tbl => p_breakpoint_header_tbl
9764 , p_breakpoint_details_tbl => p_breakpoint_details_tbl
9765 , p_constraints_tbl => p_constraints_tbl
9766 , p_allow_abat_tbl => p_allow_abat_tbl
9767 , x_return_status => x_return_status
9768 , x_msg_count => x_msg_count
9769 , x_msg_data => x_msg_data
9770 );
9771 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9772 l_var_rent_err_count := l_var_rent_err_count+1;
9773 --fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9774 -- fnd_message.set_token ('ERR_MSG', 'CREATE_VAR_RENT : CREATE_BKPT_CONST_ALLOW_ABAT Return Status Error'||x_return_status);
9775 --fnd_msg_pub.ADD;
9776 --RAISE fnd_api.g_exc_error;
9777 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9778 l_var_rent_err_count := l_var_rent_err_count+1;
9779 -- fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
9780 -- fnd_message.set_token ('ERR_MSG', 'CREATE_VAR_RENT : CREATE_BKPT_CONST_ALLOW_ABAT Return Status Unexpected Error'||x_return_status);
9781 -- fnd_msg_pub.ADD;
9782 --RAISE fnd_api.g_exc_unexpected_error;
9783 END IF;
9784 pn_varen_util.pvt_debug
9785 ( ' PN_VAREN_PVT: Create_Var_Rent: End of CREATE_BKPT_CONST_ALLOW_ABAT procedure status :'
9786 || x_return_status
9787 , 3
9788 );
9789
9790 ELSE
9791 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Create_Var_Rent: No paramters passed for Breakpoints creation'
9792 , 3
9793 );
9794 END IF;
9795
9796 fnd_msg_pub.count_and_get (p_encoded => fnd_api.g_false
9797 , p_count => x_msg_count
9798 , p_data => x_msg_data
9799 );
9800
9801 x_var_rent_id := g_var_rent_id;
9802 x_var_rent_num := p_var_rent_rec.rent_num;
9803 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: x_var_rent_id : '
9804 || x_var_rent_id
9805 , 3
9806 );
9807 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Var_Rent: x_var_rent_num : '
9808 || x_var_rent_num
9809 , 3
9810 );
9811 IF(l_var_rent_err_count = 0) THEN
9812 x_return_status := fnd_api.g_ret_sts_success;
9813 ELSE
9814 x_return_status := fnd_api.g_ret_sts_error;
9815 END IF;
9816
9817 EXCEPTION
9818 WHEN fnd_api.g_exc_error THEN
9819 x_return_status := fnd_api.g_ret_sts_error;
9820 pn_varen_util.pvt_debug('PN_VAREN_PVT:FND_API.G_RET_STS_ERROR:Exception:'||SQLERRM,3);
9821 fnd_msg_pub.count_and_get (p_encoded => fnd_api.g_false
9822 , p_count => x_msg_count
9823 , p_data => x_msg_data
9824 );
9825 RAISE;
9826 WHEN OTHERS THEN
9827 x_return_status := fnd_api.g_ret_sts_unexp_error;
9828 pn_varen_util.pvt_debug('PN_VAREN_PVT:FND_API.G_RET_STS_UNEXP_ERROR:Exception:'||SQLERRM,3);
9829 fnd_msg_pub.count_and_get (p_encoded => fnd_api.g_false
9830 , p_count => x_msg_count
9831 , p_data => x_msg_data
9832 );
9833 RAISE;
9834 END create_var_rent;
9835
9836 --------------------------------------------------------------------------------
9837 -- NAME : GENERATE_PERIODS
9838 -- DESCRIPTION : Procedure of Generate Breakpoints
9839 -- PURPOSE :
9840 -- INVOKED FROM :
9841 -- ARGUMENTS : P_UPD_VAR_RENT_REC_TYPE IN Parameter
9842 -- : p_api_version IN Parameter
9843 -- : p_init_msg_list IN Parameter
9844 -- : p_commit IN Parameter
9845 -- : p_var_rent_id IN Parameter
9846 -- : p_var_rent_num IN Parameter
9847 -- : p_org_id IN Parameter
9848 -- : p_generate_periods IN Parameter
9849 -- : x_return_status OUT Parameter
9850 -- : x_msg_count OUT Parameter
9851 -- : x_msg_data OUT Parameter
9852 -- REFERENCE :
9853 -- HISTORY :
9854 --
9855 -- 20-SEP-2010 vkatta o Created
9856 --------------------------------------------------------------------------------
9857 PROCEDURE generate_periods (
9858 p_api_version IN NUMBER
9859 , p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false
9860 , p_commit IN VARCHAR2 DEFAULT fnd_api.g_false
9861 , p_var_rent_id IN NUMBER
9862 , p_var_rent_num IN VARCHAR2
9863 , p_org_id IN NUMBER
9864 , p_generate_periods IN VARCHAR2 DEFAULT 'N'
9865 , x_return_status OUT NOCOPY VARCHAR2
9866 , x_msg_count OUT NOCOPY NUMBER
9867 , x_msg_data OUT NOCOPY VARCHAR2
9868 )
9869 IS
9870 ln_count NUMBER;
9871 l_varentid NUMBER;
9872 l_invoice_on_code VARCHAR2 (30);
9873 l_period_exists NUMBER;
9874 l_con_exist NUMBER;
9875 l_bkp_exist NUMBER;
9876 l_vol_exist NUMBER;
9877 l_grp_exist NUMBER;
9878 l_dates_created NUMBER;
9879 l_var_rent_exist NUMBER;
9880 l_use_gl_calendar pn_var_rent_dates_all.use_gl_calendar%TYPE;
9881 l_cumulativevol pn_var_rents_all.cumulative_vol%TYPE;
9882 l_yearstartdate pn_var_rent_dates_all.year_start_date%TYPE;
9883 l_chg_cal_var_rent_id pn_var_rents_all.chg_cal_var_rent_id%TYPE;
9884
9885 CURSOR c_var_rent_exist
9886 IS
9887 SELECT COUNT (*)
9888 FROM pn_var_rents_all
9889 WHERE ( var_rent_id = p_var_rent_id
9890 OR UPPER (rent_num) = UPPER (p_var_rent_num))
9891 AND org_id = p_org_id;
9892
9893 CURSOR c_def_con_exist
9894 IS
9895 SELECT COUNT (*)
9896 FROM pn_var_constr_defaults_all
9897 WHERE var_rent_id = p_var_rent_id;
9898
9899 CURSOR c_def_bkdtexist
9900 IS
9901 SELECT COUNT (*)
9902 FROM pn_var_bkhd_defaults_all
9903 WHERE line_default_id IN (SELECT line_default_id
9904 FROM pn_var_line_defaults_all
9905 WHERE var_rent_id = p_var_rent_id);
9906
9907 CURSOR c_vol_histexist --(p_chg_cal_var_rent_id number)
9908 IS
9909 SELECT COUNT (*)
9910 FROM pn_var_vol_hist_all
9911 WHERE period_id IN (SELECT period_id
9912 FROM pn_var_periods_all
9913 WHERE var_rent_id = l_chg_cal_var_rent_id);
9914
9915 -- This sould be changed_var_rent_id
9916 CURSOR c_grp_dates_match
9917 IS
9918 SELECT COUNT (a.grp_date_id)
9919 FROM pn_var_grp_dates_all a
9920 , pn_var_grp_dates_all b
9921 WHERE a.var_rent_id = l_chg_cal_var_rent_id
9922 -- This sould be changed_var_rent_id
9923 AND b.var_rent_id = p_var_rent_id
9924 AND a.grp_start_date = b.grp_start_date
9925 AND a.grp_end_date = b.grp_end_date;
9926
9927 CURSOR c_dates_created
9928 IS
9929 SELECT COUNT (*)
9930 FROM pn_var_rent_dates_all
9931 WHERE var_rent_id = p_var_rent_id;
9932
9933 -- AND a.grp_start_date = l_comm_date;
9934 CURSOR c_var_details
9935 IS
9936 SELECT pvrd.use_gl_calendar
9937 , pvrd.year_start_date
9938 , pvra.var_rent_id
9939 , pvra.cumulative_vol
9940 , pvra.chg_cal_var_rent_id
9941 FROM pn_var_rents_all pvra
9942 , pn_var_rent_dates_all pvrd
9943 WHERE pvra.var_rent_id = pvrd.var_rent_id
9944 AND pvra.var_rent_id = p_var_rent_id;
9945 BEGIN
9946 x_return_status := fnd_api.g_ret_sts_success;
9947 /* Check if the variable rent details exist*/
9948 OPEN c_var_rent_exist;
9949
9950 FETCH c_var_rent_exist
9951 INTO l_var_rent_exist;
9952
9953 CLOSE c_var_rent_exist;
9954
9955 IF l_var_rent_exist <> 0
9956 THEN
9957 /* Check if the dates are exist*/
9958 OPEN c_dates_created;
9959
9960 FETCH c_dates_created
9961 INTO l_dates_created;
9962
9963 CLOSE c_dates_created;
9964
9965 /* Periods are created only when Dates are created, check for dates*/
9966 IF l_dates_created <> 0
9967 THEN
9968 OPEN c_var_details;
9969
9970 FETCH c_var_details
9971 INTO l_use_gl_calendar
9972 , l_yearstartdate
9973 , l_varentid
9974 , l_cumulativevol
9975 , l_chg_cal_var_rent_id;
9976
9977 CLOSE c_var_details;
9978
9979 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Generate_periods: Use GL Calendar :'
9980 || l_use_gl_calendar
9981 , 3
9982 );
9983 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Generate_periods: Year Start Date :'
9984 || l_yearstartdate
9985 , 3
9986 );
9987 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Generate_periods: Cumulative Vol :'
9988 || l_cumulativevol
9989 , 3
9990 );
9991 --Check if periods generated
9992 l_period_exists :=
9993 pn_var_rent_pkg.find_if_period_exists (l_varentid);
9994
9995 IF NVL (l_period_exists
9996 , 9898
9997 ) = 9898
9998 THEN
9999 IF NVL (l_use_gl_calendar
10000 , 'N'
10001 ) = 'Y'
10002 THEN
10003 pn_var_rent_pkg.create_var_rent_periods (l_varentid
10004 , l_cumulativevol
10005 );
10006 x_return_status :=
10007 fnd_api.g_ret_sts_success;
10008 ELSIF NVL (l_use_gl_calendar
10009 , 'N'
10010 ) = 'N'
10011 THEN
10012 pn_var_rent_pkg.create_var_rent_periods_nocal (l_varentid
10013 , l_cumulativevol
10014 , l_yearstartdate
10015 );
10016 x_return_status :=fnd_api.g_ret_sts_success;
10017 END IF;
10018 ELSE
10019 x_return_status := fnd_api.g_ret_sts_error;
10020 END IF;
10021
10022 IF l_chg_cal_var_rent_id IS NOT NULL
10023 THEN
10024 --Constraints Defaults
10025 OPEN c_def_con_exist;
10026
10027 FETCH c_def_con_exist
10028 INTO l_con_exist;
10029
10030 CLOSE c_def_con_exist;
10031
10032 IF l_con_exist = 0
10033 THEN
10034 pn_var_defaults_pkg.create_default_constraints (l_varentid);
10035 ELSE
10036 pn_var_chg_cal_pkg.copy_parent_constraints (l_varentid
10037 , l_chg_cal_var_rent_id
10038 );
10039 END IF;
10040
10041 --Break points Defaults
10042 OPEN c_def_bkdtexist;
10043
10044 FETCH c_def_bkdtexist
10045 INTO l_bkp_exist;
10046
10047 CLOSE c_def_bkdtexist;
10048
10049 IF l_bkp_exist = 0
10050 THEN
10051 pn_var_defaults_pkg.create_setup_data (x_var_rent_id => l_varentid);
10052 ELSE
10053 pn_var_chg_cal_pkg.copy_parent_lines (l_varentid
10054 , l_chg_cal_var_rent_id
10055 );
10056 END IF;
10057
10058 OPEN c_vol_histexist;
10059
10060 FETCH c_vol_histexist
10061 INTO l_vol_exist;
10062
10063 CLOSE c_vol_histexist;
10064
10065 IF l_vol_exist = 0
10066 THEN
10067 OPEN c_grp_dates_match;
10068
10069 FETCH c_grp_dates_match
10070 INTO l_grp_exist;
10071
10072 CLOSE c_grp_dates_match;
10073
10074 IF l_grp_exist = 0
10075 THEN
10076 pn_var_chg_cal_pkg.copy_parent_volhist (l_varentid
10077 , l_chg_cal_var_rent_id
10078 );
10079 ELSE
10080 NULL;
10081 END IF;
10082 END IF;
10083 END IF; -- Point to be constant
10084 ELSE
10085 x_return_status := fnd_api.g_ret_sts_error;
10086 END IF;
10087 ELSE
10088 x_return_status := fnd_api.g_ret_sts_error;
10089 END IF;
10090
10091 --Commit the work
10092 IF p_commit = 'Y'
10093 THEN
10094 COMMIT;
10095 END IF;
10096 EXCEPTION
10097
10098 WHEN OTHERS
10099 THEN
10100 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
10101 fnd_message.set_token ('ERR_MSG', 'Exception in GENERATE_PERIODS');
10102 fnd_msg_pub.ADD;
10103 x_return_status := fnd_api.g_ret_sts_error;
10104 RAISE;
10105 END generate_periods;
10106
10107 --------------------------------------------------------------------------------
10108 -- NAME : UNDO_PERIODS
10109 -- DESCRIPTION : Procedure of Undo Periods
10110 -- PURPOSE :
10111 -- INVOKED FROM :
10112 -- ARGUMENTS : p_api_version IN Parameter
10113 -- : p_init_msg_list IN Parameter
10114 -- : p_commit IN Parameter
10115 -- : p_var_rent_id IN Parameter
10116 -- : p_var_rent_num IN Parameter
10117 -- : p_org_id IN Parameter
10118 -- : p_generate_periods IN Parameter
10119 -- : x_return_status OUT Parameter
10120 -- : x_msg_count OUT Parameter
10121 -- : x_msg_data OUT Parameter
10122 -- REFERENCE :
10123 -- HISTORY :
10124 --
10125 -- 11-OCT-2010 vkatta o Created
10126 --------------------------------------------------------------------------------
10127 PROCEDURE undo_periods (
10128 p_api_version IN NUMBER
10129 , p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false
10130 , p_commit IN VARCHAR2 DEFAULT fnd_api.g_false
10131 , p_var_rent_id IN NUMBER
10132 , p_var_rent_num IN VARCHAR2
10133 , p_org_id IN NUMBER
10134 , p_generate_periods IN VARCHAR2 DEFAULT 'N'
10135 , x_return_status OUT NOCOPY VARCHAR2
10136 , x_msg_count OUT NOCOPY NUMBER
10137 , x_msg_data OUT NOCOPY VARCHAR2
10138 )
10139 IS
10140 l_var_rent_ext NUMBER;
10141 l_varentid NUMBER;
10142 l_dates_ctd NUMBER;
10143 l_period_ext NUMBER;
10144 l_chg_cal_var_rent_id pn_var_rents_all.chg_cal_var_rent_id%TYPE;
10145
10146 CURSOR c_var_rent_et
10147 IS
10148 SELECT COUNT (*)
10149 FROM pn_var_rents_all
10150 WHERE ( var_rent_id = p_var_rent_id
10151 OR UPPER (rent_num) = UPPER (p_var_rent_num))
10152 AND org_id = p_org_id;
10153
10154 /*
10155 CURSOR c_var_rent_num_exist
10156 IS
10157 SELECT COUNT (*)
10158 FROM pn_var_rents_all
10159 WHERE ( UPPER (rent_num) = UPPER (p_var_rent_num)
10160 )
10161 AND org_id = p_org_id;
10162 */
10163 CURSOR c_dates_ctd
10164 IS
10165 SELECT COUNT (*)
10166 FROM pn_var_rent_dates_all
10167 WHERE var_rent_id = p_var_rent_id;
10168
10169 CURSOR c_var_dtls
10170 IS
10171 SELECT pvra.var_rent_id
10172 , pvra.chg_cal_var_rent_id
10173 FROM pn_var_rents_all pvra
10174 , pn_var_rent_dates_all pvrd
10175 WHERE pvra.var_rent_id = pvrd.var_rent_id
10176 AND pvra.var_rent_id = p_var_rent_id;
10177 BEGIN
10178 x_return_status := fnd_api.g_ret_sts_success;
10179 /* Check if the variable rent details exist*/
10180 OPEN c_var_rent_et;
10181
10182 FETCH c_var_rent_et
10183 INTO l_var_rent_ext;
10184
10185 CLOSE c_var_rent_et;
10186
10187 /*
10188 OPEN c_var_rent_num_exist;
10189
10190 FETCH c_var_rent_num_exist
10191 INTO l_var_rent_num_exist;
10192
10193 CLOSE c_var_rent_num_exist;
10194 */
10195 IF l_var_rent_ext <> 0
10196 THEN
10197 /* Check if the dates are exist*/
10198 OPEN c_dates_ctd;
10199
10200 FETCH c_dates_ctd
10201 INTO l_dates_ctd;
10202
10203 CLOSE c_dates_ctd;
10204
10205 /* Periods are created only when Dates are created, check for dates*/
10206 IF l_dates_ctd <> 0
10207 THEN
10208 OPEN c_var_dtls;
10209
10210 FETCH c_var_dtls
10211 INTO l_varentid
10212 , l_chg_cal_var_rent_id;
10213
10214 CLOSE c_var_dtls;
10215
10216 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Periods: l_varentid :'
10217 || l_varentid
10218 , 3
10219 );
10220 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Periods: l_chg_cal_var_rent_id :'
10221 || l_chg_cal_var_rent_id
10222 , 3
10223 );
10224 --Check if periods generated
10225 l_period_ext :=
10226 pn_var_rent_pkg.find_if_period_exists (l_varentid);
10227 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Periods: Value of l_period_ext : '
10228 || l_period_ext
10229 , 3
10230 );
10231
10232 IF l_period_ext IS NOT NULL
10233 THEN
10234 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Undo_Periods: l_period_ext is not null '
10235 , 3
10236 );
10237 x_return_status := fnd_api.g_ret_sts_success;
10238
10239 DELETE FROM pn_var_vol_hist_all
10240 WHERE period_id IN (SELECT period_id
10241 FROM pn_var_periods_all
10242 WHERE var_rent_id = l_varentid);
10243
10244 DELETE FROM pn_var_constraints_all
10245 WHERE period_id IN (SELECT period_id
10246 FROM pn_var_periods_all
10247 WHERE var_rent_id = l_varentid);
10248
10249 DELETE FROM pn_var_bkpts_det_all
10250 WHERE var_rent_id = l_varentid;
10251
10252 DELETE pn_var_bkpts_head_all
10253 WHERE var_rent_id = l_varentid;
10254
10255 DELETE pn_var_lines_all
10256 WHERE var_rent_id = l_varentid;
10257
10258 DELETE FROM pn_var_abatements_all abat
10259 WHERE abat.var_rent_id = l_varentid;
10260
10261 pn_var_rent_pkg.delete_var_rent_periods (l_varentid);
10262 pn_var_trx_pkg.delete_transactions (p_var_rent_id => l_varentid
10263 , p_period_id => NULL
10264 , p_line_item_id => NULL
10265 );
10266 pn_var_defaults_pkg.delete_default_lines (l_varentid);
10267
10268 DELETE FROM pn_var_abat_defaults_all
10269 WHERE var_rent_id = l_varentid;
10270
10271 DELETE FROM pn_var_bkdt_defaults_all
10272 WHERE var_rent_id = l_varentid;
10273
10274 DELETE pn_var_bkhd_defaults_all
10275 WHERE var_rent_id = l_varentid;
10276
10277 DELETE pn_var_line_defaults_all
10278 WHERE var_rent_id = l_varentid;
10279
10280 DELETE pn_var_constr_defaults_all
10281 WHERE var_rent_id = l_varentid;
10282
10283 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Undo_Periods: All the periods were deleted : '
10284 , 3
10285 );
10286 ELSE
10287 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Periods: Period doesnot exists : '
10288 || l_period_ext
10289 , 3
10290 );
10291 END IF; -- l_period_ext
10292 ELSE
10293 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Periods: Variable Rent Date record doesnot exists : '
10294 || l_dates_ctd
10295 , 3
10296 );
10297 x_return_status := fnd_api.g_ret_sts_error;
10298 END IF; --l_dates_ctd
10299 ELSE
10300 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Periods: Variable Rent record doesnot exists : '
10301 || l_dates_ctd
10302 , 3
10303 );
10304 x_return_status := fnd_api.g_ret_sts_error;
10305 END IF; -- l_var_rent_ext
10306
10307 IF p_commit = 'Y'
10308 THEN
10309 COMMIT;
10310 END IF;
10311 EXCEPTION
10312
10313 WHEN OTHERS
10314 THEN
10315 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Undo_Periods: Variable Rent record doesnot exists : '
10316 || l_dates_ctd
10317 , 3
10318 );
10319 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
10320 fnd_message.set_token ('ERR_MSG', 'Exception in UNDO_PERIODS');
10321 fnd_msg_pub.ADD;
10322 x_return_status := fnd_api.g_ret_sts_error;
10323 RAISE;
10324 END undo_periods;
10325
10326 --------------------------------------------------------------------------------
10327 -- NAME : CREATE_BKPT_CONST_ALLOW_ABAT
10328 -- DESCRIPTION : procedure to Create Variable Rent Lines, Breakpoints, Constraints, Allowances and Abatements
10329 -- PURPOSE :
10330 -- INVOKED FROM :
10331 -- ARGUMENTS : p_api_version IN Parameter
10332 -- : p_init_msg_list IN Parameter
10333 -- : p_commit IN Parameter
10334 -- : p_validate_flag IN Parameter
10335 -- : p_generate_breakpoints IN Parameter
10336 -- : p_generate_constraints IN Parameter
10337 -- : p_variable_rent_lines_tbl IN OUT Parameter
10338 -- : p_breakpoint_header_tbl IN OUT Parameter
10339 -- : p_breakpoint_details_tbl IN OUT Parameter
10340 -- : p_constraints_tbl IN OUT Parameter
10341 -- : p_allow_abat_tbl IN OUT Parameter
10342 -- : x_return_status OUT Parameter
10343 -- : x_msg_count OUT Parameter
10344 -- : x_msg_data OUT Parameter
10345 -- REFERENCE :
10346 -- HISTORY :
10347 --
10348 -- 20-SEP-2010 vkatta o Created
10349 --------------------------------------------------------------------------------
10350 PROCEDURE create_bkpt_const_allow_abat (
10351 p_api_version IN NUMBER
10352 , p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false
10353 , p_commit IN VARCHAR2 DEFAULT fnd_api.g_false
10354 , p_validate_flag IN VARCHAR2 DEFAULT 'Y'
10355 , p_generate_breakpoints IN VARCHAR2 DEFAULT 'Y'
10356 , p_generate_constraints IN VARCHAR2 DEFAULT 'Y'
10357 , p_variable_rent_lines_tbl IN OUT NOCOPY variable_rent_lines_tbl_type
10358 , p_breakpoint_header_tbl IN OUT NOCOPY breakpoint_header_tbl_type
10359 , p_breakpoint_details_tbl IN OUT NOCOPY breakpoint_details_tbl_type
10360 , p_constraints_tbl IN OUT NOCOPY constraints_tbl_type
10361 , p_allow_abat_tbl IN OUT NOCOPY allow_abat_tbl_type
10362 , x_return_status OUT NOCOPY VARCHAR2
10363 , x_msg_count OUT NOCOPY NUMBER
10364 , x_msg_data OUT NOCOPY VARCHAR2
10365 )
10366 IS
10367 l_return_status VARCHAR2 (1) := fnd_api.g_ret_sts_error;
10368 l_err_count NUMBER := 0;
10369 BEGIN
10370 pn_varen_util.pvt_debug
10371 ('PN_VAREN_PVT: Create_Bkpt_Const_Allow_Abat: Calling Variable Rent Lines Validations Procedure '
10372 , 3
10373 );
10374 -- pn_varen_util.pvt_debug ('--------------------------------------------------', 3);
10375 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Create_Bkpt_Const_Allow_Abat: p_generate_breakpoints '
10376 || p_generate_breakpoints
10377 , 3
10378 ); -- vkatta
10379 IF(p_variable_rent_lines_tbl.COUNT<>0) THEN
10380 BEGIN
10381 var_rent_lines_bkhd (p_variable_rent_lines_tbl => p_variable_rent_lines_tbl
10382 , p_breakpoint_header_tbl => p_breakpoint_header_tbl
10383 , p_breakpoint_details_tbl => p_breakpoint_details_tbl
10384 , p_generate_breakpoints => p_generate_breakpoints -- vkatta
10385 , p_validate_flag => p_validate_flag
10386 , x_return_status => l_return_status
10387 );
10388 pn_varen_util.pvt_debug
10389 ( 'PN_VAREN_PVT: Create_Bkpt_Const_Allow_Abat: Return_Status Before calling variable rent lines insert procedure : '
10390 || l_return_status
10391 , 3
10392 );
10393 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
10394 l_err_count := l_err_count+1;
10395 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10396 l_err_count := l_err_count+1;
10397 END IF;
10398 EXCEPTION
10399 WHEN OTHERS THEN
10400 pn_varen_util.pvt_debug('PN_VAREN_PVT: Create_Bkpt_Const_Allow_Abat:var_rent_lines_bkhd:Exception:'||SQLERRM,3);
10401 l_err_count := l_err_count+1;
10402 END;
10403 END IF; -- p_variable_rent_lines_tbl.COUNT<>0
10404 ------------------------------------------------------
10405 -- Starting Constraints Validation and Insert procedure.
10406 ------------------------------------------------------
10407 IF(p_constraints_tbl.COUNT<>0) THEN
10408 BEGIN
10409 val_ins_constraints (p_constraints_tbl_type => p_constraints_tbl
10410 , p_validate_flag => p_validate_flag
10411 , p_generate_constraints => p_generate_constraints
10412 , x_return_status => l_return_status
10413 );
10414 pn_varen_util.pvt_debug('PN_VAREN_PVT: Create_Bkpt_Const_Allow_Abat:val_ins_constraints Return Status'||l_return_status,3);
10415 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
10416 l_err_count := l_err_count+1;
10417 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10418 l_err_count := l_err_count+1;
10419 END IF;
10420 EXCEPTION
10421 WHEN OTHERS THEN
10422 pn_varen_util.pvt_debug('PN_VAREN_PVT: Create_Bkpt_Const_Allow_Abat:val_ins_constraints:Exception:'||SQLERRM,3);
10423 l_err_count := l_err_count+1;
10424 END;
10425 END IF;--p_constraints_tbl.COUNT<>0
10426 ------------------------------------------------------
10427 -- Starting Abatements Validation and Insert procedure.
10428 ------------------------------------------------------
10429 IF(p_allow_abat_tbl.COUNT<>0) THEN
10430 BEGIN
10431 val_ins_allow_abat (p_allow_abat_tbl_type => p_allow_abat_tbl
10432 , p_validate_flag => p_validate_flag
10433 , x_return_status => l_return_status
10434 );
10435 pn_varen_util.pvt_debug('PN_VAREN_PVT: Create_Bkpt_Const_Allow_Abat:val_ins_allow_abat Return Status:'||l_return_status,3);
10436 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
10437 l_err_count := l_err_count+1;
10438 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10439 l_err_count := l_err_count+1;
10440 END IF;
10441 EXCEPTION
10442 WHEN OTHERS THEN
10443 pn_varen_util.pvt_debug('PN_VAREN_PVT: Create_Bkpt_Const_Allow_Abat:val_ins_allow_abat:Return Status:'||l_return_status,3);
10444 l_err_count := l_err_count+1;
10445 END;
10446 END IF;--p_allow_abat_tbl.COUNT<>0
10447 ---------------------------------
10448 IF p_commit = 'Y'
10449 THEN
10450 COMMIT;
10451 END IF;
10452
10453 IF (l_err_count = 0 ) THEN
10454 x_return_status := fnd_api.g_ret_sts_success;
10455 ELSE
10456 x_return_status := fnd_api.g_ret_sts_error;
10457 END IF;
10458
10459 EXCEPTION
10460 WHEN OTHERS
10461 THEN
10462 pn_varen_util.pvt_debug('PN_VAREN_PVT: Create_Bkpt_Const_Allow_Abat: Exception Result of Create_Bkpt_Const_Allow_Abat PACKAGE'||SQLERRM, 3);
10463 x_return_status := fnd_api.g_ret_sts_error;
10464 END create_bkpt_const_allow_abat;
10465
10466
10467
10468 --------------------------------------------------------------------------------
10469 --------------------------------------------------------------------------------
10470 -- NAME : UPDATE_VAR_RENT
10471 -- DESCRIPTION : procedure to Update Variable Rent, Variable Rent Lines, Breakpoints, Constraints, Allowances and Abatements
10472 -- PURPOSE :
10473 -- INVOKED FROM :
10474 -- ARGUMENTS : p_api_version IN Parameter
10475 -- : p_init_msg_list IN Parameter
10476 -- : p_commit IN Parameter
10477 -- : p_validate_flag IN Parameter
10478 -- : p_upd_var_rent_rec IN OUT Parameter
10479 -- : p_var_rent_lines_tbl IN OUT Parameter
10480 -- : p_variable_rent_lines_tbl IN OUT Parameter
10481 -- : p_breakpoint_header_tbl IN OUT Parameter
10482 -- : p_breakpoint_details_tbl IN OUT Parameter
10483 -- : p_constraints_tbl IN OUT Parameter
10484 -- : p_allow_abat_tbl IN OUT Parameter
10485 -- : p_undo_periods IN Parameter
10486 -- : p_undo_breakpoints IN Parameter
10487 -- : p_undo_constraints IN Parameter
10488 -- : x_return_status OUT Parameter
10489 -- : x_msg_count OUT Parameter
10490 -- : x_msg_data OUT Parameter
10491 -- REFERENCE :
10492 -- HISTORY :
10493 --
10494 -- 11-OCT-2010 vkatta o Created
10495 --------------------------------------------------------------------------------
10496 /* Formatted on 2010/12/10 11:31 (Formatter Plus v4.8.8) */
10497 PROCEDURE update_var_rent (
10498 p_api_version IN NUMBER
10499 , p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false
10500 , p_commit IN VARCHAR2 DEFAULT fnd_api.g_false
10501 , p_validate_flag IN VARCHAR2 DEFAULT 'Y'
10502 , p_upd_var_rent_rec IN OUT NOCOPY upd_var_rent_rec_type
10503 , p_var_rent_lines_tbl IN OUT NOCOPY variable_rent_lines_tbl_type
10504 , p_breakpoint_header_tbl IN OUT NOCOPY breakpoint_header_tbl_type
10505 , p_breakpoint_details_tbl IN OUT NOCOPY breakpoint_details_tbl_type
10506 , p_constraints_tbl IN OUT NOCOPY constraints_tbl_type
10507 , p_allow_abat_tbl IN OUT NOCOPY allow_abat_tbl_type
10508 , p_undo_periods IN VARCHAR2 DEFAULT 'N'
10509 , p_undo_breakpoints IN VARCHAR2 DEFAULT 'N'
10510 , p_undo_constraints IN VARCHAR2 DEFAULT 'N'
10511 , x_return_status OUT NOCOPY VARCHAR2
10512 , x_msg_count OUT NOCOPY NUMBER
10513 , x_msg_data OUT NOCOPY VARCHAR2)
10514 IS
10515 l_api_version CONSTANT NUMBER := 1.0;
10516 l_api_name CONSTANT VARCHAR2 (30) := 'UPDATE_VAR_RENT';
10517 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name
10518 || '.'
10519 || l_api_name;
10520
10521 CURSOR c_pn_var_rents
10522 IS
10523 SELECT var_rent_id
10524 , rent_num
10525 , last_update_date
10526 , last_updated_by
10527 , creation_date
10528 , created_by
10529 , last_update_login
10530 , lease_id
10531 , location_id
10532 , proration_days
10533 , purpose_code
10534 , type_code
10535 , commencement_date
10536 , termination_date
10537 , abstracted_by_user
10538 , cumulative_vol
10539 --, accrual
10540 , uom_code
10541 --, rounding
10542 , invoice_on
10543 , negative_rent
10544 , term_template_id
10545 --, abatement_amount
10546 , attribute_category
10547 , attribute1
10548 , attribute2
10549 , attribute3
10550 , attribute4
10551 , attribute5
10552 , attribute6
10553 , attribute7
10554 , attribute8
10555 , attribute9
10556 , attribute10
10557 , attribute11
10558 , attribute12
10559 , attribute13
10560 , attribute14
10561 , attribute15
10562 --, org_id
10563 , currency_code
10564 , proration_rule
10565 , agreement_template_id
10566 , chg_cal_var_rent_id
10567 --, order_of_appl_code
10568 --, excess_abat_code
10569 FROM pn_var_rents_all
10570 WHERE var_rent_id = p_upd_var_rent_rec.var_rent_id;
10571
10572 CURSOR c_pn_var_rent_dates
10573 IS
10574 SELECT var_rent_date_id
10575 , last_update_date
10576 , last_updated_by
10577 , creation_date
10578 , created_by
10579 , last_update_login
10580 , var_rent_id
10581 , gl_period_set_name
10582 , period_freq_code
10583 , reptg_freq_code
10584 , reptg_day_of_month
10585 , reptg_days_after
10586 , invg_freq_code
10587 , invg_day_of_month
10588 , invg_days_after
10589 , invg_spread_code
10590 , invg_term
10591 , audit_freq_code
10592 , audit_day_of_month
10593 , audit_days_after
10594 --, recon_freq_code
10595 , recon_day_of_month
10596 , recon_days_after
10597 , attribute_category
10598 , attribute1
10599 , attribute2
10600 , attribute3
10601 , attribute4
10602 , attribute5
10603 , attribute6
10604 , attribute7
10605 , attribute8
10606 , attribute9
10607 , attribute10
10608 , attribute11
10609 , attribute12
10610 , attribute13
10611 , attribute14
10612 , attribute15
10613 --, org_id
10614 , use_gl_calendar
10615 , period_type
10616 , year_start_date
10617 , comments
10618 , effective_date
10619 , vrg_reptg_freq_code
10620 FROM pn_var_rent_dates_all
10621 WHERE var_rent_id = p_upd_var_rent_rec.var_rent_id;
10622
10623 --CURSOR c_pn_var_line_defaults Commented by Vivek on 09-DEC-2010
10624 CURSOR c_pn_var_line_defaults (
10625 p_line_default_id IN NUMBER
10626 , p_var_rent_id IN NUMBER) -- Added by Vivek on 09DEC-2010
10627 IS
10628 SELECT line_default_id
10629 , line_num
10630 , var_rent_id
10631 , sales_type_code
10632 , item_category_code
10633 , line_template_id
10634 , agreement_template_id
10635 , line_start_date
10636 , line_end_date
10637 , processed_flag
10638 , last_update_date
10639 , last_updated_by
10640 , creation_date
10641 , created_by
10642 , last_update_login
10643 , attribute_category
10644 , attribute1
10645 , attribute2
10646 , attribute3
10647 , attribute4
10648 , attribute5
10649 , attribute6
10650 , attribute7
10651 , attribute8
10652 , attribute9
10653 , attribute10
10654 , attribute11
10655 , attribute12
10656 , attribute13
10657 , attribute14
10658 , attribute15
10659 , org_id
10660 FROM pn_var_line_defaults_all
10661 -- WHERE var_rent_id = p_upd_var_rent_rec.var_rent_id; -- Commented by Vivek on 09-DEC-2010
10662 WHERE line_default_id = p_line_default_id -- Added by Vivek on 09DEC-2010
10663 AND var_rent_id = p_var_rent_id;
10664
10665 --CURSOR c_pn_var_bkhd_defaults -- Commented by Vivek on 09-DEC-2010
10666 CURSOR c_pn_var_bkhd_defaults (
10667 p_bkhd_default_id IN NUMBER
10668 , p_var_rent_id IN NUMBER) -- Added by Vivek on 09-DEC-2010
10669 IS
10670 SELECT bkhd_default_id
10671 , bkhd_detail_num
10672 , line_default_id
10673 , bkhd_start_date
10674 , bkhd_end_date
10675 , break_type
10676 , base_rent_type
10677 , natural_break_rate
10678 , base_rent
10679 , breakpoint_type
10680 , breakpoint_level
10681 , line_template_id
10682 , bkpt_head_template_id
10683 , agreement_template_id
10684 , processed_flag
10685 , var_rent_id
10686 , bkpt_update_flag
10687 , last_update_date
10688 , last_updated_by
10689 , creation_date
10690 , created_by
10691 , last_update_login
10692 , attribute_category
10693 , attribute1
10694 , attribute2
10695 , attribute3
10696 , attribute4
10697 , attribute5
10698 , attribute6
10699 , attribute7
10700 , attribute8
10701 , attribute9
10702 , attribute10
10703 , attribute11
10704 , attribute12
10705 , attribute13
10706 , attribute14
10707 , attribute15
10708 , org_id
10709 FROM pn_var_bkhd_defaults_all
10710 -- Commented by Vivek on 09-DEC-2010
10711 --WHERE var_rent_id = p_upd_var_rent_rec.var_rent_id;
10712 -- Below lines have been added by Vivek on 09-DEC-2010
10713 WHERE bkhd_default_id = p_bkhd_default_id
10714 AND var_rent_id = p_var_rent_id;
10715
10716 CURSOR c_pn_var_bkdt_defaults (
10717 p_bkdt_default_id IN NUMBER
10718 , p_var_rent_id IN NUMBER)
10719 IS
10720 SELECT bkdt_default_id
10721 , bkdt_detail_num
10722 , bkhd_default_id
10723 , bkdt_start_date
10724 , bkdt_end_date
10725 , period_bkpt_vol_start
10726 , period_bkpt_vol_end
10727 , group_bkpt_vol_start
10728 , group_bkpt_vol_end
10729 , bkpt_rate
10730 , bkpt_det_template_id
10731 , processed_flag
10732 , var_rent_id
10733 , last_update_date
10734 , last_updated_by
10735 , creation_date
10736 , created_by
10737 , last_update_login
10738 , annual_basis_amount
10739 , attribute_category
10740 , attribute1
10741 , attribute2
10742 , attribute3
10743 , attribute4
10744 , attribute5
10745 , attribute6
10746 , attribute7
10747 , attribute8
10748 , attribute9
10749 , attribute10
10750 , attribute11
10751 , attribute12
10752 , attribute13
10753 , attribute14
10754 , attribute15
10755 , org_id
10756 FROM pn_var_bkdt_defaults_all
10757 WHERE bkdt_default_id = p_bkdt_default_id
10758 AND var_rent_id = p_var_rent_id;
10759
10760 CURSOR c_pn_var_constraints (
10761 p_constr_default_id IN NUMBER
10762 , p_var_rent_id IN NUMBER)
10763 IS
10764 SELECT constr_default_id
10765 , constr_default_num
10766 , var_rent_id
10767 , last_update_date
10768 , last_updated_by
10769 , creation_date
10770 , created_by
10771 , last_update_login
10772 , agreement_template_id
10773 , constr_template_id
10774 , constr_start_date
10775 , constr_end_date
10776 , constr_cat_code
10777 , type_code
10778 , amount
10779 , attribute_category
10780 , attribute1
10781 , attribute2
10782 , attribute3
10783 , attribute4
10784 , attribute5
10785 , attribute6
10786 , attribute7
10787 , attribute8
10788 , attribute9
10789 , attribute10
10790 , attribute11
10791 , attribute12
10792 , attribute13
10793 , attribute14
10794 , attribute15
10795 , org_id
10796 FROM pn_var_constr_defaults_all
10797 --WHERE var_rent_id = p_upd_var_rent_rec.var_rent_id;
10798 WHERE constr_default_id = p_constr_default_id
10799 AND var_rent_id = p_var_rent_id;
10800
10801 CURSOR c_pn_var_abat_defaults (
10802 p_abatement_id IN NUMBER
10803 , p_var_rent_id IN NUMBER)
10804 IS
10805 SELECT abatement_id
10806 , var_rent_id
10807 , start_date
10808 , end_date
10809 , type_code
10810 , amount
10811 , allowance_applied
10812 , description
10813 , last_update_date
10814 , last_updated_by
10815 , creation_date
10816 , created_by
10817 , last_update_login
10818 , comments
10819 , attribute_category
10820 , attribute1
10821 , attribute2
10822 , attribute3
10823 , attribute4
10824 , attribute5
10825 , attribute6
10826 , attribute7
10827 , attribute8
10828 , attribute9
10829 , attribute10
10830 , attribute11
10831 , attribute12
10832 , attribute13
10833 , attribute14
10834 , attribute15
10835 , org_id
10836 FROM pn_var_abat_defaults_all
10837 --WHERE var_rent_id = p_upd_var_rent_rec.var_rent_id;
10838 WHERE abatement_id = p_abatement_id
10839 AND var_rent_id = p_var_rent_id;
10840
10841 l_pn_var_rents_rec c_pn_var_rents%ROWTYPE;
10842 l_pn_var_rent_dates_rec c_pn_var_rent_dates%ROWTYPE;
10843 l_pn_var_line_defaults c_pn_var_line_defaults%ROWTYPE;
10844 l_pn_var_bkhd_defaults c_pn_var_bkhd_defaults%ROWTYPE;
10845 l_pn_var_bkdt_defaults c_pn_var_bkdt_defaults%ROWTYPE;
10846 l_pn_var_constraints c_pn_var_constraints%ROWTYPE;
10847 l_pn_var_abat c_pn_var_abat_defaults%ROWTYPE;
10848 l_constr_count NUMBER;
10849 l_allow_abat_update VARCHAR2 (1) := 'N';
10850 l_return_status VARCHAR2 (1);
10851 l_undo_periods VARCHAR2 (1) := 'N';
10852 l_bkpt_exist NUMBER := 0;
10853 ln_const_count NUMBER := 0;
10854 l_return_msg VARCHAR2 (2000);
10855 l_var_commencement_date pn_var_rents_all.commencement_date%TYPE;
10856 l_var_termination_date pn_var_rents_all.termination_date%TYPE;
10857 --l_var_comm_date pn_var_rents_all.commencement_date%TYPE;
10858 --l_var_term_date pn_var_rents_all.termination_date%TYPE;
10859 l_upd_allow_abat_val VARCHAR2 (1) := 'S';
10860 l_commencement_date DATE;
10861 l_termination_date DATE;
10862 l_location_id NUMBER;
10863 l_proration_days NUMBER;
10864 l_date_range_count NUMBER;
10865 l_date_range_bkdt_count NUMBER;
10866 BEGIN
10867
10868 l_undo_periods := p_undo_periods; -- Added by Vivek on 07-Dec-2010
10869 x_return_status := fnd_api.g_ret_sts_success;
10870 -- Added by Vivek on 02-DEC-2010
10871
10872 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Start of Update_Var_Rent package', 3);
10873 SAVEPOINT update_var_rent;
10874
10875 -- Standard call to check for call compatibility
10876 IF NOT fnd_api.compatible_api_call (l_api_version
10877 , p_api_version
10878 , l_api_name
10879 , g_pkg_name)
10880 THEN
10881 RAISE fnd_api.g_exc_error;
10882 END IF;
10883
10884 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Before opening cursor c_pn_var_rents'
10885 , 3);
10886
10887 OPEN c_pn_var_rents;
10888
10889 FETCH c_pn_var_rents
10890 INTO l_pn_var_rents_rec;
10891
10892 IF (c_pn_var_rents%NOTFOUND)
10893 THEN
10894 x_return_status := fnd_api.g_ret_sts_error;
10895 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_rents not found', 3);
10896 ELSE
10897 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_rents found', 3);
10898
10899 IF ( p_upd_var_rent_rec.rent_num IS NULL
10900 OR p_upd_var_rent_rec.rent_num = pn_varen_util.g_pn_miss_char)
10901 THEN
10902 p_upd_var_rent_rec.rent_num := l_pn_var_rents_rec.rent_num;
10903 pn_varen_util.pvt_debug
10904 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.rent_num : '
10905 || l_pn_var_rents_rec.rent_num
10906 , 3);
10907 pn_varen_util.pvt_debug
10908 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.rent_num : '
10909 || p_upd_var_rent_rec.rent_num
10910 , 3);
10911 END IF;
10912
10913 -- The below IF block has been commented by Vivek on 03-DEC-2010
10914 /*
10915 IF ( p_upd_var_rent_rec.lease_id IS NULL
10916 OR p_upd_var_rent_rec.lease_id = pn_varen_util.g_pn_miss_num)
10917 THEN
10918 --l_pn_var_rents_rec.lease_id := p_upd_var_rent_rec.lease_id;
10919 p_upd_var_rent_rec.lease_id := l_pn_var_rents_rec.lease_id;
10920 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.lease_id : '
10921 || l_pn_var_rents_rec.lease_id
10922 , 3
10923 );
10924 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.lease_id : '
10925 || p_upd_var_rent_rec.lease_id
10926 , 3
10927 );
10928 END IF;
10929 */
10930
10931 -- The below IF block has been added by Vivek on 03-DEC-2010
10932 IF ( p_upd_var_rent_rec.lease_id IS NOT NULL
10933 AND p_upd_var_rent_rec.lease_id <> pn_varen_util.g_pn_miss_num
10934 AND p_upd_var_rent_rec.lease_id <> l_pn_var_rents_rec.lease_id)
10935 --OR ( p_upd_var_rent_rec.lease_num IS NOT NULL AND p_upd_var_rent_rec.lease_num <> pn_varen_util.g_pn_miss_char)
10936 --OR ( p_upd_var_rent_rec.lease_name IS NOT NULL AND p_upd_var_rent_rec.lease_name <> pn_varen_util.g_pn_miss_char)
10937 THEN
10938 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Validate_Var_Rent: Calling Lease Validation ', 3);
10939 pn_varen_util.pvt_debug
10940 ('PN_VAREN_PVT: Validate_Var_Rent: Start of pn_varen_util.validate_lease procedure'
10941 , 3);
10942 l_location_id := p_upd_var_rent_rec.location_id;
10943 pn_varen_util.validate_lease (p_lease_name => NULL
10944 --p_upd_var_rent_rec.lease_name
10945 , p_lease_num => NULL
10946 --p_upd_var_rent_rec.lease_num
10947 , x_lease_id => p_upd_var_rent_rec.lease_id
10948 , x_proration_days => l_proration_days
10949 , x_location_id => l_location_id
10950 , p_location_code => p_upd_var_rent_rec.location_code
10951 , x_lease_commencement_date => l_commencement_date
10952 , x_lease_termination_date => l_termination_date
10953 , p_org_id => g_org_id
10954 , x_return_status => x_return_status);
10955 pn_varen_util.pvt_debug
10956 ( 'PN_VAREN_PVT: Validate_Var_Rent: End of pn_varen_util.validate_lease procedure status :'
10957 || x_return_status
10958 , 3);
10959 pn_varen_util.pvt_debug
10960 ( 'PN_VAREN_PVT: Validate_Var_Rent: Lease Id Validation Output :'
10961 || p_upd_var_rent_rec.lease_id
10962 , 3);
10963
10964 IF (x_return_status <> fnd_api.g_ret_sts_success)
10965 THEN
10966 pn_varen_util.pvt_debug
10967 ( 'PN_VAREN_PVT: Validate_Var_Rent: p_var_rent_rec.lease_id Error: '
10968 || p_upd_var_rent_rec.lease_id
10969 , 3);
10970 fnd_message.set_name ('PN', 'PN_VAR_INVALID_LEASE');
10971 fnd_msg_pub.ADD;
10972 RAISE fnd_api.g_exc_error;
10973 END IF;
10974
10975 IF p_upd_var_rent_rec.location_id IS NULL
10976 OR p_upd_var_rent_rec.location_id = pn_varen_util.g_pn_miss_num
10977 THEN
10978 p_upd_var_rent_rec.location_id := l_location_id;
10979 END IF;
10980
10981 IF p_upd_var_rent_rec.proration_days IS NULL
10982 OR p_upd_var_rent_rec.proration_days = pn_varen_util.g_pn_miss_num
10983 THEN
10984 p_upd_var_rent_rec.proration_days := l_proration_days;
10985 END IF;
10986
10987 IF p_upd_var_rent_rec.commencement_date IS NULL
10988 OR p_upd_var_rent_rec.commencement_date = pn_varen_util.g_pn_miss_date
10989 THEN
10990 p_upd_var_rent_rec.commencement_date := l_commencement_date;
10991 END IF;
10992
10993 IF p_upd_var_rent_rec.termination_date IS NULL
10994 OR p_upd_var_rent_rec.termination_date = pn_varen_util.g_pn_miss_date
10995 THEN
10996 p_upd_var_rent_rec.termination_date := l_termination_date;
10997 END IF;
10998
10999
11000 ELSE
11001 p_upd_var_rent_rec.lease_id := l_pn_var_rents_rec.lease_id;
11002 -- p_upd_var_rent_rec.lease_num := l_pn_var_rents_rec.lease_num;
11003 --p_upd_var_rent_rec.lease_name := l_pn_var_rents_rec.lease_name;
11004 --p_upd_var_rent_rec.proration_days := l_pn_var_rents_rec.proration_days
11005 --p_upd_var_rent_rec.location_id := l_pn_var_rents_rec.location_id
11006 --p_upd_var_rent_rec.commencement_date := l_pn_var_rents_rec.commencement_date
11007 --p_upd_var_rent_rec.termination_date := l_pn_var_rents_rec.termination_date
11008 END IF;
11009
11010 IF ( p_upd_var_rent_rec.abstracted_by_user IS NOT NULL
11011 AND p_upd_var_rent_rec.abstracted_by_user <> pn_varen_util.g_pn_miss_char)
11012 THEN
11013 --------------------------------------------------------------------------------
11014 --Abstracted by user validation
11015 --------------------------------------------------------------------------------
11016 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Val_Varent: Calling User Validation', 3);
11017 pn_varen_util.validate_abst_user (x_user_name => p_upd_var_rent_rec.abstracted_by_user
11018 , x_user_id => p_upd_var_rent_rec.abstracted_by_user_id
11019 , x_return_status => x_return_status);
11020 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: User Validation user id :'
11021 || p_upd_var_rent_rec.abstracted_by_user_id
11022 , 3);
11023 pn_varen_util.pvt_debug
11024 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of User Validation procedure '
11025 || x_return_status
11026 , 3);
11027 pn_varen_util.pvt_debug
11028 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.abstracted_by_user : '
11029 || l_pn_var_rents_rec.abstracted_by_user
11030 , 3);
11031 pn_varen_util.pvt_debug
11032 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.abstracted_by_user : '
11033 || p_upd_var_rent_rec.abstracted_by_user
11034 , 3);
11035
11036 IF (x_return_status = fnd_api.g_ret_sts_error)
11037 THEN
11038 fnd_message.set_name ('PN', 'PN_VAR_ABS_USER');
11039 fnd_message.set_token ('ABSTRACTED_BY_USER_ID'
11040 , p_upd_var_rent_rec.abstracted_by_user
11041 || '/'
11042 || p_upd_var_rent_rec.abstracted_by_user_id);
11043 pn_varen_util.pvt_debug
11044 ( 'PN_VAREN_PVT: Upd_Val_Varent: User Validation User Name Expected Error:'
11045 || p_upd_var_rent_rec.abstracted_by_user
11046 , 3);
11047 fnd_msg_pub.ADD;
11048 RAISE fnd_api.g_exc_error;
11049 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11050 THEN
11051 fnd_message.set_name ('PN', 'PN_VAR_ABS_USER');
11052 fnd_message.set_token ('ABSTRACTED_BY_USER_ID'
11053 , p_upd_var_rent_rec.abstracted_by_user
11054 || '/'
11055 || p_upd_var_rent_rec.abstracted_by_user_id);
11056 pn_varen_util.pvt_debug
11057 ( 'PN_VAREN_PVT: Upd_Val_Varent: User Validation user Name Un-Expected Error:'
11058 || p_upd_var_rent_rec.abstracted_by_user
11059 , 3);
11060 fnd_msg_pub.ADD;
11061 RAISE fnd_api.g_exc_unexpected_error;
11062 ELSE
11063 pn_varen_util.pvt_debug
11064 ( 'PN_VAREN_PVT: Upd_Val_Varent: User Validation user id Success:'
11065 || p_upd_var_rent_rec.abstracted_by_user_id
11066 , 3);
11067 END IF;
11068 --END IF;
11069 ELSE
11070 p_upd_var_rent_rec.abstracted_by_user := l_pn_var_rents_rec.abstracted_by_user;
11071 pn_varen_util.pvt_debug
11072 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.abstracted_by_user : '
11073 || l_pn_var_rents_rec.abstracted_by_user
11074 , 3);
11075 pn_varen_util.pvt_debug
11076 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.abstracted_by_user : '
11077 || p_upd_var_rent_rec.abstracted_by_user
11078 , 3);
11079 END IF;
11080
11081 IF ( p_upd_var_rent_rec.commencement_date IS NULL
11082 OR p_upd_var_rent_rec.commencement_date = pn_varen_util.g_pn_miss_date)
11083 THEN
11084 p_upd_var_rent_rec.commencement_date := l_pn_var_rents_rec.commencement_date;
11085 pn_varen_util.pvt_debug
11086 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.commencement_date : '
11087 || l_pn_var_rents_rec.commencement_date
11088 , 3);
11089 pn_varen_util.pvt_debug
11090 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.commencement_date : '
11091 || p_upd_var_rent_rec.commencement_date
11092 , 3);
11093 END IF;
11094
11095 IF ( p_upd_var_rent_rec.termination_date IS NULL
11096 OR p_upd_var_rent_rec.termination_date = pn_varen_util.g_pn_miss_date)
11097 THEN
11098 p_upd_var_rent_rec.termination_date := l_pn_var_rents_rec.termination_date;
11099 pn_varen_util.pvt_debug
11100 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.termination_date : '
11101 || l_pn_var_rents_rec.termination_date
11102 , 3);
11103 pn_varen_util.pvt_debug
11104 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.termination_date : '
11105 || p_upd_var_rent_rec.termination_date
11106 , 3);
11107 END IF;
11108
11109 -- The below IF block has been commented and a new IF block has been added by Vivek on 02-DEC-2010
11110 /*
11111 IF ( p_upd_var_rent_rec.term_template_id IS NULL
11112 OR p_upd_var_rent_rec.term_template_id = pn_varen_util.g_pn_miss_num
11113 )
11114 OR ( p_upd_var_rent_rec.term_template_name IS NULL
11115 OR p_upd_var_rent_rec.term_template_name = pn_varen_util.g_pn_miss_char
11116 )
11117 THEN*/
11118 -- New IF block added by Vivek on 02-DEC-2010
11119 IF ( p_upd_var_rent_rec.term_template_id IS NOT NULL
11120 AND p_upd_var_rent_rec.term_template_id <> pn_varen_util.g_pn_miss_num)
11121 OR ( p_upd_var_rent_rec.term_template_name IS NOT NULL
11122 OR p_upd_var_rent_rec.term_template_name <> pn_varen_util.g_pn_miss_char)
11123 THEN
11124 --------------------------------------------------------------------------------
11125 --Term template id or name validation
11126 --------------------------------------------------------------------------------
11127 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Val_Varent: Calling Term Template', 3);
11128 pn_varen_util.validate_term_template
11129 (p_org_id => g_org_id
11130 , x_term_template_id => p_upd_var_rent_rec.term_template_id
11131 , x_term_template_name => p_upd_var_rent_rec.term_template_name
11132 , x_return_status => x_return_status);
11133 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Term Template Id :'
11134 || p_upd_var_rent_rec.term_template_id
11135 , 3);
11136 pn_varen_util.pvt_debug
11137 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of Term Template Id procedure '
11138 || x_return_status
11139 , 3);
11140 pn_varen_util.pvt_debug
11141 ( 'PN_VAREN_PVT: Update_Var_Rent: Before p_upd_var_rent_rec.term_template_id : '
11142 || p_upd_var_rent_rec.term_template_id
11143 , 3);
11144 pn_varen_util.pvt_debug
11145 ( 'PN_VAREN_PVT: Update_Var_Rent: Before p_upd_var_rent_rec.term_template_name : '
11146 || p_upd_var_rent_rec.term_template_name
11147 , 3);
11148
11149 IF (x_return_status = fnd_api.g_ret_sts_error)
11150 THEN
11151 fnd_message.set_name ('PN', 'PN_VAR_TRM_TEM');
11152 fnd_message.set_token ('TERM_TEMPLATE_ID_NAME'
11153 , p_upd_var_rent_rec.term_template_id
11154 || '/'
11155 || p_upd_var_rent_rec.term_template_name);
11156 pn_varen_util.pvt_debug
11157 ( 'PN_VAREN_PVT: Upd_Val_Varent: Term Template Name Expected Error :'
11158 || p_upd_var_rent_rec.term_template_name
11159 , 3);
11160 fnd_msg_pub.ADD;
11161 RAISE fnd_api.g_exc_error;
11162 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11163 THEN
11164 fnd_message.set_name ('PN', 'PN_VAR_TRM_TEM');
11165 fnd_message.set_token ('TERM_TEMPLATE_ID_NAME'
11166 , p_upd_var_rent_rec.term_template_id
11167 || '/'
11168 || p_upd_var_rent_rec.term_template_name);
11169 pn_varen_util.pvt_debug
11170 ( 'PN_VAREN_PVT: Upd_Val_Varent: Term Template Name Un-Expected Error :'
11171 || p_upd_var_rent_rec.term_template_name
11172 , 3);
11173 fnd_msg_pub.ADD;
11174 RAISE fnd_api.g_exc_unexpected_error;
11175 ELSE
11176 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Term Template Id Success :'
11177 || p_upd_var_rent_rec.term_template_id
11178 , 3);
11179 END IF;
11180 ELSE
11181 p_upd_var_rent_rec.term_template_id := l_pn_var_rents_rec.term_template_id;
11182 pn_varen_util.pvt_debug
11183 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.term_template_id : '
11184 || l_pn_var_rents_rec.term_template_id
11185 , 3);
11186 pn_varen_util.pvt_debug
11187 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.term_template_id : '
11188 || p_upd_var_rent_rec.term_template_id
11189 , 3);
11190 --l_pn_var_rents_rec.term_template_name := p_upd_var_rent_rec.term_template_name;
11191 END IF;
11192
11193 IF ( p_upd_var_rent_rec.currency_code IS NOT NULL
11194 AND p_upd_var_rent_rec.currency_code <> pn_varen_util.g_pn_miss_char)
11195 THEN
11196 --------------------------------------------------------------------------------
11197 --Currency Validation
11198 --------------------------------------------------------------------------------
11199 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Val_Varent: Calling Currency', 3);
11200 pn_varen_util.validate_currency (p_currency_code => p_upd_var_rent_rec.currency_code
11201 , x_return_status => x_return_status);
11202 pn_varen_util.pvt_debug
11203 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of Currency validation procedure '
11204 || l_return_status
11205 , 3);
11206 pn_varen_util.pvt_debug
11207 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.currency_code : '
11208 || l_pn_var_rents_rec.currency_code
11209 , 3);
11210 pn_varen_util.pvt_debug
11211 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.currency_code : '
11212 || p_upd_var_rent_rec.currency_code
11213 , 3);
11214
11215 IF (x_return_status = fnd_api.g_ret_sts_error)
11216 THEN
11217 fnd_message.set_name ('PN', 'PN_VAR_CUR_CODE');
11218 fnd_message.set_token ('CURRENCY_CODE', p_upd_var_rent_rec.currency_code);
11219 pn_varen_util.pvt_debug
11220 ( 'PN_VAREN_PVT: Upd_Val_Varent: Currency Code Expected Error :'
11221 || p_upd_var_rent_rec.currency_code
11222 , 3);
11223 fnd_msg_pub.ADD;
11224 RAISE fnd_api.g_exc_error;
11225 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11226 THEN
11227 fnd_message.set_name ('PN', 'PN_VAR_CUR_CODE');
11228 fnd_message.set_token ('CURRENCY_CODE', p_upd_var_rent_rec.currency_code);
11229 pn_varen_util.pvt_debug
11230 ( 'PN_VAREN_PVT: Upd_Val_Varent: Currency Code Un-Expected Error :'
11231 || p_upd_var_rent_rec.currency_code
11232 , 3);
11233 fnd_msg_pub.ADD;
11234 RAISE fnd_api.g_exc_error;
11235 ELSE
11236 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Currency Code Success :'
11237 || p_upd_var_rent_rec.currency_code
11238 , 3);
11239 END IF;
11240 ELSE
11241 p_upd_var_rent_rec.currency_code := l_pn_var_rents_rec.currency_code;
11242 pn_varen_util.pvt_debug
11243 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.currency_code : '
11244 || l_pn_var_rents_rec.currency_code
11245 , 3);
11246 pn_varen_util.pvt_debug
11247 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.currency_code : '
11248 || p_upd_var_rent_rec.currency_code
11249 , 3);
11250 END IF;
11251
11252 IF ( p_upd_var_rent_rec.proration_days IS NULL
11253 OR p_upd_var_rent_rec.proration_days = pn_varen_util.g_pn_miss_num)
11254 THEN
11255 p_upd_var_rent_rec.proration_days := l_pn_var_rents_rec.proration_days;
11256 pn_varen_util.pvt_debug
11257 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.proration_days : '
11258 || l_pn_var_rents_rec.proration_days
11259 , 3);
11260 pn_varen_util.pvt_debug
11261 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.proration_days : '
11262 || p_upd_var_rent_rec.proration_days
11263 , 3);
11264 END IF;
11265
11266 IF ( p_upd_var_rent_rec.agreement_template_id IS NULL
11267 OR p_upd_var_rent_rec.agreement_template_id = pn_varen_util.g_pn_miss_num)
11268 OR ( p_upd_var_rent_rec.agreement_template_name IS NULL
11269 OR p_upd_var_rent_rec.agreement_template_name = pn_varen_util.g_pn_miss_char)
11270 THEN
11271 p_upd_var_rent_rec.agreement_template_id := l_pn_var_rents_rec.agreement_template_id;
11272 pn_varen_util.pvt_debug
11273 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.agreement_template_id : '
11274 || l_pn_var_rents_rec.agreement_template_id
11275 , 3);
11276 pn_varen_util.pvt_debug
11277 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.agreement_template_id : '
11278 || p_upd_var_rent_rec.agreement_template_id
11279 , 3);
11280 --l_pn_var_rents_rec.agreement_template_name := p_upd_var_rent_rec.agreement_template_name;
11281 END IF;
11282
11283 -- The below IF block has been commented and a new IF block has been added by Vivek on 02-DEC-2010
11284 /*
11285 IF ( p_upd_var_rent_rec.cumulative_vol_code IS NULL
11286 OR p_upd_var_rent_rec.cumulative_vol_code = pn_varen_util.g_pn_miss_char
11287 )
11288 OR ( p_upd_var_rent_rec.cumulative_vol_meaning IS NULL
11289 OR p_upd_var_rent_rec.cumulative_vol_meaning = pn_varen_util.g_pn_miss_char
11290 )
11291 THEN
11292 */
11293
11294 -- New IF block added by Vivek on 02-DEC-2010
11295 IF ( p_upd_var_rent_rec.cumulative_vol_code IS NOT NULL
11296 AND p_upd_var_rent_rec.cumulative_vol_code <> pn_varen_util.g_pn_miss_char)
11297 OR ( p_upd_var_rent_rec.cumulative_vol_meaning IS NOT NULL
11298 AND p_upd_var_rent_rec.cumulative_vol_meaning <> pn_varen_util.g_pn_miss_char)
11299 THEN
11300 --------------------------------------------------------------------------------
11301 --Cumulative Volume or Method validation
11302 --------------------------------------------------------------------------------
11303 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Val_Varent: Calling Cumulative Volume', 3);
11304 pn_varen_util.validate_lookups
11305 (p_lookup_type => g_cumulative_vol
11306 , x_lookup_meaning => p_upd_var_rent_rec.cumulative_vol_meaning
11307 , x_lookup_code => p_upd_var_rent_rec.cumulative_vol_code
11308 , x_return_status => x_return_status);
11309 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Cumulative Volume Code :'
11310 || p_upd_var_rent_rec.cumulative_vol_code
11311 , 3);
11312 pn_varen_util.pvt_debug
11313 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of Cumulative Volume Code procedure '
11314 || x_return_status
11315 , 3);
11316 pn_varen_util.pvt_debug
11317 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.cumulative_vol_code : '
11318 || p_upd_var_rent_rec.cumulative_vol_code
11319 , 3);
11320 pn_varen_util.pvt_debug
11321 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.cumulative_vol_meaning : '
11322 || p_upd_var_rent_rec.cumulative_vol_meaning
11323 , 3);
11324
11325 IF (x_return_status = fnd_api.g_ret_sts_error)
11326 THEN
11327 fnd_message.set_name ('PN', 'PN_VAR_CUMM_VOL');
11328 fnd_message.set_token ('CUMULATIVE_VOL_CODE_MEANING'
11329 , p_upd_var_rent_rec.cumulative_vol_meaning
11330 || '/'
11331 || p_upd_var_rent_rec.cumulative_vol_code);
11332 pn_varen_util.pvt_debug
11333 ( 'PN_VAREN_PVT: Upd_Val_Varent: Cumulative Volume Meaning Expected Error:'
11334 || p_upd_var_rent_rec.cumulative_vol_meaning
11335 , 3);
11336 fnd_msg_pub.ADD;
11337 RAISE fnd_api.g_exc_error;
11338 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11339 THEN
11340 fnd_message.set_name ('PN', 'PN_VAR_CUMM_VOL');
11341 fnd_message.set_token ('CUMULATIVE_VOL_CODE_MEANING'
11342 , p_upd_var_rent_rec.cumulative_vol_meaning
11343 || '/'
11344 || p_upd_var_rent_rec.cumulative_vol_code);
11345 pn_varen_util.pvt_debug
11346 ( 'PN_VAREN_PVT: Upd_Val_Varent: Cumulative Volume Meaning Un-Expected Error:'
11347 || p_upd_var_rent_rec.cumulative_vol_meaning
11348 , 3);
11349 fnd_msg_pub.ADD;
11350 RAISE fnd_api.g_exc_unexpected_error;
11351 ELSE
11352 pn_varen_util.pvt_debug
11353 ( 'PN_VAREN_PVT: Upd_Val_Varent: Cumulative Volume Code Success:'
11354 || p_upd_var_rent_rec.cumulative_vol_code
11355 , 3);
11356 END IF; -- l_return_status
11357 ELSE
11358 p_upd_var_rent_rec.cumulative_vol_code := l_pn_var_rents_rec.cumulative_vol;
11359 pn_varen_util.pvt_debug
11360 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.cumulative_vol : '
11361 || l_pn_var_rents_rec.cumulative_vol
11362 , 3);
11363 pn_varen_util.pvt_debug
11364 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.cumulative_vol_code : '
11365 || p_upd_var_rent_rec.cumulative_vol_code
11366 , 3);
11367 --l_pn_var_rents_rec.cumulative_vol_meaning := p_upd_var_rent_rec.cumulative_vol_meaning;
11368 END IF;
11369
11370 -- The below IF block has been commented and a new IF block has been added by Vivek on 02-DEC-2010
11371 /*
11372 IF ( p_upd_var_rent_rec.proration_rule_code IS NULL
11373 OR p_upd_var_rent_rec.proration_rule_code = pn_varen_util.g_pn_miss_char
11374 )
11375 OR ( p_upd_var_rent_rec.proration_rule_meaning IS NULL
11376 OR p_upd_var_rent_rec.proration_rule_meaning = pn_varen_util.g_pn_miss_char
11377 )
11378 THEN
11379 */
11380 -- New IF block added by Vivek on 02-DEC-2010
11381 IF ( p_upd_var_rent_rec.proration_rule_code IS NOT NULL
11382 AND p_upd_var_rent_rec.proration_rule_code <> pn_varen_util.g_pn_miss_char)
11383 OR ( p_upd_var_rent_rec.proration_rule_meaning IS NOT NULL
11384 AND p_upd_var_rent_rec.proration_rule_meaning <> pn_varen_util.g_pn_miss_char)
11385 THEN
11386 --------------------------------------------------------------------------------
11387 --Proration Rule code validation or partial year method
11388 --------------------------------------------------------------------------------
11389 pn_varen_util.pvt_debug
11390 ('PN_VAREN_PVT: Upd_Val_Varent: Calling Proration Rule / Parial Year Method'
11391 , 3);
11392 pn_varen_util.validate_lookups
11393 (p_lookup_type => g_proration_rule
11394 , x_lookup_meaning => p_upd_var_rent_rec.proration_rule_meaning
11395 , x_lookup_code => p_upd_var_rent_rec.proration_rule_code
11396 , x_return_status => x_return_status);
11397 pn_varen_util.pvt_debug
11398 ( 'PN_VAREN_PVT: Upd_Val_Varent: Proration Rule / Parial Year Method Code :'
11399 || p_upd_var_rent_rec.proration_rule_code
11400 , 3);
11401 pn_varen_util.pvt_debug
11402 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of Proration Rule Code procedure '
11403 || x_return_status
11404 , 3);
11405 pn_varen_util.pvt_debug
11406 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.proration_rule_meaning : '
11407 || p_upd_var_rent_rec.proration_rule_meaning
11408 , 3);
11409 pn_varen_util.pvt_debug
11410 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.proration_rule_code : '
11411 || p_upd_var_rent_rec.proration_rule_code
11412 , 3);
11413
11414 IF (x_return_status = fnd_api.g_ret_sts_error)
11415 THEN
11416 fnd_message.set_name ('PN', 'PN_VAR_PRO_RUL');
11417 fnd_message.set_token ('PRORATION_RULE_CODE_MEANING'
11418 , p_upd_var_rent_rec.proration_rule_meaning
11419 || '/'
11420 || p_upd_var_rent_rec.proration_rule_code);
11421 pn_varen_util.pvt_debug
11422 ( 'PN_VAREN_PVT: Upd_Val_Varent: Proration Rule / Parial Year Method Meaning Expected Error :'
11423 || p_upd_var_rent_rec.proration_rule_meaning
11424 , 3);
11425 fnd_msg_pub.ADD;
11426 RAISE fnd_api.g_exc_error;
11427 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11428 THEN
11429 fnd_message.set_name ('PN', 'PN_VAR_PRO_RUL');
11430 fnd_message.set_token ('PRORATION_RULE_CODE_MEANING'
11431 , p_upd_var_rent_rec.proration_rule_meaning
11432 || '/'
11433 || p_upd_var_rent_rec.proration_rule_code);
11434 pn_varen_util.pvt_debug
11435 ( 'PN_VAREN_PVT: Upd_Val_Varent: Proration Rule / Parial Year Method Meaning Un-Expected Error :'
11436 || p_upd_var_rent_rec.proration_rule_meaning
11437 , 3);
11438 fnd_msg_pub.ADD;
11439 RAISE fnd_api.g_exc_unexpected_error;
11440 ELSE
11441 pn_varen_util.pvt_debug
11442 ( 'PN_VAREN_PVT: Upd_Val_Varent: Proration Rule / Parial Year Method Code Success :'
11443 || p_upd_var_rent_rec.proration_rule_code
11444 , 3);
11445 END IF;
11446 --END IF;
11447 ELSE
11448 p_upd_var_rent_rec.proration_rule_code := l_pn_var_rents_rec.proration_rule;
11449 pn_varen_util.pvt_debug
11450 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.proration_rule : '
11451 || l_pn_var_rents_rec.proration_rule
11452 , 3);
11453 pn_varen_util.pvt_debug
11454 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.proration_rule_code : '
11455 || p_upd_var_rent_rec.proration_rule_code
11456 , 3);
11457 --l_pn_var_rents_rec.proration_rule_meaning := p_upd_var_rent_rec.proration_rule_meaning;
11458 END IF;
11459
11460 -- The below IF block has been commented and a new IF block has been added by Vivek on 02-DEC-2010
11461 /*
11462 IF ( p_upd_var_rent_rec.invoice_on_code IS NULL
11463 OR p_upd_var_rent_rec.invoice_on_code = pn_varen_util.g_pn_miss_char
11464 )
11465 OR ( p_upd_var_rent_rec.invoice_on_meaning IS NULL
11466 OR p_upd_var_rent_rec.invoice_on_meaning = pn_varen_util.g_pn_miss_char
11467 )
11468 THEN
11469 */
11470 -- New IF block added by Vivek on 02-DEC-2010
11471 IF ( p_upd_var_rent_rec.invoice_on_code IS NOT NULL
11472 AND p_upd_var_rent_rec.invoice_on_code <> pn_varen_util.g_pn_miss_char)
11473 OR ( p_upd_var_rent_rec.invoice_on_meaning IS NOT NULL
11474 AND p_upd_var_rent_rec.invoice_on_meaning <> pn_varen_util.g_pn_miss_char)
11475 THEN
11476 --------------------------------------------------------------------------------
11477 --Invoice On Code validation
11478 --------------------------------------------------------------------------------
11479 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Val_Varent: Calling Invoice on', 3);
11480 pn_varen_util.validate_lookups (p_lookup_type => g_invoice_on
11481 , x_lookup_meaning => p_upd_var_rent_rec.invoice_on_meaning
11482 , x_lookup_code => p_upd_var_rent_rec.invoice_on_code
11483 , x_return_status => x_return_status);
11484 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Invoice on Code :'
11485 || p_upd_var_rent_rec.invoice_on_code
11486 , 3);
11487 pn_varen_util.pvt_debug
11488 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of Invoice on Code procedure '
11489 || x_return_status
11490 , 3);
11491 pn_varen_util.pvt_debug
11492 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.invoice_on_meaning : '
11493 || p_upd_var_rent_rec.invoice_on_meaning
11494 , 3);
11495 pn_varen_util.pvt_debug
11496 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.invoice_on_code : '
11497 || p_upd_var_rent_rec.invoice_on_code
11498 , 3);
11499
11500 IF (x_return_status = fnd_api.g_ret_sts_error)
11501 THEN
11502 fnd_message.set_name ('PN', 'PN_VAR_INV_ON');
11503 fnd_message.set_token ('INVOICE_ON_CODE_MEANING'
11504 , p_upd_var_rent_rec.invoice_on_meaning
11505 || '/'
11506 || p_upd_var_rent_rec.invoice_on_code);
11507 pn_varen_util.pvt_debug
11508 ( 'PN_VAREN_PVT: Upd_Val_Varent: Invoice on Meaning Expected Error :'
11509 || p_upd_var_rent_rec.invoice_on_meaning
11510 , 3);
11511 fnd_msg_pub.ADD;
11512 RAISE fnd_api.g_exc_error;
11513 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11514 THEN
11515 fnd_message.set_name ('PN', 'PN_VAR_INV_ON');
11516 fnd_message.set_token ('INVOICE_ON_CODE_MEANING'
11517 , p_upd_var_rent_rec.invoice_on_meaning
11518 || '/'
11519 || p_upd_var_rent_rec.invoice_on_code);
11520 pn_varen_util.pvt_debug
11521 ( 'PN_VAREN_PVT: Upd_Val_Varent: Invoice on Meaning Un-Expected Error :'
11522 || p_upd_var_rent_rec.invoice_on_meaning
11523 , 3);
11524 fnd_msg_pub.ADD;
11525 RAISE fnd_api.g_exc_unexpected_error;
11526 ELSE
11527 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Invoice on Code Success :'
11528 || p_upd_var_rent_rec.invoice_on_code
11529 , 3);
11530 END IF;
11531 --END IF;
11532 ELSE
11533 p_upd_var_rent_rec.invoice_on_code := l_pn_var_rents_rec.invoice_on;
11534 pn_varen_util.pvt_debug
11535 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.invoice_on : '
11536 || l_pn_var_rents_rec.invoice_on
11537 , 3);
11538 pn_varen_util.pvt_debug
11539 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.invoice_on_code : '
11540 || p_upd_var_rent_rec.invoice_on_code
11541 , 3);
11542 --l_pn_var_rents_rec.invoice_on_meaning := p_upd_var_rent_rec.invoice_on_meaning;
11543 END IF;
11544
11545 -- The below IF block has been commented and a new IF block has been added by Vivek on 02-DEC-2010
11546 /*
11547 IF ( p_upd_var_rent_rec.negative_rent_code IS NULL
11548 OR p_upd_var_rent_rec.negative_rent_code = pn_varen_util.g_pn_miss_char
11549 )
11550 OR ( p_upd_var_rent_rec.negative_rent_meaning IS NULL
11551 OR p_upd_var_rent_rec.negative_rent_meaning = pn_varen_util.g_pn_miss_char
11552 )
11553 THEN
11554 */
11555 -- New IF block added by Vivek on 02-DEC-2010
11556 IF ( p_upd_var_rent_rec.negative_rent_code IS NOT NULL
11557 AND p_upd_var_rent_rec.negative_rent_code <> pn_varen_util.g_pn_miss_char)
11558 OR ( p_upd_var_rent_rec.negative_rent_meaning IS NOT NULL
11559 AND p_upd_var_rent_rec.negative_rent_meaning <> pn_varen_util.g_pn_miss_char)
11560 THEN
11561 --------------------------------------------------------------------------------
11562 --Negative Rent Validation
11563 --------------------------------------------------------------------------------
11564 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Val_Varent: Calling Negative Rent', 3);
11565 pn_varen_util.validate_lookups
11566 (p_lookup_type => g_negative_rent
11567 , x_lookup_meaning => p_upd_var_rent_rec.negative_rent_meaning
11568 , x_lookup_code => p_upd_var_rent_rec.negative_rent_code
11569 , x_return_status => x_return_status);
11570 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Negative Rent :'
11571 || p_upd_var_rent_rec.negative_rent_code
11572 , 3);
11573 pn_varen_util.pvt_debug
11574 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of Negative Rent procedure '
11575 || x_return_status
11576 , 3);
11577 pn_varen_util.pvt_debug
11578 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.negative_rent_meaning : '
11579 || p_upd_var_rent_rec.negative_rent_meaning
11580 , 3);
11581 pn_varen_util.pvt_debug
11582 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.negative_rent_code : '
11583 || p_upd_var_rent_rec.negative_rent_code
11584 , 3);
11585
11586 IF (x_return_status = fnd_api.g_ret_sts_error)
11587 THEN
11588 pn_varen_util.pvt_debug
11589 ( 'PN_VAREN_PVT: Upd_Val_Varent: Negative Rent Meaning Expected Error :'
11590 || p_upd_var_rent_rec.negative_rent_meaning
11591 , 3);
11592 fnd_message.set_name ('PN', 'PN_VAR_NEG_REN');
11593 fnd_message.set_token ('NEGATIVE_RENT_CODE_MEANING'
11594 , p_upd_var_rent_rec.negative_rent_meaning
11595 || '/'
11596 || p_upd_var_rent_rec.negative_rent_code);
11597 fnd_msg_pub.ADD;
11598 RAISE fnd_api.g_exc_error;
11599 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11600 THEN
11601 pn_varen_util.pvt_debug
11602 ( 'PN_VAREN_PVT: Upd_Val_Varent: Negative Rent Meaning Un-Expected Error :'
11603 || p_upd_var_rent_rec.negative_rent_meaning
11604 , 3);
11605 fnd_message.set_name ('PN', 'PN_VAR_NEG_REN');
11606 fnd_message.set_token ('NEGATIVE_RENT_CODE_MEANING'
11607 , p_upd_var_rent_rec.negative_rent_meaning
11608 || '/'
11609 || p_upd_var_rent_rec.negative_rent_code);
11610 fnd_msg_pub.ADD;
11611 RAISE fnd_api.g_exc_unexpected_error;
11612 ELSE
11613 pn_varen_util.pvt_debug
11614 ( 'PN_VAREN_PVT: Upd_Val_Varent: Negative Rent Code Success :'
11615 || p_upd_var_rent_rec.negative_rent_code
11616 , 3);
11617 END IF;
11618 --END IF;
11619 ELSE
11620 p_upd_var_rent_rec.negative_rent_code := l_pn_var_rents_rec.negative_rent;
11621 pn_varen_util.pvt_debug
11622 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.negative_rent : '
11623 || l_pn_var_rents_rec.negative_rent
11624 , 3);
11625 pn_varen_util.pvt_debug
11626 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.negative_rent_code : '
11627 || p_upd_var_rent_rec.negative_rent_code
11628 , 3);
11629 --l_pn_var_rents_rec.negative_rent_meaning := p_upd_var_rent_rec.negative_rent_meaning;
11630 END IF;
11631
11632 -- The below IF block has been commented and a new IF block has been added by Vivek on 02-DEC-2010
11633 /*
11634 IF ( p_upd_var_rent_rec.type_code IS NULL
11635 OR p_upd_var_rent_rec.type_code = pn_varen_util.g_pn_miss_char)
11636 OR ( p_upd_var_rent_rec.type_meaning IS NULL
11637 OR p_upd_var_rent_rec.type_meaning = pn_varen_util.g_pn_miss_char
11638 )
11639 THEN
11640 */
11641
11642 -- New IF block added by Vivek on 02-DEC-2010
11643 IF ( p_upd_var_rent_rec.type_code IS NOT NULL
11644 AND p_upd_var_rent_rec.type_code <> pn_varen_util.g_pn_miss_char)
11645 OR ( p_upd_var_rent_rec.type_meaning IS NOT NULL
11646 AND p_upd_var_rent_rec.type_meaning <> pn_varen_util.g_pn_miss_char)
11647 THEN
11648 --------------------------------------------------------------------------------
11649 --Volume Type or Type Code validation
11650 --------------------------------------------------------------------------------
11651 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Upd_Val_Varent: Calling Rent Type Validation', 3);
11652 pn_varen_util.validate_lookups (p_lookup_type => g_rent_type
11653 , x_lookup_meaning => p_upd_var_rent_rec.type_meaning
11654 , x_lookup_code => p_upd_var_rent_rec.type_code
11655 , x_return_status => x_return_status);
11656 pn_varen_util.pvt_debug
11657 ( 'PN_VAREN_PVT: Upd_Val_Varent: Rent Type Meaning Validation Output :'
11658 || p_upd_var_rent_rec.type_meaning
11659 , 3);
11660 pn_varen_util.pvt_debug
11661 ( 'PN_VAREN_PVT: Upd_Val_Varent: Rent Type Code Validation Output :'
11662 || p_upd_var_rent_rec.type_code
11663 , 3);
11664 pn_varen_util.pvt_debug
11665 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of Rent type validation procedure '
11666 || x_return_status
11667 , 3);
11668 pn_varen_util.pvt_debug
11669 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.type_meaning : '
11670 || p_upd_var_rent_rec.type_meaning
11671 , 3);
11672 pn_varen_util.pvt_debug
11673 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.type_code : '
11674 || p_upd_var_rent_rec.type_code
11675 , 3);
11676
11677 IF (x_return_status = fnd_api.g_ret_sts_error)
11678 THEN
11679 fnd_message.set_name ('PN', 'PN_VAR_VOL_TY');
11680 fnd_message.set_token ('VOLUME_TYPE_CODE_MEANING'
11681 , p_upd_var_rent_rec.type_meaning
11682 || '/'
11683 || p_upd_var_rent_rec.type_code);
11684 pn_varen_util.pvt_debug
11685 ( 'PN_VAREN_PVT: Upd_Val_Varent: Rent Type Meaning Validation Expected Error :'
11686 || p_upd_var_rent_rec.type_meaning
11687 , 3);
11688 fnd_msg_pub.ADD;
11689 RAISE fnd_api.g_exc_error;
11690 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11691 THEN
11692 fnd_message.set_name ('PN', 'PN_VAR_VOL_TY');
11693 fnd_message.set_token ('VOLUME_TYPE_CODE_MEANING'
11694 , p_upd_var_rent_rec.type_meaning
11695 || '/'
11696 || p_upd_var_rent_rec.type_code);
11697 pn_varen_util.pvt_debug
11698 ( 'PN_VAREN_PVT: Upd_Val_Varent: Rent Type Meaning Validation Un-Expected Error :'
11699 || p_upd_var_rent_rec.type_meaning
11700 , 3);
11701 fnd_msg_pub.ADD;
11702 RAISE fnd_api.g_exc_unexpected_error;
11703 ELSE
11704 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Rent Type Code Success :'
11705 || p_upd_var_rent_rec.type_code
11706 , 3);
11707 END IF;
11708 --END IF;
11709 ELSE
11710 p_upd_var_rent_rec.type_code := l_pn_var_rents_rec.type_code;
11711 pn_varen_util.pvt_debug
11712 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.type_code : '
11713 || l_pn_var_rents_rec.type_code
11714 , 3);
11715 pn_varen_util.pvt_debug
11716 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.type_code : '
11717 || p_upd_var_rent_rec.type_code
11718 , 3);
11719 --l_pn_var_rents_rec.type_meaning := p_upd_var_rent_rec.type_meaning;
11720 END IF;
11721
11722 -- The below IF block has been commented and a new IF block has been added by Vivek on 02-DEC-2010
11723 /*
11724 IF ( p_upd_var_rent_rec.purpose_code IS NULL
11725 OR p_upd_var_rent_rec.purpose_code = pn_varen_util.g_pn_miss_char
11726 )
11727 OR ( p_upd_var_rent_rec.purpose_code_meaning IS NULL
11728 OR p_upd_var_rent_rec.purpose_code_meaning = pn_varen_util.g_pn_miss_char
11729 )
11730 THEN
11731 */
11732 -- New IF block added by Vivek on 02-DEC-2010
11733 IF ( p_upd_var_rent_rec.purpose_code IS NOT NULL
11734 AND p_upd_var_rent_rec.purpose_code <> pn_varen_util.g_pn_miss_char)
11735 OR ( p_upd_var_rent_rec.purpose_code_meaning IS NOT NULL
11736 AND p_upd_var_rent_rec.purpose_code_meaning <> pn_varen_util.g_pn_miss_char)
11737 THEN
11738 --------------------------------------------------------------------------------
11739 --Purpose code or Category validation
11740 --------------------------------------------------------------------------------
11741 pn_varen_util.pvt_debug
11742 ('PN_VAREN_PVT: Upd_Val_Varent: Calling Payment Purpose Validation'
11743 , 3);
11744 pn_varen_util.validate_lookups
11745 (p_lookup_type => g_payment_purpose
11746 , x_lookup_meaning => p_upd_var_rent_rec.purpose_code_meaning
11747 , x_lookup_code => p_upd_var_rent_rec.purpose_code
11748 , x_return_status => x_return_status);
11749 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Upd_Val_Varent: Payment Purpose Output Code :'
11750 || p_upd_var_rent_rec.purpose_code
11751 , 3);
11752 pn_varen_util.pvt_debug
11753 ( 'PN_VAREN_PVT: Upd_Val_Varent: Return status of Payment Purpose procedure '
11754 || x_return_status
11755 , 3);
11756 pn_varen_util.pvt_debug
11757 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.purpose_code_meaning : '
11758 || p_upd_var_rent_rec.purpose_code_meaning
11759 , 3);
11760 pn_varen_util.pvt_debug
11761 ( 'PN_VAREN_PVT: Upd_Val_Varent: p_upd_var_rent_rec.purpose_code : '
11762 || p_upd_var_rent_rec.purpose_code
11763 , 3);
11764
11765 IF (x_return_status = fnd_api.g_ret_sts_error)
11766 THEN
11767 fnd_message.set_name ('PN', 'PN_VAR_PUR_CODE');
11768 fnd_message.set_token ('PURPOSE_CODE_MEANING'
11769 , p_upd_var_rent_rec.purpose_code_meaning
11770 || '/'
11771 || p_upd_var_rent_rec.purpose_code);
11772 pn_varen_util.pvt_debug
11773 ( 'PN_VAREN_PVT: Upd_Val_Varent: Payment Purpose Meaning Expected Error :'
11774 || p_upd_var_rent_rec.purpose_code_meaning
11775 , 3);
11776 fnd_msg_pub.ADD;
11777 RAISE fnd_api.g_exc_error;
11778 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11779 THEN
11780 fnd_message.set_name ('PN', 'PN_VAR_PUR_CODE');
11781 fnd_message.set_token ('PURPOSE_CODE_MEANING'
11782 , p_upd_var_rent_rec.purpose_code_meaning
11783 || '/'
11784 || p_upd_var_rent_rec.purpose_code);
11785 pn_varen_util.pvt_debug
11786 ( 'PN_VAREN_PVT: Upd_Val_Varent: Payment Purpose Meaning Un-Expected Error :'
11787 || p_upd_var_rent_rec.purpose_code_meaning
11788 , 3);
11789 fnd_msg_pub.ADD;
11790 RAISE fnd_api.g_exc_unexpected_error;
11791 ELSE
11792 pn_varen_util.pvt_debug
11793 ( 'PN_VAREN_PVT: Upd_Val_Varent: Payment Purpose Code Success :'
11794 || p_upd_var_rent_rec.purpose_code
11795 , 3);
11796 END IF;
11797 --END IF;
11798 ELSE
11799 p_upd_var_rent_rec.purpose_code := l_pn_var_rents_rec.purpose_code;
11800 pn_varen_util.pvt_debug
11801 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.purpose_code : '
11802 || l_pn_var_rents_rec.purpose_code
11803 , 3);
11804 pn_varen_util.pvt_debug
11805 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.purpose_code : '
11806 || p_upd_var_rent_rec.purpose_code
11807 , 3);
11808 END IF;
11809
11810 IF ( p_upd_var_rent_rec.last_update_date IS NULL
11811 OR p_upd_var_rent_rec.last_update_date = pn_varen_util.g_pn_miss_date)
11812 THEN
11813 p_upd_var_rent_rec.last_update_date := g_sysdate;
11814 --l_pn_var_rents_rec.last_update_date ;
11815 pn_varen_util.pvt_debug
11816 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.last_update_date : '
11817 || l_pn_var_rents_rec.last_update_date
11818 , 3);
11819 pn_varen_util.pvt_debug
11820 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.last_update_date : '
11821 || p_upd_var_rent_rec.last_update_date
11822 , 3);
11823 END IF;
11824
11825 IF ( p_upd_var_rent_rec.last_updated_by IS NULL
11826 OR p_upd_var_rent_rec.last_updated_by = pn_varen_util.g_pn_miss_num)
11827 THEN
11828 p_upd_var_rent_rec.last_updated_by := g_user_id;
11829 --l_pn_var_rents_rec.last_updated_by ;
11830 pn_varen_util.pvt_debug
11831 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.last_updated_by : '
11832 || l_pn_var_rents_rec.last_updated_by
11833 , 3);
11834 pn_varen_util.pvt_debug
11835 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.last_updated_by : '
11836 || p_upd_var_rent_rec.last_updated_by
11837 , 3);
11838 END IF;
11839
11840 IF ( p_upd_var_rent_rec.creation_date IS NULL
11841 OR p_upd_var_rent_rec.creation_date = pn_varen_util.g_pn_miss_date)
11842 THEN
11843 l_pn_var_rents_rec.creation_date := p_upd_var_rent_rec.creation_date;
11844 pn_varen_util.pvt_debug
11845 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.creation_date : '
11846 || l_pn_var_rents_rec.creation_date
11847 , 3);
11848 pn_varen_util.pvt_debug
11849 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.creation_date : '
11850 || p_upd_var_rent_rec.creation_date
11851 , 3);
11852 END IF;
11853
11854 IF ( p_upd_var_rent_rec.created_by IS NULL
11855 OR p_upd_var_rent_rec.created_by = pn_varen_util.g_pn_miss_num)
11856 THEN
11857 p_upd_var_rent_rec.created_by := l_pn_var_rents_rec.created_by;
11858 pn_varen_util.pvt_debug
11859 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.created_by : '
11860 || l_pn_var_rents_rec.created_by
11861 , 3);
11862 pn_varen_util.pvt_debug
11863 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.created_by : '
11864 || p_upd_var_rent_rec.created_by
11865 , 3);
11866 END IF;
11867
11868 IF ( p_upd_var_rent_rec.last_update_login IS NULL
11869 OR p_upd_var_rent_rec.last_update_login = pn_varen_util.g_pn_miss_num)
11870 THEN
11871 p_upd_var_rent_rec.last_update_login := l_pn_var_rents_rec.last_update_login;
11872 pn_varen_util.pvt_debug
11873 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.last_update_login : '
11874 || l_pn_var_rents_rec.last_update_login
11875 , 3);
11876 pn_varen_util.pvt_debug
11877 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.last_update_login : '
11878 || p_upd_var_rent_rec.last_update_login
11879 , 3);
11880 END IF;
11881
11882 IF ( p_upd_var_rent_rec.attribute_category IS NULL
11883 OR p_upd_var_rent_rec.attribute_category = pn_varen_util.g_pn_miss_char)
11884 THEN
11885 p_upd_var_rent_rec.attribute_category := l_pn_var_rents_rec.attribute_category;
11886 pn_varen_util.pvt_debug
11887 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute_category : '
11888 || l_pn_var_rents_rec.attribute_category
11889 , 3);
11890 pn_varen_util.pvt_debug
11891 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute_category : '
11892 || p_upd_var_rent_rec.attribute_category
11893 , 3);
11894 END IF;
11895
11896 IF ( p_upd_var_rent_rec.attribute1 IS NULL
11897 OR p_upd_var_rent_rec.attribute1 = pn_varen_util.g_pn_miss_char)
11898 THEN
11899 p_upd_var_rent_rec.attribute1 := l_pn_var_rents_rec.attribute1;
11900 pn_varen_util.pvt_debug
11901 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute1 : '
11902 || l_pn_var_rents_rec.attribute1
11903 , 3);
11904 pn_varen_util.pvt_debug
11905 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute1 : '
11906 || p_upd_var_rent_rec.attribute1
11907 , 3);
11908 END IF;
11909
11910 IF ( p_upd_var_rent_rec.attribute2 IS NULL
11911 OR p_upd_var_rent_rec.attribute2 = pn_varen_util.g_pn_miss_char)
11912 THEN
11913 p_upd_var_rent_rec.attribute2 := l_pn_var_rents_rec.attribute2;
11914 pn_varen_util.pvt_debug
11915 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute2 : '
11916 || l_pn_var_rents_rec.attribute2
11917 , 3);
11918 pn_varen_util.pvt_debug
11919 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute2 : '
11920 || p_upd_var_rent_rec.attribute2
11921 , 3);
11922 END IF;
11923
11924 IF ( p_upd_var_rent_rec.attribute3 IS NULL
11925 OR p_upd_var_rent_rec.attribute3 = pn_varen_util.g_pn_miss_char)
11926 THEN
11927 p_upd_var_rent_rec.attribute3 := l_pn_var_rents_rec.attribute3;
11928 pn_varen_util.pvt_debug
11929 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute3 : '
11930 || l_pn_var_rents_rec.attribute3
11931 , 3);
11932 pn_varen_util.pvt_debug
11933 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute3 : '
11934 || p_upd_var_rent_rec.attribute3
11935 , 3);
11936 END IF;
11937
11938 IF ( p_upd_var_rent_rec.attribute4 IS NULL
11939 OR p_upd_var_rent_rec.attribute4 = pn_varen_util.g_pn_miss_char)
11940 THEN
11941 p_upd_var_rent_rec.attribute4 := l_pn_var_rents_rec.attribute4;
11942 pn_varen_util.pvt_debug
11943 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute4 : '
11944 || l_pn_var_rents_rec.attribute4
11945 , 3);
11946 pn_varen_util.pvt_debug
11947 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute4 : '
11948 || p_upd_var_rent_rec.attribute4
11949 , 3);
11950 END IF;
11951
11952 IF ( p_upd_var_rent_rec.attribute5 IS NULL
11953 OR p_upd_var_rent_rec.attribute5 = pn_varen_util.g_pn_miss_char)
11954 THEN
11955 p_upd_var_rent_rec.attribute5 := l_pn_var_rents_rec.attribute5;
11956 pn_varen_util.pvt_debug
11957 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute5 : '
11958 || l_pn_var_rents_rec.attribute5
11959 , 3);
11960 pn_varen_util.pvt_debug
11961 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute5 : '
11962 || p_upd_var_rent_rec.attribute5
11963 , 3);
11964 END IF;
11965
11966 IF ( p_upd_var_rent_rec.attribute6 IS NULL
11967 OR p_upd_var_rent_rec.attribute6 = pn_varen_util.g_pn_miss_char)
11968 THEN
11969 p_upd_var_rent_rec.attribute6 := l_pn_var_rents_rec.attribute6;
11970 pn_varen_util.pvt_debug
11971 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute6 : '
11972 || l_pn_var_rents_rec.attribute6
11973 , 3);
11974 pn_varen_util.pvt_debug
11975 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute6 : '
11976 || p_upd_var_rent_rec.attribute6
11977 , 3);
11978 END IF;
11979
11980 IF ( p_upd_var_rent_rec.attribute7 IS NULL
11981 OR p_upd_var_rent_rec.attribute7 = pn_varen_util.g_pn_miss_char)
11982 THEN
11983 p_upd_var_rent_rec.attribute7 := l_pn_var_rents_rec.attribute7;
11984 pn_varen_util.pvt_debug
11985 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute7 : '
11986 || l_pn_var_rents_rec.attribute7
11987 , 3);
11988 pn_varen_util.pvt_debug
11989 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute7 : '
11990 || p_upd_var_rent_rec.attribute7
11991 , 3);
11992 END IF;
11993
11994 IF ( p_upd_var_rent_rec.attribute8 IS NULL
11995 OR p_upd_var_rent_rec.attribute8 = pn_varen_util.g_pn_miss_char)
11996 THEN
11997 p_upd_var_rent_rec.attribute8 := l_pn_var_rents_rec.attribute8;
11998 pn_varen_util.pvt_debug
11999 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute8 : '
12000 || l_pn_var_rents_rec.attribute8
12001 , 3);
12002 pn_varen_util.pvt_debug
12003 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute8 : '
12004 || p_upd_var_rent_rec.attribute8
12005 , 3);
12006 END IF;
12007
12008 IF ( p_upd_var_rent_rec.attribute9 IS NULL
12009 OR p_upd_var_rent_rec.attribute9 = pn_varen_util.g_pn_miss_char)
12010 THEN
12011 p_upd_var_rent_rec.attribute9 := l_pn_var_rents_rec.attribute9;
12012 pn_varen_util.pvt_debug
12013 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute9 : '
12014 || l_pn_var_rents_rec.attribute9
12015 , 3);
12016 pn_varen_util.pvt_debug
12017 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute9 : '
12018 || p_upd_var_rent_rec.attribute9
12019 , 3);
12020 END IF;
12021
12022 IF ( p_upd_var_rent_rec.attribute10 IS NULL
12023 OR p_upd_var_rent_rec.attribute10 = pn_varen_util.g_pn_miss_char)
12024 THEN
12025 p_upd_var_rent_rec.attribute10 := l_pn_var_rents_rec.attribute10;
12026 pn_varen_util.pvt_debug
12027 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute10 : '
12028 || l_pn_var_rents_rec.attribute10
12029 , 3);
12030 pn_varen_util.pvt_debug
12031 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute10 : '
12032 || p_upd_var_rent_rec.attribute10
12033 , 3);
12034 END IF;
12035
12036 IF ( p_upd_var_rent_rec.attribute11 IS NULL
12037 OR p_upd_var_rent_rec.attribute11 = pn_varen_util.g_pn_miss_char)
12038 THEN
12039 p_upd_var_rent_rec.attribute11 := l_pn_var_rents_rec.attribute11;
12040 pn_varen_util.pvt_debug
12041 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute11 : '
12042 || l_pn_var_rents_rec.attribute11
12043 , 3);
12044 pn_varen_util.pvt_debug
12045 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute11 : '
12046 || p_upd_var_rent_rec.attribute11
12047 , 3);
12048 END IF;
12049
12050 IF ( p_upd_var_rent_rec.attribute12 IS NULL
12051 OR p_upd_var_rent_rec.attribute12 = pn_varen_util.g_pn_miss_char)
12052 THEN
12053 p_upd_var_rent_rec.attribute12 := l_pn_var_rents_rec.attribute12;
12054 pn_varen_util.pvt_debug
12055 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute12 : '
12056 || l_pn_var_rents_rec.attribute12
12057 , 3);
12058 pn_varen_util.pvt_debug
12059 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute12 : '
12060 || p_upd_var_rent_rec.attribute12
12061 , 3);
12062 END IF;
12063
12064 IF ( p_upd_var_rent_rec.attribute13 IS NULL
12065 OR p_upd_var_rent_rec.attribute13 = pn_varen_util.g_pn_miss_char)
12066 THEN
12067 p_upd_var_rent_rec.attribute13 := l_pn_var_rents_rec.attribute13;
12068 pn_varen_util.pvt_debug
12069 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute13 : '
12070 || l_pn_var_rents_rec.attribute13
12071 , 3);
12072 pn_varen_util.pvt_debug
12073 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute13 : '
12074 || p_upd_var_rent_rec.attribute13
12075 , 3);
12076 END IF;
12077
12078 IF ( p_upd_var_rent_rec.attribute14 IS NULL
12079 OR p_upd_var_rent_rec.attribute14 = pn_varen_util.g_pn_miss_char)
12080 THEN
12081 p_upd_var_rent_rec.attribute14 := l_pn_var_rents_rec.attribute14;
12082 pn_varen_util.pvt_debug
12083 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute14 : '
12084 || l_pn_var_rents_rec.attribute14
12085 , 3);
12086 pn_varen_util.pvt_debug
12087 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute14 : '
12088 || p_upd_var_rent_rec.attribute14
12089 , 3);
12090 END IF;
12091
12092 IF ( p_upd_var_rent_rec.attribute15 IS NULL
12093 OR p_upd_var_rent_rec.attribute15 = pn_varen_util.g_pn_miss_char)
12094 THEN
12095 p_upd_var_rent_rec.attribute15 := l_pn_var_rents_rec.attribute15;
12096 pn_varen_util.pvt_debug
12097 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rents_rec.attribute15 : '
12098 || l_pn_var_rents_rec.attribute15
12099 , 3);
12100 pn_varen_util.pvt_debug
12101 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.attribute15 : '
12102 || p_upd_var_rent_rec.attribute15
12103 , 3);
12104 END IF;
12105
12106 pn_varen_util.pvt_debug
12107 ('PN_VAREN_PVT: Update_Var_Rent : Before calling validate_var_rent procedure'
12108 , 3);
12109 -- call update validate variable rent details procedure
12110
12111 upd_val_varent (p_upd_var_rent_rec_type => p_upd_var_rent_rec
12112 , x_return_status => x_return_status);
12113 pn_varen_util.pvt_debug
12114 ( 'PN_VAREN_PVT: Update_Var_Rent: End of upd_val_varent Procedure status : '
12115 || x_return_status
12116 , 3);
12117 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent : Value of Validate Flag : '
12118 || p_validate_flag
12119 , 3);
12120 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
12121 THEN
12122 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
12123 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent:UPD_VAL_VARENT returned error');
12124 fnd_msg_pub.ADD;
12125 RAISE fnd_api.g_exc_error;
12126 END IF;
12127
12128 IF (p_validate_flag <> 'Y') --and x_return_status = 'S')
12129 THEN
12130 pn_varen_util.pvt_debug
12131 ('PN_VAREN_PVT: Update_Var_Rent: Start of update_varent Procedure'
12132 , 3);
12133 update_varent (p_upd_var_rent_rec_type => p_upd_var_rent_rec
12134 , x_return_status => x_return_status);
12135 pn_varen_util.pvt_debug
12136 ( 'PN_VAREN_PVT: Update_Var_Rent: End of update_varent Procedure status : '
12137 || x_return_status
12138 , 3);
12139 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
12140 THEN
12141 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
12142 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent:UPDATE_VARENT returned error');
12143 fnd_msg_pub.ADD;
12144 RAISE fnd_api.g_exc_error;
12145 END IF;
12146 END IF; --p_validate_flag
12147 END IF; -- c_pn_var_rents
12148
12149 -- CLOSE c_pn_var_rents; -- Close this cursor at last.
12150 pn_varen_util.pvt_debug
12151 ('PN_VAREN_PVT: Update_Var_Rent: Before opening cursor c_pn_var_rent_dates'
12152 , 3);
12153
12154 OPEN c_pn_var_rent_dates;
12155
12156 FETCH c_pn_var_rent_dates
12157 INTO l_pn_var_rent_dates_rec;
12158
12159 IF (c_pn_var_rents%NOTFOUND)
12160 THEN
12161 x_return_status := fnd_api.g_ret_sts_error;
12162 pn_varen_util.pvt_debug
12163 ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_rent_dates not found'
12164 , 3);
12165 ELSE
12166 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_rent_dates found'
12167 , 3);
12168
12169 -- The below IF statements have been commented by Vivek on 07-Dec-2010
12170 /*
12171 IF p_upd_var_rent_rec.year_start_date <> l_pn_var_rent_dates_rec.year_start_date
12172 THEN
12173 l_undo_periods := 'Y';
12174 END IF;
12175
12176 IF p_upd_var_rent_rec.use_gl_calendar <> l_pn_var_rent_dates_rec.use_gl_calendar
12177 THEN
12178 l_undo_periods := 'Y';
12179 END IF;
12180
12181 IF p_upd_var_rent_rec.gl_period_set_name <> l_pn_var_rent_dates_rec.gl_period_set_name
12182 THEN
12183 l_undo_periods := 'Y';
12184 END IF;
12185
12186 IF p_upd_var_rent_rec.period_type <> l_pn_var_rent_dates_rec.period_type
12187 THEN
12188 l_undo_periods := 'Y';
12189 END IF;
12190
12191 IF p_upd_var_rent_rec.year_start_date <> l_pn_var_rent_dates_rec.year_start_date
12192 THEN
12193 l_undo_periods := 'Y';
12194 END IF;
12195
12196 IF ( p_upd_var_rent_rec.reptg_freq_code <> l_pn_var_rent_dates_rec.reptg_freq_code
12197 AND p_upd_var_rent_rec.vrg_reptg_freq_code <> l_pn_var_rent_dates_rec.vrg_reptg_freq_code
12198 )
12199 THEN
12200 l_undo_periods := 'Y';
12201 END IF;
12202
12203 IF ( p_upd_var_rent_rec.reptg_freq_code <> l_pn_var_rent_dates_rec.reptg_freq_code
12204 AND p_upd_var_rent_rec.invg_freq_code <> l_pn_var_rent_dates_rec.invg_freq_code
12205 )
12206 THEN
12207 l_undo_periods := 'Y';
12208 END IF;
12209 */
12210
12211 --l_undo_periods
12212 IF ( p_upd_var_rent_rec.var_rent_date_id IS NULL
12213 OR p_upd_var_rent_rec.var_rent_date_id = pn_varen_util.g_pn_miss_num)
12214 THEN
12215 p_upd_var_rent_rec.var_rent_date_id := l_pn_var_rent_dates_rec.var_rent_date_id;
12216 pn_varen_util.pvt_debug
12217 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.var_rent_date_id is : '
12218 || p_upd_var_rent_rec.use_gl_calendar
12219 , 3);
12220 pn_varen_util.pvt_debug
12221 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.var_rent_date_id : '
12222 || l_pn_var_rent_dates_rec.use_gl_calendar
12223 , 3);
12224 -- ELSE
12225
12226 -- p_upd_var_rent_rec.var_rent_date_id := l_pn_var_rent_dates_rec.var_rent_date_id;
12227 END IF;
12228
12229 pn_varen_util.pvt_debug
12230 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.use_gl_calendar is '
12231 || p_upd_var_rent_rec.use_gl_calendar
12232 , 3);
12233 pn_varen_util.pvt_debug
12234 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.use_gl_calendar is '
12235 || l_pn_var_rent_dates_rec.use_gl_calendar
12236 , 3);
12237
12238 IF ( p_upd_var_rent_rec.use_gl_calendar IS NULL
12239 OR p_upd_var_rent_rec.use_gl_calendar = pn_varen_util.g_pn_miss_char)
12240 THEN
12241 p_upd_var_rent_rec.use_gl_calendar := l_pn_var_rent_dates_rec.use_gl_calendar;
12242 pn_varen_util.pvt_debug
12243 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.use_gl_calendar is : '
12244 || p_upd_var_rent_rec.use_gl_calendar
12245 , 3);
12246 pn_varen_util.pvt_debug
12247 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.use_gl_calendar : '
12248 || l_pn_var_rent_dates_rec.use_gl_calendar
12249 , 3);
12250 END IF;
12251
12252 IF ( p_upd_var_rent_rec.year_start_date IS NULL
12253 OR p_upd_var_rent_rec.year_start_date = pn_varen_util.g_pn_miss_date)
12254 THEN
12255 p_upd_var_rent_rec.year_start_date := l_pn_var_rent_dates_rec.year_start_date;
12256 pn_varen_util.pvt_debug
12257 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.year_start_date : '
12258 || l_pn_var_rent_dates_rec.year_start_date
12259 , 3);
12260 pn_varen_util.pvt_debug
12261 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.year_start_date : '
12262 || p_upd_var_rent_rec.year_start_date
12263 , 3);
12264 ELSE
12265 pn_varen_util.pvt_debug
12266 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.year_start_date is not null: '
12267 || p_upd_var_rent_rec.year_start_date
12268 , 3);
12269 END IF;
12270
12271 -- pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Value of Period Set Name is '||p_upd_var_rent_rec.gl_period_set_name,3);
12272 -- pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.gl_period_set_name is '||l_pn_var_rent_dates_rec.gl_period_set_name, 3);
12273 -- pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Value of Period Type is '||p_upd_var_rent_rec.period_type, 3);
12274 -- pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.period_type is '||l_pn_var_rent_dates_rec.period_type,3);
12275 IF ( p_upd_var_rent_rec.gl_period_set_name IS NOT NULL
12276 AND p_upd_var_rent_rec.gl_period_set_name <> pn_varen_util.g_pn_miss_char)
12277 OR ( p_upd_var_rent_rec.period_type IS NOT NULL
12278 AND p_upd_var_rent_rec.period_type <> pn_varen_util.g_pn_miss_char)
12279 THEN
12280 ------------------------------------------------
12281 -- Validation of Period Set Name and Period Type
12282 ------------------------------------------------
12283 pn_varen_util.pvt_debug
12284 ('PN_VAREN_PVT: Update_Var_Rent: Calling Period Set Name and Period Type Validation'
12285 , 3);
12286 pn_varen_util.validate_period_set_type
12287 (p_gl_period_set_name => p_upd_var_rent_rec.gl_period_set_name
12288 , p_period_type => p_upd_var_rent_rec.period_type
12289 , x_return_status => x_return_status);
12290 pn_varen_util.pvt_debug
12291 ( 'PN_VAREN_PVT: Update_Var_Rent: Period Set Name and Period Type status:'
12292 || x_return_status
12293 , 3);
12294 pn_varen_util.pvt_debug
12295 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.gl_period_set_name :'
12296 || p_upd_var_rent_rec.gl_period_set_name
12297 , 3);
12298 pn_varen_util.pvt_debug
12299 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.period_type :'
12300 || p_upd_var_rent_rec.period_type
12301 , 3);
12302
12303 IF (x_return_status = fnd_api.g_ret_sts_error)
12304 THEN
12305 fnd_message.set_name ('PN', 'PN_VAR_PERIOD_SET_TYPE');
12306 fnd_message.set_token ('PERIOD_SET_TYPE'
12307 , p_upd_var_rent_rec.gl_period_set_name
12308 || '/'
12309 || p_upd_var_rent_rec.period_type);
12310 pn_varen_util.pvt_debug
12311 ( 'PN_VAREN_PVT: Update_Var_Rent: Period Set Name and Period Type Expected Error :'
12312 || p_upd_var_rent_rec.gl_period_set_name
12313 || ' , '
12314 || p_upd_var_rent_rec.period_type
12315 , 3);
12316 fnd_msg_pub.ADD;
12317 RAISE fnd_api.g_exc_error;
12318 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12319 THEN
12320 fnd_message.set_name ('PN', 'PN_VAR_PERIOD_SET_TYPE');
12321 fnd_message.set_token ('PERIOD_SET_TYPE'
12322 , p_upd_var_rent_rec.gl_period_set_name
12323 || '/'
12324 || p_upd_var_rent_rec.period_type);
12325 pn_varen_util.pvt_debug
12326 ( 'PN_VAREN_PVT: Update_Var_Rent: Period Set Name and Period Type Un-Expected Error :'
12327 || p_upd_var_rent_rec.gl_period_set_name
12328 || ' , '
12329 || p_upd_var_rent_rec.period_type
12330 , 3);
12331 fnd_msg_pub.ADD;
12332 RAISE fnd_api.g_exc_unexpected_error;
12333 --x_return_status :=fnd_api.g_ret_sts_unexp_error;
12334 ELSE
12335 pn_varen_util.pvt_debug
12336 ( 'PN_VAREN_PVT: Update_Var_Rent: Period Set Name and Period Type Success :'
12337 || p_upd_var_rent_rec.reptg_freq_code
12338 , 3);
12339 x_return_status := fnd_api.g_ret_sts_success;
12340 END IF;
12341 ELSE
12342 p_upd_var_rent_rec.gl_period_set_name := l_pn_var_rent_dates_rec.gl_period_set_name;
12343 pn_varen_util.pvt_debug
12344 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.gl_period_set_name : '
12345 || l_pn_var_rent_dates_rec.gl_period_set_name
12346 , 3);
12347 pn_varen_util.pvt_debug
12348 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.gl_period_set_name : '
12349 || p_upd_var_rent_rec.gl_period_set_name
12350 , 3);
12351 p_upd_var_rent_rec.period_type := l_pn_var_rent_dates_rec.period_type;
12352 pn_varen_util.pvt_debug
12353 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.period_type : '
12354 || l_pn_var_rent_dates_rec.period_type
12355 , 3);
12356 pn_varen_util.pvt_debug
12357 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.period_type : '
12358 || p_upd_var_rent_rec.period_type
12359 , 3);
12360 END IF;
12361
12362 pn_varen_util.pvt_debug
12363 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.vrg_reptg_freq_code is '
12364 || p_upd_var_rent_rec.vrg_reptg_freq_code
12365 , 3);
12366 pn_varen_util.pvt_debug
12367 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.vrg_reptg_freq_code is '
12368 || l_pn_var_rent_dates_rec.vrg_reptg_freq_code
12369 , 3);
12370 pn_varen_util.pvt_debug
12371 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.vrg_reptg_freq_meaning is '
12372 || p_upd_var_rent_rec.vrg_reptg_freq_meaning
12373 , 3);
12374
12375 --pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.vrg_reptg_freq_meaning is '||l_pn_var_rent_dates_rec.vrg_reptg_freq_meaning, 3);
12376
12377 -- The below IF block has been commented and a new IF block has been added by Vivek on 02-DEC-2010
12378 /*
12379 IF ( p_upd_var_rent_rec.vrg_reptg_freq_code IS NULL
12380 OR p_upd_var_rent_rec.vrg_reptg_freq_code = pn_varen_util.g_pn_miss_char
12381 )
12382 OR ( p_upd_var_rent_rec.vrg_reptg_freq_meaning IS NULL
12383 OR p_upd_var_rent_rec.vrg_reptg_freq_meaning = pn_varen_util.g_pn_miss_char
12384 )
12385 THEN
12386 */
12387
12388 IF ( p_upd_var_rent_rec.vrg_reptg_freq_code IS NOT NULL
12389 AND p_upd_var_rent_rec.vrg_reptg_freq_code <> pn_varen_util.g_pn_miss_char)
12390 OR ( p_upd_var_rent_rec.vrg_reptg_freq_meaning IS NOT NULL
12391 AND p_upd_var_rent_rec.vrg_reptg_freq_meaning <> pn_varen_util.g_pn_miss_char)
12392 THEN
12393 ------------------------------------------------
12394 --Validation of Reporting Frequency -- VRG_REPTG_FREQ_CODE
12395 -------------------------------------------------
12396 pn_varen_util.pvt_debug
12397 ('PN_VAREN_PVT: Update_Var_Rent: Calling Reporting Frequency Validation'
12398 , 3);
12399 pn_varen_util.validate_periods
12400 (p_lookup_type => g_payment_frequency
12401 , x_lookup_meaning => p_upd_var_rent_rec.vrg_reptg_freq_meaning
12402 , x_lookup_code => p_upd_var_rent_rec.vrg_reptg_freq_code
12403 , x_return_status => x_return_status);
12404 pn_varen_util.pvt_debug
12405 ( 'PN_VAREN_PVT: Update_Var_Rent: Reporting Frequency Output Code :'
12406 || p_upd_var_rent_rec.vrg_reptg_freq_code
12407 , 3);
12408 pn_varen_util.pvt_debug
12409 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.vrg_reptg_freq_code : '
12410 || l_pn_var_rent_dates_rec.vrg_reptg_freq_code
12411 , 3);
12412 pn_varen_util.pvt_debug
12413 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.vrg_reptg_freq_code : '
12414 || p_upd_var_rent_rec.vrg_reptg_freq_code
12415 , 3);
12416 pn_varen_util.pvt_debug
12417 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.vrg_reptg_freq_meaning : '
12418 || p_upd_var_rent_rec.vrg_reptg_freq_meaning
12419 , 3);
12420
12421 IF (x_return_status = fnd_api.g_ret_sts_error)
12422 THEN
12423 fnd_message.set_name ('PN', 'PN_VAR_VRG_REPT_CODE');
12424 fnd_message.set_token ('VRG_REPTG_FREQ_CODE_MEANING'
12425 , p_upd_var_rent_rec.vrg_reptg_freq_meaning
12426 || '/'
12427 || p_upd_var_rent_rec.vrg_reptg_freq_code);
12428 pn_varen_util.pvt_debug
12429 ( 'PN_VAREN_PVT: Update_Var_Rent: Reporting Frequency Meaning Expected Error :'
12430 || p_upd_var_rent_rec.vrg_reptg_freq_meaning
12431 , 3);
12432 x_return_status := fnd_api.g_ret_sts_error;
12433 fnd_msg_pub.ADD;
12434 RAISE fnd_api.g_exc_error;
12435 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12436 THEN
12437 fnd_message.set_name ('PN', 'PN_VAR_VRG_REPT_CODE');
12438 fnd_message.set_token ('VRG_REPTG_FREQ_CODE_MEANING'
12439 , p_upd_var_rent_rec.vrg_reptg_freq_meaning
12440 || '/'
12441 || p_upd_var_rent_rec.vrg_reptg_freq_code);
12442 pn_varen_util.pvt_debug
12443 ( 'PN_VAREN_PVT: Update_Var_Rent: Reporting Frequency Meaning Un-Expected Error :'
12444 || p_upd_var_rent_rec.vrg_reptg_freq_meaning
12445 , 3);
12446 --x_return_status :=fnd_api.g_ret_sts_unexp_error;
12447 fnd_msg_pub.ADD;
12448 RAISE fnd_api.g_exc_unexpected_error;
12449 ELSE
12450 pn_varen_util.pvt_debug
12451 ( 'PN_VAREN_PVT: Update_Var_Rent: Reporting Frequency Code Success :'
12452 || p_upd_var_rent_rec.vrg_reptg_freq_code
12453 , 3);
12454 x_return_status := fnd_api.g_ret_sts_success;
12455 END IF;
12456 ELSE
12457 p_upd_var_rent_rec.vrg_reptg_freq_code := l_pn_var_rent_dates_rec.vrg_reptg_freq_code;
12458 pn_varen_util.pvt_debug
12459 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.vrg_reptg_freq_code : '
12460 || l_pn_var_rent_dates_rec.vrg_reptg_freq_code
12461 , 3);
12462 pn_varen_util.pvt_debug
12463 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.vrg_reptg_freq_code : '
12464 || p_upd_var_rent_rec.vrg_reptg_freq_code
12465 , 3);
12466 END IF;
12467
12468 pn_varen_util.pvt_debug
12469 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.reptg_freq_code is '
12470 || p_upd_var_rent_rec.reptg_freq_code
12471 , 3);
12472 pn_varen_util.pvt_debug
12473 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.reptg_freq_code is '
12474 || l_pn_var_rent_dates_rec.reptg_freq_code
12475 , 3);
12476 pn_varen_util.pvt_debug
12477 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.reptg_freq_meaning is '
12478 || p_upd_var_rent_rec.reptg_freq_meaning
12479 , 3);
12480
12481 --pn_varen_util.pvt_debug.put_line ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.reptg_freq_meaning is '||l_pn_var_rent_dates_rec.reptg_freq_meaning, 3);
12482
12483 -- The below IF block has been commented and a new IF block has been added by Vivek on 02-DEC-2010
12484 /*
12485 IF ( p_upd_var_rent_rec.reptg_freq_code IS NULL
12486 OR p_upd_var_rent_rec.reptg_freq_code = pn_varen_util.g_pn_miss_char
12487 )
12488 OR ( p_upd_var_rent_rec.reptg_freq_meaning IS NULL
12489 OR p_upd_var_rent_rec.reptg_freq_meaning = pn_varen_util.g_pn_miss_char
12490 )
12491 THEN
12492 */
12493 -- New IF block added by Vivek on 02-DEC-2010
12494 IF ( p_upd_var_rent_rec.reptg_freq_code IS NOT NULL
12495 AND p_upd_var_rent_rec.reptg_freq_code <> pn_varen_util.g_pn_miss_char)
12496 OR ( p_upd_var_rent_rec.reptg_freq_meaning IS NOT NULL
12497 AND p_upd_var_rent_rec.reptg_freq_meaning = pn_varen_util.g_pn_miss_char)
12498 THEN
12499 ------------------------------------------------
12500 --Validation of Calculation Frequency
12501 -------------------------------------------------
12502 pn_varen_util.pvt_debug
12503 ('PN_VAREN_PVT: Update_Var_Rent: Calling Calculation Frequency Validation'
12504 , 3);
12505 pn_varen_util.validate_periods (p_lookup_type => g_payment_frequency
12506 , x_lookup_meaning => p_upd_var_rent_rec.reptg_freq_meaning
12507 , x_lookup_code => p_upd_var_rent_rec.reptg_freq_code
12508 , x_return_status => x_return_status);
12509 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Calculation Frequency status:'
12510 || x_return_status
12511 , 3);
12512 pn_varen_util.pvt_debug
12513 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.reptg_freq_code :'
12514 || p_upd_var_rent_rec.reptg_freq_code
12515 , 3);
12516 pn_varen_util.pvt_debug
12517 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.reptg_freq_meaning :'
12518 || p_upd_var_rent_rec.reptg_freq_meaning
12519 , 3);
12520
12521 IF (x_return_status = fnd_api.g_ret_sts_error)
12522 THEN
12523 fnd_message.set_name ('PN', 'PN_VAR_REPT_CODE');
12524 fnd_message.set_token ('REPTG_FREQ_CODE_MEANING'
12525 , p_upd_var_rent_rec.reptg_freq_meaning
12526 || '/'
12527 || p_upd_var_rent_rec.reptg_freq_code);
12528 pn_varen_util.pvt_debug
12529 ( 'PN_VAREN_PVT: Update_Var_Rent: Calculation Frequency Meaning Expected Error :'
12530 || p_upd_var_rent_rec.reptg_freq_meaning
12531 , 3);
12532 fnd_msg_pub.ADD;
12533 RAISE fnd_api.g_exc_error;
12534 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12535 THEN
12536 fnd_message.set_name ('PN', 'PN_VAR_REPT_CODE');
12537 fnd_message.set_token ('REPTG_FREQ_CODE_MEANING'
12538 , p_upd_var_rent_rec.reptg_freq_meaning
12539 || '/'
12540 || p_upd_var_rent_rec.reptg_freq_code);
12541 pn_varen_util.pvt_debug
12542 ( 'PN_VAREN_PVT: Update_Var_Rent: Calculation Frequency Meaning Un-Expected Error :'
12543 || p_upd_var_rent_rec.reptg_freq_meaning
12544 , 3);
12545 fnd_msg_pub.ADD;
12546 RAISE fnd_api.g_exc_unexpected_error;
12547 ELSE
12548 pn_varen_util.pvt_debug
12549 ( 'PN_VAREN_PVT: Update_Var_Rent: Calculation Frequency Code Success :'
12550 || p_upd_var_rent_rec.reptg_freq_code
12551 , 3);
12552 x_return_status := fnd_api.g_ret_sts_success;
12553 END IF;
12554 ELSE
12555 p_upd_var_rent_rec.reptg_freq_code := l_pn_var_rent_dates_rec.reptg_freq_code;
12556 pn_varen_util.pvt_debug
12557 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.reptg_freq_code : '
12558 || l_pn_var_rent_dates_rec.reptg_freq_code
12559 , 3);
12560 pn_varen_util.pvt_debug
12561 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.reptg_freq_code : '
12562 || p_upd_var_rent_rec.reptg_freq_code
12563 , 3);
12564 END IF;
12565
12566 IF ( p_upd_var_rent_rec.reptg_day_of_month IS NULL
12567 OR p_upd_var_rent_rec.reptg_day_of_month = pn_varen_util.g_pn_miss_num)
12568 THEN
12569 p_upd_var_rent_rec.reptg_day_of_month := l_pn_var_rent_dates_rec.reptg_day_of_month;
12570 pn_varen_util.pvt_debug
12571 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.reptg_day_of_month : '
12572 || l_pn_var_rent_dates_rec.reptg_day_of_month
12573 , 3);
12574 pn_varen_util.pvt_debug
12575 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.reptg_day_of_month : '
12576 || p_upd_var_rent_rec.reptg_day_of_month
12577 , 3);
12578 -- ELSE condition has been added by Vivek on 03-DEC-2010 to raise an error if the reptg_day_of_month value is not in 1-28 range
12579 ELSE
12580 IF p_upd_var_rent_rec.reptg_day_of_month < 1
12581 OR p_upd_var_rent_rec.reptg_day_of_month > 28
12582 THEN
12583 p_upd_var_rent_rec.reptg_day_of_month := NULL;
12584 fnd_message.set_name ('PN', 'PN_VAR_REPTG_DAY_OF_MONTH');
12585 fnd_msg_pub.ADD;
12586 RAISE fnd_api.g_exc_error;
12587 END IF;
12588 END IF;
12589
12590 IF ( p_upd_var_rent_rec.reptg_days_after IS NULL
12591 OR p_upd_var_rent_rec.reptg_days_after = pn_varen_util.g_pn_miss_num)
12592 THEN
12593 p_upd_var_rent_rec.reptg_days_after := l_pn_var_rent_dates_rec.reptg_days_after;
12594 pn_varen_util.pvt_debug
12595 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.reptg_days_after : '
12596 || l_pn_var_rent_dates_rec.reptg_days_after
12597 , 3);
12598 pn_varen_util.pvt_debug
12599 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.reptg_days_after : '
12600 || p_upd_var_rent_rec.reptg_days_after
12601 , 3);
12602 -- ELSE condition has been added by Vivek on 03-DEC-2010 to raise an error if the reptg_day_of_month value is not in 1-28 range
12603 ELSE
12604 IF p_upd_var_rent_rec.reptg_days_after < 1
12605 OR p_upd_var_rent_rec.reptg_days_after > 28
12606 THEN
12607 p_upd_var_rent_rec.reptg_days_after := NULL;
12608 fnd_message.set_name ('PN', 'PN_VAR_INVG_DAY_OF_MONTH');
12609 fnd_msg_pub.ADD;
12610 RAISE fnd_api.g_exc_error;
12611 END IF;
12612 END IF;
12613
12614 -- pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.invg_day_of_month is '||p_upd_var_rent_rec.invg_day_of_month, 3);
12615 -- pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.invg_day_of_month is '||l_pn_var_rent_dates_rec.invg_day_of_month, 3);
12616 IF ( p_upd_var_rent_rec.invg_day_of_month IS NULL
12617 OR p_upd_var_rent_rec.invg_day_of_month = pn_varen_util.g_pn_miss_num)
12618 THEN
12619 p_upd_var_rent_rec.invg_day_of_month := l_pn_var_rent_dates_rec.invg_day_of_month;
12620 pn_varen_util.pvt_debug
12621 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.invg_day_of_month : '
12622 || l_pn_var_rent_dates_rec.invg_day_of_month
12623 , 3);
12624 pn_varen_util.pvt_debug
12625 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.invg_day_of_month : '
12626 || p_upd_var_rent_rec.invg_day_of_month
12627 , 3);
12628 END IF;
12629
12630 IF ( p_upd_var_rent_rec.invg_days_after IS NULL
12631 OR p_upd_var_rent_rec.invg_days_after = pn_varen_util.g_pn_miss_num)
12632 THEN
12633 p_upd_var_rent_rec.invg_days_after := l_pn_var_rent_dates_rec.invg_days_after;
12634 pn_varen_util.pvt_debug
12635 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.invg_days_after : '
12636 || l_pn_var_rent_dates_rec.invg_days_after
12637 , 3);
12638 pn_varen_util.pvt_debug
12639 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.invg_days_after : '
12640 || p_upd_var_rent_rec.invg_days_after
12641 , 3);
12642 -- ELSE condition has been added by Vivek on 03-DEC-2010 to raise an error if the reptg_day_of_month value is not in 1-28 range
12643 ELSE
12644 IF p_upd_var_rent_rec.invg_day_of_month < 1
12645 OR p_upd_var_rent_rec.invg_day_of_month > 28
12646 THEN
12647 p_upd_var_rent_rec.invg_day_of_month := NULL;
12648 fnd_message.set_name ('PN', 'PN_VAR_INVG_DAY_OF_MONTH');
12649 fnd_msg_pub.ADD;
12650 RAISE fnd_api.g_exc_error;
12651 END IF;
12652 END IF;
12653
12654 IF ( p_upd_var_rent_rec.comments IS NULL
12655 OR p_upd_var_rent_rec.comments = pn_varen_util.g_pn_miss_char)
12656 THEN
12657 p_upd_var_rent_rec.comments := l_pn_var_rent_dates_rec.comments;
12658 pn_varen_util.pvt_debug
12659 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.comments : '
12660 || l_pn_var_rent_dates_rec.comments
12661 , 3);
12662 pn_varen_util.pvt_debug
12663 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.comments : '
12664 || p_upd_var_rent_rec.comments
12665 , 3);
12666 ELSE
12667 pn_varen_util.pvt_debug
12668 ('PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.comments IS NOT NULL'
12669 , 2);
12670 pn_varen_util.pvt_debug
12671 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.comments : '
12672 || l_pn_var_rent_dates_rec.comments
12673 , 3);
12674 pn_varen_util.pvt_debug
12675 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.comments : '
12676 || p_upd_var_rent_rec.comments
12677 , 3);
12678 END IF;
12679
12680 pn_varen_util.pvt_debug
12681 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.var_rent_date_id is : '
12682 || p_upd_var_rent_rec.var_rent_date_id
12683 , 3);
12684 pn_varen_util.pvt_debug
12685 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.invg_freq_code is '
12686 || p_upd_var_rent_rec.invg_freq_code
12687 , 3);
12688 pn_varen_util.pvt_debug
12689 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_rent_dates_rec.invg_freq_code is '
12690 || l_pn_var_rent_dates_rec.invg_freq_code
12691 , 3);
12692 pn_varen_util.pvt_debug
12693 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.invg_freq_meaning is '
12694 || p_upd_var_rent_rec.invg_freq_meaning
12695 , 3);
12696
12697 -- The below IF block has been commented and a new IF block has been added by Vivek on 02-DEC-2010
12698 /*
12699 IF ( p_upd_var_rent_rec.invg_freq_code IS NULL
12700 OR p_upd_var_rent_rec.invg_freq_code = pn_varen_util.g_pn_miss_char
12701 )
12702 OR ( p_upd_var_rent_rec.invg_freq_meaning IS NULL
12703 OR p_upd_var_rent_rec.invg_freq_meaning = pn_varen_util.g_pn_miss_char
12704 )
12705 THEN
12706 */
12707 -- New IF block added by Vivek on 02-DEC-2010
12708 IF ( p_upd_var_rent_rec.invg_freq_code IS NOT NULL
12709 AND p_upd_var_rent_rec.invg_freq_code <> pn_varen_util.g_pn_miss_char)
12710 OR ( p_upd_var_rent_rec.invg_freq_meaning IS NOT NULL
12711 AND p_upd_var_rent_rec.invg_freq_meaning <> pn_varen_util.g_pn_miss_char)
12712 THEN
12713 ------------------------------------------------
12714 --Validation of Invoicing Frequency -- INVG_FREQ_CODE
12715 -------------------------------------------------
12716 pn_varen_util.pvt_debug
12717 ('PN_VAREN_PVT: Update_Var_Rent: Calling Invoicing Frequency Validation'
12718 , 3);
12719 pn_varen_util.validate_periods (p_lookup_type => g_payment_frequency
12720 , x_lookup_meaning => p_upd_var_rent_rec.invg_freq_meaning
12721 , x_lookup_code => p_upd_var_rent_rec.invg_freq_code
12722 , x_return_status => x_return_status);
12723 pn_varen_util.pvt_debug
12724 ( 'PN_VAREN_PVT: Update_Var_Rent: Invoicing Frequency Output Code :'
12725 || p_upd_var_rent_rec.invg_freq_code
12726 , 3);
12727 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Invoicing Frequency status :'
12728 || x_return_status
12729 , 3);
12730 pn_varen_util.pvt_debug
12731 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.invg_freq_code :'
12732 || p_upd_var_rent_rec.invg_freq_code
12733 , 3);
12734 pn_varen_util.pvt_debug
12735 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.invg_freq_meaning :'
12736 || p_upd_var_rent_rec.invg_freq_meaning
12737 , 3);
12738
12739 IF (x_return_status = fnd_api.g_ret_sts_error)
12740 THEN
12741 fnd_message.set_name ('PN', 'PN_VAR_INVG_FREQ_CODE');
12742 fnd_message.set_token ('INVG_FREQ_CODE_MEANING'
12743 , p_upd_var_rent_rec.invg_freq_meaning
12744 || '/'
12745 || p_upd_var_rent_rec.invg_freq_code);
12746 pn_varen_util.pvt_debug
12747 ( 'PN_VAREN_PVT: Update_Var_Rent: Invoicing Frequency Meaning Expected Error :'
12748 || p_upd_var_rent_rec.invg_freq_meaning
12749 , 3);
12750 fnd_msg_pub.ADD;
12751 RAISE fnd_api.g_exc_error;
12752 --x_return_status := fnd_api.g_ret_sts_error;
12753 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12754 THEN
12755 fnd_message.set_name ('PN', 'PN_VAR_INVG_FREQ_CODE');
12756 fnd_message.set_token ('INVG_FREQ_CODE_MEANING'
12757 , p_upd_var_rent_rec.invg_freq_meaning
12758 || '/'
12759 || p_upd_var_rent_rec.invg_freq_code);
12760 pn_varen_util.pvt_debug
12761 ( 'PN_VAREN_PVT: Update_Var_Rent: Invoicing Frequency Meaning Un-Expected Error :'
12762 || p_upd_var_rent_rec.invg_freq_meaning
12763 , 3);
12764 --x_return_status := fnd_api.g_ret_sts_unexp_error;
12765 fnd_msg_pub.ADD;
12766 RAISE fnd_api.g_exc_unexpected_error;
12767 ELSE
12768 pn_varen_util.pvt_debug
12769 ( 'PN_VAREN_PVT: Update_Var_Rent: Invoicing Frequency Code Success :'
12770 || p_upd_var_rent_rec.invg_freq_code
12771 , 3);
12772 x_return_status := fnd_api.g_ret_sts_success;
12773 END IF;
12774 ELSE
12775 p_upd_var_rent_rec.invg_freq_code := l_pn_var_rent_dates_rec.invg_freq_code;
12776 pn_varen_util.pvt_debug
12777 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.invg_freq_code : '
12778 || l_pn_var_rent_dates_rec.invg_freq_code
12779 , 3);
12780 pn_varen_util.pvt_debug
12781 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.invg_freq_code : '
12782 || p_upd_var_rent_rec.invg_freq_code
12783 , 3);
12784 x_return_status := fnd_api.g_ret_sts_success;
12785 END IF;
12786
12787 -- The below IF statements have been added by Vivek on 07-Dec-2010
12788
12789 IF ( p_upd_var_rent_rec.year_start_date IS NOT NULL
12790 AND p_upd_var_rent_rec.year_start_date <> pn_varen_util.g_pn_miss_date
12791 AND l_pn_var_rent_dates_rec.year_start_date IS NOT NULL
12792 AND p_upd_var_rent_rec.year_start_date <> l_pn_var_rent_dates_rec.year_start_date)
12793 OR ( p_upd_var_rent_rec.year_start_date IS NOT NULL
12794 AND p_upd_var_rent_rec.year_start_date <> pn_varen_util.g_pn_miss_date
12795 AND l_pn_var_rent_dates_rec.year_start_date IS NULL)
12796 THEN
12797 l_undo_periods := 'Y';
12798 END IF;
12799
12800 IF ( p_upd_var_rent_rec.use_gl_calendar IS NOT NULL
12801 AND p_upd_var_rent_rec.use_gl_calendar <> pn_varen_util.g_pn_miss_char
12802 AND l_pn_var_rent_dates_rec.use_gl_calendar IS NOT NULL
12803 AND p_upd_var_rent_rec.use_gl_calendar <> l_pn_var_rent_dates_rec.use_gl_calendar)
12804 OR ( p_upd_var_rent_rec.use_gl_calendar IS NOT NULL
12805 AND p_upd_var_rent_rec.use_gl_calendar <> pn_varen_util.g_pn_miss_char
12806 AND l_pn_var_rent_dates_rec.use_gl_calendar IS NULL)
12807 THEN
12808 l_undo_periods := 'Y';
12809 END IF;
12810
12811 IF ( p_upd_var_rent_rec.gl_period_set_name IS NOT NULL
12812 AND p_upd_var_rent_rec.gl_period_set_name <> pn_varen_util.g_pn_miss_char
12813 AND l_pn_var_rent_dates_rec.gl_period_set_name IS NOT NULL
12814 AND p_upd_var_rent_rec.gl_period_set_name <> l_pn_var_rent_dates_rec.gl_period_set_name)
12815 OR ( p_upd_var_rent_rec.gl_period_set_name IS NOT NULL
12816 AND p_upd_var_rent_rec.gl_period_set_name <> pn_varen_util.g_pn_miss_char
12817 AND l_pn_var_rent_dates_rec.gl_period_set_name IS NULL)
12818 THEN
12819 l_undo_periods := 'Y';
12820 END IF;
12821
12822 IF ( p_upd_var_rent_rec.period_type IS NOT NULL
12823 AND p_upd_var_rent_rec.period_type <> pn_varen_util.g_pn_miss_char
12824 AND l_pn_var_rent_dates_rec.period_type IS NOT NULL
12825 AND p_upd_var_rent_rec.period_type <> l_pn_var_rent_dates_rec.period_type)
12826 OR ( p_upd_var_rent_rec.period_type IS NOT NULL
12827 AND p_upd_var_rent_rec.period_type <> pn_varen_util.g_pn_miss_char
12828 AND l_pn_var_rent_dates_rec.period_type IS NULL)
12829 THEN
12830 l_undo_periods := 'Y';
12831 END IF;
12832
12833 IF ( p_upd_var_rent_rec.reptg_freq_code IS NOT NULL
12834 AND p_upd_var_rent_rec.reptg_freq_code <> pn_varen_util.g_pn_miss_char
12835 AND p_upd_var_rent_rec.reptg_freq_code <> l_pn_var_rent_dates_rec.reptg_freq_code)
12836 THEN
12837 l_undo_periods := 'Y';
12838 END IF;
12839
12840 IF ( p_upd_var_rent_rec.invg_freq_code IS NOT NULL
12841 AND p_upd_var_rent_rec.invg_freq_code <> pn_varen_util.g_pn_miss_char
12842 AND p_upd_var_rent_rec.invg_freq_code <> l_pn_var_rent_dates_rec.invg_freq_code)
12843 THEN
12844 l_undo_periods := 'Y';
12845 END IF;
12846
12847 IF ( p_upd_var_rent_rec.vrg_reptg_freq_code IS NOT NULL
12848 AND p_upd_var_rent_rec.vrg_reptg_freq_code <> pn_varen_util.g_pn_miss_char
12849 AND p_upd_var_rent_rec.vrg_reptg_freq_code <> l_pn_var_rent_dates_rec.vrg_reptg_freq_code)
12850 THEN
12851 l_undo_periods := 'Y';
12852 END IF;
12853
12854 -- End of IF statements added by Vivek on 07-Dec-2010
12855 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_undo_periods is '
12856 || l_undo_periods
12857 , 3);
12858
12859 IF ( p_upd_var_rent_rec.commencement_date IS NOT NULL
12860 AND p_upd_var_rent_rec.commencement_date <> pn_varen_util.g_pn_miss_date
12861 AND p_upd_var_rent_rec.commencement_date <> l_pn_var_rents_rec.commencement_date)
12862 THEN
12863
12864 l_undo_periods := 'Y';
12865 END IF;
12866
12867 IF ( p_upd_var_rent_rec.termination_date IS NOT NULL
12868 AND p_upd_var_rent_rec.termination_date <> pn_varen_util.g_pn_miss_date
12869 AND p_upd_var_rent_rec.termination_date <> l_pn_var_rents_rec.termination_date)
12870 THEN
12871
12872 l_undo_periods := 'Y';
12873 END IF;
12874
12875 IF l_undo_periods = 'Y'
12876 THEN
12877 -- call undo periods procedure
12878 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Start of undo_periods Procedure'
12879 , 3);
12880 undo_periods (p_api_version => 1.0
12881 , p_init_msg_list => fnd_api.g_false
12882 , p_commit => fnd_api.g_false
12883 , p_var_rent_id => p_upd_var_rent_rec.var_rent_id
12884 , p_var_rent_num => p_upd_var_rent_rec.rent_num
12885 , p_org_id => g_org_id
12886 , p_generate_periods => 'Y'
12887 , x_return_status => x_return_status
12888 , x_msg_count => x_msg_count
12889 , x_msg_data => x_msg_data);
12890 pn_varen_util.pvt_debug
12891 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of undo_periods Procedure is '
12892 || x_return_status
12893 , 3);
12894 pn_varen_util.pvt_debug
12895 ( 'PN_VAREN_PVT: Update_Var_Rent: Error count of undo_periods Procedure is '
12896 || x_msg_count
12897 , 3);
12898
12899
12900 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
12901
12902 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
12903 fnd_message.set_token ('ERR_MSG', 'UPDATE_VAR_RENT : Undo Periods returned error');
12904 fnd_msg_pub.ADD;
12905 RAISE fnd_api.g_exc_error;
12906 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
12907 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
12908 fnd_message.set_token ('ERR_MSG', 'UPDATE_VAR_RENT : Undo Periods returned error');
12909 fnd_msg_pub.ADD;
12910 RAISE fnd_api.g_exc_unexpected_error;
12911 END IF;
12912 END IF;
12913
12914 IF ( p_upd_var_rent_rec.audit_day_of_month IS NULL
12915 OR p_upd_var_rent_rec.audit_day_of_month = pn_varen_util.g_pn_miss_num)
12916 THEN
12917 p_upd_var_rent_rec.audit_day_of_month := l_pn_var_rent_dates_rec.audit_day_of_month;
12918 pn_varen_util.pvt_debug
12919 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.audit_day_of_month : '
12920 || l_pn_var_rent_dates_rec.audit_day_of_month
12921 , 3);
12922 pn_varen_util.pvt_debug
12923 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.audit_day_of_month : '
12924 || p_upd_var_rent_rec.audit_day_of_month
12925 , 3);
12926 END IF;
12927
12928 IF ( p_upd_var_rent_rec.audit_days_after IS NULL
12929 OR p_upd_var_rent_rec.audit_days_after = pn_varen_util.g_pn_miss_num)
12930 THEN
12931 p_upd_var_rent_rec.audit_days_after := l_pn_var_rent_dates_rec.audit_days_after;
12932 pn_varen_util.pvt_debug
12933 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.audit_days_after : '
12934 || l_pn_var_rent_dates_rec.audit_days_after
12935 , 3);
12936 pn_varen_util.pvt_debug
12937 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.audit_days_after : '
12938 || p_upd_var_rent_rec.audit_days_after
12939 , 3);
12940 END IF;
12941
12942 IF ( p_upd_var_rent_rec.recon_day_of_month IS NULL
12943 OR p_upd_var_rent_rec.recon_day_of_month = pn_varen_util.g_pn_miss_num)
12944 THEN
12945 p_upd_var_rent_rec.recon_day_of_month := l_pn_var_rent_dates_rec.recon_day_of_month;
12946 pn_varen_util.pvt_debug
12947 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.recon_day_of_month : '
12948 || l_pn_var_rent_dates_rec.recon_day_of_month
12949 , 3);
12950 pn_varen_util.pvt_debug
12951 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.recon_day_of_month : '
12952 || p_upd_var_rent_rec.recon_day_of_month
12953 , 3);
12954 END IF;
12955
12956 IF ( p_upd_var_rent_rec.recon_days_after IS NULL
12957 OR p_upd_var_rent_rec.recon_days_after = pn_varen_util.g_pn_miss_num)
12958 THEN
12959 p_upd_var_rent_rec.recon_days_after := l_pn_var_rent_dates_rec.recon_days_after;
12960 pn_varen_util.pvt_debug
12961 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.recon_days_after : '
12962 || l_pn_var_rent_dates_rec.recon_days_after
12963 , 3);
12964 pn_varen_util.pvt_debug
12965 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.recon_days_after : '
12966 || p_upd_var_rent_rec.recon_days_after
12967 , 3);
12968 END IF;
12969
12970 IF ( p_upd_var_rent_rec.dates_attribute_category IS NULL
12971 OR p_upd_var_rent_rec.dates_attribute_category = pn_varen_util.g_pn_miss_char)
12972 THEN
12973 p_upd_var_rent_rec.dates_attribute_category := l_pn_var_rent_dates_rec.attribute_category;
12974 pn_varen_util.pvt_debug
12975 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute_category : '
12976 || l_pn_var_rent_dates_rec.attribute_category
12977 , 3);
12978 pn_varen_util.pvt_debug
12979 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute_category : '
12980 || p_upd_var_rent_rec.dates_attribute_category
12981 , 3);
12982 END IF;
12983
12984 IF ( p_upd_var_rent_rec.dates_attribute1 IS NULL
12985 OR p_upd_var_rent_rec.dates_attribute1 = pn_varen_util.g_pn_miss_char)
12986 THEN
12987 p_upd_var_rent_rec.dates_attribute1 := l_pn_var_rent_dates_rec.attribute1;
12988 pn_varen_util.pvt_debug
12989 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute1 : '
12990 || l_pn_var_rent_dates_rec.attribute1
12991 , 3);
12992 pn_varen_util.pvt_debug
12993 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute1 : '
12994 || p_upd_var_rent_rec.dates_attribute1
12995 , 3);
12996 END IF;
12997
12998 IF ( p_upd_var_rent_rec.dates_attribute2 IS NULL
12999 OR p_upd_var_rent_rec.dates_attribute2 = pn_varen_util.g_pn_miss_char)
13000 THEN
13001 p_upd_var_rent_rec.dates_attribute2 := l_pn_var_rent_dates_rec.attribute2;
13002 pn_varen_util.pvt_debug
13003 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute2 : '
13004 || l_pn_var_rent_dates_rec.attribute2
13005 , 3);
13006 pn_varen_util.pvt_debug
13007 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute2 : '
13008 || p_upd_var_rent_rec.dates_attribute2
13009 , 3);
13010 END IF;
13011
13012 IF ( p_upd_var_rent_rec.dates_attribute3 IS NULL
13013 OR p_upd_var_rent_rec.dates_attribute3 = pn_varen_util.g_pn_miss_char)
13014 THEN
13015 p_upd_var_rent_rec.dates_attribute3 := l_pn_var_rent_dates_rec.attribute3;
13016 pn_varen_util.pvt_debug
13017 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute3 : '
13018 || l_pn_var_rent_dates_rec.attribute3
13019 , 3);
13020 pn_varen_util.pvt_debug
13021 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute3 : '
13022 || p_upd_var_rent_rec.dates_attribute3
13023 , 3);
13024 END IF;
13025
13026 IF ( p_upd_var_rent_rec.dates_attribute4 IS NULL
13027 OR p_upd_var_rent_rec.dates_attribute4 = pn_varen_util.g_pn_miss_char)
13028 THEN
13029 p_upd_var_rent_rec.dates_attribute4 := l_pn_var_rent_dates_rec.attribute4;
13030 pn_varen_util.pvt_debug
13031 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute4 : '
13032 || l_pn_var_rent_dates_rec.attribute4
13033 , 3);
13034 pn_varen_util.pvt_debug
13035 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute4 : '
13036 || p_upd_var_rent_rec.dates_attribute4
13037 , 3);
13038 END IF;
13039
13040 IF ( p_upd_var_rent_rec.dates_attribute5 IS NULL
13041 OR p_upd_var_rent_rec.dates_attribute5 = pn_varen_util.g_pn_miss_char)
13042 THEN
13043 p_upd_var_rent_rec.dates_attribute5 := l_pn_var_rent_dates_rec.attribute5;
13044 pn_varen_util.pvt_debug
13045 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute5 : '
13046 || l_pn_var_rent_dates_rec.attribute5
13047 , 3);
13048 pn_varen_util.pvt_debug
13049 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute5 : '
13050 || p_upd_var_rent_rec.dates_attribute5
13051 , 3);
13052 END IF;
13053
13054 IF ( p_upd_var_rent_rec.dates_attribute6 IS NULL
13055 OR p_upd_var_rent_rec.dates_attribute6 = pn_varen_util.g_pn_miss_char)
13056 THEN
13057 p_upd_var_rent_rec.dates_attribute6 := l_pn_var_rent_dates_rec.attribute6;
13058 pn_varen_util.pvt_debug
13059 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute6 : '
13060 || l_pn_var_rent_dates_rec.attribute6
13061 , 3);
13062 pn_varen_util.pvt_debug
13063 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute6 : '
13064 || p_upd_var_rent_rec.dates_attribute6
13065 , 3);
13066 END IF;
13067
13068 IF ( p_upd_var_rent_rec.dates_attribute7 IS NULL
13069 OR p_upd_var_rent_rec.dates_attribute7 = pn_varen_util.g_pn_miss_char)
13070 THEN
13071 p_upd_var_rent_rec.dates_attribute7 := l_pn_var_rent_dates_rec.attribute7;
13072 pn_varen_util.pvt_debug
13073 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute7 : '
13074 || l_pn_var_rent_dates_rec.attribute7
13075 , 3);
13076 pn_varen_util.pvt_debug
13077 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute7 : '
13078 || p_upd_var_rent_rec.dates_attribute7
13079 , 3);
13080 END IF;
13081
13082 IF ( p_upd_var_rent_rec.dates_attribute8 IS NULL
13083 OR p_upd_var_rent_rec.dates_attribute8 = pn_varen_util.g_pn_miss_char)
13084 THEN
13085 p_upd_var_rent_rec.dates_attribute8 := l_pn_var_rent_dates_rec.attribute8;
13086 pn_varen_util.pvt_debug
13087 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute8 : '
13088 || l_pn_var_rent_dates_rec.attribute8
13089 , 3);
13090 pn_varen_util.pvt_debug
13091 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute8 : '
13092 || p_upd_var_rent_rec.dates_attribute8
13093 , 3);
13094 END IF;
13095
13096 IF ( p_upd_var_rent_rec.dates_attribute9 IS NULL
13097 OR p_upd_var_rent_rec.dates_attribute9 = pn_varen_util.g_pn_miss_char)
13098 THEN
13099 p_upd_var_rent_rec.dates_attribute9 := l_pn_var_rent_dates_rec.attribute9;
13100 pn_varen_util.pvt_debug
13101 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute9 : '
13102 || l_pn_var_rent_dates_rec.attribute9
13103 , 3);
13104 pn_varen_util.pvt_debug
13105 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute9 : '
13106 || p_upd_var_rent_rec.dates_attribute9
13107 , 3);
13108 END IF;
13109
13110 IF ( p_upd_var_rent_rec.dates_attribute10 IS NULL
13111 OR p_upd_var_rent_rec.dates_attribute10 = pn_varen_util.g_pn_miss_char)
13112 THEN
13113 p_upd_var_rent_rec.dates_attribute10 := l_pn_var_rent_dates_rec.attribute10;
13114 pn_varen_util.pvt_debug
13115 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute10 : '
13116 || l_pn_var_rent_dates_rec.attribute10
13117 , 3);
13118 pn_varen_util.pvt_debug
13119 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute10 : '
13120 || p_upd_var_rent_rec.dates_attribute10
13121 , 3);
13122 END IF;
13123
13124 IF ( p_upd_var_rent_rec.dates_attribute11 IS NULL
13125 OR p_upd_var_rent_rec.dates_attribute11 = pn_varen_util.g_pn_miss_char)
13126 THEN
13127 p_upd_var_rent_rec.dates_attribute11 := l_pn_var_rent_dates_rec.attribute11;
13128 pn_varen_util.pvt_debug
13129 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute11 : '
13130 || l_pn_var_rent_dates_rec.attribute11
13131 , 3);
13132 pn_varen_util.pvt_debug
13133 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute11 : '
13134 || p_upd_var_rent_rec.dates_attribute11
13135 , 3);
13136 END IF;
13137
13138 IF ( p_upd_var_rent_rec.dates_attribute12 IS NULL
13139 OR p_upd_var_rent_rec.dates_attribute12 = pn_varen_util.g_pn_miss_char)
13140 THEN
13141 p_upd_var_rent_rec.dates_attribute12 := l_pn_var_rent_dates_rec.attribute12;
13142 pn_varen_util.pvt_debug
13143 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute12 : '
13144 || l_pn_var_rent_dates_rec.attribute12
13145 , 3);
13146 pn_varen_util.pvt_debug
13147 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute12 : '
13148 || p_upd_var_rent_rec.dates_attribute12
13149 , 3);
13150 END IF;
13151
13152 IF ( p_upd_var_rent_rec.dates_attribute13 IS NULL
13153 OR p_upd_var_rent_rec.dates_attribute13 = pn_varen_util.g_pn_miss_char)
13154 THEN
13155 p_upd_var_rent_rec.dates_attribute13 := l_pn_var_rent_dates_rec.attribute13;
13156 pn_varen_util.pvt_debug
13157 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute13 : '
13158 || l_pn_var_rent_dates_rec.attribute13
13159 , 3);
13160 pn_varen_util.pvt_debug
13161 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute13 : '
13162 || p_upd_var_rent_rec.dates_attribute13
13163 , 3);
13164 END IF;
13165
13166 IF ( p_upd_var_rent_rec.dates_attribute14 IS NULL
13167 OR p_upd_var_rent_rec.dates_attribute14 = pn_varen_util.g_pn_miss_char)
13168 THEN
13169 p_upd_var_rent_rec.dates_attribute14 := l_pn_var_rent_dates_rec.attribute14;
13170 pn_varen_util.pvt_debug
13171 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute14 : '
13172 || l_pn_var_rent_dates_rec.attribute14
13173 , 3);
13174 pn_varen_util.pvt_debug
13175 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute14 : '
13176 || p_upd_var_rent_rec.dates_attribute14
13177 , 3);
13178 END IF;
13179
13180 IF ( p_upd_var_rent_rec.dates_attribute15 IS NULL
13181 OR p_upd_var_rent_rec.dates_attribute15 = pn_varen_util.g_pn_miss_char)
13182 THEN
13183 p_upd_var_rent_rec.dates_attribute15 := l_pn_var_rent_dates_rec.attribute15;
13184 pn_varen_util.pvt_debug
13185 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_rent_dates_rec.attribute15 : '
13186 || l_pn_var_rent_dates_rec.attribute15
13187 , 3);
13188 pn_varen_util.pvt_debug
13189 ( 'PN_VAREN_PVT: Update_Var_Rent: p_upd_var_rent_rec.dates_attribute15 : '
13190 || p_upd_var_rent_rec.dates_attribute15
13191 , 3);
13192 END IF;
13193
13194 -- update validate dates procedure..
13195 pn_varen_util.pvt_debug
13196 ('PN_VAREN_PVT: Update_Var_Rent: Calling of Upd_Validate_Rent_Dates Procedure'
13197 , 3);
13198 upd_validate_rent_dates (p_upd_var_rent_rec_type => p_upd_var_rent_rec
13199 , x_return_status => x_return_status);
13200
13201 pn_varen_util.pvt_debug
13202 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of Upd_Validate_Rent_Dates Procedure is '
13203 || x_return_status
13204 , 3);
13205 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_validate_flag is '
13206 || p_validate_flag
13207 , 3);
13208 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
13209 THEN
13210 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
13211 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent: UPD_VALIDATE_RENT_DATES returned error');
13212 fnd_msg_pub.ADD;
13213 RAISE fnd_api.g_exc_error;
13214 END IF;
13215
13216
13217 IF (p_validate_flag <> 'Y') --and x_return_status = 'S')
13218 THEN
13219 pn_varen_util.pvt_debug
13220 ('PN_VAREN_PVT: Update_Var_Rent: Start of update_varen_dates Procedure'
13221 , 3);
13222 pn_varen_util.pvt_debug
13223 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.year_start_date before update_varen_dates procedure is : '
13224 || p_upd_var_rent_rec.year_start_date
13225 , 3);
13226
13227
13228 update_varen_dates (p_upd_var_rent_rec_type => p_upd_var_rent_rec
13229 , x_return_status => x_return_status);
13230 pn_varen_util.pvt_debug
13231 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of update_varen_dates Procedure '
13232 || x_return_status
13233 , 3);
13234 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
13235
13236 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
13237 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: update_varen_dates: Error');
13238 fnd_msg_pub.ADD;
13239 RAISE fnd_api.g_exc_error;
13240 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
13241 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
13242 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: update_varen_dates: Error');
13243 fnd_msg_pub.ADD;
13244 RAISE fnd_api.g_exc_unexpected_error;
13245 END IF;
13246
13247 END IF; -- p_validate_flag
13248 --END IF; -- c_pn_var_rent_dates
13249
13250 --CLOSE c_pn_var_rent_dates;
13251 END IF; -- c_pn_var_rent_dates
13252
13253 IF p_var_rent_lines_tbl.COUNT > 0
13254 AND l_undo_periods <> 'Y'
13255 THEN
13256
13257 FOR ul IN p_var_rent_lines_tbl.FIRST .. p_var_rent_lines_tbl.LAST
13258 LOOP
13259 l_pn_var_line_defaults:=NULL;
13260 OPEN c_pn_var_line_defaults (p_var_rent_lines_tbl (ul).line_default_id
13261 , p_var_rent_lines_tbl (ul).var_rent_id);
13262
13263 FETCH c_pn_var_line_defaults
13264 INTO l_pn_var_line_defaults;
13265
13266 CLOSE c_pn_var_line_defaults;
13267
13268 ---IF (c_pn_var_line_defaults%NOTFOUND)
13269 --THEN
13270 --x_return_status := fnd_api.g_ret_sts_error;
13271 -- pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_line_defaults not found'
13272 -- , 3
13273 -- );
13274
13275 --ELSE
13276 pn_varen_util.pvt_debug
13277 ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_line_defaults found'
13278 , 3);
13279 --------------------------------------------------------------------------------
13280 -- Initialize Variable Rent Lines
13281 --------------------------------------------------------------------------------
13282
13283 --FOR ul IN p_var_rent_lines_tbl.FIRST .. p_var_rent_lines_tbl.LAST
13284 --LOOP
13285 pn_varen_util.pvt_debug
13286 ('PN_VAREN_PVT: Update_Var_Rent: Starting of Variable Rent Lines Loop'
13287 , 3);
13288
13289 IF ( p_var_rent_lines_tbl (ul).line_num IS NULL
13290 OR p_var_rent_lines_tbl (ul).line_num = pn_varen_util.g_pn_miss_num)
13291 THEN
13292 p_var_rent_lines_tbl (ul).line_num := l_pn_var_line_defaults.line_num;
13293 END IF;
13294
13295 IF ( p_var_rent_lines_tbl (ul).var_rent_id IS NULL
13296 OR p_var_rent_lines_tbl (ul).var_rent_id = pn_varen_util.g_pn_miss_num)
13297 OR ( p_var_rent_lines_tbl (ul).var_rent_num IS NULL
13298 OR p_var_rent_lines_tbl (ul).var_rent_num = pn_varen_util.g_pn_miss_char)
13299 THEN
13300 p_var_rent_lines_tbl (ul).var_rent_id := l_pn_var_line_defaults.var_rent_id;
13301 --p_var_rent_lines_tbl (ul). var_rent_num := l_pn_var_line_defaults.var_rent_num;
13302 END IF;
13303
13304 pn_varen_util.breakpoint_ext (p_var_rent_id => p_var_rent_lines_tbl (ul).var_rent_id
13305 , x_bkpt_exist => l_bkpt_exist
13306 , x_return_status => x_return_status);
13307 pn_varen_util.pvt_debug
13308 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_undo_breakpoints is '
13309 || p_undo_breakpoints
13310 , 3);
13311 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_bkpt_exist is '
13312 || l_bkpt_exist
13313 , 3);
13314
13315 IF ( p_undo_breakpoints = 'Y'
13316 OR l_bkpt_exist > 0)
13317 THEN
13318 undo_breakpoints (p_var_rent_id => p_var_rent_lines_tbl (ul).var_rent_id
13319 , x_return_status => x_return_status);
13320 pn_varen_util.pvt_debug
13321 ( 'PN_VAREN_PVT: Update_Var_Rent: status of undo_breakpoints procedure is '
13322 || x_return_status
13323 , 3);
13324 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
13325 THEN
13326 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
13327 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent: UNDO_BREAKPOINTS returned error');
13328 fnd_msg_pub.ADD;
13329 RAISE fnd_api.g_exc_error;
13330 END IF;
13331 END IF;
13332
13333 --------------------------------------------------------------------------------
13334 --SALES_CHANNEL(Type 1) validation
13335 --------------------------------------------------------------------------------
13336 IF ( p_var_rent_lines_tbl (ul).sales_channel_code IS NOT NULL
13337 AND p_var_rent_lines_tbl (ul).sales_channel_code <> pn_varen_util.g_pn_miss_char)
13338 OR ( p_var_rent_lines_tbl (ul).sales_channel_meaning IS NOT NULL
13339 AND p_var_rent_lines_tbl (ul).sales_channel_meaning <> pn_varen_util.g_pn_miss_char)
13340 THEN
13341 pn_varen_util.pvt_debug
13342 ('PN_VAREN_PVT: Update_Var_Rent: Calling SALES_CHANNEL (Type 1) Validation'
13343 , 3);
13344 pn_varen_util.validate_lookups
13345 (p_lookup_type => g_sales_channel
13346 , x_lookup_meaning => p_var_rent_lines_tbl (ul).sales_channel_meaning
13347 , x_lookup_code => p_var_rent_lines_tbl (ul).sales_channel_code
13348 , x_return_status => x_return_status);
13349 pn_varen_util.pvt_debug
13350 ( 'PN_VAREN_PVT: Update_Var_Rent: p_var_rent_lines_tbl (ul).sales_channel_meaning :'
13351 || p_var_rent_lines_tbl (ul).sales_channel_meaning
13352 , 3);
13353 pn_varen_util.pvt_debug
13354 ( 'PN_VAREN_PVT: Update_Var_Rent: p_var_rent_lines_tbl (ul).sales_channel_code:'
13355 || p_var_rent_lines_tbl (ul).sales_channel_code
13356 , 3);
13357 pn_varen_util.pvt_debug
13358 ( 'PN_VAREN_PVT: Update_Var_Rent: SALES_CHANNEL (Type 1) Output Code :'
13359 || p_var_rent_lines_tbl (ul).sales_channel_code
13360 , 3);
13361
13362 IF (x_return_status = fnd_api.g_ret_sts_error)
13363 THEN
13364 --
13365 fnd_message.set_name ('PN', 'PN_VAR_LIN_SAL_CHL');
13366 --x_return_status :=fnd_api.g_ret_sts_error;
13367 pn_varen_util.pvt_debug
13368 ( 'PN_VAREN_PVT: Update_Var_Rent: SALES_CHANNEL (Type 1) Meaning Expected Error :'
13369 || p_var_rent_lines_tbl (ul).sales_channel_meaning
13370 , 3);
13371 pn_varen_util.pvt_debug
13372 ('PN_VAREN_PVT: Update_Var_Rent: Sales Channel Lookup Validation Error'
13373 , 3);
13374 fnd_msg_pub.ADD;
13375 RAISE fnd_api.g_exc_error;
13376 --
13377 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
13378 THEN
13379 --
13380 fnd_message.set_name ('PN', 'PN_VAR_LIN_SAL_CHL');
13381 --x_return_status := fnd_api.g_ret_sts_unexp_error;
13382 pn_varen_util.pvt_debug
13383 ( 'PN_VAREN_PVT: Update_Var_Rent: SALES_CHANNEL (Type 1) Meaning Un-Expected Error :'
13384 || p_var_rent_lines_tbl (ul).sales_channel_meaning
13385 , 3);
13386 pn_varen_util.pvt_debug
13387 ('PN_VAREN_PVT: Update_Var_Rent: Sales Channel Lookup Validation Unexpected Error'
13388 , 3);
13389 fnd_msg_pub.ADD;
13390 RAISE fnd_api.g_exc_unexpected_error;
13391 --
13392 ELSE
13393 x_return_status := fnd_api.g_ret_sts_success;
13394 pn_varen_util.pvt_debug
13395 ( 'PN_VAREN_PVT: Update_Var_Rent: SALES_CHANNEL (Type 1) Code Success :'
13396 || p_var_rent_lines_tbl (ul).sales_channel_code
13397 , 3);
13398 pn_varen_util.pvt_debug
13399 ('PN_VAREN_PVT: Update_Var_Rent: Sales Channel Lookup Validation Success'
13400 , 3);
13401 END IF;
13402 ELSE
13403 p_var_rent_lines_tbl (ul).sales_channel_code := l_pn_var_line_defaults.sales_type_code;
13404 --p_var_rent_lines_tbl (ul). sales_channel_meaning := l_pn_var_line_defaults.sales_channel_meaning;
13405 pn_varen_util.pvt_debug
13406 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_line_defaults.sales_type_code is :'
13407 || l_pn_var_line_defaults.sales_type_code
13408 , 3);
13409 pn_varen_util.pvt_debug
13410 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).sales_channel_code:'
13411 || p_var_rent_lines_tbl (ul).sales_channel_code
13412 , 3);
13413 END IF;
13414
13415 --------------------------------------------------------------------------------
13416 --ITEM_CATEGORY(Type 2) validation
13417 --------------------------------------------------------------------------------
13418 IF ( p_var_rent_lines_tbl (ul).item_category_code IS NOT NULL
13419 AND p_var_rent_lines_tbl (ul).item_category_code <> pn_varen_util.g_pn_miss_char)
13420 OR ( p_var_rent_lines_tbl (ul).item_category_meaning IS NOT NULL
13421 AND p_var_rent_lines_tbl (ul).item_category_meaning <> pn_varen_util.g_pn_miss_char)
13422 THEN
13423 pn_varen_util.pvt_debug
13424 ('PN_VAREN_PVT: Update_Var_Rent: Calling ITEM_CATEGORY(Type 2) Validation'
13425 , 3);
13426 pn_varen_util.validate_lookups
13427 (p_lookup_type => g_item_category
13428 , x_lookup_meaning => p_var_rent_lines_tbl (ul).item_category_meaning
13429 , x_lookup_code => p_var_rent_lines_tbl (ul).item_category_code
13430 , x_return_status => x_return_status);
13431 pn_varen_util.pvt_debug
13432 ( 'PN_VAREN_PVT: Update_Var_Rent: p_var_rent_lines_tbl (ul).item_category_meaning :'
13433 || p_var_rent_lines_tbl (ul).item_category_meaning
13434 , 3);
13435 pn_varen_util.pvt_debug
13436 ( 'PN_VAREN_PVT: Update_Var_Rent: p_var_rent_lines_tbl (ul).item_category_code:'
13437 || p_var_rent_lines_tbl (ul).item_category_code
13438 , 3);
13439 pn_varen_util.pvt_debug
13440 ( 'PN_VAREN_PVT: Update_Var_Rent: ITEM_CATEGORY(Type 2) Output Code :'
13441 || p_var_rent_lines_tbl (ul).item_category_code
13442 , 3);
13443
13444 IF (x_return_status = fnd_api.g_ret_sts_error)
13445 THEN
13446 --
13447 fnd_message.set_name ('PN', 'PN_VAR_LIN_ITM_CAY');
13448 x_return_status := fnd_api.g_ret_sts_error;
13449 pn_varen_util.pvt_debug
13450 ('PN_VAREN_PVT: Update_Var_Rent: Item Category Lookup Validation Error'
13451 , 3);
13452 pn_varen_util.pvt_debug
13453 ( 'PN_VAREN_PVT: Update_Var_Rent: ITEM_CATEGORY(Type 2) Meaning Expected Error :'
13454 || p_var_rent_lines_tbl (ul).item_category_meaning
13455 , 3);
13456 fnd_msg_pub.ADD;
13457 RAISE fnd_api.g_exc_error;
13458 --
13459 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
13460 THEN
13461 --
13462 fnd_message.set_name ('PN', 'PN_VAR_LIN_ITM_CAY');
13463 --x_return_status :=fnd_api.g_ret_sts_unexp_error;
13464 pn_varen_util.pvt_debug
13465 ( 'PN_VAREN_PVT: Update_Var_Rent: Item Category Lookup Validation Unexpected Error :'
13466 || p_var_rent_lines_tbl (ul).item_category_meaning
13467 , 3);
13468 pn_varen_util.pvt_debug
13469 ( 'PN_VAREN_PVT: Update_Var_Rent: ITEM_CATEGORY(Type 2) Meaning Un-Expected Error :'
13470 || p_var_rent_lines_tbl (ul).item_category_meaning
13471 , 3);
13472 fnd_msg_pub.ADD;
13473 RAISE fnd_api.g_exc_error;
13474 --
13475
13476 --RAISE fnd_api.g_exc_unexpected_error;
13477 ELSE
13478 x_return_status := fnd_api.g_ret_sts_success;
13479 pn_varen_util.pvt_debug
13480 ('PN_VAREN_PVT: Update_Var_Rent: Item Category Lookup Validation Success'
13481 , 3);
13482 -- x_return_status := fnd_api.g_ret_sts_success;
13483 pn_varen_util.pvt_debug
13484 ( 'PN_VAREN_PVT: Update_Var_Rent: ITEM_CATEGORY(Type 2) Code Success :'
13485 || p_var_rent_lines_tbl (ul).item_category_code
13486 , 3);
13487 END IF;
13488 ELSE
13489 p_var_rent_lines_tbl (ul).item_category_code :=
13490 l_pn_var_line_defaults.item_category_code;
13491 --p_var_rent_lines_tbl (ul). item_category_meaning := l_pn_var_line_defaults.item_category_meaning;
13492 pn_varen_util.pvt_debug
13493 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_pn_var_line_defaults.item_category_meaning is :'
13494 || l_pn_var_line_defaults.item_category_code
13495 , 3);
13496 pn_varen_util.pvt_debug
13497 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).item_category_code:'
13498 || p_var_rent_lines_tbl (ul).item_category_code
13499 , 3);
13500 END IF;
13501
13502 IF ( p_var_rent_lines_tbl (ul).agreement_template_id IS NULL
13503 OR p_var_rent_lines_tbl (ul).agreement_template_id = pn_varen_util.g_pn_miss_num)
13504 THEN
13505 p_var_rent_lines_tbl (ul).agreement_template_id :=
13506 l_pn_var_line_defaults.agreement_template_id;
13507 END IF;
13508
13509 IF ( p_var_rent_lines_tbl (ul).line_start_date IS NULL
13510 OR p_var_rent_lines_tbl (ul).line_start_date = pn_varen_util.g_pn_miss_date)
13511 THEN
13512 p_var_rent_lines_tbl (ul).line_start_date := l_pn_var_line_defaults.line_start_date;
13513 END IF;
13514
13515 IF ( p_var_rent_lines_tbl (ul).line_end_date IS NULL
13516 OR p_var_rent_lines_tbl (ul).line_end_date = pn_varen_util.g_pn_miss_date)
13517 THEN
13518 p_var_rent_lines_tbl (ul).line_end_date := l_pn_var_line_defaults.line_end_date;
13519 END IF;
13520
13521 IF ( p_var_rent_lines_tbl (ul).processed_flag IS NULL
13522 OR p_var_rent_lines_tbl (ul).processed_flag = pn_varen_util.g_pn_miss_num)
13523 THEN
13524 p_var_rent_lines_tbl (ul).processed_flag := l_pn_var_line_defaults.processed_flag;
13525 END IF;
13526
13527 IF ( p_var_rent_lines_tbl (ul).last_update_date IS NULL
13528 OR p_var_rent_lines_tbl (ul).last_update_date = pn_varen_util.g_pn_miss_date)
13529 THEN
13530 p_var_rent_lines_tbl (ul).last_update_date := SYSDATE;
13531 --:= l_pn_var_line_defaults.last_update_date;
13532 END IF;
13533
13534 IF ( p_var_rent_lines_tbl (ul).last_updated_by IS NULL
13535 OR p_var_rent_lines_tbl (ul).last_updated_by = pn_varen_util.g_pn_miss_num)
13536 THEN
13537 p_var_rent_lines_tbl (ul).last_updated_by := g_user_id;
13538 -- := l_pn_var_line_defaults.last_updated_by;
13539 END IF;
13540
13541 IF ( p_var_rent_lines_tbl (ul).creation_date IS NULL
13542 OR p_var_rent_lines_tbl (ul).creation_date = pn_varen_util.g_pn_miss_date)
13543 THEN
13544 p_var_rent_lines_tbl (ul).creation_date := l_pn_var_line_defaults.creation_date;
13545 END IF;
13546
13547 IF ( p_var_rent_lines_tbl (ul).created_by IS NULL
13548 OR p_var_rent_lines_tbl (ul).created_by = pn_varen_util.g_pn_miss_num)
13549 THEN
13550 p_var_rent_lines_tbl (ul).created_by := l_pn_var_line_defaults.created_by;
13551 END IF;
13552
13553 IF ( p_var_rent_lines_tbl (ul).last_update_login IS NULL
13554 OR p_var_rent_lines_tbl (ul).last_update_login = pn_varen_util.g_pn_miss_num)
13555 THEN
13556 p_var_rent_lines_tbl (ul).last_update_login := g_user_id;
13557 -- := l_pn_var_line_defaults.last_update_login;
13558 END IF;
13559
13560 IF ( p_var_rent_lines_tbl (ul).attribute_category IS NULL
13561 OR p_var_rent_lines_tbl (ul).attribute_category = pn_varen_util.g_pn_miss_char)
13562 THEN
13563 p_var_rent_lines_tbl (ul).attribute_category :=
13564 l_pn_var_line_defaults.attribute_category;
13565 END IF;
13566
13567 IF ( p_var_rent_lines_tbl (ul).attribute1 IS NULL
13568 OR p_var_rent_lines_tbl (ul).attribute1 = pn_varen_util.g_pn_miss_char)
13569 THEN
13570 p_var_rent_lines_tbl (ul).attribute1 := l_pn_var_line_defaults.attribute1;
13571 END IF;
13572
13573 IF ( p_var_rent_lines_tbl (ul).attribute2 IS NULL
13574 OR p_var_rent_lines_tbl (ul).attribute2 = pn_varen_util.g_pn_miss_char)
13575 THEN
13576 p_var_rent_lines_tbl (ul).attribute2 := l_pn_var_line_defaults.attribute2;
13577 END IF;
13578
13579 IF ( p_var_rent_lines_tbl (ul).attribute3 IS NULL
13580 OR p_var_rent_lines_tbl (ul).attribute3 = pn_varen_util.g_pn_miss_char)
13581 THEN
13582 p_var_rent_lines_tbl (ul).attribute3 := l_pn_var_line_defaults.attribute3;
13583 END IF;
13584
13585 IF ( p_var_rent_lines_tbl (ul).attribute4 IS NULL
13586 OR p_var_rent_lines_tbl (ul).attribute4 = pn_varen_util.g_pn_miss_char)
13587 THEN
13588 p_var_rent_lines_tbl (ul).attribute4 := l_pn_var_line_defaults.attribute4;
13589 END IF;
13590
13591 IF ( p_var_rent_lines_tbl (ul).attribute5 IS NULL
13592 OR p_var_rent_lines_tbl (ul).attribute5 = pn_varen_util.g_pn_miss_char)
13593 THEN
13594 p_var_rent_lines_tbl (ul).attribute5 := l_pn_var_line_defaults.attribute5;
13595 END IF;
13596
13597 IF ( p_var_rent_lines_tbl (ul).attribute6 IS NULL
13598 OR p_var_rent_lines_tbl (ul).attribute6 = pn_varen_util.g_pn_miss_char)
13599 THEN
13600 p_var_rent_lines_tbl (ul).attribute6 := l_pn_var_line_defaults.attribute6;
13601 END IF;
13602
13603 IF ( p_var_rent_lines_tbl (ul).attribute7 IS NULL
13604 OR p_var_rent_lines_tbl (ul).attribute7 = pn_varen_util.g_pn_miss_char)
13605 THEN
13606 p_var_rent_lines_tbl (ul).attribute7 := l_pn_var_line_defaults.attribute7;
13607 END IF;
13608
13609 IF ( p_var_rent_lines_tbl (ul).attribute8 IS NULL
13610 OR p_var_rent_lines_tbl (ul).attribute8 = pn_varen_util.g_pn_miss_char)
13611 THEN
13612 p_var_rent_lines_tbl (ul).attribute8 := l_pn_var_line_defaults.attribute8;
13613 END IF;
13614
13615 IF ( p_var_rent_lines_tbl (ul).attribute9 IS NULL
13616 OR p_var_rent_lines_tbl (ul).attribute9 = pn_varen_util.g_pn_miss_char)
13617 THEN
13618 p_var_rent_lines_tbl (ul).attribute9 := l_pn_var_line_defaults.attribute9;
13619 END IF;
13620
13621 IF ( p_var_rent_lines_tbl (ul).attribute10 IS NULL
13622 OR p_var_rent_lines_tbl (ul).attribute10 = pn_varen_util.g_pn_miss_char)
13623 THEN
13624 p_var_rent_lines_tbl (ul).attribute10 := l_pn_var_line_defaults.attribute10;
13625 END IF;
13626
13627 IF ( p_var_rent_lines_tbl (ul).attribute11 IS NULL
13628 OR p_var_rent_lines_tbl (ul).attribute11 = pn_varen_util.g_pn_miss_char)
13629 THEN
13630 p_var_rent_lines_tbl (ul).attribute11 := l_pn_var_line_defaults.attribute11;
13631 END IF;
13632
13633 IF ( p_var_rent_lines_tbl (ul).attribute12 IS NULL
13634 OR p_var_rent_lines_tbl (ul).attribute12 = pn_varen_util.g_pn_miss_char)
13635 THEN
13636 p_var_rent_lines_tbl (ul).attribute12 := l_pn_var_line_defaults.attribute12;
13637 END IF;
13638
13639 IF ( p_var_rent_lines_tbl (ul).attribute13 IS NULL
13640 OR p_var_rent_lines_tbl (ul).attribute13 = pn_varen_util.g_pn_miss_char)
13641 THEN
13642 p_var_rent_lines_tbl (ul).attribute13 := l_pn_var_line_defaults.attribute13;
13643 END IF;
13644
13645 IF ( p_var_rent_lines_tbl (ul).attribute14 IS NULL
13646 OR p_var_rent_lines_tbl (ul).attribute14 = pn_varen_util.g_pn_miss_char)
13647 THEN
13648 p_var_rent_lines_tbl (ul).attribute14 := l_pn_var_line_defaults.attribute14;
13649 END IF;
13650
13651 IF ( p_var_rent_lines_tbl (ul).attribute15 IS NULL
13652 OR p_var_rent_lines_tbl (ul).attribute15 = pn_varen_util.g_pn_miss_char)
13653 THEN
13654 p_var_rent_lines_tbl (ul).attribute15 := l_pn_var_line_defaults.attribute15;
13655 END IF;
13656
13657 -------------------------------------------------------------------------------------------
13658 -- Validating Descriptive Flex fields
13659 -------------------------------------------------------------------------------------------
13660
13661
13662 -- Below code has been commented by Vivek on 11-DEC-2010
13663 /*
13664 IF (p_var_rent_lines_tbl (ul).attribute_category IS NOT NULL)
13665 THEN
13666
13667 pn_varen_util.validate_flex_fields
13668 (p_desc_flex_name => g_var_line_desc_name
13669 , p_attribute_category => p_var_rent_lines_tbl (ul).attribute_category
13670 , p_attribute1 => p_var_rent_lines_tbl (ul).attribute1
13671 , p_attribute2 => p_var_rent_lines_tbl (ul).attribute2
13672 , p_attribute3 => p_var_rent_lines_tbl (ul).attribute3
13673 , p_attribute4 => p_var_rent_lines_tbl (ul).attribute4
13674 , p_attribute5 => p_var_rent_lines_tbl (ul).attribute5
13675 , p_attribute6 => p_var_rent_lines_tbl (ul).attribute6
13676 , p_attribute7 => p_var_rent_lines_tbl (ul).attribute7
13677 , p_attribute8 => p_var_rent_lines_tbl (ul).attribute8
13678 , p_attribute9 => p_var_rent_lines_tbl (ul).attribute9
13679 , p_attribute10 => p_var_rent_lines_tbl (ul).attribute10
13680 , p_attribute11 => p_var_rent_lines_tbl (ul).attribute11
13681 , p_attribute12 => p_var_rent_lines_tbl (ul).attribute12
13682 , p_attribute13 => p_var_rent_lines_tbl (ul).attribute13
13683 , p_attribute14 => p_var_rent_lines_tbl (ul).attribute14
13684 , p_attribute15 => p_var_rent_lines_tbl (ul).attribute15
13685 , x_return_msg => l_return_msg
13686 , x_return_status => l_return_status);
13687
13688
13689 IF l_return_msg = 'VALID'
13690 THEN
13691 x_return_status := fnd_api.g_ret_sts_success;
13692 ELSE
13693 x_return_status := fnd_api.g_ret_sts_error;
13694 END IF;
13695 END IF;
13696 */
13697
13698 -- Below code has been added by Vivek on 11-DEC-2010
13699
13700 IF (get_attribute_status('PN_VAR_RENTS') > 0) THEN
13701 IF NOT ((p_var_rent_lines_tbl (ul).attribute_category = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute_category IS NULL)
13702 AND (p_var_rent_lines_tbl (ul).attribute1 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute1 IS NULL)
13703 AND (p_var_rent_lines_tbl (ul).attribute2 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute2 IS NULL)
13704 AND (p_var_rent_lines_tbl (ul).attribute3 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute3 IS NULL)
13705 AND (p_var_rent_lines_tbl (ul).attribute4 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute4 IS NULL)
13706 AND (p_var_rent_lines_tbl (ul).attribute5 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute5 IS NULL)
13707 AND (p_var_rent_lines_tbl (ul).attribute6 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute6 IS NULL)
13708 AND (p_var_rent_lines_tbl (ul).attribute7 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute7 IS NULL)
13709 AND (p_var_rent_lines_tbl (ul).attribute8 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute8 IS NULL)
13710 AND (p_var_rent_lines_tbl (ul).attribute9 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute9 IS NULL)
13711 AND (p_var_rent_lines_tbl (ul).attribute10 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute10 IS NULL)
13712 AND (p_var_rent_lines_tbl (ul).attribute11 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute11 IS NULL)
13713 AND (p_var_rent_lines_tbl (ul).attribute12 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute12 IS NULL)
13714 AND (p_var_rent_lines_tbl (ul).attribute13 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute13 IS NULL)
13715 AND (p_var_rent_lines_tbl (ul).attribute14 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute14 IS NULL)
13716 AND (p_var_rent_lines_tbl (ul).attribute15 = pn_varen_util.g_pn_miss_char OR p_var_rent_lines_tbl (ul).attribute15 IS NULL)
13717 ) THEN
13718 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_RENTS'
13719 , p_attribute_category => p_var_rent_lines_tbl (ul).attribute_category
13720 , p_attribute1 => p_var_rent_lines_tbl (ul).attribute1
13721 , p_attribute2 => p_var_rent_lines_tbl (ul).attribute2
13722 , p_attribute3 => p_var_rent_lines_tbl (ul).attribute3
13723 , p_attribute4 => p_var_rent_lines_tbl (ul).attribute4
13724 , p_attribute5 => p_var_rent_lines_tbl (ul).attribute5
13725 , p_attribute6 => p_var_rent_lines_tbl (ul).attribute6
13726 , p_attribute7 => p_var_rent_lines_tbl (ul).attribute7
13727 , p_attribute8 => p_var_rent_lines_tbl (ul).attribute8
13728 , p_attribute9 => p_var_rent_lines_tbl (ul).attribute9
13729 , p_attribute10 => p_var_rent_lines_tbl (ul).attribute10
13730 , p_attribute11 => p_var_rent_lines_tbl (ul).attribute11
13731 , p_attribute12 => p_var_rent_lines_tbl (ul).attribute12
13732 , p_attribute13 => p_var_rent_lines_tbl (ul).attribute13
13733 , p_attribute14 => p_var_rent_lines_tbl (ul).attribute14
13734 , p_attribute15 => p_var_rent_lines_tbl (ul).attribute15
13735 , x_return_msg => l_return_msg
13736 , x_return_status => x_return_status
13737 );
13738
13739 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
13740 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
13741 fnd_message.set_token ('ERR_MSG', 'UPDATE_VAR_RENT : PN_VAR_RENTS Descriptive Fields Error '||l_return_msg);
13742 fnd_msg_pub.ADD;
13743 RAISE fnd_api.g_exc_error;
13744 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
13745 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
13746 fnd_message.set_token ('ERR_MSG', 'UPDATE_VAR_RENT : PN_VAR_RENTS Descriptive Fields Error'||l_return_msg);
13747 fnd_msg_pub.ADD;
13748 RAISE fnd_api.g_exc_unexpected_error;
13749 END IF;
13750 END IF;
13751 END IF; -- End of attributes valitions in create var rent
13752
13753 ------------------------End of 11-Dec-2010 DFF changes----------------------------
13754
13755
13756 pn_varen_util.pvt_debug
13757 ('PN_VAREN_PVT: Update_Var_Rent: After all validations of Variable rent lines'
13758 , 3);
13759 pn_varen_util.pvt_debug
13760 ( 'PN_VAREN_PVT: Update_Var_Rent: Before - Value of p_var_rent_lines_tbl (ul).var_rent_id is '
13761 || p_var_rent_lines_tbl (ul).var_rent_id
13762 , 3);
13763 pn_varen_util.pvt_debug
13764 ( 'PN_VAREN_PVT: Update_Var_Rent: Before - Value of p_var_rent_lines_tbl (ul).line_default_id is '
13765 || p_var_rent_lines_tbl (ul).line_default_id
13766 , 3);
13767 pn_varen_util.pvt_debug
13768 ( 'PN_VAREN_PVT: Update_Var_Rent: Before - Value of p_var_rent_lines_tbl (ul).line_num is '
13769 || p_var_rent_lines_tbl (ul).line_num
13770 , 3);
13771 pn_varen_util.pvt_debug
13772 ( 'PN_VAREN_PVT: Update_Var_Rent: Before - Value of p_var_rent_lines_tbl (ul).sales_channel_code is '
13773 || p_var_rent_lines_tbl (ul).sales_channel_code
13774 , 3);
13775 pn_varen_util.pvt_debug
13776 ( 'PN_VAREN_PVT: Update_Var_Rent: Before - Value of p_var_rent_lines_tbl (ul).item_category_code is '
13777 || p_var_rent_lines_tbl (ul).item_category_code
13778 , 3);
13779 pn_varen_util.pvt_debug
13780 ( 'PN_VAREN_PVT: Update_Var_Rent: Before - Value of p_var_rent_lines_tbl (ul).line_start_date is '
13781 || p_var_rent_lines_tbl (ul).line_start_date
13782 , 3);
13783 pn_varen_util.pvt_debug
13784 ( 'PN_VAREN_PVT: Update_Var_Rent: Before - Value of p_var_rent_lines_tbl (ul).line_end_date is '
13785 || p_var_rent_lines_tbl (ul).line_end_date
13786 , 3);
13787
13788 pn_varen_util.breakpoint_ext (p_var_rent_id => p_var_rent_lines_tbl (ul).var_rent_id
13789 , x_bkpt_exist => l_bkpt_exist
13790 , x_return_status => x_return_status);
13791 pn_varen_util.pvt_debug
13792 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_bkpt_exist after breakpoint_ext procedure is'
13793 || l_bkpt_exist
13794 , 3);
13795
13796
13797 IF ( --x_return_status = 'S' or OR
13798 l_bkpt_exist = 0)
13799 THEN
13800 pn_varen_util.pvt_debug
13801 ('PN_VAREN_PVT: Update_Var_Rent: Before calling update_variable_rent_lines procedure '
13802 , 3);
13803 pn_varen_util.pvt_debug
13804 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).var_rent_id is '
13805 || p_var_rent_lines_tbl (ul).var_rent_id
13806 , 3);
13807 pn_varen_util.pvt_debug
13808 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).line_default_id is '
13809 || p_var_rent_lines_tbl (ul).line_default_id
13810 , 3);
13811 pn_varen_util.pvt_debug
13812 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).line_num is '
13813 || p_var_rent_lines_tbl (ul).line_num
13814 , 3);
13815 pn_varen_util.pvt_debug
13816 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).sales_channel_code is '
13817 || p_var_rent_lines_tbl (ul).sales_channel_code
13818 , 3);
13819 pn_varen_util.pvt_debug
13820 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).item_category_code is '
13821 || p_var_rent_lines_tbl (ul).item_category_code
13822 , 3);
13823 pn_varen_util.pvt_debug
13824 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).line_start_date is '
13825 || p_var_rent_lines_tbl (ul).line_start_date
13826 , 3);
13827 pn_varen_util.pvt_debug
13828 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).line_end_date is '
13829 || p_var_rent_lines_tbl (ul).line_end_date
13830 , 3);
13831
13832
13833 IF ( p_var_rent_lines_tbl (ul).line_default_id IS NULL
13834 OR p_var_rent_lines_tbl (ul).line_default_id = pn_varen_util.g_pn_miss_num)
13835 THEN
13836 --pn_varen_util.pvt_debug
13837 pn_varen_util.pvt_debug
13838 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).line_default_id is null'
13839 || p_var_rent_lines_tbl (ul).line_default_id
13840 , 3);
13841 pn_varen_util.pvt_debug
13842 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).sales_channel_code is '
13843 || p_var_rent_lines_tbl (ul).sales_channel_code
13844 , 3);
13845 pn_varen_util.pvt_debug
13846 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).item_category_code is '
13847 || p_var_rent_lines_tbl (ul).item_category_code
13848 , 3);
13849 pn_varen_util.pvt_debug
13850 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).line_start_date is '
13851 || p_var_rent_lines_tbl (ul).line_start_date
13852 , 3);
13853 pn_varen_util.pvt_debug
13854 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).line_end_date is '
13855 || p_var_rent_lines_tbl (ul).line_end_date
13856 , 3);
13857 pn_varen_util.pvt_debug
13858 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).line_num is '
13859 || p_var_rent_lines_tbl (ul).line_num
13860 , 3);
13861 -- p_var_rent_lines_tbl (ul).line_default_id :=
13862 -- l_pn_var_line_defaults.line_default_id;
13863
13864 -- Call Create Variable Rent Lines
13865 pn_varen_util.pvt_debug
13866 ('PN_VAREN_PVT: Update_Var_Rent: Start of insert_variable_rent_lines procedure '
13867 , 3);
13868
13869 -------------------------------------------------------------------------------------
13870 -- Start of Initialize before insertion of record
13871 -------------------------------------------------------------------------------------
13872 IF p_var_rent_lines_tbl (ul).line_default_id = pn_varen_util.g_pn_miss_num
13873 THEN
13874 p_var_rent_lines_tbl (ul).line_default_id := NULL;
13875
13876 END IF;
13877
13878 IF p_var_rent_lines_tbl (ul).line_num = pn_varen_util.g_pn_miss_num
13879 THEN
13880 p_var_rent_lines_tbl (ul).line_num := NULL;
13881 END IF;
13882
13883 IF p_var_rent_lines_tbl (ul).var_rent_id = pn_varen_util.g_pn_miss_num
13884 THEN
13885 p_var_rent_lines_tbl (ul).var_rent_id := NULL;
13886 END IF;
13887
13888 IF p_var_rent_lines_tbl (ul).var_rent_num = pn_varen_util.g_pn_miss_char
13889 THEN
13890 p_var_rent_lines_tbl (ul).var_rent_num := NULL;
13891 END IF;
13892
13893 IF p_var_rent_lines_tbl (ul).sales_channel_code = pn_varen_util.g_pn_miss_char
13894 THEN
13895 p_var_rent_lines_tbl (ul).sales_channel_code := NULL;
13896 END IF;
13897
13898 IF p_var_rent_lines_tbl (ul).sales_channel_meaning = pn_varen_util.g_pn_miss_char
13899 THEN
13900 p_var_rent_lines_tbl (ul).sales_channel_meaning := NULL;
13901 END IF;
13902
13903 IF p_var_rent_lines_tbl (ul).item_category_code = pn_varen_util.g_pn_miss_char
13904 THEN
13905 p_var_rent_lines_tbl (ul).item_category_code := NULL;
13906 END IF;
13907
13908 IF p_var_rent_lines_tbl (ul).item_category_meaning = pn_varen_util.g_pn_miss_char
13909 THEN
13910 p_var_rent_lines_tbl (ul).item_category_meaning := NULL;
13911 END IF;
13912
13913 IF p_var_rent_lines_tbl (ul).agreement_template_id = pn_varen_util.g_pn_miss_num
13914 THEN
13915 p_var_rent_lines_tbl (ul).agreement_template_id := NULL;
13916 END IF;
13917
13918 IF p_var_rent_lines_tbl (ul).line_start_date = pn_varen_util.g_pn_miss_date
13919 THEN
13920 p_var_rent_lines_tbl (ul).line_start_date := NULL;
13921 END IF;
13922
13923 IF p_var_rent_lines_tbl (ul).line_end_date = pn_varen_util.g_pn_miss_date
13924 THEN
13925 p_var_rent_lines_tbl (ul).line_end_date := NULL;
13926 END IF;
13927
13928 IF p_var_rent_lines_tbl (ul).processed_flag = pn_varen_util.g_pn_miss_num
13929 THEN
13930 p_var_rent_lines_tbl (ul).processed_flag := NULL;
13931 END IF;
13932
13933 IF p_var_rent_lines_tbl (ul).last_update_date = pn_varen_util.g_pn_miss_date
13934 THEN
13935 p_var_rent_lines_tbl (ul).last_update_date := NULL;
13936 END IF;
13937
13938 IF p_var_rent_lines_tbl (ul).last_updated_by = pn_varen_util.g_pn_miss_num
13939 THEN
13940 p_var_rent_lines_tbl (ul).last_updated_by := NULL;
13941 END IF;
13942
13943 IF p_var_rent_lines_tbl (ul).creation_date = pn_varen_util.g_pn_miss_date
13944 THEN
13945 p_var_rent_lines_tbl (ul).creation_date := NULL;
13946 END IF;
13947
13948 IF p_var_rent_lines_tbl (ul).created_by = pn_varen_util.g_pn_miss_num
13949 THEN
13950 p_var_rent_lines_tbl (ul).created_by := NULL;
13951 END IF;
13952
13953 IF p_var_rent_lines_tbl (ul).last_update_login = pn_varen_util.g_pn_miss_num
13954 THEN
13955 p_var_rent_lines_tbl (ul).last_update_login := NULL;
13956 END IF;
13957
13958 IF p_var_rent_lines_tbl (ul).attribute_category = pn_varen_util.g_pn_miss_char
13959 THEN
13960 p_var_rent_lines_tbl (ul).attribute_category := NULL;
13961 END IF;
13962
13963 IF p_var_rent_lines_tbl (ul).attribute1 = pn_varen_util.g_pn_miss_char
13964 THEN
13965 p_var_rent_lines_tbl (ul).attribute1 := NULL;
13966 END IF;
13967
13968 IF p_var_rent_lines_tbl (ul).attribute2 = pn_varen_util.g_pn_miss_char
13969 THEN
13970 p_var_rent_lines_tbl (ul).attribute2 := NULL;
13971 END IF;
13972
13973 IF p_var_rent_lines_tbl (ul).attribute3 = pn_varen_util.g_pn_miss_char
13974 THEN
13975 p_var_rent_lines_tbl (ul).attribute3 := NULL;
13976 END IF;
13977
13978 IF p_var_rent_lines_tbl (ul).attribute4 = pn_varen_util.g_pn_miss_char
13979 THEN
13980 p_var_rent_lines_tbl (ul).attribute4 := NULL;
13981 END IF;
13982
13983 IF p_var_rent_lines_tbl (ul).attribute5 = pn_varen_util.g_pn_miss_char
13984 THEN
13985 p_var_rent_lines_tbl (ul).attribute5 := NULL;
13986 END IF;
13987
13988 IF p_var_rent_lines_tbl (ul).attribute6 = pn_varen_util.g_pn_miss_char
13989 THEN
13990 p_var_rent_lines_tbl (ul).attribute6 := NULL;
13991 END IF;
13992
13993 IF p_var_rent_lines_tbl (ul).attribute7 = pn_varen_util.g_pn_miss_char
13994 THEN
13995 p_var_rent_lines_tbl (ul).attribute7 := NULL;
13996 END IF;
13997
13998 IF p_var_rent_lines_tbl (ul).attribute8 = pn_varen_util.g_pn_miss_char
13999 THEN
14000 p_var_rent_lines_tbl (ul).attribute8 := NULL;
14001 END IF;
14002
14003 IF p_var_rent_lines_tbl (ul).attribute9 = pn_varen_util.g_pn_miss_char
14004 THEN
14005 p_var_rent_lines_tbl (ul).attribute9 := NULL;
14006 END IF;
14007
14008 IF p_var_rent_lines_tbl (ul).attribute10 = pn_varen_util.g_pn_miss_char
14009 THEN
14010 p_var_rent_lines_tbl (ul).attribute10 := NULL;
14011 END IF;
14012
14013 IF p_var_rent_lines_tbl (ul).attribute11 = pn_varen_util.g_pn_miss_char
14014 THEN
14015 p_var_rent_lines_tbl (ul).attribute11 := NULL;
14016 END IF;
14017
14018 IF p_var_rent_lines_tbl (ul).attribute12 = pn_varen_util.g_pn_miss_char
14019 THEN
14020 p_var_rent_lines_tbl (ul).attribute12 := NULL;
14021 END IF;
14022
14023 IF p_var_rent_lines_tbl (ul).attribute13 = pn_varen_util.g_pn_miss_char
14024 THEN
14025 p_var_rent_lines_tbl (ul).attribute13 := NULL;
14026 END IF;
14027
14028 IF p_var_rent_lines_tbl (ul).attribute14 = pn_varen_util.g_pn_miss_char
14029 THEN
14030 p_var_rent_lines_tbl (ul).attribute14 := NULL;
14031 END IF;
14032
14033 IF p_var_rent_lines_tbl (ul).attribute15 = pn_varen_util.g_pn_miss_char
14034 THEN
14035 p_var_rent_lines_tbl (ul).attribute15 := NULL;
14036 END IF;
14037
14038 ---------
14039 -- End
14040 ---------
14041
14042 insert_variable_rent_lines
14043 (p_variable_rent_lines_rec_type => p_var_rent_lines_tbl (ul)
14044 , x_return_status => x_return_status);
14045 pn_varen_util.pvt_debug
14046 ( 'PN_VAREN_PVT: Update_Var_Rent: After Insertion of VRA Line, line_default_id is '
14047 || p_var_rent_lines_tbl (ul).var_rent_id
14048 , 3);
14049 --pn_varen_util.pvt_debug
14050 pn_varen_util.pvt_debug
14051 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of insert_variable_rent_lines procedure is '
14052 || x_return_status
14053 , 3);
14054 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
14055 THEN
14056 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
14057 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent: INSERT_VARIABLE_RENT_LINES procedure returned error');
14058 fnd_msg_pub.ADD;
14059 RAISE fnd_api.g_exc_error;
14060 END IF;
14061 ELSE
14062
14063 --pn_varen_util.pvt_debug
14064 pn_varen_util.pvt_debug
14065 ('PN_VAREN_PVT: Update_Var_Rent: Value of p_var_rent_lines_tbl (ul).line_default_id is not null'
14066 , 3);
14067 pn_varen_util.pvt_debug
14068 ('PN_VAREN_PVT: Update_Var_Rent: Start of update_variable_rent_lines procedure '
14069 , 3);
14070 update_variable_rent_lines
14071 (p_variable_rent_lines_rec_type => p_var_rent_lines_tbl (ul)
14072 , x_return_status => x_return_status);
14073 pn_varen_util.pvt_debug
14074 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of update_variable_rent_lines procedure is '
14075 || x_return_status
14076 , 3);
14077 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
14078 THEN
14079 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
14080 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent: UPDATE_VARIABLE_RENT_LINES procedure returned error');
14081 fnd_msg_pub.ADD;
14082 RAISE fnd_api.g_exc_error;
14083 END IF;
14084 END IF; --p_var_rent_lines_tbl (ul).line_default_id IS NULL
14085 END IF;
14086 --END LOOP;
14087 --END IF;
14088 END LOOP;
14089 END IF; -- p_var_rent_lines_tbl.count>0
14090
14091 --CLOSE c_pn_var_line_defaults;
14092 IF p_breakpoint_header_tbl.COUNT > 0
14093 AND l_undo_periods <> 'Y'
14094 THEN
14095 FOR ubk IN p_breakpoint_header_tbl.FIRST .. p_breakpoint_header_tbl.LAST
14096 LOOP
14097 l_pn_var_bkhd_defaults:=NULL;
14098 OPEN c_pn_var_bkhd_defaults (p_breakpoint_header_tbl (ubk).bkhd_default_id
14099 , p_breakpoint_header_tbl (ubk).var_rent_id);
14100
14101 FETCH c_pn_var_bkhd_defaults
14102 INTO l_pn_var_bkhd_defaults;
14103
14104 CLOSE c_pn_var_bkhd_defaults;
14105
14106 --IF (c_pn_var_bkhd_defaults%NOTFOUND)
14107 --THEN
14108 --x_return_status := fnd_api.g_ret_sts_error;
14109 --pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_bkhd_defaults not found'
14110 -- , 3
14111 -- );
14112 -- ELSE
14113 --pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_bkhd_defaults found'
14114 -- , 3
14115 -- );
14116 --pn_varen_util.pvt_debug
14117 -- ( 'PN_VAREN_PVT: Update_Var_Rent: After the cursor c_pn_var_bkhd_defaults is open, value of p_upd_var_rent_rec.var_rent_id is '
14118 -- || p_upd_var_rent_rec.var_rent_id
14119 -- , 3
14120 -- );
14121
14122 --------------------------------------------------------------------------------
14123 -- Initialize Update Breakpoint Headers
14124 -------------------------------------------------------------------------------
14125 --FOR ubk IN p_breakpoint_header_tbl.FIRST .. p_breakpoint_header_tbl.LAST
14126 --LOOP
14127 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Inside Breakpoint Headers Loop'
14128 , 3);
14129
14130 IF ( p_breakpoint_header_tbl (ubk).bkhd_detail_num IS NULL
14131 OR p_breakpoint_header_tbl (ubk).bkhd_detail_num = pn_varen_util.g_pn_miss_num)
14132 THEN
14133 p_breakpoint_header_tbl (ubk).bkhd_detail_num := l_pn_var_bkhd_defaults.bkhd_detail_num;
14134 END IF;
14135
14136 IF ( p_breakpoint_header_tbl (ubk).line_default_id IS NULL
14137 OR p_breakpoint_header_tbl (ubk).line_default_id = pn_varen_util.g_pn_miss_num)
14138 THEN
14139 p_breakpoint_header_tbl (ubk).line_default_id := l_pn_var_bkhd_defaults.line_default_id;
14140 END IF;
14141
14142 IF ( p_breakpoint_header_tbl (ubk).bkhd_start_date IS NULL
14143 OR p_breakpoint_header_tbl (ubk).bkhd_start_date = pn_varen_util.g_pn_miss_date)
14144 THEN
14145 p_breakpoint_header_tbl (ubk).bkhd_start_date := l_pn_var_bkhd_defaults.bkhd_start_date;
14146 END IF;
14147
14148 IF ( p_breakpoint_header_tbl (ubk).bkhd_end_date IS NULL
14149 OR p_breakpoint_header_tbl (ubk).bkhd_end_date = pn_varen_util.g_pn_miss_date)
14150 THEN
14151 p_breakpoint_header_tbl (ubk).bkhd_end_date := l_pn_var_bkhd_defaults.bkhd_end_date;
14152 END IF;
14153
14154 --------------------------------------------------------------------------------
14155 --BREAK_TYPE validation
14156 --------------------------------------------------------------------------------
14157 IF ( p_breakpoint_header_tbl (ubk).break_type_code IS NOT NULL
14158 AND p_breakpoint_header_tbl (ubk).break_type_code <> pn_varen_util.g_pn_miss_char)
14159 OR ( p_breakpoint_header_tbl (ubk).break_type_meaning IS NOT NULL
14160 AND p_breakpoint_header_tbl (ubk).break_type_meaning <> pn_varen_util.g_pn_miss_char)
14161 THEN
14162 pn_varen_util.pvt_debug
14163 ('PN_VAREN_PVT: Update_Var_Rent: Calling BREAK_TYPE Validation Lookup - Inside the Loop'
14164 , 3);
14165 pn_varen_util.pvt_debug
14166 ('PN_VAREN_PVT: Update_Var_Rent: Calling BREAK_TYPE Validation'
14167 , 3);
14168 pn_varen_util.validate_lookups
14169 (p_lookup_type => g_break_type
14170 , x_lookup_meaning => p_breakpoint_header_tbl (ubk).break_type_meaning
14171 , x_lookup_code => p_breakpoint_header_tbl (ubk).break_type_code
14172 , x_return_status => x_return_status);
14173 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: BREAK_TYPE Meaning :'
14174 || p_breakpoint_header_tbl (ubk).break_type_meaning
14175 , 3);
14176 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: BREAK_TYPE Code :'
14177 || p_breakpoint_header_tbl (ubk).break_type_code
14178 , 3);
14179 pn_varen_util.pvt_debug
14180 ( 'PN_VAREN_PVT: Update_Var_Rent: BREAK_TYPE validation status :'
14181 || x_return_status
14182 , 3);
14183
14184 IF (x_return_status = fnd_api.g_ret_sts_error)
14185 THEN
14186 --
14187 fnd_message.set_name ('PN', 'PN_VAR_BKHD_BRK_TY');
14188 --x_return_status := fnd_api.g_ret_sts_error;
14189 pn_varen_util.pvt_debug
14190 ( 'PN_VAREN_PVT: Update_Var_Rent: BREAK_TYPE Meaning Expected Error :'
14191 || p_breakpoint_header_tbl (ubk).break_type_meaning
14192 , 3);
14193 pn_varen_util.pvt_debug
14194 ('PN_VAREN_PVT: Update_Var_Rent: BREAK_TYPE Lookup Validation Error'
14195 , 3);
14196 fnd_msg_pub.ADD;
14197 RAISE fnd_api.g_exc_error;
14198 --
14199 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14200 THEN
14201 --
14202 fnd_message.set_name ('PN', 'PN_VAR_BKHD_BRK_TY');
14203 --x_return_status := fnd_api.g_ret_sts_unexp_error;
14204 pn_varen_util.pvt_debug
14205 ( 'PN_VAREN_PVT: Update_Var_Rent: BREAK_TYPE Meaning Un-Expected Error :'
14206 || p_breakpoint_header_tbl (ubk).break_type_meaning
14207 , 3);
14208 pn_varen_util.pvt_debug
14209 ('PN_VAREN_PVT: Update_Var_Rent: BREAK_TYPE Lookup Validation Unexpected Error'
14210 , 3);
14211 fnd_msg_pub.ADD;
14212 RAISE fnd_api.g_exc_unexpected_error;
14213 --
14214 ELSE
14215 x_return_status := fnd_api.g_ret_sts_success;
14216 pn_varen_util.pvt_debug
14217 ( 'PN_VAREN_PVT: Update_Var_Rent: BREAK_TYPE Code Success :'
14218 || p_breakpoint_header_tbl (ubk).break_type_code
14219 , 3);
14220 pn_varen_util.pvt_debug
14221 ('PN_VAREN_PVT: Update_Var_Rent: BREAK_TYPE Lookup Validation Success'
14222 , 3);
14223 END IF;
14224 ELSE
14225 p_breakpoint_header_tbl (ubk).break_type_code := l_pn_var_bkhd_defaults.break_type;
14226 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: BREAK_TYPE Code :'
14227 || p_breakpoint_header_tbl (ubk).break_type_code
14228 , 3);
14229 pn_varen_util.pvt_debug
14230 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_bkhd_defaults.break_type :'
14231 || l_pn_var_bkhd_defaults.break_type
14232 , 3);
14233 END IF;
14234
14235 IF ( p_breakpoint_header_tbl (ubk).natural_break_rate IS NULL
14236 OR p_breakpoint_header_tbl (ubk).natural_break_rate = pn_varen_util.g_pn_miss_num)
14237 THEN
14238 p_breakpoint_header_tbl (ubk).natural_break_rate :=
14239 l_pn_var_bkhd_defaults.natural_break_rate;
14240 END IF;
14241
14242 ------------------------------------
14243 -- Breakpoint Type Validation
14244 ------------------------------------
14245 IF ( p_breakpoint_header_tbl (ubk).breakpoint_type_code IS NOT NULL
14246 AND p_breakpoint_header_tbl (ubk).breakpoint_type_code <>
14247 pn_varen_util.g_pn_miss_char)
14248 OR ( p_breakpoint_header_tbl (ubk).breakpoint_type_meaning IS NOT NULL
14249 AND p_breakpoint_header_tbl (ubk).breakpoint_type_meaning <>
14250 pn_varen_util.g_pn_miss_char)
14251 THEN
14252 pn_varen_util.pvt_debug
14253 ('PN_VAREN_PVT: Update_Var_Rent: Calling BREAKPOINT_TYPE Validation Lookup - Inside the Loop'
14254 , 3);
14255 pn_varen_util.pvt_debug
14256 ('PN_VAREN_PVT: Update_Var_Rent: Calling BREAKPOINT_TYPE Validation'
14257 , 3);
14258 pn_varen_util.validate_lookups
14259 (p_lookup_type => g_breakpoint_type
14260 , x_lookup_meaning => p_breakpoint_header_tbl (ubk).breakpoint_type_meaning
14261 , x_lookup_code => p_breakpoint_header_tbl (ubk).breakpoint_type_code
14262 , x_return_status => x_return_status);
14263 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE Meaning :'
14264 || p_breakpoint_header_tbl (ubk).breakpoint_type_meaning
14265 , 3);
14266 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE Code :'
14267 || p_breakpoint_header_tbl (ubk).breakpoint_type_code
14268 , 3);
14269 pn_varen_util.pvt_debug
14270 ( 'PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE validation status :'
14271 || x_return_status
14272 , 3);
14273
14274 IF (x_return_status = fnd_api.g_ret_sts_error)
14275 THEN
14276 --
14277 fnd_message.set_name ('PN', 'PN_VAR_BKHD_BKPT_TY');
14278 x_return_status := fnd_api.g_ret_sts_error;
14279 pn_varen_util.pvt_debug
14280 ( 'PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE Meaning Expected Error :'
14281 || p_breakpoint_header_tbl (ubk).breakpoint_type_meaning
14282 , 3);
14283 pn_varen_util.pvt_debug
14284 ('PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE Lookup Validation Error'
14285 , 3);
14286 fnd_msg_pub.ADD;
14287 RAISE fnd_api.g_exc_error;
14288 --
14289 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14290 THEN
14291 --
14292 fnd_message.set_name ('PN', 'PN_VAR_BKHD_BKPT_TY');
14293 --x_return_status := fnd_api.g_ret_sts_unexp_error;
14294 pn_varen_util.pvt_debug
14295 ( 'PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE Meaning Un-Expected Error :'
14296 || p_breakpoint_header_tbl (ubk).breakpoint_type_meaning
14297 , 3);
14298 pn_varen_util.pvt_debug
14299 ('PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE Lookup Validation Unexpected Error'
14300 , 3);
14301 fnd_msg_pub.ADD;
14302 RAISE fnd_api.g_exc_unexpected_error;
14303 --
14304 ELSE
14305 x_return_status := fnd_api.g_ret_sts_success;
14306 pn_varen_util.pvt_debug
14307 ( 'PN_VAREN_PVT: Update_Var_Rent: pn_varen_pvt-BREAKPOINT_TYPE Code Success :'
14308 || p_breakpoint_header_tbl (ubk).breakpoint_type_code
14309 , 3);
14310 pn_varen_util.pvt_debug
14311 ('PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE Lookup Validation Success'
14312 , 3);
14313 END IF;
14314 ELSE
14315 p_breakpoint_header_tbl (ubk).breakpoint_type_code :=
14316 l_pn_var_bkhd_defaults.breakpoint_type;
14317 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE Code :'
14318 || p_breakpoint_header_tbl (ubk).breakpoint_type_code
14319 , 3);
14320 pn_varen_util.pvt_debug
14321 ( 'PN_VAREN_PVT: Update_Var_Rent: l_pn_var_bkhd_defaults.breakpoint_type :'
14322 || l_pn_var_bkhd_defaults.breakpoint_type
14323 , 3);
14324 END IF;
14325
14326 -----------------------------------------------------------------------
14327 --Conditional Validation of Beakpoint Type with Break type Procedure
14328 ------------------------------------------------------------------------
14329 IF p_breakpoint_header_tbl (ubk).break_type_code = 'NATURAL'
14330 THEN
14331 IF p_breakpoint_header_tbl (ubk).breakpoint_type_code <> 'FLAT'
14332 THEN
14333 fnd_message.set_name ('PN', 'PN_VAR_BKHD_BT_BKPT_TY');
14334 pn_varen_util.pvt_debug
14335 ( 'PN_VAREN_PVT: Update_Var_Rent: Provide a correct combination of BREAKPOINT_TYPE_code and Break Type code - Validation Error :'
14336 || p_breakpoint_header_tbl (ubk).breakpoint_type_code
14337 , 3);
14338 fnd_msg_pub.ADD;
14339 RAISE fnd_api.g_exc_error;
14340 --
14341 ELSE
14342 pn_varen_util.pvt_debug
14343 ('PN_VAREN_PVT: Update_Var_Rent: Combination of BREAKPOINT_TYPE_code and Break Type code Validation success'
14344 , 3);
14345 END IF;
14346
14347 pn_varen_util.pvt_debug
14348 ( 'PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE_code IS NATURAL '
14349 || p_breakpoint_header_tbl (ubk).break_type_code
14350 , 3);
14351 ELSIF p_breakpoint_header_tbl (ubk).break_type_code = 'ARTIFICIAL'
14352 THEN
14353 -- If p_breakpoint_header_tbl (ubk)..break_type_code = 'ARTIFICIAL' then natural_break_rate should be null
14354 p_breakpoint_header_tbl (ubk).natural_break_rate := NULL;
14355 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: BREAKPOINT_TYPE_code is '
14356 || p_breakpoint_header_tbl (ubk).break_type_code
14357 , 3);
14358 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Natural break rate is '
14359 || p_breakpoint_header_tbl (ubk).natural_break_rate
14360 , 3);
14361 END IF;
14362
14363 IF ( p_breakpoint_header_tbl (ubk).var_rent_id IS NULL
14364 OR p_breakpoint_header_tbl (ubk).var_rent_id = pn_varen_util.g_pn_miss_num)
14365 THEN
14366 p_breakpoint_header_tbl (ubk).var_rent_id := l_pn_var_bkhd_defaults.var_rent_id;
14367 END IF;
14368
14369 IF ( p_breakpoint_header_tbl (ubk).last_update_date IS NULL
14370 OR p_breakpoint_header_tbl (ubk).last_update_date = pn_varen_util.g_pn_miss_date)
14371 THEN
14372 p_breakpoint_header_tbl (ubk).last_update_date := g_sysdate;
14373 END IF;
14374
14375 IF ( p_breakpoint_header_tbl (ubk).last_updated_by IS NULL
14376 OR p_breakpoint_header_tbl (ubk).last_updated_by = pn_varen_util.g_pn_miss_num)
14377 THEN
14378 p_breakpoint_header_tbl (ubk).last_updated_by := g_user_id;
14379 END IF;
14380
14381 IF ( p_breakpoint_header_tbl (ubk).creation_date IS NULL
14382 OR p_breakpoint_header_tbl (ubk).creation_date = pn_varen_util.g_pn_miss_date)
14383 THEN
14384 p_breakpoint_header_tbl (ubk).creation_date := l_pn_var_bkhd_defaults.creation_date;
14385 END IF;
14386
14387 IF ( p_breakpoint_header_tbl (ubk).created_by IS NULL
14388 OR p_breakpoint_header_tbl (ubk).created_by = pn_varen_util.g_pn_miss_num)
14389 THEN
14390 p_breakpoint_header_tbl (ubk).created_by := l_pn_var_bkhd_defaults.created_by;
14391 END IF;
14392
14393 IF ( p_breakpoint_header_tbl (ubk).last_update_login IS NULL
14394 OR p_breakpoint_header_tbl (ubk).last_update_login = pn_varen_util.g_pn_miss_num)
14395 THEN
14396 p_breakpoint_header_tbl (ubk).last_update_login :=
14397 l_pn_var_bkhd_defaults.last_update_login;
14398 END IF;
14399
14400 IF ( p_breakpoint_header_tbl (ubk).attribute_category IS NULL
14401 OR p_breakpoint_header_tbl (ubk).attribute_category = pn_varen_util.g_pn_miss_char)
14402 THEN
14403 p_breakpoint_header_tbl (ubk).attribute_category :=
14404 l_pn_var_bkhd_defaults.attribute_category;
14405 END IF;
14406
14407 IF ( p_breakpoint_header_tbl (ubk).attribute1 IS NULL
14408 OR p_breakpoint_header_tbl (ubk).attribute1 = pn_varen_util.g_pn_miss_char)
14409 THEN
14410 p_breakpoint_header_tbl (ubk).attribute1 := l_pn_var_bkhd_defaults.attribute1;
14411 END IF;
14412
14413 IF ( p_breakpoint_header_tbl (ubk).attribute2 IS NULL
14414 OR p_breakpoint_header_tbl (ubk).attribute2 = pn_varen_util.g_pn_miss_char)
14415 THEN
14416 p_breakpoint_header_tbl (ubk).attribute2 := l_pn_var_bkhd_defaults.attribute2;
14417 END IF;
14418
14419 IF ( p_breakpoint_header_tbl (ubk).attribute3 IS NULL
14420 OR p_breakpoint_header_tbl (ubk).attribute3 = pn_varen_util.g_pn_miss_char)
14421 THEN
14422 p_breakpoint_header_tbl (ubk).attribute3 := l_pn_var_bkhd_defaults.attribute3;
14423 END IF;
14424
14425 IF ( p_breakpoint_header_tbl (ubk).attribute4 IS NULL
14426 OR p_breakpoint_header_tbl (ubk).attribute4 = pn_varen_util.g_pn_miss_char)
14427 THEN
14428 p_breakpoint_header_tbl (ubk).attribute4 := l_pn_var_bkhd_defaults.attribute4;
14429 END IF;
14430
14431 IF ( p_breakpoint_header_tbl (ubk).attribute5 IS NULL
14432 OR p_breakpoint_header_tbl (ubk).attribute5 = pn_varen_util.g_pn_miss_char)
14433 THEN
14434 p_breakpoint_header_tbl (ubk).attribute5 := l_pn_var_bkhd_defaults.attribute5;
14435 END IF;
14436
14437 IF ( p_breakpoint_header_tbl (ubk).attribute6 IS NULL
14438 OR p_breakpoint_header_tbl (ubk).attribute6 = pn_varen_util.g_pn_miss_char)
14439 THEN
14440 p_breakpoint_header_tbl (ubk).attribute6 := l_pn_var_bkhd_defaults.attribute6;
14441 END IF;
14442
14443 IF ( p_breakpoint_header_tbl (ubk).attribute7 IS NULL
14444 OR p_breakpoint_header_tbl (ubk).attribute7 = pn_varen_util.g_pn_miss_char)
14445 THEN
14446 p_breakpoint_header_tbl (ubk).attribute7 := l_pn_var_bkhd_defaults.attribute7;
14447 END IF;
14448
14449 IF ( p_breakpoint_header_tbl (ubk).attribute8 IS NULL
14450 OR p_breakpoint_header_tbl (ubk).attribute8 = pn_varen_util.g_pn_miss_char)
14451 THEN
14452 p_breakpoint_header_tbl (ubk).attribute8 := l_pn_var_bkhd_defaults.attribute8;
14453 END IF;
14454
14455 IF ( p_breakpoint_header_tbl (ubk).attribute9 IS NULL
14456 OR p_breakpoint_header_tbl (ubk).attribute9 = pn_varen_util.g_pn_miss_char)
14457 THEN
14458 p_breakpoint_header_tbl (ubk).attribute9 := l_pn_var_bkhd_defaults.attribute9;
14459 END IF;
14460
14461 IF ( p_breakpoint_header_tbl (ubk).attribute10 IS NULL
14462 OR p_breakpoint_header_tbl (ubk).attribute10 = pn_varen_util.g_pn_miss_char)
14463 THEN
14464 p_breakpoint_header_tbl (ubk).attribute10 := l_pn_var_bkhd_defaults.attribute10;
14465 END IF;
14466
14467 IF ( p_breakpoint_header_tbl (ubk).attribute11 IS NULL
14468 OR p_breakpoint_header_tbl (ubk).attribute11 = pn_varen_util.g_pn_miss_char)
14469 THEN
14470 p_breakpoint_header_tbl (ubk).attribute11 := l_pn_var_bkhd_defaults.attribute11;
14471 END IF;
14472
14473 IF ( p_breakpoint_header_tbl (ubk).attribute12 IS NULL
14474 OR p_breakpoint_header_tbl (ubk).attribute12 = pn_varen_util.g_pn_miss_char)
14475 THEN
14476 p_breakpoint_header_tbl (ubk).attribute12 := l_pn_var_bkhd_defaults.attribute12;
14477 END IF;
14478
14479 IF ( p_breakpoint_header_tbl (ubk).attribute13 IS NULL
14480 OR p_breakpoint_header_tbl (ubk).attribute13 = pn_varen_util.g_pn_miss_char)
14481 THEN
14482 p_breakpoint_header_tbl (ubk).attribute13 := l_pn_var_bkhd_defaults.attribute13;
14483 END IF;
14484
14485 IF ( p_breakpoint_header_tbl (ubk).attribute14 IS NULL
14486 OR p_breakpoint_header_tbl (ubk).attribute14 = pn_varen_util.g_pn_miss_char)
14487 THEN
14488 p_breakpoint_header_tbl (ubk).attribute14 := l_pn_var_bkhd_defaults.attribute14;
14489 END IF;
14490
14491 IF ( p_breakpoint_header_tbl (ubk).attribute15 IS NULL
14492 OR p_breakpoint_header_tbl (ubk).attribute15 = pn_varen_util.g_pn_miss_char)
14493 THEN
14494 p_breakpoint_header_tbl (ubk).attribute5 := l_pn_var_bkhd_defaults.attribute15;
14495 END IF;
14496
14497 -------------------------------------------------------------------------------------------
14498 -- Validating Descriptive Flex fields
14499 -------------------------------------------------------------------------------------------
14500 -- Below code has been commented by Vivek on 11-DEC-2010
14501 /*
14502 IF (p_breakpoint_header_tbl (ubk).attribute_category IS NOT NULL)
14503 THEN
14504 pn_varen_util.validate_flex_fields
14505 (p_desc_flex_name => g_bkhd_desc_name
14506 , p_attribute_category => p_breakpoint_header_tbl (ubk).attribute_category
14507 , p_attribute1 => p_breakpoint_header_tbl (ubk).attribute1
14508 , p_attribute2 => p_breakpoint_header_tbl (ubk).attribute2
14509 , p_attribute3 => p_breakpoint_header_tbl (ubk).attribute3
14510 , p_attribute4 => p_breakpoint_header_tbl (ubk).attribute4
14511 , p_attribute5 => p_breakpoint_header_tbl (ubk).attribute5
14512 , p_attribute6 => p_breakpoint_header_tbl (ubk).attribute6
14513 , p_attribute7 => p_breakpoint_header_tbl (ubk).attribute7
14514 , p_attribute8 => p_breakpoint_header_tbl (ubk).attribute8
14515 , p_attribute9 => p_breakpoint_header_tbl (ubk).attribute9
14516 , p_attribute10 => p_breakpoint_header_tbl (ubk).attribute10
14517 , p_attribute11 => p_breakpoint_header_tbl (ubk).attribute11
14518 , p_attribute12 => p_breakpoint_header_tbl (ubk).attribute12
14519 , p_attribute13 => p_breakpoint_header_tbl (ubk).attribute13
14520 , p_attribute14 => p_breakpoint_header_tbl (ubk).attribute14
14521 , p_attribute15 => p_breakpoint_header_tbl (ubk).attribute15
14522 , x_return_msg => l_return_msg
14523 , x_return_status => l_return_status);
14524
14525 IF l_return_msg = 'VALID'
14526 THEN
14527 x_return_status := fnd_api.g_ret_sts_success;
14528 ELSE
14529 x_return_status := fnd_api.g_ret_sts_error;
14530 END IF;
14531 END IF;
14532 */
14533
14534
14535 -- Below code has been added by Vivek on 11-DEC-2010
14536
14537 IF (get_attribute_status('PN_VAR_BKPTS_HEAD') > 0) THEN
14538 IF NOT ((p_breakpoint_header_tbl (ubk).attribute_category = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute_category IS NULL)
14539 AND (p_breakpoint_header_tbl (ubk).attribute1 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute1 IS NULL)
14540 AND (p_breakpoint_header_tbl (ubk).attribute2 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute2 IS NULL)
14541 AND (p_breakpoint_header_tbl (ubk).attribute3 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute3 IS NULL)
14542 AND (p_breakpoint_header_tbl (ubk).attribute4 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute4 IS NULL)
14543 AND (p_breakpoint_header_tbl (ubk).attribute5 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute5 IS NULL)
14544 AND (p_breakpoint_header_tbl (ubk).attribute6 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute6 IS NULL)
14545 AND (p_breakpoint_header_tbl (ubk).attribute7 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute7 IS NULL)
14546 AND (p_breakpoint_header_tbl (ubk).attribute8 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute8 IS NULL)
14547 AND (p_breakpoint_header_tbl (ubk).attribute9 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute9 IS NULL)
14548 AND (p_breakpoint_header_tbl (ubk).attribute10 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute10 IS NULL)
14549 AND (p_breakpoint_header_tbl (ubk).attribute11 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute11 IS NULL)
14550 AND (p_breakpoint_header_tbl (ubk).attribute12 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute12 IS NULL)
14551 AND (p_breakpoint_header_tbl (ubk).attribute13 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute13 IS NULL)
14552 AND (p_breakpoint_header_tbl (ubk).attribute14 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute14 IS NULL)
14553 AND (p_breakpoint_header_tbl (ubk).attribute15 = pn_varen_util.g_pn_miss_char OR p_breakpoint_header_tbl (ubk).attribute15 IS NULL)
14554 ) THEN
14555 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_BKPTS_HEAD'
14556 , p_attribute_category => p_breakpoint_header_tbl (ubk).attribute_category
14557 , p_attribute1 => p_breakpoint_header_tbl (ubk).attribute1
14558 , p_attribute2 => p_breakpoint_header_tbl (ubk).attribute2
14559 , p_attribute3 => p_breakpoint_header_tbl (ubk).attribute3
14560 , p_attribute4 => p_breakpoint_header_tbl (ubk).attribute4
14561 , p_attribute5 => p_breakpoint_header_tbl (ubk).attribute5
14562 , p_attribute6 => p_breakpoint_header_tbl (ubk).attribute6
14563 , p_attribute7 => p_breakpoint_header_tbl (ubk).attribute7
14564 , p_attribute8 => p_breakpoint_header_tbl (ubk).attribute8
14565 , p_attribute9 => p_breakpoint_header_tbl (ubk).attribute9
14566 , p_attribute10 => p_breakpoint_header_tbl (ubk).attribute10
14567 , p_attribute11 => p_breakpoint_header_tbl (ubk).attribute11
14568 , p_attribute12 => p_breakpoint_header_tbl (ubk).attribute12
14569 , p_attribute13 => p_breakpoint_header_tbl (ubk).attribute13
14570 , p_attribute14 => p_breakpoint_header_tbl (ubk).attribute14
14571 , p_attribute15 => p_breakpoint_header_tbl (ubk).attribute15
14572 , x_return_msg => l_return_msg
14573 , x_return_status => x_return_status
14574 );
14575
14576 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
14577 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
14578 fnd_message.set_token ('ERR_MSG', 'UPDATE_VAR_RENT : PN_VAR_BKPTS_HEAD Descriptive Fields Error '||l_return_msg);
14579 fnd_msg_pub.ADD;
14580 RAISE fnd_api.g_exc_error;
14581 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
14582 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
14583 fnd_message.set_token ('ERR_MSG','UPDATE_VAR_RENT : PN_VAR_BKPTS_HEAD Descriptive Fields Error '|| l_return_msg);
14584 fnd_msg_pub.ADD;
14585 RAISE fnd_api.g_exc_unexpected_error;
14586 END IF;
14587 END IF;
14588 END IF; -- End of attributes validations in PN_VAR_BKPTS_HEAD
14589
14590 ------------------------End of 11-Dec-2010 DFF changes----------------------------
14591
14592 pn_varen_util.pvt_debug
14593 ( 'PN_VAREN_PVT: Update_Var_Rent: Breakpoint header validations status is '
14594 || x_return_status
14595 , 3);
14596 pn_varen_util.pvt_debug
14597 ('PN_VAREN_PVT: Update_Var_Rent: Calling Generate Breakpoint existence procedure '
14598 , 3);
14599 pn_varen_util.breakpoint_ext (p_var_rent_id => p_breakpoint_header_tbl (ubk).var_rent_id
14600 , x_bkpt_exist => l_bkpt_exist
14601 , x_return_status => x_return_status);
14602 pn_varen_util.pvt_debug
14603 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_bkpt_exist from breakpoint_ext procedure is'
14604 || l_bkpt_exist
14605 , 3);
14606 pn_varen_util.pvt_debug
14607 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of breakpoint_ext procedure '
14608 || x_return_status
14609 , 3);
14610 -- Below code has been added by Vivek on 10-DEC-2010
14611 IF p_breakpoint_header_tbl (ubk).bkhd_start_date <l_pn_var_rents_rec.commencement_date
14612 OR p_breakpoint_header_tbl (ubk).bkhd_end_date >l_pn_var_rents_rec.termination_date
14613 THEN
14614
14615 --fnd_message.set_name('PN','PN_VAR_BKPT_OVERLAP');
14616 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
14617 fnd_message.set_token('ERR_MSG', 'Please review each breakpoint header dates and remove any overlap with the variable rent dates.');
14618 fnd_msg_pub.ADD;
14619 RAISE fnd_api.g_exc_error;
14620 END IF;
14621
14622 l_date_range_count := 0;
14623 BEGIN
14624
14625
14626 SELECT COUNT(1)
14627 INTO l_date_range_count
14628 FROM pn_var_bkhd_defaults_all
14629 WHERE var_rent_id = p_breakpoint_header_tbl (ubk).var_rent_id
14630 AND bkhd_default_id<> p_breakpoint_header_tbl (ubk).bkhd_default_id
14631 AND line_default_id = p_breakpoint_header_tbl (ubk).line_default_id
14632 AND (bkhd_start_date <= p_breakpoint_header_tbl (ubk).bkhd_end_date AND bkhd_end_date >= p_breakpoint_header_tbl (ubk).bkhd_start_date);
14633
14634
14635 EXCEPTION
14636 WHEN OTHERS THEN
14637 pn_varen_util.pvt_debug('PN_VAREN_PVT:Remove any overlap in the breakpoint Headers',3);
14638 END;
14639
14640 IF(NVL(l_date_range_count,0) > 0) THEN
14641 --fnd_message.set_name('PN','PN_VAR_BKPT_OVERLAP');
14642 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
14643 fnd_message.set_token('ERR_MSG', 'Please review each breakpoint component and remove any overlap in the breakpoint Header dates.');
14644 fnd_msg_pub.ADD;
14645 RAISE fnd_api.g_exc_error;
14646 END IF;
14647
14648 -- Below if block has been added by Vivek on 09-DEC-2010
14649 IF ( x_return_status = 'S'
14650 AND l_bkpt_exist <> 0)
14651 THEN
14652 -- Below if block has been uncommented by Vivek on 09-DEC-2010
14653 IF ( p_breakpoint_header_tbl (ubk).bkhd_default_id IS NULL
14654 OR p_breakpoint_header_tbl (ubk).bkhd_default_id = pn_varen_util.g_pn_miss_num)
14655 THEN
14656 insert_breakpoint_headers
14657 (p_breakpoint_header_rec_type => p_breakpoint_header_tbl (ubk)
14658 , x_return_status => x_return_status);
14659 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
14660 THEN
14661 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
14662 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent:INSERT_BREAKPOINT_HEADERS procedure returned error');
14663 fnd_msg_pub.ADD;
14664 RAISE fnd_api.g_exc_error;
14665 END IF;
14666 END IF;
14667 END IF;
14668
14669 IF ( x_return_status = 'S'
14670 AND l_bkpt_exist = 0)
14671 THEN
14672 p_breakpoint_header_tbl (ubk).bkhd_default_id := l_pn_var_bkhd_defaults.bkhd_default_id;
14673
14674 -- Below IF condition has been added by Vivek on 09-DEC-2010
14675 IF ( p_breakpoint_header_tbl (ubk).bkhd_default_id IS NOT NULL
14676 AND p_breakpoint_header_tbl (ubk).bkhd_default_id <> pn_varen_util.g_pn_miss_num)
14677 THEN
14678 -- Call update of breakpoint headers
14679 pn_varen_util.pvt_debug
14680 ('PN_VAREN_PVT: Update_Var_Rent: Calling update_breakpoint_headers procedure'
14681 , 3);
14682 update_breakpoint_headers
14683 (p_breakpoint_header_rec_type => p_breakpoint_header_tbl (ubk)
14684 , x_return_status => x_return_status);
14685 pn_varen_util.pvt_debug
14686 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of update_breakpoint_headers procedure is '
14687 || x_return_status
14688 , 3);
14689 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
14690 THEN
14691 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
14692 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent:UPDATE_BREAKPOINT_HEADERS procedure returned error');
14693 fnd_msg_pub.ADD;
14694 RAISE fnd_api.g_exc_error;
14695 END IF;
14696
14697 END IF;
14698 END IF; --l_bkpt_exist = 0
14699 --END IF; -- p_breakpoint_header_tbl (ubk).bkhd_default_id IS NULL
14700 --END LOOP; -- Commented By Vivek on 09-DEC-2010
14701 --END IF;
14702
14703 --CLOSE c_pn_var_bkhd_defaults;
14704 END LOOP; -- p_breakpoint_header_tbl LOOP
14705 END IF; -- p_breakpoint_header_tbl>0
14706
14707
14708 IF p_breakpoint_details_tbl.COUNT > 0
14709 AND l_undo_periods <> 'Y'
14710 THEN
14711 FOR ubd IN p_breakpoint_details_tbl.FIRST .. p_breakpoint_details_tbl.LAST
14712 LOOP
14713 l_pn_var_bkdt_defaults:=NULL;
14714 OPEN c_pn_var_bkdt_defaults (p_breakpoint_details_tbl (ubd).bkdt_default_id
14715 , p_breakpoint_details_tbl (ubd).var_rent_id);
14716
14717 FETCH c_pn_var_bkdt_defaults
14718 INTO l_pn_var_bkdt_defaults;
14719
14720 CLOSE c_pn_var_bkdt_defaults;
14721
14722 --IF (c_pn_var_bkdt_defaults%NOTFOUND)
14723 --THEN
14724 --x_return_status := fnd_api.g_ret_sts_error;
14725
14726 --pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor C_pn_var_bkdt_defaults not found'
14727 -- , 3
14728 -- );
14729 -- ELSE
14730 --pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor C_pn_var_bkdt_defaults found'
14731 -- , 3
14732 -- );
14733 pn_varen_util.pvt_debug
14734 ( 'PN_VAREN_PVT: Update_Var_Rent: After the cursor C_pn_var_bkdt_defaults is open, value of p_upd_var_rent_rec.var_rent_id is '
14735 || p_upd_var_rent_rec.var_rent_id
14736 , 3);
14737 --------------------------------------------------------------------------------
14738 -- Initialize Update Breakpoint Details
14739 -------------------------------------------------------------------------------
14740 --FOR ubd IN p_breakpoint_details_tbl.FIRST .. p_breakpoint_details_tbl.LAST
14741 --LOOP
14742 pn_varen_util.pvt_debug
14743 ('PN_VAREN_PVT: Update_Var_Rent: Inside Breakpoint Details procedure loop'
14744 , 3);
14745
14746 IF ( p_breakpoint_details_tbl (ubd).bkdt_default_id IS NULL
14747 OR p_breakpoint_details_tbl (ubd).bkdt_default_id = pn_varen_util.g_pn_miss_num)
14748 THEN
14749 p_breakpoint_details_tbl (ubd).bkdt_default_id :=
14750 l_pn_var_bkdt_defaults.bkdt_default_id;
14751 END IF;
14752
14753 IF ( p_breakpoint_details_tbl (ubd).bkdt_detail_num IS NULL
14754 OR p_breakpoint_details_tbl (ubd).bkdt_detail_num = pn_varen_util.g_pn_miss_num)
14755 THEN
14756 p_breakpoint_details_tbl (ubd).bkdt_detail_num :=
14757 l_pn_var_bkdt_defaults.bkdt_detail_num;
14758 END IF;
14759
14760 IF ( p_breakpoint_details_tbl (ubd).bkhd_default_id IS NULL
14761 OR p_breakpoint_details_tbl (ubd).bkhd_default_id = pn_varen_util.g_pn_miss_num)
14762 THEN
14763 p_breakpoint_details_tbl (ubd).bkhd_default_id :=
14764 l_pn_var_bkdt_defaults.bkhd_default_id;
14765 END IF;
14766
14767 IF ( p_breakpoint_details_tbl (ubd).bkdt_start_date IS NULL
14768 OR p_breakpoint_details_tbl (ubd).bkdt_start_date = pn_varen_util.g_pn_miss_date)
14769 THEN
14770 p_breakpoint_details_tbl (ubd).bkdt_start_date :=
14771 l_pn_var_bkdt_defaults.bkdt_start_date;
14772 END IF;
14773
14774 IF ( p_breakpoint_details_tbl (ubd).bkdt_end_date IS NULL
14775 OR p_breakpoint_details_tbl (ubd).bkdt_end_date = pn_varen_util.g_pn_miss_date)
14776 THEN
14777 p_breakpoint_details_tbl (ubd).bkdt_end_date := l_pn_var_bkdt_defaults.bkdt_end_date;
14778 END IF;
14779
14780 IF ( p_breakpoint_details_tbl (ubd).period_bkpt_vol_start IS NULL
14781 OR p_breakpoint_details_tbl (ubd).period_bkpt_vol_start = pn_varen_util.g_pn_miss_num)
14782 THEN
14783 p_breakpoint_details_tbl (ubd).period_bkpt_vol_start :=
14784 l_pn_var_bkdt_defaults.period_bkpt_vol_start;
14785 END IF;
14786
14787 IF ( p_breakpoint_details_tbl (ubd).period_bkpt_vol_end IS NULL
14788 OR p_breakpoint_details_tbl (ubd).period_bkpt_vol_end = pn_varen_util.g_pn_miss_num)
14789 THEN
14790 p_breakpoint_details_tbl (ubd).period_bkpt_vol_end :=
14791 l_pn_var_bkdt_defaults.period_bkpt_vol_end;
14792 END IF;
14793
14794 IF ( p_breakpoint_details_tbl (ubd).group_bkpt_vol_start IS NULL
14795 OR p_breakpoint_details_tbl (ubd).group_bkpt_vol_start = pn_varen_util.g_pn_miss_num)
14796 THEN
14797 p_breakpoint_details_tbl (ubd).group_bkpt_vol_start :=
14798 l_pn_var_bkdt_defaults.group_bkpt_vol_start;
14799 END IF;
14800
14801 IF ( p_breakpoint_details_tbl (ubd).group_bkpt_vol_end IS NULL
14802 OR p_breakpoint_details_tbl (ubd).group_bkpt_vol_end = pn_varen_util.g_pn_miss_num)
14803 THEN
14804 p_breakpoint_details_tbl (ubd).group_bkpt_vol_end :=
14805 l_pn_var_bkdt_defaults.group_bkpt_vol_end;
14806 END IF;
14807
14808 IF ( p_breakpoint_details_tbl (ubd).bkpt_rate IS NULL
14809 OR p_breakpoint_details_tbl (ubd).bkpt_rate = pn_varen_util.g_pn_miss_num)
14810 THEN
14811 p_breakpoint_details_tbl (ubd).bkpt_rate := l_pn_var_bkdt_defaults.bkpt_rate;
14812 END IF;
14813
14814 IF ( p_breakpoint_details_tbl (ubd).annual_basis_amount IS NULL
14815 OR p_breakpoint_details_tbl (ubd).annual_basis_amount = pn_varen_util.g_pn_miss_num)
14816 THEN
14817 p_breakpoint_details_tbl (ubd).annual_basis_amount :=
14818 l_pn_var_bkdt_defaults.annual_basis_amount;
14819 END IF;
14820
14821 IF ( p_breakpoint_details_tbl (ubd).var_rent_id IS NULL
14822 OR p_breakpoint_details_tbl (ubd).var_rent_id = pn_varen_util.g_pn_miss_num)
14823 THEN
14824 p_breakpoint_details_tbl (ubd).var_rent_id := l_pn_var_bkdt_defaults.var_rent_id;
14825 END IF;
14826
14827 IF ( p_breakpoint_details_tbl (ubd).last_update_date IS NULL
14828 OR p_breakpoint_details_tbl (ubd).last_update_date = pn_varen_util.g_pn_miss_date)
14829 THEN
14830 p_breakpoint_details_tbl (ubd).last_update_date := g_sysdate;
14831 END IF;
14832
14833 IF ( p_breakpoint_details_tbl (ubd).last_updated_by IS NULL
14834 OR p_breakpoint_details_tbl (ubd).last_updated_by = pn_varen_util.g_pn_miss_num)
14835 THEN
14836 p_breakpoint_details_tbl (ubd).last_updated_by := g_user_id;
14837 END IF;
14838
14839 IF ( p_breakpoint_details_tbl (ubd).creation_date IS NULL
14840 OR p_breakpoint_details_tbl (ubd).creation_date = pn_varen_util.g_pn_miss_date)
14841 THEN
14842 p_breakpoint_details_tbl (ubd).creation_date := l_pn_var_bkdt_defaults.creation_date;
14843 END IF;
14844
14845 IF ( p_breakpoint_details_tbl (ubd).created_by IS NULL
14846 OR p_breakpoint_details_tbl (ubd).created_by = pn_varen_util.g_pn_miss_num)
14847 THEN
14848 p_breakpoint_details_tbl (ubd).created_by := l_pn_var_bkdt_defaults.created_by;
14849 END IF;
14850
14851 IF ( p_breakpoint_details_tbl (ubd).last_update_login IS NULL
14852 OR p_breakpoint_details_tbl (ubd).last_update_login = pn_varen_util.g_pn_miss_num)
14853 THEN
14854 p_breakpoint_details_tbl (ubd).last_update_login := g_user_id;
14855 END IF;
14856
14857 IF ( p_breakpoint_details_tbl (ubd).attribute_category IS NULL
14858 OR p_breakpoint_details_tbl (ubd).attribute_category = pn_varen_util.g_pn_miss_char)
14859 THEN
14860 p_breakpoint_details_tbl (ubd).attribute_category :=
14861 l_pn_var_bkdt_defaults.attribute_category;
14862 END IF;
14863
14864 IF ( p_breakpoint_details_tbl (ubd).attribute1 IS NULL
14865 OR p_breakpoint_details_tbl (ubd).attribute1 = pn_varen_util.g_pn_miss_char)
14866 THEN
14867 p_breakpoint_details_tbl (ubd).attribute1 := l_pn_var_bkdt_defaults.attribute1;
14868 END IF;
14869
14870 IF ( p_breakpoint_details_tbl (ubd).attribute2 IS NULL
14871 OR p_breakpoint_details_tbl (ubd).attribute2 = pn_varen_util.g_pn_miss_char)
14872 THEN
14873 p_breakpoint_details_tbl (ubd).attribute2 := l_pn_var_bkdt_defaults.attribute2;
14874 END IF;
14875
14876 IF ( p_breakpoint_details_tbl (ubd).attribute3 IS NULL
14877 OR p_breakpoint_details_tbl (ubd).attribute3 = pn_varen_util.g_pn_miss_char)
14878 THEN
14879 p_breakpoint_details_tbl (ubd).attribute3 := l_pn_var_bkdt_defaults.attribute3;
14880 END IF;
14881
14882 IF ( p_breakpoint_details_tbl (ubd).attribute4 IS NULL
14883 OR p_breakpoint_details_tbl (ubd).attribute4 = pn_varen_util.g_pn_miss_char)
14884 THEN
14885 p_breakpoint_details_tbl (ubd).attribute4 := l_pn_var_bkdt_defaults.attribute4;
14886 END IF;
14887
14888 IF ( p_breakpoint_details_tbl (ubd).attribute5 IS NULL
14889 OR p_breakpoint_details_tbl (ubd).attribute5 = pn_varen_util.g_pn_miss_char)
14890 THEN
14891 p_breakpoint_details_tbl (ubd).attribute5 := l_pn_var_bkdt_defaults.attribute5;
14892 END IF;
14893
14894 IF ( p_breakpoint_details_tbl (ubd).attribute6 IS NULL
14895 OR p_breakpoint_details_tbl (ubd).attribute6 = pn_varen_util.g_pn_miss_char)
14896 THEN
14897 p_breakpoint_details_tbl (ubd).attribute6 := l_pn_var_bkdt_defaults.attribute6;
14898 END IF;
14899
14900 IF ( p_breakpoint_details_tbl (ubd).attribute7 IS NULL
14901 OR p_breakpoint_details_tbl (ubd).attribute7 = pn_varen_util.g_pn_miss_char)
14902 THEN
14903 p_breakpoint_details_tbl (ubd).attribute7 := l_pn_var_bkdt_defaults.attribute7;
14904 END IF;
14905
14906 IF ( p_breakpoint_details_tbl (ubd).attribute8 IS NULL
14907 OR p_breakpoint_details_tbl (ubd).attribute8 = pn_varen_util.g_pn_miss_char)
14908 THEN
14909 p_breakpoint_details_tbl (ubd).attribute8 := l_pn_var_bkdt_defaults.attribute8;
14910 END IF;
14911
14912 IF ( p_breakpoint_details_tbl (ubd).attribute9 IS NULL
14913 OR p_breakpoint_details_tbl (ubd).attribute9 = pn_varen_util.g_pn_miss_char)
14914 THEN
14915 p_breakpoint_details_tbl (ubd).attribute9 := l_pn_var_bkdt_defaults.attribute9;
14916 END IF;
14917
14918 IF ( p_breakpoint_details_tbl (ubd).attribute10 IS NULL
14919 OR p_breakpoint_details_tbl (ubd).attribute10 = pn_varen_util.g_pn_miss_char)
14920 THEN
14921 p_breakpoint_details_tbl (ubd).attribute10 := l_pn_var_bkdt_defaults.attribute10;
14922 END IF;
14923
14924 IF ( p_breakpoint_details_tbl (ubd).attribute11 IS NULL
14925 OR p_breakpoint_details_tbl (ubd).attribute11 = pn_varen_util.g_pn_miss_char)
14926 THEN
14927 p_breakpoint_details_tbl (ubd).attribute11 := l_pn_var_bkdt_defaults.attribute11;
14928 END IF;
14929
14930 IF ( p_breakpoint_details_tbl (ubd).attribute12 IS NULL
14931 OR p_breakpoint_details_tbl (ubd).attribute12 = pn_varen_util.g_pn_miss_char)
14932 THEN
14933 p_breakpoint_details_tbl (ubd).attribute12 := l_pn_var_bkdt_defaults.attribute12;
14934 END IF;
14935
14936 IF ( p_breakpoint_details_tbl (ubd).attribute13 IS NULL
14937 OR p_breakpoint_details_tbl (ubd).attribute13 = pn_varen_util.g_pn_miss_char)
14938 THEN
14939 p_breakpoint_details_tbl (ubd).attribute13 := l_pn_var_bkdt_defaults.attribute13;
14940 END IF;
14941
14942 IF ( p_breakpoint_details_tbl (ubd).attribute14 IS NULL
14943 OR p_breakpoint_details_tbl (ubd).attribute14 = pn_varen_util.g_pn_miss_char)
14944 THEN
14945 p_breakpoint_details_tbl (ubd).attribute14 := l_pn_var_bkdt_defaults.attribute14;
14946 END IF;
14947
14948 IF ( p_breakpoint_details_tbl (ubd).attribute15 IS NULL
14949 OR p_breakpoint_details_tbl (ubd).attribute15 = pn_varen_util.g_pn_miss_char)
14950 THEN
14951 p_breakpoint_details_tbl (ubd).attribute5 := l_pn_var_bkdt_defaults.attribute15;
14952 END IF;
14953
14954 -------------------------------------------------------------------------------------------
14955 -- Validating Descriptive Flex fields
14956 -------------------------------------------------------------------------------------------
14957 -- Below code has been commented by Vivek on 11-DEC-2010
14958 /*
14959 IF (p_breakpoint_details_tbl (ubd).attribute_category IS NOT NULL)
14960 THEN
14961 pn_varen_util.validate_flex_fields
14962 (p_desc_flex_name => g_bkdt_desc_name
14963 , p_attribute_category => p_breakpoint_details_tbl (ubd).attribute_category
14964 , p_attribute1 => p_breakpoint_details_tbl (ubd).attribute1
14965 , p_attribute2 => p_breakpoint_details_tbl (ubd).attribute2
14966 , p_attribute3 => p_breakpoint_details_tbl (ubd).attribute3
14967 , p_attribute4 => p_breakpoint_details_tbl (ubd).attribute4
14968 , p_attribute5 => p_breakpoint_details_tbl (ubd).attribute5
14969 , p_attribute6 => p_breakpoint_details_tbl (ubd).attribute6
14970 , p_attribute7 => p_breakpoint_details_tbl (ubd).attribute7
14971 , p_attribute8 => p_breakpoint_details_tbl (ubd).attribute8
14972 , p_attribute9 => p_breakpoint_details_tbl (ubd).attribute9
14973 , p_attribute10 => p_breakpoint_details_tbl (ubd).attribute10
14974 , p_attribute11 => p_breakpoint_details_tbl (ubd).attribute11
14975 , p_attribute12 => p_breakpoint_details_tbl (ubd).attribute12
14976 , p_attribute13 => p_breakpoint_details_tbl (ubd).attribute13
14977 , p_attribute14 => p_breakpoint_details_tbl (ubd).attribute14
14978 , p_attribute15 => p_breakpoint_details_tbl (ubd).attribute15
14979 , x_return_msg => l_return_msg
14980 , x_return_status => l_return_status);
14981
14982 IF l_return_msg = 'VALID'
14983 THEN
14984 x_return_status := fnd_api.g_ret_sts_success;
14985 ELSE
14986 x_return_status := fnd_api.g_ret_sts_error;
14987 END IF;
14988 END IF;
14989 */
14990
14991
14992 -- Below code has been added by Vivek on 11-DEC-2010
14993
14994 IF (get_attribute_status('PN_VAR_BKPTS_DETAIL') > 0) THEN -- DFF Name to be checked for correctness
14995 IF NOT ((p_breakpoint_details_tbl (ubd).attribute_category = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute_category IS NULL)
14996 AND (p_breakpoint_details_tbl (ubd).attribute1 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute1 IS NULL)
14997 AND (p_breakpoint_details_tbl (ubd).attribute2 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute2 IS NULL)
14998 AND (p_breakpoint_details_tbl (ubd).attribute3 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute3 IS NULL)
14999 AND (p_breakpoint_details_tbl (ubd).attribute4 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute4 IS NULL)
15000 AND (p_breakpoint_details_tbl (ubd).attribute5 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute5 IS NULL)
15001 AND (p_breakpoint_details_tbl (ubd).attribute6 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute6 IS NULL)
15002 AND (p_breakpoint_details_tbl (ubd).attribute7 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute7 IS NULL)
15003 AND (p_breakpoint_details_tbl (ubd).attribute8 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute8 IS NULL)
15004 AND (p_breakpoint_details_tbl (ubd).attribute9 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute9 IS NULL)
15005 AND (p_breakpoint_details_tbl (ubd).attribute10 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute10 IS NULL)
15006 AND (p_breakpoint_details_tbl (ubd).attribute11 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute11 IS NULL)
15007 AND (p_breakpoint_details_tbl (ubd).attribute12 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute12 IS NULL)
15008 AND (p_breakpoint_details_tbl (ubd).attribute13 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute13 IS NULL)
15009 AND (p_breakpoint_details_tbl (ubd).attribute14 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute14 IS NULL)
15010 AND (p_breakpoint_details_tbl (ubd).attribute15 = pn_varen_util.g_pn_miss_char OR p_breakpoint_details_tbl (ubd).attribute15 IS NULL)
15011 ) THEN
15012 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_BKPTS_DETAIL'
15013 , p_attribute_category => p_breakpoint_details_tbl (ubd).attribute_category
15014 , p_attribute1 => p_breakpoint_details_tbl (ubd).attribute1
15015 , p_attribute2 => p_breakpoint_details_tbl (ubd).attribute2
15016 , p_attribute3 => p_breakpoint_details_tbl (ubd).attribute3
15017 , p_attribute4 => p_breakpoint_details_tbl (ubd).attribute4
15018 , p_attribute5 => p_breakpoint_details_tbl (ubd).attribute5
15019 , p_attribute6 => p_breakpoint_details_tbl (ubd).attribute6
15020 , p_attribute7 => p_breakpoint_details_tbl (ubd).attribute7
15021 , p_attribute8 => p_breakpoint_details_tbl (ubd).attribute8
15022 , p_attribute9 => p_breakpoint_details_tbl (ubd).attribute9
15023 , p_attribute10 => p_breakpoint_details_tbl (ubd).attribute10
15024 , p_attribute11 => p_breakpoint_details_tbl (ubd).attribute11
15025 , p_attribute12 => p_breakpoint_details_tbl (ubd).attribute12
15026 , p_attribute13 => p_breakpoint_details_tbl (ubd).attribute13
15027 , p_attribute14 => p_breakpoint_details_tbl (ubd).attribute14
15028 , p_attribute15 => p_breakpoint_details_tbl (ubd).attribute15
15029 , x_return_msg => l_return_msg
15030 , x_return_status => x_return_status
15031 );
15032
15033 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
15034 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
15035 fnd_message.set_token ('ERR_MSG', 'UPDATE_VAR_RENT : PN_VAR_BKPTS_DETAIL Descriptive Fields Error '||l_return_msg);
15036 fnd_msg_pub.ADD;
15037 RAISE fnd_api.g_exc_error;
15038 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
15039 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
15040 fnd_message.set_token ('ERR_MSG', 'UPDATE_VAR_RENT: PN_VAR_BKPTS_DETAIL Descriptive Fields Error '||l_return_msg);
15041 fnd_msg_pub.ADD;
15042 RAISE fnd_api.g_exc_unexpected_error;
15043 END IF;
15044 END IF;
15045 END IF; -- End of attributes validations in PN_VAR_BKPTS_HEAD
15046
15047 ------------------------End of 11-Dec-2010 DFF changes----------------------------
15048
15049
15050 pn_varen_util.pvt_debug
15051 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of Breakpoint Details validations is '
15052 || x_return_status
15053 , 3);
15054
15055 -- Added by vivek on 10-Dec-2010
15056 IF p_breakpoint_details_tbl (ubd).bkdt_start_date <l_pn_var_rents_rec.commencement_date
15057 OR p_breakpoint_details_tbl (ubd).bkdt_end_date >l_pn_var_rents_rec.termination_date
15058 THEN
15059
15060 --fnd_message.set_name('PN','PN_VAR_BKPT_OVERLAP');
15061 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
15062 fnd_message.set_token('ERR_MSG', 'Please review each breakpoint header dates and remove any overlap with the variable rent date.');
15063 fnd_msg_pub.ADD;
15064 RAISE fnd_api.g_exc_error;
15065 END IF;
15066 l_date_range_bkdt_count :=0;
15067 BEGIN
15068 SELECT COUNT(1)
15069 INTO l_date_range_bkdt_count
15070 FROM pn_var_bkdt_defaults_all
15071 WHERE var_rent_id = p_breakpoint_details_tbl (ubd).var_rent_id
15072 AND bkdt_default_id<>p_breakpoint_details_tbl (ubd).bkdt_default_id
15073 AND bkhd_default_id =p_breakpoint_details_tbl (ubd).bkhd_default_id
15074 AND (bkdt_start_date <=p_breakpoint_details_tbl (ubd).bkdt_end_date AND bkdt_end_date >= p_breakpoint_details_tbl (ubd).bkdt_start_date);
15075 EXCEPTION
15076 WHEN OTHERS THEN
15077 pn_varen_util.pvt_debug('PN_VAREN_PVT:Remove any overlap in the breakpoint details',3);
15078 END;
15079
15080 IF(NVL(l_date_range_bkdt_count,0) > 0) THEN
15081 --fnd_message.set_name('PN','PN_VAR_BKPT_OVERLAP');
15082 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
15083 fnd_message.set_token('ERR_MSG', 'Please review each breakpoint component and remove any overlap in the breakpoint Details dates.');
15084 fnd_msg_pub.ADD;
15085 RAISE fnd_api.g_exc_error;
15086 END IF;
15087 IF x_return_status = 'S'
15088 THEN
15089 -- call Breakpoint Details update procedure
15090 -- IF block and insert_breakpoint_details code has been added by Vivek on 09-DEC-2010
15091 IF p_breakpoint_details_tbl (ubd).bkdt_default_id IS NOT NULL
15092 AND p_breakpoint_details_tbl (ubd).bkdt_default_id <> pn_varen_util.g_pn_miss_num
15093 THEN
15094 pn_varen_util.pvt_debug
15095 ('PN_VAREN_PVT: Update_Var_Rent: Before calling update_breakpoint_details prcoedure '
15096 , 3);
15097 update_breakpoint_details
15098 (p_breakpoint_details_rec_type => p_breakpoint_details_tbl (ubd)
15099 , x_return_status => x_return_status);
15100 pn_varen_util.pvt_debug
15101 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of update_breakpoint_details prcoedure is '
15102 || x_return_status
15103 , 3);
15104 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
15105 THEN
15106 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
15107 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent:UPDATE_BREAKPOINT_DETAILS procedure returned error');
15108 fnd_msg_pub.ADD;
15109 RAISE fnd_api.g_exc_error;
15110 END IF;
15111 ELSE
15112 insert_breakpoint_details
15113 (p_breakpoint_details_rec_type => p_breakpoint_details_tbl (ubd)
15114 , x_return_status => x_return_status);
15115 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
15116 THEN
15117 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
15118 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent:INSERT_BREAKPOINT_DETAILS procedure returned error');
15119 fnd_msg_pub.ADD;
15120 RAISE fnd_api.g_exc_error;
15121 END IF;
15122 END IF;
15123 END IF;
15124 --END LOOP; Commented by Vivek on 09-DEC-2010
15125 --END IF; --c_pn_var_bkdt_defaults%NOTFOUND
15126 END LOOP;
15127 END IF; -- p_breakpoint_details_tbl.COUNT>0
15128
15129 IF p_constraints_tbl.COUNT > 0
15130 AND l_undo_periods <> 'Y'
15131 THEN
15132 FOR uc IN p_constraints_tbl.FIRST .. p_constraints_tbl.LAST
15133 LOOP
15134 l_pn_var_constraints:=NULL;
15135 OPEN c_pn_var_constraints (p_constraints_tbl (uc).constr_default_id
15136 , p_constraints_tbl (uc).var_rent_id);
15137
15138 FETCH c_pn_var_constraints
15139 INTO l_pn_var_constraints;
15140
15141 CLOSE c_pn_var_constraints;
15142
15143 --IF (c_pn_var_constraints%NOTFOUND)
15144 --THEN
15145 -- x_return_status := fnd_api.g_ret_sts_error;
15146 -- pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_constraints not found'
15147 -- , 3
15148 -- );
15149 --ELSE
15150 -- pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_constraints found'
15151 -- , 3
15152 -- );
15153 -- pn_varen_util.pvt_debug
15154 -- ( 'PN_VAREN_PVT: Update_Var_Rent: After the cursor c_pn_var_constraints is open, value of p_upd_var_rent_rec.var_rent_id is '
15155 -- || p_upd_var_rent_rec.var_rent_id
15156 -- , 3
15157 -- );
15158 --------------------------------------------------------------------------------
15159 -- Initialize Update Constraints
15160 --------------------------------------------------------------------------------
15161 l_var_commencement_date := NULL;
15162 l_var_termination_date := NULL;
15163
15164 --FOR uc IN p_constraints_tbl.FIRST .. p_constraints_tbl.LAST -- Commented by Vivek on 09-DEC-2010
15165 --LOOP
15166 IF ( p_constraints_tbl (uc).constr_default_num IS NULL
15167 OR p_constraints_tbl (uc).constr_default_num = pn_varen_util.g_pn_miss_num)
15168 THEN
15169 p_constraints_tbl (uc).constr_default_num := l_pn_var_constraints.constr_default_num;
15170 END IF;
15171
15172 IF ( p_constraints_tbl (uc).var_rent_id IS NULL
15173 OR p_constraints_tbl (uc).var_rent_id = pn_varen_util.g_pn_miss_num)
15174 OR ( p_constraints_tbl (uc).var_rent_num IS NULL
15175 OR p_constraints_tbl (uc).var_rent_num = pn_varen_util.g_pn_miss_char)
15176 THEN
15177 p_constraints_tbl (uc).var_rent_id := l_pn_var_constraints.var_rent_id;
15178 pn_varen_util.pvt_debug
15179 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_constraints_tbl(uc).var_rent_id :'
15180 || p_constraints_tbl (uc).var_rent_id
15181 , 3);
15182 pn_varen_util.pvt_debug
15183 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_var_commencement_date :'
15184 || l_var_commencement_date
15185 , 3);
15186 END IF;
15187
15188 pn_varen_util.pvt_debug
15189 ( 'PN_VAREN_PVT: Update_Var_Rent: Before p_constraints_tbl(uc).var_rent_id :'
15190 || p_constraints_tbl (uc).var_rent_id
15191 , 3);
15192 pn_varen_util.pvt_debug
15193 ( 'PN_VAREN_PVT: Update_Var_Rent: Before l_var_commencement_date :'
15194 || l_var_commencement_date
15195 , 3);
15196 pn_varen_util.pvt_debug
15197 ( 'PN_VAREN_PVT: Update_Var_Rent: Before l_var_termination_date :'
15198 || l_var_termination_date
15199 , 3);
15200 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Before x_return_status :'
15201 || x_return_status
15202 , 3);
15203
15204 ------------------------------
15205 --- Validating Variable Rent Id
15206 -----------------------------------
15207 BEGIN
15208 pn_varen_util.pvt_debug
15209 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint Variable Rent Id '
15210 || p_constraints_tbl (uc).var_rent_id
15211 , 3);
15212 pn_varen_util.var_rent_details (p_var_rent_id => p_constraints_tbl (uc).var_rent_id
15213 , p_org_id => g_org_id
15214 , x_commencement_date => l_var_commencement_date
15215 , x_termination_date => l_var_termination_date
15216 , x_return_status => x_return_status);
15217 pn_varen_util.pvt_debug
15218 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of var_rent_details procedure is '
15219 || x_return_status
15220 , 3);
15221
15222 IF x_return_status = fnd_api.g_ret_sts_success
15223 THEN
15224 pn_varen_util.pvt_debug
15225 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint Variable Rent Id exists : '
15226 || p_constraints_tbl (uc).var_rent_id
15227 , 3);
15228 pn_varen_util.pvt_debug
15229 ( 'PN_VAREN_PVT: Update_Var_Rent: Variable Rent commencement date : '
15230 || l_var_commencement_date
15231 , 3);
15232 pn_varen_util.pvt_debug
15233 ( 'PN_VAREN_PVT: Update_Var_Rent: Variable Rent termination date : '
15234 || l_var_termination_date
15235 , 3);
15236 ELSE
15237 pn_varen_util.pvt_debug
15238 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint Variable Rent Id doesnot exists : '
15239 || p_constraints_tbl (uc).var_rent_id
15240 , 3);
15241 --
15242 --l_const_val :=
15243 -- 'N';
15244 END IF;
15245 END;
15246
15247 pn_varen_util.pvt_debug
15248 ( 'PN_VAREN_PVT: Update_Var_Rent: After p_constraints_tbl(uc).var_rent_id :'
15249 || p_constraints_tbl (uc).var_rent_id
15250 , 3);
15251 pn_varen_util.pvt_debug
15252 ( 'PN_VAREN_PVT: Update_Var_Rent: After l_var_commencement_date :'
15253 || l_var_commencement_date
15254 , 3);
15255 pn_varen_util.pvt_debug
15256 ( 'PN_VAREN_PVT: Update_Var_Rent: After l_var_termination_date :'
15257 || l_var_termination_date
15258 , 3);
15259 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: After x_return_status :'
15260 || x_return_status
15261 , 3);
15262
15263 BEGIN
15264 pn_varen_util.pvt_debug
15265 ('PN_VAREN_PVT: Update_Var_Rent: Verifying whether constraints are generated or not.'
15266 , 3);
15267
15268 SELECT COUNT (1)
15269 INTO ln_const_count
15270 FROM pn_var_constraints_all
15271 WHERE constr_default_id IN (SELECT constr_default_id
15272 FROM pn_var_constr_defaults_all
15273 WHERE var_rent_id = p_constraints_tbl (uc).var_rent_id);
15274
15275 --l_pn_var_constraints.var_rent_id;
15276 pn_varen_util.pvt_debug
15277 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of ln_const_count is '
15278 || ln_const_count
15279 , 3);
15280
15281 IF ln_const_count > 0
15282 THEN
15283 pn_varen_util.pvt_debug
15284 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraints are already generated for the Variable Rent Id : '
15285 || p_constraints_tbl (uc).var_rent_id
15286 , 3);
15287 pn_varen_util.pvt_debug
15288 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraints are already generated for the Variable Rent Id : '
15289 || p_constraints_tbl (uc).var_rent_id
15290 , 3);
15291 pn_varen_util.pvt_debug
15292 ( 'PN_VAREN_PVT: Update_Var_Rent: Before calling undo_constraints procedure, value of p_undo_constraints is '
15293 || p_undo_constraints
15294 , 3);
15295
15296 IF p_undo_constraints = 'Y'
15297 THEN
15298 pn_varen_util.pvt_debug
15299 ( 'PN_VAREN_PVT: Update_Var_Rent: Before undo_constraints procedure, value of constraints var_rent_id is '
15300 || p_constraints_tbl (uc).var_rent_id
15301 , 3);
15302 undo_constraints (p_var_rent_id => p_constraints_tbl (uc).var_rent_id
15303 , x_return_status => x_return_status);
15304 pn_varen_util.pvt_debug
15305 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of undo_constraints procedure is '
15306 || x_return_status
15307 , 3);
15308 END IF; -- p_undo_constraints
15309 END IF; -- ln_const_count
15310 EXCEPTION
15311 WHEN OTHERS
15312 THEN
15313 pn_varen_util.pvt_debug
15314 ('PN_VAREN_PVT: Update_Var_Rent: Error occured while verifying whether constraints are generated or not.'
15315 , 3);
15316 END;
15317
15318 IF ( p_constraints_tbl (uc).agreement_template_id IS NULL
15319 OR p_constraints_tbl (uc).agreement_template_id = pn_varen_util.g_pn_miss_num)
15320 THEN
15321 p_constraints_tbl (uc).agreement_template_id :=
15322 l_pn_var_constraints.agreement_template_id;
15323 END IF;
15324
15325 IF ( p_constraints_tbl (uc).constr_template_id IS NULL
15326 OR p_constraints_tbl (uc).constr_template_id = pn_varen_util.g_pn_miss_num)
15327 THEN
15328 p_constraints_tbl (uc).constr_template_id := l_pn_var_constraints.constr_template_id;
15329 END IF;
15330
15331 IF ( p_constraints_tbl (uc).constr_start_date IS NULL
15332 OR p_constraints_tbl (uc).constr_start_date = pn_varen_util.g_pn_miss_date)
15333 THEN
15334 p_constraints_tbl (uc).constr_start_date := l_pn_var_constraints.constr_start_date;
15335 END IF;
15336
15337 IF ( p_constraints_tbl (uc).constr_end_date IS NULL
15338 OR p_constraints_tbl (uc).constr_end_date = pn_varen_util.g_pn_miss_date)
15339 THEN
15340 p_constraints_tbl (uc).constr_end_date := l_pn_var_constraints.constr_end_date;
15341 END IF;
15342
15343 ----------------------------------------------------------------------
15344 --- Validation of Constratint start date
15345 ----------------------------------------------------------------------
15346 IF ( p_constraints_tbl (uc).constr_start_date IS NOT NULL
15347 AND p_constraints_tbl (uc).constr_start_date <> pn_varen_util.g_pn_miss_date)
15348 THEN
15349 pn_varen_util.pvt_debug
15350 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint Start Date is not null : '
15351 || p_constraints_tbl (uc).constr_start_date
15352 , 3);
15353 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint End Date : '
15354 || p_constraints_tbl (uc).constr_end_date
15355 , 3);
15356 pn_varen_util.pvt_debug
15357 ( 'PN_VAREN_PVT: Update_Var_Rent: Variable Rent Commencement Date : '
15358 || l_var_commencement_date
15359 , 3);
15360 pn_varen_util.pvt_debug
15361 ( 'PN_VAREN_PVT: Update_Var_Rent: Variable Rent Termination Date: '
15362 || l_var_termination_date
15363 , 3);
15364
15365 IF (p_constraints_tbl (uc).constr_start_date = l_var_commencement_date)
15366 THEN
15367 x_return_status := fnd_api.g_ret_sts_success;
15368 pn_varen_util.pvt_debug
15369 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint Start Date Validation Success :'
15370 || p_constraints_tbl (uc).constr_start_date
15371 , 3);
15372 pn_varen_util.pvt_debug
15373 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint Start Date Validation Success :'
15374 || p_constraints_tbl (uc).constr_start_date
15375 , 3);
15376 ELSIF ( p_constraints_tbl (uc).constr_start_date < l_var_commencement_date
15377 OR p_constraints_tbl (uc).constr_start_date > l_var_termination_date)
15378 THEN
15379 --
15380 fnd_message.set_name ('PN', 'PN_VAR_CONSTR_STRDT_VAL_MSG');
15381 pn_varen_util.pvt_debug
15382 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint Start Date Validation Error :'
15383 || p_constraints_tbl (uc).constr_start_date
15384 || 'Please enter a constraint start date that is the same as or after the commencement date of the variable rent agreement.'
15385 , 3);
15386 pn_varen_util.pvt_debug
15387 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint Start Date Validation Error : '
15388 || p_constraints_tbl (uc).constr_start_date
15389 || 'Please enter a constraint start date that is the same as or after the commencement date of the variable rent agreement.'
15390 , 3);
15391 fnd_msg_pub.ADD;
15392 --x_return_status := fnd_api.g_ret_sts_error;
15393 RAISE fnd_api.g_exc_error;
15394 --
15395
15396 --l_const_val :=
15397 -- 'N';
15398 ELSIF (p_constraints_tbl (uc).constr_start_date > l_var_commencement_date)
15399 THEN
15400 --
15401 fnd_message.set_name ('PN', 'PN_VAR_CONSTR_STRDT_VAL_MSG');
15402 --x_return_status :=fnd_api.g_ret_sts_error;
15403 pn_varen_util.pvt_debug
15404 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint Start Date Validation Error :'
15405 || p_constraints_tbl (uc).constr_start_date
15406 || 'Please ensure that constraint dates you enter coincide with invoice period dates'
15407 , 3);
15408 pn_varen_util.pvt_debug
15409 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint Start Date Validation Error : '
15410 || p_constraints_tbl (uc).constr_start_date
15411 || 'Please ensure that constraint dates you enter coincide with invoice period dates'
15412 , 3);
15413 fnd_msg_pub.ADD;
15414 RAISE fnd_api.g_exc_error;
15415 --
15416
15417 --l_const_val :=
15418 -- 'N';
15419 END IF;
15420 ELSE
15421 --
15422 p_constraints_tbl (uc).constr_start_date := l_var_commencement_date;
15423 --
15424 x_return_status := fnd_api.g_ret_sts_success;
15425 pn_varen_util.pvt_debug
15426 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint Start Date is null then value is Defaulted Variable Rent Commencement Date : '
15427 || l_var_commencement_date
15428 || ' Success'
15429 , 3);
15430 pn_varen_util.pvt_debug
15431 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint Start Date is null then value is Defaulted Variable Rent Commencement Date : '
15432 || l_var_commencement_date
15433 || ' Success'
15434 , 3);
15435 END IF;
15436
15437 pn_varen_util.pvt_debug
15438 ( 'PN_VAREN_PVT: Update_Var_Rent: , p_constraints_tbl (uc).constr_start_date :'
15439 || p_constraints_tbl (uc).constr_start_date
15440 , 3);
15441 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: , l_var_commencement_date :'
15442 || l_var_commencement_date
15443 , 3);
15444
15445 ----------------------------------------------------------------------
15446 --- Validation of Constratint end date
15447 ----------------------------------------------------------------------
15448 IF ( p_constraints_tbl (uc).constr_end_date IS NOT NULL
15449 AND p_constraints_tbl (uc).constr_end_date <> pn_varen_util.g_pn_miss_date)
15450 THEN
15451 pn_varen_util.pvt_debug
15452 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint end Date is not null : '
15453 || p_constraints_tbl (uc).constr_end_date
15454 , 3);
15455 pn_varen_util.pvt_debug
15456 ( 'PN_VAREN_PVT: Update_Var_Rent: Variable Rent Termination Date: '
15457 || l_var_termination_date
15458 , 3);
15459
15460 IF (p_constraints_tbl (uc).constr_end_date = l_var_termination_date)
15461 THEN
15462 x_return_status := fnd_api.g_ret_sts_success;
15463 pn_varen_util.pvt_debug
15464 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint end Date Validation Success :'
15465 || p_constraints_tbl (uc).constr_end_date
15466 , 3);
15467 pn_varen_util.pvt_debug
15468 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint end Date Validation Success :'
15469 || p_constraints_tbl (uc).constr_end_date
15470 , 3);
15471 ELSIF ( p_constraints_tbl (uc).constr_end_date > l_var_termination_date
15472 OR p_constraints_tbl (uc).constr_end_date < l_var_commencement_date)
15473 THEN
15474 --
15475 fnd_message.set_name ('PN', 'PN_VAR_CONSTR_ENDDT_VAL_MSG');
15476 --x_return_status := fnd_api.g_ret_sts_error;
15477 pn_varen_util.pvt_debug
15478 ( 'PN_VAREN_PVT: Update_Var_Rent: Constratint end Date Validation Error :'
15479 || p_constraints_tbl (uc).constr_end_date
15480 || 'Please enter a constraint end date that is the same as or before the termination date of the variable rent agreement.'
15481 , 3);
15482 pn_varen_util.pvt_debug
15483 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint end Date Validation Error : '
15484 || p_constraints_tbl (uc).constr_end_date
15485 || 'Please enter a constraint end date that is the same as or before the termination date of the variable rent agreement.'
15486 , 3);
15487 fnd_msg_pub.ADD;
15488 RAISE fnd_api.g_exc_error;
15489 --
15490
15491 --l_const_val :=
15492 -- 'N';
15493 ELSIF (p_constraints_tbl (uc).constr_end_date < l_var_termination_date)
15494 THEN
15495 --
15496 fnd_message.set_name ('PN', 'PN_VAR_CONSTR_ENDDT_VAL_MSG');
15497 --x_return_status := fnd_api.g_ret_sts_error;
15498 pn_varen_util.pvt_debug
15499 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint end Date Validation Error :'
15500 || p_constraints_tbl (uc).constr_end_date
15501 || 'Please enter an end date that is greater than or equal to the start date.'
15502 , 3);
15503 pn_varen_util.pvt_debug
15504 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint end Date Validation Error : '
15505 || p_constraints_tbl (uc).constr_end_date
15506 || 'Please enter an end date that is greater than or equal to the start date.'
15507 , 3);
15508 fnd_msg_pub.ADD;
15509 RAISE fnd_api.g_exc_error;
15510 --
15511
15512 --l_const_val :=
15513 -- 'N';
15514 END IF;
15515 ELSE
15516 --
15517 p_constraints_tbl (uc).constr_end_date := l_var_termination_date;
15518 --
15519 x_return_status := fnd_api.g_ret_sts_success;
15520 pn_varen_util.pvt_debug
15521 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint end Date is null then value is defaulted Variable Rent Termination Date : '
15522 || l_var_termination_date
15523 || ' Success'
15524 , 3);
15525 pn_varen_util.pvt_debug
15526 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint end Date is null then value is defaulted Termination Date : '
15527 || l_var_termination_date
15528 || ' Success'
15529 , 3);
15530 END IF;
15531
15532 pn_varen_util.pvt_debug
15533 ( 'PN_VAREN_PVT: Update_Var_Rent: p_constraints_tbl (uc).constr_end_date :'
15534 || p_constraints_tbl (uc).constr_end_date
15535 , 3);
15536
15537 IF (p_constraints_tbl (uc).constr_start_date > p_constraints_tbl (uc).constr_end_date)
15538 THEN
15539 pn_varen_util.pvt_debug
15540 ('PN_VAREN_PVT: Update_Var_Rent: Please ensure that constraint dates you enter coincide with invoice period dates'
15541 , 3);
15542 pn_varen_util.pvt_debug
15543 ('PN_VAREN_PVT: Update_Var_Rent: Please ensure that constraint dates you enter coincide with invoice period dates'
15544 , 3);
15545 -- l_const_val := 'N';
15546 END IF;
15547
15548 IF ( p_constraints_tbl (uc).constr_cat_code IS NULL
15549 OR p_constraints_tbl (uc).constr_cat_code = pn_varen_util.g_pn_miss_char)
15550 THEN
15551 p_constraints_tbl (uc).constr_cat_code := l_pn_var_constraints.constr_cat_code;
15552 END IF;
15553
15554 pn_varen_util.pvt_debug
15555 ( 'PN_VAREN_PVT: Update_Var_Rent: p_constraints_tbl (uc).constr_cat_code :'
15556 || p_constraints_tbl (uc).constr_cat_code
15557 , 3);
15558 pn_varen_util.pvt_debug
15559 ( 'PN_VAREN_PVT: Update_Var_Rent: Before p_constraints_tbl (uc).constr_type_meaning :'
15560 || p_constraints_tbl (uc).constr_type_meaning
15561 , 3);
15562 pn_varen_util.pvt_debug
15563 ( 'PN_VAREN_PVT: Update_Var_Rent: Before p_constraints_tbl (uc).constr_type_code :'
15564 || p_constraints_tbl (uc).constr_type_code
15565 , 3);
15566 pn_varen_util.pvt_debug
15567 ( 'PN_VAREN_PVT: Update_Var_Rent: Before l_pn_var_constraints.type_code :'
15568 || l_pn_var_constraints.type_code
15569 , 3);
15570
15571 IF ( p_constraints_tbl (uc).constr_type_code IS NOT NULL
15572 AND p_constraints_tbl (uc).constr_type_code <> pn_varen_util.g_pn_miss_char)
15573 OR ( p_constraints_tbl (uc).constr_type_meaning IS NOT NULL
15574 AND p_constraints_tbl (uc).constr_type_meaning <> pn_varen_util.g_pn_miss_char)
15575 THEN
15576 --------------------------------------------------------------------------------
15577 --Constraint Type validation
15578 --------------------------------------------------------------------------------
15579 pn_varen_util.pvt_debug
15580 ('PN_VAREN_PVT: Update_Var_Rent: Validation Lookup - Inside the Loop'
15581 , 3);
15582 pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Constraint Type Validation'
15583 , 3);
15584 pn_varen_util.validate_lookups
15585 (p_lookup_type => g_type_code
15586 , x_lookup_meaning => p_constraints_tbl (uc).constr_type_meaning
15587 , x_lookup_code => p_constraints_tbl (uc).constr_type_code
15588 , x_return_status => x_return_status);
15589 pn_varen_util.pvt_debug
15590 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint Type Output Code :'
15591 || p_constraints_tbl (uc).constr_type_code
15592 , 3);
15593
15594 IF (x_return_status = fnd_api.g_ret_sts_error)
15595 THEN
15596 --
15597 fnd_message.set_name ('PN', 'PN_VAR_CONSTR_TY');
15598 --x_return_status := fnd_api.g_ret_sts_error;
15599 pn_varen_util.pvt_debug
15600 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint Type Meaning Expected Error :'
15601 || p_constraints_tbl (uc).constr_type_meaning
15602 , 3);
15603 pn_varen_util.pvt_debug
15604 ('PN_VAREN_PVT: Update_Var_Rent: Constraint Type Lookup Validation Error'
15605 , 3);
15606 fnd_msg_pub.ADD;
15607 RAISE fnd_api.g_exc_error;
15608 --
15609 --l_const_val :=
15610 -- 'N';
15611 --
15612 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
15613 THEN
15614 --
15615 fnd_message.set_name ('PN', 'PN_VAR_CONSTR_TY');
15616 --x_return_status := fnd_api.g_ret_sts_unexp_error;
15617 pn_varen_util.pvt_debug
15618 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint Type Meaning Un-Expected Error :'
15619 || p_constraints_tbl (uc).constr_type_meaning
15620 , 3);
15621 pn_varen_util.pvt_debug
15622 ('PN_VAREN_PVT: Update_Var_Rent: Constraint Type Lookup Validation Unexpected Error'
15623 , 3);
15624 fnd_msg_pub.ADD;
15625 RAISE fnd_api.g_exc_unexpected_error;
15626 --
15627
15628 --
15629 -- l_const_val :=
15630 -- 'N';
15631 --
15632 ELSE
15633 x_return_status := fnd_api.g_ret_sts_success;
15634 pn_varen_util.pvt_debug
15635 ( 'PN_VAREN_PVT: Update_Var_Rent: Constraint Type Code Success :'
15636 || p_constraints_tbl (uc).constr_type_code
15637 , 3);
15638 pn_varen_util.pvt_debug
15639 ('PN_VAREN_PVT: Update_Var_Rent: Constraint Type Lookup Validation Success'
15640 , 3);
15641 END IF;
15642 ELSE
15643 p_constraints_tbl (uc).constr_type_code := l_pn_var_constraints.type_code;
15644 END IF;
15645
15646 pn_varen_util.pvt_debug
15647 ( 'PN_VAREN_PVT: Update_Var_Rent: After p_constraints_tbl (uc).constr_type_meaning :'
15648 || p_constraints_tbl (uc).constr_type_meaning
15649 , 3);
15650 pn_varen_util.pvt_debug
15651 ( 'PN_VAREN_PVT: Update_Var_Rent: After p_constraints_tbl (uc).constr_type_code :'
15652 || p_constraints_tbl (uc).constr_type_code
15653 , 3);
15654 pn_varen_util.pvt_debug
15655 ( 'PN_VAREN_PVT: Update_Var_Rent: After l_pn_var_constraints.type_code :'
15656 || l_pn_var_constraints.type_code
15657 , 3);
15658 pn_varen_util.pvt_debug
15659 ( 'PN_VAREN_PVT: Update_Var_Rent: Before p_constraints_tbl (uc).constr_amount :'
15660 || p_constraints_tbl (uc).constr_amount
15661 , 3);
15662 pn_varen_util.pvt_debug
15663 ( 'PN_VAREN_PVT: Update_Var_Rent: Before l_pn_var_constraints.amount :'
15664 || l_pn_var_constraints.amount
15665 , 3);
15666
15667 IF ( p_constraints_tbl (uc).constr_amount IS NULL
15668 OR p_constraints_tbl (uc).constr_amount = pn_varen_util.g_pn_miss_num)
15669 THEN
15670 p_constraints_tbl (uc).constr_amount := l_pn_var_constraints.amount;
15671 END IF;
15672
15673 pn_varen_util.pvt_debug
15674 ( 'PN_VAREN_PVT: Update_Var_Rent: After p_constraints_tbl (uc).constr_amount :'
15675 || p_constraints_tbl (uc).constr_amount
15676 , 3);
15677 pn_varen_util.pvt_debug
15678 ( 'PN_VAREN_PVT: Update_Var_Rent: After l_pn_var_constraints.amount :'
15679 || l_pn_var_constraints.amount
15680 , 3);
15681
15682 IF ( p_constraints_tbl (uc).last_update_date IS NULL
15683 OR p_constraints_tbl (uc).last_update_date = pn_varen_util.g_pn_miss_date)
15684 THEN
15685 p_constraints_tbl (uc).last_update_date := g_sysdate;
15686 END IF;
15687
15688 IF ( p_constraints_tbl (uc).last_updated_by IS NULL
15689 OR p_constraints_tbl (uc).last_updated_by = pn_varen_util.g_pn_miss_num)
15690 THEN
15691 p_constraints_tbl (uc).last_updated_by := g_user_id;
15692 END IF;
15693
15694 IF ( p_constraints_tbl (uc).creation_date IS NULL
15695 OR p_constraints_tbl (uc).creation_date = pn_varen_util.g_pn_miss_date)
15696 THEN
15697 p_constraints_tbl (uc).creation_date := l_pn_var_constraints.creation_date;
15698 END IF;
15699
15700 IF ( p_constraints_tbl (uc).created_by IS NULL
15701 OR p_constraints_tbl (uc).created_by = pn_varen_util.g_pn_miss_num)
15702 THEN
15703 p_constraints_tbl (uc).created_by := l_pn_var_constraints.created_by;
15704 END IF;
15705
15706 IF ( p_constraints_tbl (uc).last_update_login IS NULL
15707 OR p_constraints_tbl (uc).last_update_login = pn_varen_util.g_pn_miss_num)
15708 THEN
15709 p_constraints_tbl (uc).last_update_login := g_user_id;
15710 END IF;
15711
15712 IF ( p_constraints_tbl (uc).attribute_category IS NULL
15713 OR p_constraints_tbl (uc).attribute_category = pn_varen_util.g_pn_miss_char)
15714 THEN
15715 p_constraints_tbl (uc).attribute_category := l_pn_var_constraints.attribute_category;
15716 END IF;
15717
15718 IF ( p_constraints_tbl (uc).attribute1 IS NULL
15719 OR p_constraints_tbl (uc).attribute1 = pn_varen_util.g_pn_miss_char)
15720 THEN
15721 p_constraints_tbl (uc).attribute1 := l_pn_var_constraints.attribute1;
15722 END IF;
15723
15724 IF ( p_constraints_tbl (uc).attribute2 IS NULL
15725 OR p_constraints_tbl (uc).attribute2 = pn_varen_util.g_pn_miss_char)
15726 THEN
15727 p_constraints_tbl (uc).attribute2 := l_pn_var_constraints.attribute2;
15728 END IF;
15729
15730 IF ( p_constraints_tbl (uc).attribute3 IS NULL
15731 OR p_constraints_tbl (uc).attribute3 = pn_varen_util.g_pn_miss_char)
15732 THEN
15733 p_constraints_tbl (uc).attribute3 := l_pn_var_constraints.attribute3;
15734 END IF;
15735
15736 IF ( p_constraints_tbl (uc).attribute4 IS NULL
15737 OR p_constraints_tbl (uc).attribute4 = pn_varen_util.g_pn_miss_char)
15738 THEN
15739 p_constraints_tbl (uc).attribute4 := l_pn_var_constraints.attribute4;
15740 END IF;
15741
15742 IF ( p_constraints_tbl (uc).attribute5 IS NULL
15743 OR p_constraints_tbl (uc).attribute5 = pn_varen_util.g_pn_miss_char)
15744 THEN
15745 p_constraints_tbl (uc).attribute5 := l_pn_var_constraints.attribute5;
15746 END IF;
15747
15748 IF ( p_constraints_tbl (uc).attribute6 IS NULL
15749 OR p_constraints_tbl (uc).attribute6 = pn_varen_util.g_pn_miss_char)
15750 THEN
15751 p_constraints_tbl (uc).attribute6 := l_pn_var_constraints.attribute6;
15752 END IF;
15753
15754 IF ( p_constraints_tbl (uc).attribute7 IS NULL
15755 OR p_constraints_tbl (uc).attribute7 = pn_varen_util.g_pn_miss_char)
15756 THEN
15757 p_constraints_tbl (uc).attribute7 := l_pn_var_constraints.attribute7;
15758 END IF;
15759
15760 IF ( p_constraints_tbl (uc).attribute8 IS NULL
15761 OR p_constraints_tbl (uc).attribute8 = pn_varen_util.g_pn_miss_char)
15762 THEN
15763 p_constraints_tbl (uc).attribute8 := l_pn_var_constraints.attribute8;
15764 END IF;
15765
15766 IF ( p_constraints_tbl (uc).attribute9 IS NULL
15767 OR p_constraints_tbl (uc).attribute9 = pn_varen_util.g_pn_miss_char)
15768 THEN
15769 p_constraints_tbl (uc).attribute9 := l_pn_var_constraints.attribute9;
15770 END IF;
15771
15772 IF ( p_constraints_tbl (uc).attribute10 IS NULL
15773 OR p_constraints_tbl (uc).attribute10 = pn_varen_util.g_pn_miss_char)
15774 THEN
15775 p_constraints_tbl (uc).attribute10 := l_pn_var_constraints.attribute10;
15776 END IF;
15777
15778 IF ( p_constraints_tbl (uc).attribute11 IS NULL
15779 OR p_constraints_tbl (uc).attribute11 = pn_varen_util.g_pn_miss_char)
15780 THEN
15781 p_constraints_tbl (uc).attribute11 := l_pn_var_constraints.attribute11;
15782 END IF;
15783
15784 IF ( p_constraints_tbl (uc).attribute12 IS NULL
15785 OR p_constraints_tbl (uc).attribute12 = pn_varen_util.g_pn_miss_char)
15786 THEN
15787 p_constraints_tbl (uc).attribute12 := l_pn_var_constraints.attribute12;
15788 END IF;
15789
15790 IF ( p_constraints_tbl (uc).attribute13 IS NULL
15791 OR p_constraints_tbl (uc).attribute13 = pn_varen_util.g_pn_miss_char)
15792 THEN
15793 p_constraints_tbl (uc).attribute13 := l_pn_var_constraints.attribute13;
15794 END IF;
15795
15796 IF ( p_constraints_tbl (uc).attribute14 IS NULL
15797 OR p_constraints_tbl (uc).attribute14 = pn_varen_util.g_pn_miss_char)
15798 THEN
15799 p_constraints_tbl (uc).attribute14 := l_pn_var_constraints.attribute14;
15800 END IF;
15801
15802 IF ( p_constraints_tbl (uc).attribute15 IS NULL
15803 OR p_constraints_tbl (uc).attribute15 = pn_varen_util.g_pn_miss_char)
15804 THEN
15805 p_constraints_tbl (uc).attribute5 := l_pn_var_constraints.attribute15;
15806 END IF;
15807
15808 -------------------------------------------------------------------------------------------
15809 -- Validating Descriptive Flex fields
15810 -------------------------------------------------------------------------------------------
15811 -- Below code has been commented by Vivek on 11-DEC-2010
15812 /*
15813 IF (p_constraints_tbl (uc).attribute_category IS NOT NULL)
15814 THEN
15815 pn_varen_util.validate_flex_fields
15816 (p_desc_flex_name => g_const_desc_name
15817 , p_attribute_category => p_constraints_tbl (uc).attribute_category
15818 , p_attribute1 => p_constraints_tbl (uc).attribute1
15819 , p_attribute2 => p_constraints_tbl (uc).attribute2
15820 , p_attribute3 => p_constraints_tbl (uc).attribute3
15821 , p_attribute4 => p_constraints_tbl (uc).attribute4
15822 , p_attribute5 => p_constraints_tbl (uc).attribute5
15823 , p_attribute6 => p_constraints_tbl (uc).attribute6
15824 , p_attribute7 => p_constraints_tbl (uc).attribute7
15825 , p_attribute8 => p_constraints_tbl (uc).attribute8
15826 , p_attribute9 => p_constraints_tbl (uc).attribute9
15827 , p_attribute10 => p_constraints_tbl (uc).attribute10
15828 , p_attribute11 => p_constraints_tbl (uc).attribute11
15829 , p_attribute12 => p_constraints_tbl (uc).attribute12
15830 , p_attribute13 => p_constraints_tbl (uc).attribute13
15831 , p_attribute14 => p_constraints_tbl (uc).attribute14
15832 , p_attribute15 => p_constraints_tbl (uc).attribute15
15833 , x_return_msg => l_return_msg
15834 , x_return_status => l_return_status);
15835
15836 IF l_return_msg = 'VALID'
15837 THEN
15838 x_return_status := fnd_api.g_ret_sts_success;
15839 ELSE
15840 x_return_status := fnd_api.g_ret_sts_error;
15841 END IF;
15842 END IF;
15843 */
15844
15845
15846 -- Below code has been added by Vivek on 11-DEC-2010
15847
15848 IF (get_attribute_status('PN_VAR_CONSTRAINTS') > 0) THEN
15849 IF NOT ((p_constraints_tbl (uc).attribute_category = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute_category IS NULL)
15850 AND (p_constraints_tbl (uc).attribute1 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute1 IS NULL)
15851 AND (p_constraints_tbl (uc).attribute2 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute2 IS NULL)
15852 AND (p_constraints_tbl (uc).attribute3 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute3 IS NULL)
15853 AND (p_constraints_tbl (uc).attribute4 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute4 IS NULL)
15854 AND (p_constraints_tbl (uc).attribute5 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute5 IS NULL)
15855 AND (p_constraints_tbl (uc).attribute6 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute6 IS NULL)
15856 AND (p_constraints_tbl (uc).attribute7 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute7 IS NULL)
15857 AND (p_constraints_tbl (uc).attribute8 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute8 IS NULL)
15858 AND (p_constraints_tbl (uc).attribute9 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute9 IS NULL)
15859 AND (p_constraints_tbl (uc).attribute10 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute10 IS NULL)
15860 AND (p_constraints_tbl (uc).attribute11 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute11 IS NULL)
15861 AND (p_constraints_tbl (uc).attribute12 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute12 IS NULL)
15862 AND (p_constraints_tbl (uc).attribute13 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute13 IS NULL)
15863 AND (p_constraints_tbl (uc).attribute14 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute14 IS NULL)
15864 AND (p_constraints_tbl (uc).attribute15 = pn_varen_util.g_pn_miss_char OR p_constraints_tbl (uc).attribute15 IS NULL)
15865 ) THEN
15866 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_CONSTRAINTS'
15867 , p_attribute_category => p_constraints_tbl (uc).attribute_category
15868 , p_attribute1 => p_constraints_tbl (uc).attribute1
15869 , p_attribute2 => p_constraints_tbl (uc).attribute2
15870 , p_attribute3 => p_constraints_tbl (uc).attribute3
15871 , p_attribute4 => p_constraints_tbl (uc).attribute4
15872 , p_attribute5 => p_constraints_tbl (uc).attribute5
15873 , p_attribute6 => p_constraints_tbl (uc).attribute6
15874 , p_attribute7 => p_constraints_tbl (uc).attribute7
15875 , p_attribute8 => p_constraints_tbl (uc).attribute8
15876 , p_attribute9 => p_constraints_tbl (uc).attribute9
15877 , p_attribute10 => p_constraints_tbl (uc).attribute10
15878 , p_attribute11 => p_constraints_tbl (uc).attribute11
15879 , p_attribute12 => p_constraints_tbl (uc).attribute12
15880 , p_attribute13 => p_constraints_tbl (uc).attribute13
15881 , p_attribute14 => p_constraints_tbl (uc).attribute14
15882 , p_attribute15 => p_constraints_tbl (uc).attribute15
15883 , x_return_msg => l_return_msg
15884 , x_return_status => x_return_status
15885 );
15886
15887 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
15888 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
15889 fnd_message.set_token ('ERR_MSG', 'UPDATE_VAR_RENT: PN_VAR_CONSTRAINTS Descriptive Fields Error '||l_return_msg);
15890 fnd_msg_pub.ADD;
15891 RAISE fnd_api.g_exc_error;
15892 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
15893 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
15894 fnd_message.set_token ('ERR_MSG', 'UPDATE_VAR_RENT : PN_VAR_CONSTRAINTS Descriptive Fields Error '||l_return_msg);
15895 fnd_msg_pub.ADD;
15896 RAISE fnd_api.g_exc_unexpected_error;
15897 END IF;
15898 END IF;
15899 END IF; -- End of attributes valitions in pn_var_constraints
15900
15901 ------------------------End of 11-Dec-2010 DFF changes----------------------------
15902 IF (p_validate_flag <> 'Y') --and l_return_status = 'S')
15903 THEN
15904 pn_varen_util.pvt_debug
15905 ('PN_VAREN_PVT: Update_Var_Rent: Start of update_varen_dates Procedure'
15906 , 3);
15907 pn_varen_util.pvt_debug
15908 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.year_start_date before update_varen_dates procedure is : '
15909 || p_constraints_tbl (uc).constr_default_id
15910 , 3);
15911 pn_varen_util.pvt_debug
15912 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.year_start_date before update_varen_dates procedure is : '
15913 || p_constraints_tbl (uc).constr_default_num
15914 , 3);
15915 pn_varen_util.pvt_debug
15916 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_upd_var_rent_rec.year_start_date before update_varen_dates procedure is : '
15917 || p_constraints_tbl (uc).var_rent_id
15918 , 3);
15919 pn_varen_util.pvt_debug
15920 ('PN_VAREN_PVT: Update_Var_Rent: Calling constr_ext procedure for no of constraint records. '
15921 , 3);
15922 pn_varen_util.constr_ext (p_var_rent_id => p_constraints_tbl (uc).var_rent_id
15923 , x_constr_count => l_constr_count
15924 , x_return_status => x_return_status);
15925 pn_varen_util.pvt_debug
15926 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of constr_ext procedure is '
15927 || x_return_status
15928 , 3);
15929 pn_varen_util.pvt_debug
15930 ( 'PN_VAREN_PVT: Update_Var_Rent: No of Constratint records for the Variable Rent is '
15931 || l_constr_count
15932 , 3);
15933
15934 IF ( p_constraints_tbl (uc).constr_default_id IS NULL
15935 OR p_constraints_tbl (uc).constr_default_id = pn_varen_util.g_pn_miss_num)
15936 THEN
15937 --------------------------
15938 -- Create Constraints
15939 --------------------------
15940 IF (l_constr_count < 2)
15941 THEN
15942 pn_varen_util.pvt_debug
15943 ('PN_VAREN_PVT: Update_Var_Rent: Start of val_ins_constraints procedure '
15944 , 3);
15945
15946 IF p_constraints_tbl (uc).constr_type_code <> l_pn_var_constraints.type_code
15947 THEN
15948 val_ins_constraints (p_constraints_tbl_type => p_constraints_tbl
15949 , p_validate_flag => p_validate_flag
15950 , p_generate_constraints => 'N'
15951 , x_return_status => x_return_status);
15952 pn_varen_util.pvt_debug
15953 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of val_ins_constraints procedure is '
15954 || x_return_status
15955 , 3);
15956 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
15957 THEN
15958 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
15959 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent:VAL_INS_CONSTRAINTS procedure returned error');
15960 fnd_msg_pub.ADD;
15961 RAISE fnd_api.g_exc_error;
15962 END IF;
15963 END IF;
15964 ELSIF (l_constr_count > 2)
15965 THEN
15966 --1234
15967 pn_varen_util.pvt_debug
15968 ('PN_VAREN_PVT: Update_Var_Rent: Only two constraints records can exists with constraint type as MAX and MIN.'
15969 , 3);
15970 fnd_message.set_name ('PN', 'PN_VAR_NO_CONSTR_REC');
15971 fnd_msg_pub.ADD;
15972 RAISE fnd_api.g_exc_error;
15973 --x_return_status := fnd_api.g_ret_sts_error;
15974 END IF; -- l_constr_count >=1
15975 --p_constraints_tbl (uc).constr_default_id := l_pn_var_constraints.constr_default_id;
15976 ELSE
15977 IF ln_const_count = 0
15978 THEN
15979 pn_varen_util.pvt_debug
15980 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of ln_const_count is '
15981 || ln_const_count
15982 , 3);
15983 pn_varen_util.pvt_debug
15984 ('PN_VAREN_PVT: Update_Var_Rent: Start of update_constraints Procedure '
15985 , 3);
15986 --------------------------
15987 -- Update Constraints
15988 --------------------------
15989 update_constraints (p_constraints_rec_type => p_constraints_tbl (uc)
15990 , x_return_status => x_return_status);
15991 pn_varen_util.pvt_debug
15992 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of update_varen_dates Procedure :'
15993 || x_return_status
15994 , 3);
15995 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
15996 THEN
15997 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
15998 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent:UPDATE_CONSTRAINTS procedure returned error');
15999 fnd_msg_pub.ADD;
16000 RAISE fnd_api.g_exc_error;
16001 END IF;
16002 ELSE
16003 pn_varen_util.pvt_debug
16004 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of p_undo_constratints should be ''Y'' then only record could be updated.'
16005 || x_return_status
16006 , 3);
16007 END IF;
16008 END IF; -- p_constraints_tbl (uc).constr_default_id IS NULL
16009 END IF;
16010 --END LOOP; -- Constraints end loop
16011 --END IF; -- c_pn_var_constraints
16012 END LOOP;
16013 END IF; --p_constraints_tbl.COUNT>0
16014
16015 IF p_allow_abat_tbl.COUNT > 0
16016 AND l_undo_periods <> 'Y'
16017 THEN
16018 FOR ua IN p_allow_abat_tbl.FIRST .. p_allow_abat_tbl.LAST
16019 LOOP
16020 l_pn_var_abat:=NULL;
16021 OPEN c_pn_var_abat_defaults (p_allow_abat_tbl (ua).abatement_id
16022 , p_allow_abat_tbl (ua).var_rent_id);
16023
16024 FETCH c_pn_var_abat_defaults
16025 INTO l_pn_var_abat;
16026
16027 CLOSE c_pn_var_abat_defaults;
16028
16029 --IF (c_pn_var_abat_defaults%NOTFOUND)
16030 --THEN
16031 -- x_return_status := fnd_api.g_ret_sts_error;
16032 -- pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_abat_defaults not found'
16033 -- , 3
16034 -- );
16035 --ELSE
16036 -- pn_varen_util.pvt_debug ('PN_VAREN_PVT: Update_Var_Rent: Cursor c_pn_var_abat_defaults found'
16037 -- , 3
16038 -- );
16039 -- pn_varen_util.pvt_debug
16040 -- ( 'PN_VAREN_PVT: Update_Var_Rent: After the cursor is open, value of p_upd_var_rent_rec.var_rent_id is '
16041 -- || p_upd_var_rent_rec.var_rent_id
16042 -- , 3
16043 -- );
16044 --------------------------------------------------------------------------------
16045 -- Initialize Update Allowances and Abatements
16046 --------------------------------------------------------------------------------
16047 l_var_commencement_date := NULL;
16048 l_var_termination_date := NULL;
16049
16050 --FOR ua IN p_allow_abat_tbl.FIRST .. p_allow_abat_tbl.LAST
16051 --LOOP
16052 -------------------------------------------------------------------------------------------------
16053 -- Fetching commencement date, termination date for abatement start date and end date comparision
16054 -------------------------------------------------------------------------------------------------
16055 BEGIN
16056 SELECT commencement_date
16057 , termination_date
16058 INTO l_var_commencement_date
16059 , l_var_termination_date
16060 FROM pn_var_rents_all
16061 WHERE ( var_rent_id = p_allow_abat_tbl (ua).var_rent_id
16062 OR rent_num = p_allow_abat_tbl (ua).var_rent_num)
16063 AND org_id = g_org_id --l_org_id
16064 GROUP BY var_rent_id
16065 , commencement_date
16066 , termination_date;
16067
16068 x_return_status := fnd_api.g_ret_sts_success;
16069 EXCEPTION
16070 WHEN OTHERS
16071 THEN
16072 pn_varen_util.pvt_debug
16073 ( 'PN_VAREN_PVT: Update_Var_Rent: Variable Rent Number or Variable Rent Id doesnot exists :'
16074 || SQLERRM
16075 , 3);
16076 x_return_status := fnd_api.g_ret_sts_error;
16077 l_upd_allow_abat_val := 'N';
16078 END;
16079
16080 IF ( p_allow_abat_tbl (ua).var_rent_id IS NULL
16081 OR p_allow_abat_tbl (ua).var_rent_id = pn_varen_util.g_pn_miss_num)
16082 OR ( p_allow_abat_tbl (ua).var_rent_num IS NULL
16083 OR p_allow_abat_tbl (ua).var_rent_num = pn_varen_util.g_pn_miss_char)
16084 THEN
16085 p_allow_abat_tbl (ua).var_rent_id := l_pn_var_abat.var_rent_id;
16086 --p_allow_abat_tbl (ua).var_rent_num := l_pn_var_abat.var_rent_num;
16087 END IF;
16088
16089 IF ( p_allow_abat_tbl (ua).abat_type_code IS NOT NULL
16090 AND p_allow_abat_tbl (ua).abat_type_code <> pn_varen_util.g_pn_miss_char)
16091 OR ( p_allow_abat_tbl (ua).abat_type_meaning IS NOT NULL
16092 AND p_allow_abat_tbl (ua).abat_type_meaning <> pn_varen_util.g_pn_miss_char)
16093 THEN
16094 pn_varen_util.pvt_debug
16095 ('PN_VAREN_PVT: Update_Var_Rent: Calling Allowance and Abatements Validation Lookup - Inside the Loop'
16096 , 3);
16097 pn_varen_util.pvt_debug
16098 ('PN_VAREN_PVT: Update_Var_Rent: Calling Allowance and Abatements Validation'
16099 , 3);
16100 pn_varen_util.validate_lookups
16101 (p_lookup_type => g_abate_type_code
16102 , x_lookup_meaning => p_allow_abat_tbl (ua).abat_type_meaning
16103 , x_lookup_code => p_allow_abat_tbl (ua).abat_type_code
16104 , x_return_status => x_return_status);
16105 pn_varen_util.pvt_debug
16106 ( 'PN_VAREN_PVT: Update_Var_Rent: Allowance and Abatements Output Code :'
16107 || p_allow_abat_tbl (ua).abat_type_code
16108 , 3);
16109
16110 IF (x_return_status = fnd_api.g_ret_sts_error)
16111 THEN
16112 fnd_message.set_name ('PN', 'PN_VAR_ALL_ABA_TY');
16113 --x_return_status := fnd_api.g_ret_sts_error;
16114 pn_varen_util.pvt_debug
16115 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Please provide correct Allowance and Abatements Type Code Expected Error :'
16116 || p_allow_abat_tbl (ua).abat_type_meaning
16117 , 3);
16118 pn_varen_util.pvt_debug
16119 ('PN_VAREN_PVT: Update_Var_Rent: Allowance and Abatements Lookup Validation Error'
16120 , 3);
16121 --
16122 l_upd_allow_abat_val := 'N';
16123 fnd_msg_pub.ADD;
16124 RAISE fnd_api.g_exc_error;
16125 --
16126
16127 --
16128 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
16129 THEN
16130 --x_return_status :=fnd_api.g_ret_sts_unexp_error;
16131 pn_varen_util.pvt_debug
16132 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatements Meaning Un-Expected Error :'
16133 || p_allow_abat_tbl (ua).abat_type_meaning
16134 , 3);
16135 pn_varen_util.pvt_debug
16136 ('PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatements Lookup Validation Unexpected Error'
16137 , 3);
16138 l_upd_allow_abat_val := 'N';
16139 RAISE fnd_api.g_exc_unexpected_error;
16140 --
16141 fnd_message.set_name ('PN', 'PN_VAR_ALL_ABA_TY');
16142 fnd_msg_pub.ADD;
16143 --
16144
16145 --
16146
16147 --
16148 ELSE
16149 x_return_status := fnd_api.g_ret_sts_success;
16150 pn_varen_util.pvt_debug
16151 ( 'PN_VAREN_PVT: Update_Var_Rent: Allowance and Abatements Code Success :'
16152 || p_allow_abat_tbl (ua).abat_type_code
16153 , 3);
16154 pn_varen_util.pvt_debug
16155 ('PN_VAREN_PVT: Update_Var_Rent: Allowance and Abatements Lookup Validation Success'
16156 , 3);
16157 END IF;
16158 ELSE
16159 p_allow_abat_tbl (ua).abat_type_code := l_pn_var_abat.type_code;
16160 --p_allow_abat_tbl (ua).abat_type_meaning := l_pn_var_abat.abat_type_meaning;
16161 END IF;
16162
16163 /* IF ( p_allow_abat_tbl (ua).abat_start_date is null
16164 or p_allow_abat_tbl (ua).abat_start_date = pn_varen_util.g_pn_miss_date
16165 )
16166 THEN
16167 p_allow_abat_tbl (ua).abat_start_date := l_pn_var_abat.start_date;
16168 END IF;
16169 */
16170 IF ( p_allow_abat_tbl (ua).abat_end_date IS NULL
16171 OR p_allow_abat_tbl (ua).abat_end_date = pn_varen_util.g_pn_miss_date)
16172 THEN
16173 p_allow_abat_tbl (ua).abat_end_date := l_pn_var_abat.end_date;
16174 END IF;
16175
16176 -----------------------------------------------------------------------------
16177 -- Allowance and Abatement Start date should be always greater than end date
16178 -----------------------------------------------------------------------------
16179 IF (p_allow_abat_tbl (ua).abat_start_date < p_allow_abat_tbl (ua).abat_end_date)
16180 THEN
16181 x_return_status := fnd_api.g_ret_sts_success;
16182 pn_varen_util.pvt_debug
16183 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement Start date is less than Allowance and Abatement end date: '
16184 || p_allow_abat_tbl (ua).abat_start_date
16185 || ' and '
16186 || p_allow_abat_tbl (ua).abat_end_date
16187 , 3);
16188 ELSE
16189 --
16190 l_upd_allow_abat_val := 'N';
16191 --x_return_status := fnd_api.g_ret_sts_error;
16192 --
16193 fnd_message.set_name ('PN', 'PN_ST_DT_INV_MSG');
16194 pn_varen_util.pvt_debug
16195 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowances and abatements must start on the same date as the invoice period.Please change the allowance or abatement start date. '
16196 || p_allow_abat_tbl (ua).abat_start_date
16197 || ' and '
16198 || p_allow_abat_tbl (ua).abat_end_date
16199 , 3);
16200 fnd_msg_pub.ADD;
16201 RAISE fnd_api.g_exc_error;
16202 --
16203
16204 --
16205 END IF;
16206
16207 ---------------------------------------------------------------------
16208 --- Validation of Allowance and Abatement Start date
16209 ----------------------------------------------------------------------
16210 IF ( p_allow_abat_tbl (ua).abat_start_date IS NOT NULL
16211 AND p_allow_abat_tbl (ua).abat_start_date <> pn_varen_util.g_pn_miss_date)
16212 THEN
16213 pn_varen_util.pvt_debug
16214 ( 'PN_VAREN_PVT: Update_Var_Rent: Allowance and Abatement Start date is not null : '
16215 || p_allow_abat_tbl (ua).abat_start_date
16216 , 3);
16217 pn_varen_util.pvt_debug
16218 ( 'PN_VAREN_PVT: Update_Var_Rent: Allowance and Abatement end date : '
16219 || p_allow_abat_tbl (ua).abat_end_date
16220 , 3);
16221 pn_varen_util.pvt_debug
16222 ( 'PN_VAREN_PVT: Update_Var_Rent: Variable Rent Commencement Date : '
16223 || l_var_commencement_date
16224 , 3);
16225 pn_varen_util.pvt_debug
16226 ( 'PN_VAREN_PVT: Update_Var_Rent: Variable Rent Termination Date: '
16227 || l_var_termination_date
16228 , 3);
16229
16230 IF (p_allow_abat_tbl (ua).abat_start_date = l_var_commencement_date)
16231 THEN
16232 x_return_status := fnd_api.g_ret_sts_success;
16233 pn_varen_util.pvt_debug
16234 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement Start date Validation Success :'
16235 || p_allow_abat_tbl (ua).abat_start_date
16236 , 3);
16237 pn_varen_util.pvt_debug
16238 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement Start date Validation Success :'
16239 || p_allow_abat_tbl (ua).abat_start_date
16240 , 3);
16241 ELSIF ( p_allow_abat_tbl (ua).abat_start_date < l_var_commencement_date
16242 OR p_allow_abat_tbl (ua).abat_start_date > l_var_termination_date)
16243 THEN
16244 --
16245
16246 --x_return_status := fnd_api.g_ret_sts_error;
16247 l_upd_allow_abat_val := 'N';
16248 fnd_message.set_name ('PN', 'PN_VAR_ABT_STRDT_VAL_MSG');
16249 fnd_msg_pub.ADD;
16250 pn_varen_util.pvt_debug
16251 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement Start date Validation Error : '
16252 || p_allow_abat_tbl (ua).abat_start_date
16253 || 'Please ensure that the start date for a rolling allowance or fixed abatement is within the variable rent agreement dates.'
16254 , 3);
16255 RAISE fnd_api.g_exc_error;
16256 --
16257
16258 --
16259 ELSIF (p_allow_abat_tbl (ua).abat_start_date > p_allow_abat_tbl (ua).abat_end_date)
16260 THEN
16261 --
16262 fnd_message.set_name ('PN', 'PN_STR_GRT_END_DT');
16263 pn_varen_util.pvt_debug
16264 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement Start date Validation Error : '
16265 || p_allow_abat_tbl (ua).abat_start_date
16266 || ' and '
16267 || p_allow_abat_tbl (ua).abat_end_date
16268 || 'Please ensure that the start date for a rolling allowance or fixed abatement is less than the end date.'
16269 , 3);
16270 --
16271 l_upd_allow_abat_val := 'N';
16272 --x_return_status := fnd_api.g_ret_sts_error;
16273 fnd_msg_pub.ADD;
16274 RAISE fnd_api.g_exc_error;
16275 --
16276
16277 --
16278
16279 --
16280 END IF;
16281 ELSE
16282 --
16283 p_allow_abat_tbl (ua).abat_start_date := l_var_commencement_date;
16284 --
16285 x_return_status := fnd_api.g_ret_sts_success;
16286 pn_varen_util.pvt_debug
16287 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement Start date is null then value is Defaulted Variable Rent Commencement Date : '
16288 || l_var_commencement_date
16289 || ' Success'
16290 , 3);
16291 pn_varen_util.pvt_debug
16292 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement Start date is null then value is Defaulted Variable Rent Commencement Date : '
16293 || l_var_commencement_date
16294 || ' Success'
16295 , 3);
16296 END IF;
16297
16298 ----------------------------------------------------------------------
16299 --- Validation of Allowance and Abatement end date
16300 ----------------------------------------------------------------------
16301 IF ( p_allow_abat_tbl (ua).abat_end_date IS NOT NULL
16302 AND p_allow_abat_tbl (ua).abat_end_date <> pn_varen_util.g_pn_miss_date)
16303 THEN
16304 pn_varen_util.pvt_debug
16305 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement end date is not null : '
16306 || p_allow_abat_tbl (ua).abat_end_date
16307 , 3);
16308 pn_varen_util.pvt_debug
16309 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Variable Rent Termination Date: '
16310 || l_var_termination_date
16311 , 3);
16312
16313 IF (p_allow_abat_tbl (ua).abat_end_date = l_var_termination_date)
16314 THEN
16315 --
16316 x_return_status := fnd_api.g_ret_sts_success;
16317 --
16318 pn_varen_util.pvt_debug
16319 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement end date Validation Success :'
16320 || p_allow_abat_tbl (ua).abat_end_date
16321 , 3);
16322 --
16323 ELSIF ( p_allow_abat_tbl (ua).abat_end_date > l_var_termination_date
16324 OR p_allow_abat_tbl (ua).abat_end_date < l_var_commencement_date)
16325 THEN
16326 --
16327 x_return_status := fnd_api.g_ret_sts_error;
16328 --
16329 pn_varen_util.pvt_debug
16330 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement end Date Validation Error : '
16331 || p_allow_abat_tbl (ua).abat_end_date
16332 || 'Please ensure that the end date for a roslling allowance or fixed abatement is within the variable rent agreement dates.'
16333 , 3);
16334 l_upd_allow_abat_val := 'N';
16335 fnd_message.set_name ('PN', 'PN_VAR_ABT_END_MSG');
16336 fnd_msg_pub.ADD;
16337 --
16338 RAISE fnd_api.g_exc_error;
16339 --
16340
16341 --
16342 ELSIF (p_allow_abat_tbl (ua).abat_start_date > p_allow_abat_tbl (ua).abat_end_date)
16343 THEN
16344 --
16345 --x_return_status := fnd_api.g_ret_sts_error;
16346 pn_varen_util.pvt_debug
16347 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement end Date Validation Error : '
16348 || p_allow_abat_tbl (ua).abat_end_date
16349 || 'Please ensure that the start date for a rolling allowance or fixed abatement is less than the end date.'
16350 , 3);
16351 l_upd_allow_abat_val := 'N';
16352 fnd_message.set_name ('PN', 'PN_STR_GRT_END_DT');
16353 fnd_msg_pub.ADD;
16354 RAISE fnd_api.g_exc_error;
16355 END IF;
16356 ELSE
16357 --
16358 p_allow_abat_tbl (ua).abat_end_date := l_var_termination_date;
16359 --
16360 x_return_status := fnd_api.g_ret_sts_success;
16361 --
16362 pn_varen_util.pvt_debug
16363 ( 'PN_VAR_RENT_PVT: Update_Var_Rent: Allowance and Abatement end Date is null then value is defaulted Termination Date : '
16364 || l_var_termination_date
16365 || ' Success'
16366 , 3);
16367 END IF;
16368
16369 IF ( p_allow_abat_tbl (ua).abat_amount IS NULL
16370 OR p_allow_abat_tbl (ua).abat_amount = pn_varen_util.g_pn_miss_num)
16371 THEN
16372 p_allow_abat_tbl (ua).abat_amount := l_pn_var_abat.amount;
16373 END IF;
16374
16375 IF ( p_allow_abat_tbl (ua).description IS NULL
16376 OR p_allow_abat_tbl (ua).description = pn_varen_util.g_pn_miss_char)
16377 THEN
16378 p_allow_abat_tbl (ua).description := l_pn_var_abat.description;
16379 END IF;
16380
16381 IF ( p_allow_abat_tbl (ua).comments IS NULL
16382 OR p_allow_abat_tbl (ua).comments = pn_varen_util.g_pn_miss_char)
16383 THEN
16384 p_allow_abat_tbl (ua).comments := l_pn_var_abat.comments;
16385 END IF;
16386
16387 IF ( p_allow_abat_tbl (ua).last_update_date IS NULL
16388 OR p_allow_abat_tbl (ua).last_update_date = pn_varen_util.g_pn_miss_date)
16389 THEN
16390 p_allow_abat_tbl (ua).last_update_date := g_sysdate;
16391 --:= l_pn_var_abat.last_update_date;
16392 END IF;
16393
16394 IF ( p_allow_abat_tbl (ua).last_updated_by IS NULL
16395 OR p_allow_abat_tbl (ua).last_updated_by = pn_varen_util.g_pn_miss_num)
16396 THEN
16397 p_allow_abat_tbl (ua).last_updated_by := g_user_id;
16398 --:= l_pn_var_abat.last_updated_by;
16399 END IF;
16400
16401 IF ( p_allow_abat_tbl (ua).creation_date IS NULL
16402 OR p_allow_abat_tbl (ua).creation_date = pn_varen_util.g_pn_miss_date)
16403 THEN
16404 p_allow_abat_tbl (ua).creation_date := l_pn_var_abat.creation_date;
16405 END IF;
16406
16407 IF ( p_allow_abat_tbl (ua).created_by IS NULL
16408 OR p_allow_abat_tbl (ua).created_by = pn_varen_util.g_pn_miss_num)
16409 THEN
16410 p_allow_abat_tbl (ua).created_by := l_pn_var_abat.created_by;
16411 END IF;
16412
16413 IF ( p_allow_abat_tbl (ua).last_update_login IS NULL
16414 OR p_allow_abat_tbl (ua).last_update_login = pn_varen_util.g_pn_miss_num)
16415 THEN
16416 p_allow_abat_tbl (ua).last_update_login := g_user_id;
16417 --:= l_pn_var_abat.last_update_login;
16418 END IF;
16419
16420 IF ( p_allow_abat_tbl (ua).attribute_category IS NULL
16421 OR p_allow_abat_tbl (ua).attribute_category = pn_varen_util.g_pn_miss_char)
16422 THEN
16423 p_allow_abat_tbl (ua).attribute_category := l_pn_var_abat.attribute_category;
16424 END IF;
16425
16426 IF ( p_allow_abat_tbl (ua).attribute1 IS NULL
16427 OR p_allow_abat_tbl (ua).attribute1 = pn_varen_util.g_pn_miss_char)
16428 THEN
16429 p_allow_abat_tbl (ua).attribute1 := l_pn_var_abat.attribute1;
16430 END IF;
16431
16432 IF ( p_allow_abat_tbl (ua).attribute2 IS NULL
16433 OR p_allow_abat_tbl (ua).attribute2 = pn_varen_util.g_pn_miss_char)
16434 THEN
16435 p_allow_abat_tbl (ua).attribute2 := l_pn_var_abat.attribute2;
16436 END IF;
16437
16438 IF ( p_allow_abat_tbl (ua).attribute3 IS NULL
16439 OR p_allow_abat_tbl (ua).attribute3 = pn_varen_util.g_pn_miss_char)
16440 THEN
16441 p_allow_abat_tbl (ua).attribute3 := l_pn_var_abat.attribute3;
16442 END IF;
16443
16444 IF ( p_allow_abat_tbl (ua).attribute4 IS NULL
16445 OR p_allow_abat_tbl (ua).attribute4 = pn_varen_util.g_pn_miss_char)
16446 THEN
16447 p_allow_abat_tbl (ua).attribute4 := l_pn_var_abat.attribute4;
16448 END IF;
16449
16450 IF ( p_allow_abat_tbl (ua).attribute5 IS NULL
16451 OR p_allow_abat_tbl (ua).attribute5 = pn_varen_util.g_pn_miss_char)
16452 THEN
16453 p_allow_abat_tbl (ua).attribute5 := l_pn_var_abat.attribute5;
16454 END IF;
16455
16456 IF ( p_allow_abat_tbl (ua).attribute6 IS NULL
16457 OR p_allow_abat_tbl (ua).attribute6 = pn_varen_util.g_pn_miss_char)
16458 THEN
16459 p_allow_abat_tbl (ua).attribute6 := l_pn_var_abat.attribute6;
16460 END IF;
16461
16462 IF ( p_allow_abat_tbl (ua).attribute7 IS NULL
16463 OR p_allow_abat_tbl (ua).attribute7 = pn_varen_util.g_pn_miss_char)
16464 THEN
16465 p_allow_abat_tbl (ua).attribute7 := l_pn_var_abat.attribute7;
16466 END IF;
16467
16468 IF ( p_allow_abat_tbl (ua).attribute8 IS NULL
16469 OR p_allow_abat_tbl (ua).attribute8 = pn_varen_util.g_pn_miss_char)
16470 THEN
16471 p_allow_abat_tbl (ua).attribute8 := l_pn_var_abat.attribute8;
16472 END IF;
16473
16474 IF ( p_allow_abat_tbl (ua).attribute9 IS NULL
16475 OR p_allow_abat_tbl (ua).attribute9 = pn_varen_util.g_pn_miss_char)
16476 THEN
16477 p_allow_abat_tbl (ua).attribute9 := l_pn_var_abat.attribute9;
16478 END IF;
16479
16480 IF ( p_allow_abat_tbl (ua).attribute10 IS NULL
16481 OR p_allow_abat_tbl (ua).attribute10 = pn_varen_util.g_pn_miss_char)
16482 THEN
16483 p_allow_abat_tbl (ua).attribute10 := l_pn_var_abat.attribute10;
16484 END IF;
16485
16486 IF ( p_allow_abat_tbl (ua).attribute11 IS NULL
16487 OR p_allow_abat_tbl (ua).attribute11 = pn_varen_util.g_pn_miss_char)
16488 THEN
16489 p_allow_abat_tbl (ua).attribute11 := l_pn_var_abat.attribute11;
16490 END IF;
16491
16492 IF ( p_allow_abat_tbl (ua).attribute12 IS NULL
16493 OR p_allow_abat_tbl (ua).attribute12 = pn_varen_util.g_pn_miss_char)
16494 THEN
16495 p_allow_abat_tbl (ua).attribute12 := l_pn_var_abat.attribute12;
16496 END IF;
16497
16498 IF ( p_allow_abat_tbl (ua).attribute13 IS NULL
16499 OR p_allow_abat_tbl (ua).attribute13 = pn_varen_util.g_pn_miss_char)
16500 THEN
16501 p_allow_abat_tbl (ua).attribute13 := l_pn_var_abat.attribute13;
16502 END IF;
16503
16504 IF ( p_allow_abat_tbl (ua).attribute14 IS NULL
16505 OR p_allow_abat_tbl (ua).attribute14 = pn_varen_util.g_pn_miss_char)
16506 THEN
16507 p_allow_abat_tbl (ua).attribute14 := l_pn_var_abat.attribute14;
16508 END IF;
16509
16510 IF ( p_allow_abat_tbl (ua).attribute15 IS NULL
16511 OR p_allow_abat_tbl (ua).attribute15 = pn_varen_util.g_pn_miss_char)
16512 THEN
16513 p_allow_abat_tbl (ua).attribute15 := l_pn_var_abat.attribute15;
16514 END IF;
16515
16516 -------------------------------------------------------------------------------------------
16517 -- Validating Descriptive Flex fields
16518 -------------------------------------------------------------------------------------------
16519 -- Below code has been commented by Vivek on 11-DEC-2010
16520 /*
16521 IF ( p_allow_abat_tbl (ua).attribute_category IS NOT NULL
16522 AND p_allow_abat_tbl (ua).attribute_category <> pn_varen_util.g_pn_miss_char)
16523 THEN
16524 pn_varen_util.validate_flex_fields
16525 (p_desc_flex_name => g_abat_desc_name
16526 , p_attribute_category => p_allow_abat_tbl (ua).attribute_category
16527 , p_attribute1 => p_allow_abat_tbl (ua).attribute1
16528 , p_attribute2 => p_allow_abat_tbl (ua).attribute2
16529 , p_attribute3 => p_allow_abat_tbl (ua).attribute3
16530 , p_attribute4 => p_allow_abat_tbl (ua).attribute4
16531 , p_attribute5 => p_allow_abat_tbl (ua).attribute5
16532 , p_attribute6 => p_allow_abat_tbl (ua).attribute6
16533 , p_attribute7 => p_allow_abat_tbl (ua).attribute7
16534 , p_attribute8 => p_allow_abat_tbl (ua).attribute8
16535 , p_attribute9 => p_allow_abat_tbl (ua).attribute9
16536 , p_attribute10 => p_allow_abat_tbl (ua).attribute10
16537 , p_attribute11 => p_allow_abat_tbl (ua).attribute11
16538 , p_attribute12 => p_allow_abat_tbl (ua).attribute12
16539 , p_attribute13 => p_allow_abat_tbl (ua).attribute13
16540 , p_attribute14 => p_allow_abat_tbl (ua).attribute14
16541 , p_attribute15 => p_allow_abat_tbl (ua).attribute15
16542 , x_return_msg => l_return_msg
16543 , x_return_status => l_return_status);
16544
16545 IF l_return_msg = 'VALID'
16546 THEN
16547 x_return_status := fnd_api.g_ret_sts_success;
16548 ELSE
16549 x_return_status := fnd_api.g_ret_sts_error;
16550 l_upd_allow_abat_val := 'N';
16551 END IF;
16552 END IF;
16553 */
16554 /* --Commented as DFF is not available
16555 -- Below code has been added by Vivek on 11-DEC-2010
16556 IF (get_attribute_status('PN_VAR_DEDUCTIONS') > 0) THEN
16557 IF NOT ((p_allow_abat_tbl (ua).attribute_category = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute_category IS NULL)
16558 AND (p_allow_abat_tbl (ua).attribute1 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute1 IS NULL)
16559 AND (p_allow_abat_tbl (ua).attribute2 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute2 IS NULL)
16560 AND (p_allow_abat_tbl (ua).attribute3 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute3 IS NULL)
16561 AND (p_allow_abat_tbl (ua).attribute4 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute4 IS NULL)
16562 AND (p_allow_abat_tbl (ua).attribute5 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute5 IS NULL)
16563 AND (p_allow_abat_tbl (ua).attribute6 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute6 IS NULL)
16564 AND (p_allow_abat_tbl (ua).attribute7 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute7 IS NULL)
16565 AND (p_allow_abat_tbl (ua).attribute8 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute8 IS NULL)
16566 AND (p_allow_abat_tbl (ua).attribute9 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute9 IS NULL)
16567 AND (p_allow_abat_tbl (ua).attribute10 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute10 IS NULL)
16568 AND (p_allow_abat_tbl (ua).attribute11 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute11 IS NULL)
16569 AND (p_allow_abat_tbl (ua).attribute12 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute12 IS NULL)
16570 AND (p_allow_abat_tbl (ua).attribute13 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute13 IS NULL)
16571 AND (p_allow_abat_tbl (ua).attribute14 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute14 IS NULL)
16572 AND (p_allow_abat_tbl (ua).attribute15 = pn_varen_util.g_pn_miss_char OR p_allow_abat_tbl (ua).attribute15 IS NULL)
16573 ) THEN
16574 pn_varen_util.validate_flex_fields (p_desc_flex_name => 'PN_VAR_DEDUCTIONS'
16575 , p_attribute_category => p_allow_abat_tbl (ua).attribute_category
16576 , p_attribute1 => p_allow_abat_tbl (ua).attribute1
16577 , p_attribute2 => p_allow_abat_tbl (ua).attribute2
16578 , p_attribute3 => p_allow_abat_tbl (ua).attribute3
16579 , p_attribute4 => p_allow_abat_tbl (ua).attribute4
16580 , p_attribute5 => p_allow_abat_tbl (ua).attribute5
16581 , p_attribute6 => p_allow_abat_tbl (ua).attribute6
16582 , p_attribute7 => p_allow_abat_tbl (ua).attribute7
16583 , p_attribute8 => p_allow_abat_tbl (ua).attribute8
16584 , p_attribute9 => p_allow_abat_tbl (ua).attribute9
16585 , p_attribute10 => p_allow_abat_tbl (ua).attribute10
16586 , p_attribute11 => p_allow_abat_tbl (ua).attribute11
16587 , p_attribute12 => p_allow_abat_tbl (ua).attribute12
16588 , p_attribute13 => p_allow_abat_tbl (ua).attribute13
16589 , p_attribute14 => p_allow_abat_tbl (ua).attribute14
16590 , p_attribute15 => p_allow_abat_tbl (ua).attribute15
16591 , x_return_msg => l_return_msg
16592 , x_return_status => x_return_status
16593 );
16594
16595 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
16596 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
16597 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_ALLOW_ABATE Descriptive Fields Error');
16598 fnd_msg_pub.ADD;
16599 RAISE fnd_api.g_exc_error;
16600 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
16601 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
16602 fnd_message.set_token ('ERR_MSG', 'Var Rent : PN_ALLOW_ABATE Descriptive Fields Error');
16603 fnd_msg_pub.ADD;
16604 RAISE fnd_api.g_exc_unexpected_error;
16605 END IF;
16606 END IF;
16607 END IF; -- End of attributes valitions in update var Allow and Abate
16608 */
16609
16610 ------------------------End of 11-Dec-2010 DFF changes----------------------------
16611 IF ( p_allow_abat_tbl (ua).org_id IS NULL
16612 OR p_allow_abat_tbl (ua).org_id = pn_varen_util.g_pn_miss_num)
16613 THEN
16614 p_allow_abat_tbl (ua).org_id := l_pn_var_abat.org_id;
16615 END IF;
16616
16617 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: x_return_status : '
16618 || x_return_status
16619 , 3);
16620 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: l_upd_allow_abat_val : '
16621 || l_upd_allow_abat_val
16622 , 3);
16623
16624 IF l_upd_allow_abat_val = 'N'
16625 THEN
16626 x_return_status := fnd_api.g_ret_sts_error;
16627 END IF;
16628
16629 -------------------------------------------------------------------
16630 -- End of Allowances and Abatements validation and initialization
16631 -------------------------------------------------------------------
16632 IF ( p_allow_abat_tbl (ua).abatement_id IS NULL
16633 OR p_allow_abat_tbl (ua).abatement_id = pn_varen_util.g_pn_miss_num)
16634 THEN
16635 --------------------------------------------------
16636 -- Creation of New Allowance and Abatement record
16637 --------------------------------------------------
16638 pn_varen_util.pvt_debug
16639 ('PN_VAREN_PVT: Update_Var_Rent: Start of val_ins_allow_abat procedure '
16640 , 3);
16641 val_ins_allow_abat (p_allow_abat_tbl_type => p_allow_abat_tbl
16642 , p_validate_flag => p_validate_flag
16643 , x_return_status => x_return_status);
16644 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
16645 THEN
16646 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
16647 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent:VAL_INS_ALLOW_ABAT procedure returned error');
16648 fnd_msg_pub.ADD;
16649 RAISE fnd_api.g_exc_error;
16650 ELSE
16651 l_allow_abat_update := 'Y';
16652 END IF;
16653
16654 pn_varen_util.pvt_debug
16655 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of val_ins_allow_abat procedure is '
16656 || x_return_status
16657 , 3);
16658 pn_varen_util.pvt_debug
16659 ( 'PN_VAREN_PVT: Update_Var_Rent: Value of l_allow_abat_update is :'
16660 || l_allow_abat_update
16661 , 3);
16662 ELSE
16663 ----------------------------------------------------
16664 -- Update of existing Allowance and Abatement record
16665 ----------------------------------------------------
16666 IF x_return_status = fnd_api.g_ret_sts_success --'S'
16667 THEN
16668 pn_varen_util.pvt_debug
16669 ('PN_VAREN_PVT: Update_Var_Rent: Start of update_allow_abat procedure '
16670 , 3);
16671 update_allow_abat (p_allow_abat_rec_type => p_allow_abat_tbl (ua)
16672 , x_return_status => x_return_status);
16673 pn_varen_util.pvt_debug
16674 ( 'PN_VAREN_PVT: Update_Var_Rent: Status of update_allow_abat procedure is '
16675 || x_return_status
16676 , 3);
16677 IF x_return_status <> fnd_api.g_ret_sts_success --'S'
16678 THEN
16679 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
16680 fnd_message.set_token ('ERR_MSG', 'PN_VAREN_PVT: Update_Var_Rent:UPDATE_ALLOW_ABAT procedure returned error');
16681 fnd_msg_pub.ADD;
16682 RAISE fnd_api.g_exc_error;
16683 END IF;
16684 END IF; -- x_return_status
16685 END IF; --p_allow_abat_tbl (ua).abatement_id IS NULL
16686 --END LOOP;
16687 --END IF;
16688 --CLOSE c_pn_var_abat_defaults;
16689 END LOOP;
16690 END IF; -- p_allow_abat_tbl.COUNT>0
16691
16692 -- c_pn_var_abat_defaults
16693 IF p_commit = fnd_api.g_true
16694 THEN
16695 COMMIT;
16696 END IF;
16697 --x_return_status := x_return_status;
16698 -- Commented by Vivek 0n 02-DEC-2010
16699 /*
16700 EXCEPTION
16701 WHEN OTHERS
16702 THEN
16703 pn_varen_util.pvt_debug ( 'PN_VAREN_PVT: Update_Var_Rent: Exception Result of Update_Var_Rent :'
16704 || SQLERRM
16705 , 3
16706 );*/
16707 -- Added by Vivek on 02-DEC-2010
16708 EXCEPTION
16709 WHEN fnd_api.g_exc_error
16710 THEN
16711 pn_index_rent_pvt.DEBUG
16712 ( 'PN_VAREN_PVT: Update_Var_Rent: Exception Result of Update_Var_Rent :'
16713 || '-'
16714 || SQLERRM
16715 , 5);
16716 x_return_status := fnd_api.g_ret_sts_error;
16717 RAISE;
16718
16719 WHEN OTHERS
16720 THEN
16721 pn_index_rent_pvt.DEBUG
16722 ( 'PN_VAREN_PVT: Update_Var_Rent: Exception Result of Update_Var_Rent :'
16723 || '-'
16724 || SQLERRM
16725 , 5);
16726 x_return_status := fnd_api.g_ret_sts_unexp_error;
16727 RAISE;
16728 END update_var_rent;
16729
16730 FUNCTION get_attribute_status (
16731 p_desc_name VARCHAR2)
16732 RETURN NUMBER
16733 AS
16734 l_count NUMBER := 0;
16735 BEGIN
16736 SELECT COUNT (1)
16737 INTO l_count
16738 FROM fnd_descr_flex_col_usage_vl
16739 WHERE descriptive_flexfield_name = UPPER (TRIM (p_desc_name))
16740 AND enabled_flag = 'Y'
16741 AND display_flag = 'Y';
16742
16743 RETURN l_count;
16744 EXCEPTION
16745 WHEN OTHERS
16746 THEN
16747 l_count := 0;
16748 RETURN l_count;
16749 END get_attribute_status;
16750 END pn_varen_pvt;