[Home] [Help]
PACKAGE BODY: APPS.PN_LEASE_PVT
Source
1 PACKAGE BODY PN_LEASE_PVT AS
2 /* $Header: PNLSPVTB.pls 120.6.12020000.4 2013/04/05 14:09:14 ppenumar ship $ */
3
4 g_pkg_name CONSTANT VARCHAR2 (30) := 'PN_LEASE_PVT';
5 g_table_name CONSTANT VARCHAR2 (40) := 'PN_LEASES_ALL';
6 g_tl_table_name CONSTANT VARCHAR2 (40) := 'NONE';
7 g_resp_appl_id CONSTANT NUMBER := fnd_global.resp_appl_id;
8 g_resp_id CONSTANT NUMBER := fnd_global.resp_id;
9 g_user_id CONSTANT NUMBER := fnd_global.user_id;
10 g_login_id CONSTANT NUMBER := fnd_global.login_id;
11 g_org_id CONSTANT NUMBER := fnd_profile.VALUE ('ORG_ID');
12 -- Variables to hold the lookup_types
13 l_leasetype_lookup_type fnd_lookup_types.lookup_type%TYPE := 'PN_LEASE_TYPE';
14 l_leaseclass_lookup_type fnd_lookup_types.lookup_type%TYPE := 'PN_LEASE_CLASS';
15 l_status_lookup_type fnd_lookup_types.lookup_type%TYPE := 'PN_LEASE_STATUS_TYPE';
16 l_lease_status_lookup_type fnd_lookup_types.lookup_type%TYPE := 'PN_LEASESTATUS_TYPE';
17 l_proration_rule_lookup_type fnd_lookup_types.lookup_type%TYPE := 'PN_PRORATION_RULE';
18 l_lease_role_lookup_type fnd_lookup_types.lookup_type%TYPE := 'PN_LEASE_ROLE_TYPE';
19 l_lease_tenancy_usage_lookup fnd_lookup_types.lookup_type%TYPE := 'PN_TENANCY_USAGE_TYPE';
20 l_tenancy_recovery_lookup_type fnd_lookup_types.lookup_type%TYPE := 'PN_RECOVERY_TYPE';
21 l_recovery_space_std_lkp_type fnd_lookup_types.lookup_type%TYPE := 'PN_RECOVERY_SPACE_STD_TYPE';
22
23 l_pn_payment_term_type fnd_lookup_types.lookup_type%TYPE := 'PN_PAYMENT_TERM_TYPE';
24 l_pn_payment_purpose_type fnd_lookup_types.lookup_type%TYPE := 'PN_PAYMENT_PURPOSE_TYPE';
25 l_pn_term_source_module fnd_lookup_types.lookup_type%TYPE := 'PN_TERM_SOURCE_MODULE';
26 l_pn_payment_frequency_type fnd_lookup_types.lookup_type%TYPE := 'PN_PAYMENT_FREQUENCY_TYPE';
27 l_pn_note_type fnd_lookup_types.lookup_type%TYPE := 'PN_NOTE_TYPE';
28 l_pn_rights_type fnd_lookup_types.lookup_type%TYPE := 'PN_RIGHTS_TYPE';
29 l_pn_right_status_type fnd_lookup_types.lookup_type%TYPE := 'PN_RIGHT_STATUS_TYPE';
30 l_pn_status fnd_lookup_types.lookup_type%TYPE := 'PN_STATUS';
31 l_pn_landlord_service_type fnd_lookup_types.lookup_type%TYPE := 'PN_LANDLORD_SERVICE_TYPE';
32 l_pn_obligation_resp_type fnd_lookup_types.lookup_type%TYPE := 'PN_OBLIGATION_RESP_TYPE';
33 l_pn_obligation_fin_resp_type fnd_lookup_types.lookup_type%TYPE := 'PN_OBLIGATION_FIN_RESP_PARTY';
34 l_pn_insurance_type fnd_lookup_types.lookup_type%TYPE := 'PN_INSURANCE_TYPE';
35 l_pn_units_of_measures fnd_lookup_types.lookup_type%TYPE := 'PN_UNITS_OF_MEASURE';
36 l_pn_lease_option_type fnd_lookup_types.lookup_type%TYPE := 'PN_LEASE_OPTION_TYPE';
37 l_pn_option_status_type fnd_lookup_types.lookup_type%TYPE := 'PN_OPTION_STATUS_TYPE';
38 l_pn_yes_no fnd_lookup_types.lookup_type%TYPE := 'PN_YES_NO';
39 l_pn_milestones_type fnd_lookup_types.lookup_type%TYPE := 'PN_MILESTONES_TYPE';
40
41 l_param_milestone_type VARCHAR2 (30) := 'P_MILESTONE_TYPE';
42 l_param_milestone_user_name VARCHAR2 (30) := 'P_MILESTONE_USER_NAME';
43 l_param_notice_given_type VARCHAR2 (30) := 'P_NOTICE_GIVEN_TYPE';
44 l_param_uom_type VARCHAR2 (30) := 'P_UOM_TYPE';
45 l_param_start_end_options_date VARCHAR2 (30) := 'P_START_END_OPTIONS_DATE';
46 l_param_exercise_dates VARCHAR2 (30) := 'P_EXERCISE_DATES';
47 l_param_status_type VARCHAR2 (30) := 'P_STATUS_TYPE';
48 l_param_option_type VARCHAR2 (30) := 'P_OPTION_TYPE';
49 l_param_start_end_date VARCHAR2 (30) := 'P_INSURANCE_START_END_DATE';
50 l_param_insurance_type VARCHAR2 (30) := 'P_INSURANCE_TYPE';
51 l_param_obligation_date VARCHAR2 (30) := 'P_OBLIGATION_DATE';
52 l_param_service_type VARCHAR2 (30) := 'P_SERVICE_TYPE';
53 l_param_financial_resp_party VARCHAR2 (30) := 'P_FINANCIAL_RESP_PARTY';
54 l_param_company VARCHAR2 (30) := 'P_COMPANY';
55 l_param_responsibility VARCHAR2 (30) := 'P_RESPONSIBILITY';
56 l_param_obligation_status VARCHAR2 (30) := 'P_OBLIGATION_STATUS';
57 l_param_right_type VARCHAR2 (30) := 'P_RIGHTS_TYPE';
58 l_param_right_status VARCHAR2 (30) := 'P_RIGHT_STATUS';
59 l_param_note_type VARCHAR2 (30) := 'P_NOTE_TYPE';
60 l_param_payment_purpose VARCHAR2 (30) := 'P_PAYMENT_PURPOSE';
61 l_param_payment_type VARCHAR2 (30) := 'P_PAYMENT_TYPE';
62 l_param_payment_frequency VARCHAR2 (30) := 'P_PAYMENT_FREQUENCY';
63 l_param_payment_source VARCHAR2 (30) := 'P_PAYMENT_SOURCE';
64 l_param_payment_dates VARCHAR2 (30) := 'P_PAYMENT_DATES';
65 l_param_vendor_name VARCHAR2 (30) := 'P_VENDOR_NAME';
66 l_param_vendor_site VARCHAR2 (30) := 'P_VENDOR_SITE';
67 l_param_customer_name VARCHAR2 (30) := 'P_CUSTOMER_NAME';
68 l_param_customer_site VARCHAR2 (30) := 'P_CUSTOMER_SITE';
69 l_param_term_template VARCHAR2 (30) := 'P_TERM_TEMPLATE';
70 l_param_location_code VARCHAR2 (30) := 'P_LOCATION_CODE';
71 l_param_lease_type VARCHAR2 (30) := 'P_LEASE_TYPE';
72 l_param_lease_class VARCHAR2 (30) := 'P_LEASE_CLASS';
73 l_param_master_lease VARCHAR2 (30) := 'P_MASTER_LEASE';
74 l_param_lease_customer VARCHAR2 (30) := 'P_LEASE_CUSTOMER';
75 l_param_tenancy_customer VARCHAR2 (30) := 'P_TENANCY_CUSTOMER';
76 l_param_abstracted_by VARCHAR2 (30) := 'P_ABSTRACTED_BY';
77 l_param_status VARCHAR2 (30) := 'P_APPROVAL_STATUS';
78 l_param_lease_status VARCHAR2 (30) := 'P_LEASE_STATUS';
79 l_param_lease_dates VARCHAR2 (30) := 'P_LEASE_LOCATION';
80 l_param_lease_location VARCHAR2 (30) := 'P_LEASE_LOCATION';
81 l_param_reponsible_user VARCHAR2 (30) := 'P_RESPONSIBLE_USER';
82 l_param_propration_rule VARCHAR2 (30) := 'P_PRORATION_RULE';
83 l_param_lease_template VARCHAR2 (30) := 'P_LEASE_TEMPLATE';
84 l_param_lease_grouping_rule VARCHAR2 (30) := 'P_LEASE_INV_GROUPING_RULE';
85 l_param_lease_cal_start VARCHAR2 (30) := 'P_LEASE_CAL_START_DATE';
86 l_param_exp_rev_acct VARCHAR2 (30) := 'P_EXPENSE_REVENUE_ACCT';
87 l_param_accrual_acct VARCHAR2 (30) := 'P_ACCRUAL_ACCT';
88 l_param_liab_rvbl_acct VARCHAR2 (30) := 'P_LIABILITY_RECVBL_ACCT';
89 l_param_contact_role VARCHAR2 (30) := 'P_CONTACT_ROLE';
90 l_param_company_id VARCHAR2 (30) := 'P_COMPANY_ID';
91 l_param_company_site_id VARCHAR2 (30) := 'P_COMPANY_SITE';
92 l_param_tenancy_location VARCHAR2 (30) := 'P_TENANCY_LOCATION';
93 l_param_tenancy_usage VARCHAR2 (30) := 'P_TENANCY_USAGE';
94 l_param_tenancy_dates VARCHAR2 (30) := 'P_TENANCY_DATES';
95 l_param_desc_flex_name VARCHAR2 (30) := 'P_PN_LEASE_DETAILS';
96 l_param_create_mode_operation VARCHAR2 (30) := 'CREATE_LEASE';
97 l_param_tenancy_recovery_type VARCHAR2 (30) := 'P_TENANCY_RECOVERY_TYPE';
98 l_param_recovery_space_std VARCHAR2 (30) := 'P_TENANCY_RECOVERY_SPACE_STD';
99 l_param_oblig_end_date VARCHAR2 (30) := 'P_TENANCY_OBLIG_END_DATE';
100
101 g_status VARCHAR2(10):=NULL;
102 g_lease_change_id NUMBER := NULL;
103 g_lease_context VARCHAR2(50):=NULL;
104
105 --g_class_code VARCHAR2(100):=NULL;
106
107 g_debug VARCHAR2 (255) := NVL (fnd_profile.VALUE ('PN_DEBUG_MODE'), 'N');
108 g_module_name VARCHAR2(2) := 'PN';
109
110 /* PROCEDURE pvt_debug (p_log_message IN VARCHAR2
111 , p_log_level IN NUMBER
112 );*/
113 FUNCTION get_miss_char_decode ( p_parameter VARCHAR2)
114 RETURN VARCHAR2;
115
116 FUNCTION get_miss_num_decode ( p_parameter NUMBER)
117 RETURN NUMBER;
118
119 FUNCTION get_miss_date_decode ( p_parameter DATE)
120 RETURN DATE;
121
122 FUNCTION get_attribute_status( p_desc_name VARCHAR2)
123 RETURN NUMBER;
124
125 PROCEDURE get_attribute_mandatory_status( p_desc_name IN VARCHAR2
126 ,p_attribute1 IN VARCHAR2
127 ,p_attribute2 IN VARCHAR2
128 ,p_attribute3 IN VARCHAR2
129 ,p_attribute4 IN VARCHAR2
130 ,p_attribute5 IN VARCHAR2
131 ,p_attribute6 IN VARCHAR2
132 ,p_attribute7 IN VARCHAR2
133 ,p_attribute8 IN VARCHAR2
134 ,p_attribute9 IN VARCHAR2
135 ,p_attribute10 IN VARCHAR2
136 ,p_attribute11 IN VARCHAR2
137 ,p_attribute12 IN VARCHAR2
138 ,p_attribute13 IN VARCHAR2
139 ,p_attribute14 IN VARCHAR2
140 ,p_attribute15 IN VARCHAR2
141 ,x_return_status OUT NOCOPY VARCHAR2
142 );
143 PROCEDURE insert_tenancies_row (
144 p_lease_tenancies_rec IN OUT NOCOPY lease_tenancies_rec
145 , p_lease_rec IN lease_rec
146 , p_lease_context IN VARCHAR2
147 , x_return_status OUT NOCOPY VARCHAR2
148 );
149 PROCEDURE validate_contacts_tbl (
150 p_lease_contacts_tbl IN OUT NOCOPY lease_contacts_tbl
151 , p_lease_rec IN lease_rec
152 , p_validate IN VARCHAR2
153 , p_lease_context IN VARCHAR2
154 , p_operation IN VARCHAR2
155 , x_return_status OUT NOCOPY VARCHAR2)
156 ;
157 PROCEDURE INITIALIZE_RIGHTS_REC( p_right_rec IN OUT NOCOPY lease_right_rec
158 , p_lease_context IN VARCHAR2
159 , x_return_status OUT NOCOPY VARCHAR2
160 );
161 PROCEDURE INITIALIZE_OBLIGATIONS_REC( p_obligation_rec IN OUT NOCOPY lease_obligation_rec
162 , p_lease_context IN VARCHAR2
163 , x_return_status OUT NOCOPY VARCHAR2
164 );
165 PROCEDURE INITIALIZE_OPTIONS_REC( p_option_rec IN OUT NOCOPY lease_option_rec
166 , p_lease_context IN VARCHAR2
167 , x_return_status OUT NOCOPY VARCHAR2
168 );
169 PROCEDURE INITIALIZE_INSURANCE_REC( p_insurance_rec IN OUT NOCOPY lease_insurance_rec
170 , p_lease_context IN VARCHAR2
171 , x_return_status OUT NOCOPY VARCHAR2
172 );
173 PROCEDURE INITIALIZE_MILESTONE_REC( p_milestone_rec IN OUT NOCOPY lease_milestone_rec
174 , p_lease_context IN VARCHAR2
175 , x_return_status OUT NOCOPY VARCHAR2
176 );
177 PROCEDURE INIT_CONTACTS_REC( p_lease_contacts_rec IN OUT NOCOPY lease_contacts_rec
178 , p_lease_context IN VARCHAR2
179 , x_return_status OUT NOCOPY VARCHAR2
180 );
181 PROCEDURE INIT_TENANCIES_REC( p_lease_tenancies_rec IN OUT NOCOPY lease_tenancies_rec
182 , p_lease_context IN VARCHAR2
183 , x_return_status OUT NOCOPY VARCHAR2
184 );
185 PROCEDURE INITIALIZE_NOTES_REC( p_notes_rec IN OUT NOCOPY pn_lease_note_rec
186 , p_lease_context IN VARCHAR2
187 , x_return_status OUT NOCOPY VARCHAR2
188 );
189 PROCEDURE FINALIZE_RECORD( p_lease_id NUMBER
190 ,p_lease_commencement_date DATE
191 ,p_lease_context VARCHAR2
192 ,p_org_id NUMBER
193 ,p_api_name_full VARCHAR2
194 ,p_mode VARCHAR2
195 ,x_request_id OUT NOCOPY NUMBER
196 );
197
198 Cursor c_loc(p_tenancy_id Number) IS
199 Select customer_id,
200 location_id,
201 customer_site_use_id,
202 occupancy_date,
203 estimated_occupancy_date,
204 expiration_date,
205 recovery_space_std_code,
206 recovery_type_code,
207 fin_oblig_end_date,
208 allocated_area_pct
209 From pn_tenancies_all
210 Where tenancy_id = p_tenancy_id;
211 c_loc_rec c_loc%ROWTYPE;
212
213 PROCEDURE Create_Space_Assign( p_lease_tenancies_rec IN lease_tenancies_rec
214 , x_return_status OUT NOCOPY VARCHAR2
215 )
216 IS
217
218 l_assign_count NUMBER := 0;
219 l_dup_assign_count NUMBER := 0;
220 l_create_space_assign VARCHAR2(1) := 'N';
221 l_automatic_distrubution VARCHAR2(30) := NULL;
222 l_message VARCHAR2(30) := NULL;
223 l_action VARCHAR2(30) := NULL;
224
225 BEGIN
226
227 pvt_debug(g_pkg_name||'-Create_Space_Assign Begin',3);
228 x_return_status := fnd_api.g_ret_sts_success;
229
230 l_automatic_distrubution := NVL(pn_mo_cache_utils.get_profile_value('PN_AUTOMATIC_SPACE_DISTRIBUTION'
231 , p_lease_tenancies_rec.org_id)
232 ,'N');
233
234 pvt_debug('-l_automatic_distrubution '|| l_automatic_distrubution,3);
235 pvt_debug('-p_cust_acnt_id '|| p_lease_tenancies_rec.customer_id,3);
236 pvt_debug('-p_loc_id '|| p_lease_tenancies_rec.location_id,3);
237 pvt_debug('-p_assgn_str_dt '|| NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date) ,3);
238 pvt_debug('-p_assgn_end_dt '|| p_lease_tenancies_rec.expiration_date,3);
239
240 pvt_debug(g_pkg_name||'-Calling get_dup_cust_assign_count Begin',3);
241 pn_space_assign_cust_pkg.get_dup_cust_assign_count
242 (
243 p_cust_acnt_id => p_lease_tenancies_rec.customer_id
244 ,p_loc_id => p_lease_tenancies_rec.location_id
245 ,p_assgn_str_dt => NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date)
246 ,p_assgn_end_dt => p_lease_tenancies_rec.expiration_date
247 ,p_assign_count => l_assign_count
248 ,p_dup_assign_count => l_dup_assign_count
249 );
250 pvt_debug(g_pkg_name||'-Calling get_dup_cust_assign_count End',3);
251
252 IF NVL(l_assign_count, 0) = 0 THEN
253 l_create_space_assign := 'Y';
254
255 ELSIF NVL(l_assign_count, 0) >= 1 AND NVL(l_dup_assign_count, 0) = 0 THEN
256
257 IF l_automatic_distrubution = 'Y' THEN
258
259 IF p_lease_tenancies_rec.allow_overlap_space_asg = 'Y' THEN
260 l_create_space_assign := 'Y';
261
262 ELSIF p_lease_tenancies_rec.allow_overlap_space_asg = 'N' THEN -- No
263 l_create_space_assign := 'N';
264 fnd_message.set_name('PN', 'PN_SHARE_OVRLAP_CUST_SPASGN');
265 fnd_msg_pub.ADD;
266 RAISE fnd_api.g_exc_error;
267 END IF;
268
269 ELSE
270 l_create_space_assign := 'Y';
271 END IF;
272
273 ELSIF NVL(l_dup_assign_count, 0) >= 1 THEN
274
275 IF p_lease_tenancies_rec.allow_dup_space_asg = 'Y' THEN
276 l_create_space_assign := 'Y';
277 ELSE
278 l_create_space_assign := 'N';
279 fnd_message.set_name('PN', 'PN_DUP_SPC_ASSIGN');
280 fnd_msg_pub.ADD;
281 RAISE fnd_api.g_exc_error;
282 END IF;
283
284 END IF;
285
286 IF l_create_space_assign = 'Y' THEN
287
288 pvt_debug(g_pkg_name||'-Calling create_auto_space_assign Begin',3);
289 pn_tenancies_pkg.create_auto_space_assign
290 (
291 p_location_id => p_lease_tenancies_rec.location_id
292 ,p_lease_id => p_lease_tenancies_rec.lease_id
293 ,p_customer_id => p_lease_tenancies_rec.customer_id
294 ,p_cust_site_use_id => p_lease_tenancies_rec.customer_site_use_id
295 ,p_cust_assign_start_dt => NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date)
296 ,p_cust_assign_end_dt => p_lease_tenancies_rec.expiration_date
297 ,p_recovery_space_std_code => p_lease_tenancies_rec.recovery_space_std_code
298 ,p_recovery_type_code => p_lease_tenancies_rec.recovery_type_code
299 ,p_fin_oblig_end_date => p_lease_tenancies_rec.fin_oblig_end_date
300 ,p_allocated_pct => p_lease_tenancies_rec.allocated_area_pct
301 ,p_tenancy_id => p_lease_tenancies_rec.tenancy_id
302 ,p_org_id => p_lease_tenancies_rec.org_id
303 ,p_action => l_action
304 ,p_msg => l_message
305 );
306 pvt_debug(g_pkg_name||'-Calling create_auto_space_assign End',3);
307
308 IF l_action = 'OVERLAP' THEN --Stop
309 fnd_message.set_name('PN', 'PN_TEN_OVERLAP_EXISTING_ASSIGN');
310 fnd_msg_pub.ADD;
311 RAISE fnd_api.g_exc_error;
312
313 ELSIF l_action = 'NOVACANT' THEN --Stop
314
315 IF p_lease_tenancies_rec.allow_zero_space_asg = 'N' THEN
316 fnd_message.set_name('PN', 'PN_ALL_SPACE_ASSIGNED');
317 fnd_msg_pub.ADD;
318 RAISE fnd_api.g_exc_error;
319 END IF;
320
321 ELSIF l_action = 'DUP_ASSIGN' THEN --Stop
322 fnd_message.set_name('PN', 'PN_SPASGN_CUSTOMER_OVRLAP_MSG');
323 fnd_msg_pub.ADD;
324 RAISE fnd_api.g_exc_error;
325 END IF;
326
327 END IF;
328 pvt_debug(g_pkg_name||'-Create_Space_Assign End',3);
329
330 EXCEPTION
331 WHEN fnd_api.g_exc_error THEN
332 x_return_status := fnd_api.g_ret_sts_error;
333 pvt_debug(g_pkg_name||'-Create_Space_Assign.G_EXC_ERROR'||SQLERRM,3);
334
335 WHEN fnd_api.g_exc_unexpected_error THEN
336 x_return_status := fnd_api.g_ret_sts_unexp_error;
337 pvt_debug(g_pkg_name||'-Create_Space_assign.G_RET_STS_UNEXP_ERROR'||SQLERRM,3);
338
339 WHEN OTHERS THEN
340 x_return_status := fnd_api.g_ret_sts_error;
341 pvt_debug(g_pkg_name||'-Create_Space_Assign :When Others '||SQLERRM,3);
342 END Create_Space_Assign;
343
344 PROCEDURE Update_Space_Assign( p_lease_tenancies_rec IN lease_tenancies_rec
345 , x_return_status OUT NOCOPY VARCHAR2
346 )
347 IS
348
349 l_assign_count NUMBER := 0;
350 l_dup_assign_count NUMBER := 0;
351 l_message VARCHAR2(30) := NULL;
352 l_action VARCHAR2(30) := NULL;
353
354 BEGIN
355
356 pvt_debug(g_pkg_name||'-Update_Space_Assign Begin',3);
357 x_return_status := fnd_api.g_ret_sts_success;
358
359 pvt_debug('-p_cust_acnt_id '|| p_lease_tenancies_rec.customer_id,3);
360 pvt_debug('-p_loc_id ' || p_lease_tenancies_rec.location_id,3);
361 pvt_debug('-p_assgn_str_dt ' || NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date) ,3);
362 pvt_debug('-p_assgn_end_dt '|| p_lease_tenancies_rec.expiration_date,3);
363
364 pvt_debug(g_pkg_name||'-Calling get_dup_cust_assign_count Begin',3);
365 pn_space_assign_cust_pkg.get_dup_cust_assign_count
366 (
367 p_cust_acnt_id => p_lease_tenancies_rec.customer_id
368 ,p_loc_id => p_lease_tenancies_rec.location_id
369 ,p_assgn_str_dt => NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date)
370 ,p_assgn_end_dt => p_lease_tenancies_rec.expiration_date
371 ,p_assign_count => l_assign_count
372 ,p_dup_assign_count => l_dup_assign_count
373 );
374 pvt_debug(g_pkg_name||'-Calling get_dup_cust_assign_count End',3);
375
376 IF p_lease_tenancies_rec.customer_id IS NOT NULL and p_lease_tenancies_rec.customer_id <> pn_lease_utils.g_pn_miss_num AND
377 p_lease_tenancies_rec.customer_id <> NVL(c_loc_rec.customer_id,-9999) AND
378 p_lease_tenancies_rec.allow_dup_space_asg = 'N' AND
379 NVL(l_dup_assign_count, 0) > 1 THEN
380 fnd_message.set_name('PN', 'PN_DUP_SPC_ASSIGN');
381 fnd_msg_pub.ADD;
382 RAISE fnd_api.g_exc_error;
383 END IF;
384
385 pvt_debug(g_pkg_name||'-Calling Update_auto_space_assign Begin',3);
386
387 pn_tenancies_pkg.update_auto_space_assign
388 (
389 p_location_id => p_lease_tenancies_rec.location_id
390 ,p_lease_id => p_lease_tenancies_rec.lease_id
391 ,p_customer_id => p_lease_tenancies_rec.customer_id
392 ,p_cust_site_use_id => p_lease_tenancies_rec.customer_site_use_id
393 ,p_cust_assign_start_dt => NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date)
394 ,p_cust_assign_end_dt => p_lease_tenancies_rec.expiration_date
395 ,p_recovery_space_std_code => p_lease_tenancies_rec.recovery_space_std_code
396 ,p_recovery_type_code => p_lease_tenancies_rec.recovery_type_code
397 ,p_fin_oblig_end_date => p_lease_tenancies_rec.fin_oblig_end_date
398 ,p_allocated_pct => p_lease_tenancies_rec.allocated_area_pct
399 ,p_tenancy_id => p_lease_tenancies_rec.tenancy_id
400 ,p_org_id => p_lease_tenancies_rec.org_id
401 ,p_location_id_old => c_loc_rec.location_id
402 ,p_customer_id_old => c_loc_rec.customer_id
403 ,p_cust_site_use_id_old => c_loc_rec.customer_site_use_id
404 ,p_cust_assign_start_dt_old => NVL(c_loc_rec.Occupancy_Date,c_loc_rec.Estimated_Occupancy_Date)
405 ,p_cust_assign_end_dt_old => c_loc_rec.Expiration_Date
406 ,p_recovery_space_std_code_old => c_loc_rec.recovery_space_std_code
407 ,p_recovery_type_code_old => c_loc_rec.recovery_type_code
408 ,p_fin_oblig_end_date_old => c_loc_rec.Fin_Oblig_End_Date
409 ,p_allocated_pct_old => c_loc_rec.allocated_area_pct
410 ,p_action => l_action
411 ,p_msg => l_message
412 );
413 pvt_debug(g_pkg_name||'-Calling updaate_auto_space_assign End',3);
414
415 IF l_action = 'R' THEN --Regenerate
416 fnd_message.set_name('PN', 'PN_REC_AUTO_SPC_AREA_CLS_REG');
417 fnd_msg_pub.ADD;
418
419 ELSIF l_action = 'S' THEN --Stop
420 fnd_message.set_name('PN', 'PN_REC_AUTO_SPC_NO_CHG_DATES');
421 fnd_msg_pub.ADD;
422 RAISE fnd_api.g_exc_error;
423
424 ELSIF l_action = 'OVERLAP' THEN --Stop
425 fnd_message.set_name('PN', 'PN_TEN_OVERLAP_EXISTING_ASSIGN');
426 fnd_msg_pub.ADD;
427 RAISE fnd_api.g_exc_error;
428
429 ELSIF l_action = 'NOVACANT' THEN --Stop
430
431 IF p_lease_tenancies_rec.allow_zero_space_asg = 'N' THEN
432 fnd_message.set_name('PN', 'PN_ALL_SPACE_ASSIGNED');
433 fnd_msg_pub.ADD;
434 RAISE fnd_api.g_exc_error;
435 END IF;
436
437 ELSIF l_action = 'DUP_ASSIGN' THEN --Stop
438 fnd_message.set_name('PN', 'PN_SPASGN_CUSTOMER_OVRLAP_MSG');
439 fnd_msg_pub.ADD;
440 RAISE fnd_api.g_exc_error;
441 END IF;
442
443 pvt_debug(g_pkg_name||'-Update_Space_Assign End',3);
444
445 EXCEPTION
446 WHEN fnd_api.g_exc_error THEN
447 x_return_status := fnd_api.g_ret_sts_error;
448 pvt_debug(g_pkg_name||'-Update_Space_Assign.G_EXC_ERROR'||SQLERRM,3);
449
450 WHEN fnd_api.g_exc_unexpected_error THEN
451 x_return_status := fnd_api.g_ret_sts_unexp_error;
452 pvt_debug(g_pkg_name||'-Update_Space_assign.G_RET_STS_UNEXP_ERROR'||SQLERRM,3);
453
454 WHEN OTHERS THEN
455 x_return_status := fnd_api.g_ret_sts_error;
456 pvt_debug(g_pkg_name||'-Update_Space_Assign :When Others '||SQLERRM,3);
457 END Update_Space_Assign;
458
459 PROCEDURE validate_tenancies_tbl (
460 p_lease_tenancies_tbl IN OUT NOCOPY lease_tenancies_tbl
461 , p_lease_rec IN lease_rec
462 , p_validate IN VARCHAR2
463 -- , p_lease_class_code IN VARCHAR2
464 -- , p_lease_commencement_date IN DATE
465 -- , p_lease_termination_date IN DATE
466 -- , p_parent_lease_id IN NUMBER
467 , p_lease_context IN VARCHAR2
468 , p_operation IN VARCHAR2
469 , x_return_status OUT NOCOPY VARCHAR2)
470 IS
471 l_tenancy_record_cnt NUMBER := pn_lease_utils.g_pn_miss_num;
472 l_lease_tenancies_rec lease_tenancies_rec;
473 l_return_status VARCHAR2 (30) := NULL;
474 l_api_name CONSTANT VARCHAR2 (30) := p_operation;
475 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name|| '.'|| l_api_name;
476 l_err_msg VARCHAR2 (30);
477 l_asgn_mode VARCHAR2 (30);
478 l_disp_msg VARCHAR2(1);
479 l_future VARCHAR2(1);
480 l_available_vacant_area BOOLEAN := FALSE;
481 l_loc_check_end_date DATE;
482 l_error_flag VARCHAR2(1);
483 BEGIN
484 ----------------------dbms_output.put_line('In VALIDATE_TENANCIES_TBL procedure of PVT package');--Rupak
485 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:Procedure Begin',3);
486
487 -- Standard start of API savepoint
488 SAVEPOINT validate_tenancies_tbl;
489 -- Initialize the return status.
490 x_return_status := fnd_api.g_ret_sts_success;
491 l_tenancy_record_cnt := p_lease_tenancies_tbl.COUNT;
492 IF l_tenancy_record_cnt>0
493 THEN
494
495 FOR i IN 1 .. l_tenancy_record_cnt
496 LOOP
497 BEGIN
498 l_error_flag:='N';
499 p_lease_tenancies_tbl (i).error_flag:='N';
500 --Tenancy Usage Type
501 IF ( ( p_lease_tenancies_tbl (i).tenancy_usage_lookup_code IS NOT NULL
502 AND p_lease_tenancies_tbl (i).tenancy_usage_lookup_code <>
503 pn_lease_utils.g_pn_miss_char)
504 OR ( p_lease_tenancies_tbl (i).tenancy_usage_lookup_name IS NOT NULL
505 AND p_lease_tenancies_tbl (i).tenancy_usage_lookup_name <>
506 pn_lease_utils.g_pn_miss_char)
507 )
508 THEN
509 pn_lease_utils.get_lookup_code
510 (p_parameter_name => l_param_tenancy_usage
511 , p_operation => p_operation
512 , p_lookup_meaning => p_lease_tenancies_tbl (i).tenancy_usage_lookup_name
513 , p_lookup_type => l_lease_tenancy_usage_lookup
514 , x_lookup_type_code => p_lease_tenancies_tbl (i).tenancy_usage_lookup_code
515 , x_return_status => x_return_status);
516
517 ----------------------dbms_output.put_line('TENANCY_USAGE_LOOKUP_CODE:' ||p_lease_tenancies_tbl(i).tenancy_usage_lookup_code);--Rupak
518 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:TENANCY_USAGE_LOOKUP_CODE:'||p_lease_tenancies_tbl(i).tenancy_usage_lookup_code,3);
519
520 IF (x_return_status = fnd_api.g_ret_sts_error)
521 THEN
522 l_error_flag:='Y';
523 p_lease_tenancies_tbl (i).error_flag:='Y';
524 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
525 fnd_message.set_token ('LOOKUP_TYPE', l_lease_tenancy_usage_lookup);
526 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_tenancies_tbl (i).tenancy_usage_lookup_name));
527 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_tenancies_tbl (i).tenancy_usage_lookup_code));
528 fnd_msg_pub.ADD;
529 RAISE fnd_api.g_exc_error;
530 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
531 THEN
532 l_error_flag:='Y';
533 p_lease_tenancies_tbl (i).error_flag:='Y';
534 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
535 fnd_message.set_token ('COLUMN', SUBSTR(l_param_tenancy_usage,3));
536 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'||SQLERRM);
537 fnd_msg_pub.ADD;
538 RAISE fnd_api.g_exc_unexpected_error;
539 END IF;
540 ELSE
541 IF (trim(p_operation) <> 'UPDATE_TENANCY') THEN
542 /* pn_lease_utils.add_null_parameter_msg
543 (p_token_apiname => l_api_name_full
544 , p_token_nullparam => 'Tenancy_Usage');*/
545 l_error_flag:='Y';
546 p_lease_tenancies_tbl (i).error_flag:='Y';
547 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
548 fnd_message.set_token ('API_NAME', l_api_name_full);
549 fnd_message.set_token ('NULL_PARAM', 'Tenancy_Usage');
550 fnd_msg_pub.ADD;
551 RAISE fnd_api.g_exc_error;
552 END IF;
553 END IF;
554
555
556
557 --Validation 2: Location Code
558 --Lease Location
559 IF ( ( p_lease_tenancies_tbl (i).location_code IS NOT NULL
560 AND p_lease_tenancies_tbl (i).location_code <> pn_lease_utils.g_pn_miss_char)
561 OR ( p_lease_tenancies_tbl (i).location_id IS NOT NULL
562 AND p_lease_tenancies_tbl (i).location_id <> pn_lease_utils.g_pn_miss_num)
563 )
564 THEN
565
566 pn_lease_utils.get_location_id
567 (p_parameter_name => l_param_tenancy_location
568 , p_location_code => p_lease_tenancies_tbl (i).location_code
569 , p_operation => p_operation
570 , p_org_id => p_lease_tenancies_tbl (i).org_id
571 , p_lease_class_code => p_lease_rec.lease_class_code
572 , p_parent_lease_id => p_lease_rec.parent_lease_id
573 , p_lease_comm_date => p_lease_rec.lease_commencement_date
574 , p_lease_term_date => p_lease_rec.lease_termination_date
575 , x_return_status => l_return_status
576 , x_location_id => p_lease_tenancies_tbl (i).location_id);
577
578 ----------------------dbms_output.put_line('LOCATION_ID:' ||p_lease_tenancies_tbl(i).location_id);--Rupak
579 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:LOCATION_ID:'||p_lease_tenancies_tbl(i).location_id,3);
580
581 IF (l_return_status = fnd_api.g_ret_sts_error)
582 THEN
583 l_error_flag:='Y';
584 p_lease_tenancies_tbl (i).error_flag:='Y';
585 fnd_message.set_name ('PN', 'PN_INVALID_LOCATION');
586 fnd_message.set_token ('LOC_ID', get_miss_num_decode(p_lease_tenancies_tbl (i).location_id));
587 fnd_message.set_token ('LOC_CODE',get_miss_char_decode(p_lease_tenancies_tbl (i).location_code));
588 fnd_msg_pub.ADD;
589 RAISE fnd_api.g_exc_error;
590 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
591 THEN
592 l_error_flag:='Y';
593 p_lease_tenancies_tbl (i).error_flag:='Y';
594 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
595 fnd_message.set_token ('COLUMN', SUBSTR(l_param_tenancy_location,3));
596 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'||SQLERRM);
597 fnd_msg_pub.ADD;
598 RAISE fnd_api.g_exc_unexpected_error;
599 END IF;
600 ELSE
601 IF (trim(p_operation) <> 'UPDATE_TENANCY') THEN
602 /*pn_lease_utils.add_null_parameter_msg
603 (p_token_apiname => l_api_name_full
604 , p_token_nullparam => 'Tenancy_Location');*/
605 l_error_flag:='Y';
606 p_lease_tenancies_tbl (i).error_flag:='Y';
607 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
608 fnd_message.set_token ('API_NAME', l_api_name_full);
609 fnd_message.set_token ('NULL_PARAM', 'Tenancy_Location');
610 fnd_msg_pub.ADD;
611 RAISE fnd_api.g_exc_error;
612 END IF;
613 END IF;
614
615
616 --------- LOCATION Gaps Check
617
618 IF p_lease_rec.lease_class_code <> 'DIRECT'
619 THEN
620 l_asgn_mode := 'CUST';
621 ELSE
622 l_asgn_mode := 'NONE';
623 END IF;
624
625 IF ( ( (p_lease_rec.lease_commencement_date IS NOT NULL AND p_lease_rec.lease_commencement_date <> pn_lease_utils.g_pn_miss_date)
626 AND (p_lease_rec.lease_termination_date IS NOT NULL AND p_lease_rec.lease_termination_date <> pn_lease_utils.g_pn_miss_date)
627 )
628 AND
629 ( p_lease_tenancies_tbl (i).location_id IS NOT NULL AND p_lease_tenancies_tbl (i).location_id <> pn_lease_utils.g_pn_miss_num)
630 )
631
632 THEN
633 pnt_locations_pkg.Check_Location_Gaps(
634 p_loc_id => p_lease_tenancies_tbl (i).location_id
635 ,p_str_dt => p_lease_rec.lease_commencement_date
636 ,p_end_dt => p_lease_rec.lease_termination_date
637 ,p_asgn_mode => l_asgn_mode
638 ,p_err_msg => l_err_msg
639 );
640
641 IF l_err_msg IS NOT NULL THEN
642 fnd_message.set_name('PN','PN_LOC_DATES_NOT_CONT_EXIST');
643 fnd_message.set_token('LOCATION_CODE',get_miss_char_decode(p_lease_tenancies_tbl (i).location_code));
644 fnd_message.set_token('START_DATE',get_miss_date_decode(p_lease_rec.lease_commencement_date));
645 fnd_message.set_token('END_DATE',get_miss_date_decode(p_lease_rec.lease_termination_date));
646 l_error_flag:='Y';
647 p_lease_tenancies_tbl (i).error_flag:='Y';
648 fnd_msg_pub.ADD;
649 RAISE fnd_api.g_exc_error;
650 END IF;
651
652 END IF;
653
654
655
656
657 IF (trim(p_operation) <> 'UPDATE_TENANCY') THEN
658 IF p_lease_tenancies_tbl (i).location_id = pn_lease_utils.g_pn_miss_num
659 THEN
660 p_lease_tenancies_tbl (i).location_id := NULL;
661 END IF;
662 END IF;
663
664 IF ( ( p_lease_tenancies_tbl (i).estimated_occupancy_date IS NOT NULL
665 AND p_lease_tenancies_tbl (i).estimated_occupancy_date <> pn_lease_utils.g_pn_miss_date)
666 OR ( p_lease_tenancies_tbl (i).expiration_date IS NOT NULL
667 AND p_lease_tenancies_tbl (i).expiration_date <> pn_lease_utils.g_pn_miss_date)
668 )
669 THEN
670
671 pn_lease_utils.validate_tenancy_dates
672 (p_parameter_name => l_param_tenancy_dates
673 , p_operation => p_operation
674 , p_estimated_occ_date => p_lease_tenancies_tbl (i).estimated_occupancy_date
675 , p_actual_occ_date => p_lease_tenancies_tbl (i).occupancy_date
676 , p_tenancy_exp_date => p_lease_tenancies_tbl (i).expiration_date
677 , p_lease_comm_date => p_lease_rec.lease_commencement_date
678 , p_lease_term_date => p_lease_rec.lease_termination_date
679 , x_return_status => x_return_status
680 );
681
682 --------------dbms_output.put_line(' x_return_status after pn_lease_utils.validate_tenancy_dates ' || x_return_status);--Rupak
683 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:X_RETURN_STATUS for pn_lease_utils.VALIDATE_TENANCY_DATES '||x_return_status,3);
684
685 IF (x_return_status = fnd_api.g_ret_sts_error)
686 THEN
687 ----------------------dbms_output.put_line('H:fnd_api.g_ret_sts_error' || x_return_status);--Rupak
688 l_error_flag:='Y';
689 p_lease_tenancies_tbl (i).error_flag:='Y';
690 fnd_message.set_name ('PN', 'PN_INV_ESTOCC_DATE');
691 fnd_message.set_token ('ESTOCC_DATE',get_miss_date_decode(p_lease_tenancies_tbl (i).estimated_occupancy_date));
692 fnd_message.set_token ('OCCP_DATE',get_miss_date_decode(p_lease_tenancies_tbl (i).occupancy_date));
693 fnd_message.set_token ('TRMN_DATE',get_miss_date_decode(p_lease_tenancies_tbl (i).expiration_date));
694 fnd_msg_pub.ADD;
695 RAISE fnd_api.g_exc_error;
696 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
697 THEN
698 l_error_flag:='Y';
699 p_lease_tenancies_tbl (i).error_flag:='Y';
700 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
701 fnd_message.set_token ('COLUMN', SUBSTR(l_param_tenancy_dates,3));
702 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'||SQLERRM);
703 fnd_msg_pub.ADD;
704 RAISE fnd_api.g_exc_unexpected_error;
705 END IF;
706 ELSE
707 IF (trim(p_operation) <> 'UPDATE_TENANCY') THEN
708 /* pn_lease_utils.add_null_parameter_msg(p_token_apiname => l_api_name_full
709 , p_token_nullparam => 'Tenancy_Dates'
710 );*/
711 l_error_flag:='Y';
712 p_lease_tenancies_tbl (i).error_flag:='Y';
713 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
714 fnd_message.set_token ('API_NAME', l_api_name_full);
715 fnd_message.set_token ('NULL_PARAM', 'Tenancy_Dates');
716 fnd_msg_pub.ADD;
717 RAISE fnd_api.g_exc_error;
718 /*ELSIF(p_lease_tenancies_tbl (i).occupancy_date IS NULL AND trim(p_operation) = 'UPDATE_TENANCY') THEN
719 --------------dbms_output.put_line('Inside Occ:'||p_lease_tenancies_tbl (i).occupancy_date);
720 p_lease_tenancies_tbl (i).occupancy_date := NULL;*/
721 END IF;
722 END IF;
723
724 -- VALIDATE customer_id
725 IF p_lease_rec.lease_class_code <> 'DIRECT'
726 THEN
727
728 IF ( ( p_lease_tenancies_tbl (i).customer_name IS NOT NULL
729 AND p_lease_tenancies_tbl (i).customer_name <> pn_lease_utils.g_pn_miss_char)
730 OR ( p_lease_tenancies_tbl (i).customer_id IS NOT NULL
731 AND p_lease_tenancies_tbl (i).customer_id <> pn_lease_utils.g_pn_miss_num)
732 -- OR ( p_lease_tenancies_tbl (i).customer_site_use_id IS NOT NULL
733 -- AND p_lease_tenancies_tbl (i).customer_site_use_id <>
734 -- pn_lease_utils.g_pn_miss_num)
735
736 )
737 THEN
738
739 pn_lease_utils.get_tenancy_cust_id(
740 p_parameter_name => l_param_tenancy_customer
741 , p_operation => p_operation
742 , p_customer_name => p_lease_tenancies_tbl (i).customer_name
743 , p_org_id => g_org_id--p_lease_tenancies_tbl (i).org_id
744 , x_customer_id => p_lease_tenancies_tbl (i).customer_id
745 , x_customer_site_use_id => p_lease_tenancies_tbl (i).customer_site_use_id
746 , x_return_status => x_return_status
747 );
748 ----------------------dbms_output.put_line(' p_lease_tenancies_tbl (i).customer_id :'||p_lease_tenancies_tbl (i).customer_id||x_return_status );--Rupak
749 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:Tenancy Customer ID Returned:'||p_lease_tenancies_tbl (i).customer_id,3);
750
751 IF (x_return_status = fnd_api.g_ret_sts_error)
752 THEN
753 l_error_flag:='Y';
754 p_lease_tenancies_tbl (i).error_flag:='Y';
755 fnd_message.set_name ('PN', 'PN_TENANCY_CUSTOMER');
756 fnd_message.set_token ('CUSTOMER_NAME', get_miss_char_decode(p_lease_tenancies_tbl (i).customer_name));
757 fnd_message.set_token ('CUSTOMER_ID', get_miss_num_decode(p_lease_tenancies_tbl (i).customer_id));
758 fnd_msg_pub.ADD;
759 RAISE fnd_api.g_exc_error;
760 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
761 THEN
762 l_error_flag:='Y';
763 p_lease_tenancies_tbl (i).error_flag:='Y';
764 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
765 fnd_message.set_token ('COLUMN', SUBSTR(l_param_tenancy_customer,3));
766 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'||SQLERRM);
767 fnd_msg_pub.ADD;
768 RAISE fnd_api.g_exc_unexpected_error;
769 END IF;
770 --ELSE
771 /*IF (trim(p_operation) <> 'UPDATE_TENANCY') THEN
772 l_error_flag:='Y';
773 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
774 fnd_message.set_token ('API_NAME', l_api_name_full);
775 fnd_message.set_token ('NULL_PARAM', 'Tenancy_Customer_id');
776 fnd_msg_pub.ADD;
777 RAISE fnd_api.g_exc_error;
778 END IF;*/
779
780 END IF;
781 ----------------------dbms_output.put_line('Validate : Tenancy:1');--Rupak
782 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:After Tenancy Customer ID validation',3);
783 IF ( ( p_lease_tenancies_tbl (i).recovery_type_code IS NOT NULL
784 AND p_lease_tenancies_tbl (i).recovery_type_code <> pn_lease_utils.g_pn_miss_char)
785 OR ( p_lease_tenancies_tbl (i).recovery_type_meaning IS NOT NULL
786 AND p_lease_tenancies_tbl (i).recovery_type_meaning <> pn_lease_utils.g_pn_miss_char)
787 ) THEN
788
789 -- Validate Tenancy Lookup Code
790 pn_lease_utils.get_lookup_code (
791 p_parameter_name => l_param_tenancy_recovery_type
792 , p_operation => p_operation
793 , p_lookup_meaning => p_lease_tenancies_tbl (i).recovery_type_meaning
794 , p_lookup_type => l_tenancy_recovery_lookup_type
795 , x_lookup_type_code => p_lease_tenancies_tbl (i).recovery_type_code
796 , x_return_status => x_return_status
797 );
798 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:RECOVERY_TYPE_CODE:'|| p_lease_tenancies_tbl (i).recovery_type_code,3);
799 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
800 l_error_flag:='Y';
801 p_lease_tenancies_tbl (i).error_flag:='Y';
802 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
803 fnd_message.set_token ('LOOKUP_TYPE', l_tenancy_recovery_lookup_type);
804 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_tenancies_tbl (i).recovery_type_meaning));
805 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_tenancies_tbl (i).recovery_type_code));
806 fnd_msg_pub.ADD;
807 RAISE fnd_api.g_exc_error;
808 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
809 l_error_flag:='Y';
810 p_lease_tenancies_tbl (i).error_flag:='Y';
811 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
812 fnd_message.set_token ('COLUMN', SUBSTR(l_param_tenancy_recovery_type,3));
813 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'||SQLERRM);
814 fnd_msg_pub.ADD;
815 RAISE fnd_api.g_exc_unexpected_error;
816 END IF;
817 /*ELSE
818 IF (trim(p_operation) <> 'UPDATE_TENANCY') THEN
819 l_error_flag:='Y';
820 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
821 fnd_message.set_token ('API_NAME', l_api_name_full);
822 fnd_message.set_token ('NULL_PARAM', 'Tenancy_Recovery_type');
823 fnd_msg_pub.ADD;
824 RAISE fnd_api.g_exc_error;
825 END IF;*/
826 END IF;
827 ----------------------dbms_output.put_line('Validate : Tenancy:2');--Rupak
828 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:After Validating RECOVERY_TYPE_CODE',3);
829
830 IF ( ( p_lease_tenancies_tbl (i).recovery_space_std_code IS NOT NULL
831 AND p_lease_tenancies_tbl (i).recovery_space_std_code <> pn_lease_utils.g_pn_miss_char)
832 OR ( p_lease_tenancies_tbl (i).recovery_space_std_meaning IS NOT NULL
833 AND p_lease_tenancies_tbl (i).recovery_space_std_meaning <> pn_lease_utils.g_pn_miss_char)
834 )
835 THEN
836
837 -- Validate Tenancy Recovery Space Std Lookup Code
838 pn_lease_utils.get_lookup_code (
839 p_parameter_name => l_param_recovery_space_std
840 , p_operation => p_operation
841 , p_lookup_meaning => p_lease_tenancies_tbl (i).recovery_space_std_meaning
842 , p_lookup_type => l_recovery_space_std_lkp_type
843 , x_lookup_type_code => p_lease_tenancies_tbl (i).recovery_space_std_code
844 , x_return_status => x_return_status
845 );
846 ----------------------dbms_output.put_line ( 'RECOVERY_SPACE_STD_CODE: '|| p_lease_tenancies_tbl (i).recovery_space_std_code);--Rupak
847 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:RECOVERY_SPACE_STD_CODE:'|| p_lease_tenancies_tbl (i).recovery_space_std_code,3);
848 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
849 l_error_flag:='Y';
850 p_lease_tenancies_tbl (i).error_flag:='Y';
851 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
852 fnd_message.set_token ('LOOKUP_TYPE', l_recovery_space_std_lkp_type);
853 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_tenancies_tbl (i).recovery_space_std_meaning));
854 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_tenancies_tbl (i).recovery_space_std_code));
855 fnd_msg_pub.ADD;
856 RAISE fnd_api.g_exc_error;
857 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
858 l_error_flag:='Y';
859 p_lease_tenancies_tbl (i).error_flag:='Y';
860 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
861 fnd_message.set_token ('COLUMN', SUBSTR(l_param_recovery_space_std,3));
862 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'||SQLERRM);
863 fnd_msg_pub.ADD;
864 RAISE fnd_api.g_exc_unexpected_error;
865 END IF;
866 /*ELSE
867 IF (trim(p_operation) <> 'UPDATE_TENANCY') THEN
868 l_error_flag:='Y';
869 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
870 fnd_message.set_token ('API_NAME', l_api_name_full);
871 fnd_message.set_token ('NULL_PARAM', 'Tenancy_Recovery_Space_Std');
872 fnd_msg_pub.ADD;
873 RAISE fnd_api.g_exc_error;
874 END IF;*/
875 END IF;
876 ----------------------dbms_output.put_line('Validate : Tenancy:3');--Rupak
877
878 ELSE
879 p_lease_tenancies_tbl (i).customer_name := NULL;
880 p_lease_tenancies_tbl (i).customer_id := NULL;
881 p_lease_tenancies_tbl (i).customer_site_use_id := NULL;
882 p_lease_tenancies_tbl (i).recovery_type_code := NULL;
883 p_lease_tenancies_tbl (i).recovery_space_std_code := NULL;
884 p_lease_tenancies_tbl (i).fin_oblig_end_date := NULL;
885 END IF;
886 ----------------------dbms_output.put_line('Validate : Tenancy:4');--Rupak
887 /*****************************/
888 IF p_lease_rec.lease_class_code <> 'DIRECT'
889 THEN
890
891 ----------------------dbms_output.put_line('Before calling pnp_util_func.validate_vacant_area' );
892 pnp_util_func.validate_vacant_area(
893 p_location_id => p_lease_tenancies_tbl (i).location_id
894 , p_st_date => NVL(p_lease_tenancies_tbl (i).occupancy_date,p_lease_tenancies_tbl (i).estimated_occupancy_date)
895 , p_end_dt => p_lease_tenancies_tbl (i).expiration_date
896 , p_assignable_area => p_lease_tenancies_tbl (i).lease_assignable_area
897 , p_old_allocated_area => p_lease_tenancies_tbl (i).lease_assignable_area
898 , p_new_allocated_area => p_lease_tenancies_tbl (i).allocated_area
899 , p_old_allocated_area_pct => p_lease_tenancies_tbl (i).lease_assignable_area
900 , p_new_allocated_area_pct => p_lease_tenancies_tbl (i).allocated_area_pct
901 , p_display_message => l_disp_msg
902 , p_future => l_future
903 , p_available_vacant_area => l_available_vacant_area
904 );
905
906 ----------------------dbms_output.put_line('After calling pnp_util_func.validate_vacant_area l_disp_msg:'||l_disp_msg );--Rupak
907 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:After calling pnp_util_func.validate_vacant_area l_disp_msg:'||l_disp_msg,3);
908
909 IF NOT l_available_vacant_area THEN
910 fnd_message.set_name ('PN', 'PN_COMM_SPACE_ASSIGN');
911 fnd_message.set_token('LOCATION_CODE',get_miss_char_decode(p_lease_tenancies_tbl(i).location_code));
912 l_error_flag:='Y';
913 p_lease_tenancies_tbl (i).error_flag:='Y';
914 fnd_msg_pub.ADD;
915 RAISE fnd_api.g_exc_error;
916 END IF;
917
918 END IF;
919
920 ----------------------dbms_output.put_line('Validating fin_oblig_end_date' );--Rupak
921 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:To Validate the FIN_OBLIG_END_DATE and expiration_date',3);
922
923 IF (p_lease_tenancies_tbl (i).expiration_date IS NOT NULL AND p_lease_tenancies_tbl (i).expiration_date <> pn_lease_utils.g_pn_miss_date)
924 AND (p_lease_tenancies_tbl (i).fin_oblig_end_date IS NOT NULL AND p_lease_tenancies_tbl (i).fin_oblig_end_date <> pn_lease_utils.g_pn_miss_date)
925 AND (p_lease_tenancies_tbl (i).expiration_date > p_lease_tenancies_tbl (i).fin_oblig_end_date )
926 THEN
927 pn_lease_utils.validate_fin_oblig_end_date ( p_parameter_name => l_param_oblig_end_date
928 , p_operation => p_operation
929 , p_fin_oblig_end_date => p_lease_tenancies_tbl (i).fin_oblig_end_date
930 , p_tenancy_exp_date => p_lease_tenancies_tbl (i).expiration_date
931 , x_return_status => x_return_status
932 );
933 ----------------------dbms_output.put_line ( 'FIN_OBLIG_END_DATE: '|| p_lease_tenancies_tbl (i).fin_oblig_end_date);--Rupak
934 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:FIN_OBLIG_END_DATE:'||p_lease_tenancies_tbl (i).fin_oblig_end_date,3);
935 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:EXPIRATION_DATE:'||p_lease_tenancies_tbl (i).expiration_date,3);
936
937 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
938 l_error_flag:='Y';
939 p_lease_tenancies_tbl (i).error_flag:='Y';
940 fnd_message.set_name ('PN', 'PN_FIN_OBLIGATION_DATE');
941 fnd_message.set_token ('FIN_OBLIGATION_DATE', get_miss_date_decode(p_lease_tenancies_tbl (i).fin_oblig_end_date));
942 fnd_message.set_token ('EXPIRE_DATE', get_miss_date_decode(p_lease_tenancies_tbl (i).expiration_date));
943 fnd_msg_pub.ADD;
944 RAISE fnd_api.g_exc_error;
945 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
946 l_error_flag:='Y';
947 p_lease_tenancies_tbl (i).error_flag:='Y';
948 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
949 fnd_message.set_token ('COLUMN', SUBSTR(l_param_oblig_end_date,3));
950 fnd_message.set_token ('P_TEXT', l_api_name_full||'-'||SQLERRM);
951 fnd_msg_pub.ADD;
952 RAISE fnd_api.g_exc_unexpected_error;
953 END IF;
954 END IF;
955
956
957 IF p_lease_tenancies_tbl (i).expiration_date >= NVL(p_lease_tenancies_tbl (i).fin_oblig_end_date, p_lease_tenancies_tbl (i).expiration_date) THEN
958 l_loc_check_end_date := p_lease_tenancies_tbl (i).expiration_date;
959 ELSE
960 l_loc_check_end_date := p_lease_tenancies_tbl (i).fin_oblig_end_date;
961 END IF;
962
963 IF p_lease_rec.lease_class_code <> 'DIRECT'
964 THEN
965 l_asgn_mode := 'CUST';
966 ELSE
967 l_asgn_mode := 'NONE';
968 END IF;
969
970 pnt_locations_pkg.Check_Location_Gaps(
971 p_loc_id => p_lease_tenancies_tbl (i).location_id
972 ,p_str_dt => p_lease_tenancies_tbl (i).estimated_occupancy_date --l_est_occupancy_date
973 ,p_end_dt => l_loc_check_end_date
974 ,p_asgn_mode => l_asgn_mode
975 ,p_err_msg => l_err_msg
976 );
977 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:PNT_LOCATIONS_PKG.CHECK_LOCATION_GAPS Returned Status',3);
978
979 IF l_err_msg IS NOT NULL THEN
980 l_error_flag:='Y';
981 p_lease_tenancies_tbl (i).error_flag:='Y';
982 fnd_message.set_name('PN','PN_LOC_DATES_NOT_CONT_EXIST');
983 fnd_message.set_token('LOCATION_CODE',get_miss_char_decode(p_lease_tenancies_tbl (i).location_code));
984 fnd_message.set_token('START_DATE',get_miss_date_decode(p_lease_tenancies_tbl (i).estimated_occupancy_date));
985 fnd_message.set_token('END_DATE',l_loc_check_end_date);
986 fnd_msg_pub.ADD;
987 RAISE fnd_api.g_exc_error;
988 END IF;
989 /*******************************/
990 IF (RTRIM(LTRIM(p_operation)) = 'CREATE_TENANCIES') THEN
991 ----------------------dbms_output.put_line('Validate : Tenancy:6');--Rupak
992 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:Check for the Tenancy Atributes',3);
993 -- Validate the descriptive flexfields IN CREATE TENANCIES
994 /*IF NOT ( (p_lease_tenancies_tbl (i).attribute_category = pn_lease_utils.g_pn_miss_char)
995 AND (p_lease_tenancies_tbl (i).attribute1 = pn_lease_utils.g_pn_miss_char)
996 AND (p_lease_tenancies_tbl (i).attribute2 = pn_lease_utils.g_pn_miss_char)
997 AND (p_lease_tenancies_tbl (i).attribute3 = pn_lease_utils.g_pn_miss_char)
998 AND (p_lease_tenancies_tbl (i).attribute4 = pn_lease_utils.g_pn_miss_char)
999 AND (p_lease_tenancies_tbl (i).attribute5 = pn_lease_utils.g_pn_miss_char)
1000 AND (p_lease_tenancies_tbl (i).attribute6 = pn_lease_utils.g_pn_miss_char)
1001 AND (p_lease_tenancies_tbl (i).attribute7 = pn_lease_utils.g_pn_miss_char)
1002 AND (p_lease_tenancies_tbl (i).attribute8 = pn_lease_utils.g_pn_miss_char)
1003 AND (p_lease_tenancies_tbl (i).attribute9 = pn_lease_utils.g_pn_miss_char)
1004 AND (p_lease_tenancies_tbl (i).attribute10 = pn_lease_utils.g_pn_miss_char)
1005 AND (p_lease_tenancies_tbl (i).attribute11 = pn_lease_utils.g_pn_miss_char)
1006 AND (p_lease_tenancies_tbl (i).attribute12 = pn_lease_utils.g_pn_miss_char)
1007 AND (p_lease_tenancies_tbl (i).attribute13 = pn_lease_utils.g_pn_miss_char)
1008 AND (p_lease_tenancies_tbl (i).attribute14 = pn_lease_utils.g_pn_miss_char)
1009 AND (p_lease_tenancies_tbl (i).attribute15 = pn_lease_utils.g_pn_miss_char))
1010 THEN*/
1011 ----------------------dbms_output.put_line('IN TENANCY ATTRIBUTES');--Rupak
1012 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:Inside Tenancy Attributes',3);
1013 IF (p_lease_tenancies_tbl(i).attribute_category = pn_lease_utils.g_pn_miss_char)
1014 THEN
1015 p_lease_tenancies_tbl(i).attribute_category := NULL;
1016 -- ELSE
1017 -- p_lease_tenancies_tbl(i).attribute_category :=p_lease_tenancies_tbl (i).attribute_category;
1018 END IF;
1019
1020 IF (p_lease_tenancies_tbl (i).attribute1 = pn_lease_utils.g_pn_miss_char)
1021 THEN
1022 p_lease_tenancies_tbl(i).attribute1 := NULL;
1023 -- ELSE
1024 -- l_lease_tenancies_rec.attribute1 := p_lease_tenancies_tbl (i).attribute1;
1025 END IF;
1026
1027 IF (p_lease_tenancies_tbl (i).attribute2 = pn_lease_utils.g_pn_miss_char)
1028 THEN
1029 p_lease_tenancies_tbl(i).attribute2 := NULL;
1030 -- ELSE
1031 -- l_lease_tenancies_rec.attribute2 := p_lease_tenancies_tbl (i).attribute2;
1032 END IF;
1033
1034 IF (p_lease_tenancies_tbl (i).attribute3 = pn_lease_utils.g_pn_miss_char)
1035 THEN
1036 p_lease_tenancies_tbl(i).attribute3 := NULL;
1037 -- ELSE
1038 -- l_lease_tenancies_rec.attribute3 := p_lease_tenancies_tbl (i).attribute3;
1039 END IF;
1040
1041 IF (p_lease_tenancies_tbl (i).attribute4 = pn_lease_utils.g_pn_miss_char)
1042 THEN
1043 p_lease_tenancies_tbl(i).attribute4 := NULL;
1044 -- ELSE
1045 -- l_lease_tenancies_rec.attribute4 := p_lease_tenancies_tbl (i).attribute4;
1046 END IF;
1047
1048 IF (p_lease_tenancies_tbl (i).attribute5 = pn_lease_utils.g_pn_miss_char)
1049 THEN
1050 p_lease_tenancies_tbl(i).attribute5 := NULL;
1051 -- ELSE
1052 -- l_lease_tenancies_rec.attribute5 := p_lease_tenancies_tbl (i).attribute5;
1053 END IF;
1054
1055 IF (p_lease_tenancies_tbl (i).attribute6 = pn_lease_utils.g_pn_miss_char)
1056 THEN
1057 p_lease_tenancies_tbl(i).attribute6 := NULL;
1058 -- ELSE
1059 -- l_lease_tenancies_rec.attribute6 := p_lease_tenancies_tbl (i).attribute6;
1060 END IF;
1061
1062 IF (p_lease_tenancies_tbl (i).attribute7 = pn_lease_utils.g_pn_miss_char)
1063 THEN
1064 p_lease_tenancies_tbl(i).attribute7 := NULL;
1065 -- ELSE
1066 -- l_lease_tenancies_rec.attribute7 := p_lease_tenancies_tbl (i).attribute7;
1067 END IF;
1068
1069 IF (p_lease_tenancies_tbl (i).attribute8 = pn_lease_utils.g_pn_miss_char)
1070 THEN
1071 p_lease_tenancies_tbl(i).attribute8 := NULL;
1072 -- ELSE
1073 --l_lease_tenancies_rec.attribute8 := p_lease_tenancies_tbl (i).attribute8;
1074 END IF;
1075
1076 IF (p_lease_tenancies_tbl (i).attribute9 = pn_lease_utils.g_pn_miss_char)
1077 THEN
1078 p_lease_tenancies_tbl(i).attribute9 := NULL;
1079 -- ELSE
1080 -- l_lease_tenancies_rec.attribute9 := p_lease_tenancies_tbl (i).attribute9;
1081 END IF;
1082
1083 IF (p_lease_tenancies_tbl (i).attribute10 = pn_lease_utils.g_pn_miss_char)
1084 THEN
1085 p_lease_tenancies_tbl(i).attribute10 := NULL;
1086 -- ELSE
1087 -- l_lease_tenancies_rec.attribute10 := p_lease_tenancies_tbl (i).attribute10;
1088 END IF;
1089
1090 IF (p_lease_tenancies_tbl (i).attribute11 = pn_lease_utils.g_pn_miss_char)
1091 THEN
1092 p_lease_tenancies_tbl(i).attribute11 := NULL;
1093 -- ELSE
1094 -- l_lease_tenancies_rec.attribute11 := p_lease_tenancies_tbl (i).attribute11;
1095 END IF;
1096
1097 IF (p_lease_tenancies_tbl (i).attribute12 = pn_lease_utils.g_pn_miss_char)
1098 THEN
1099 p_lease_tenancies_tbl(i).attribute12 := NULL;
1100 -- ELSE
1101 -- l_lease_tenancies_rec.attribute12 := p_lease_tenancies_tbl (i).attribute12;
1102 END IF;
1103
1104 IF (p_lease_tenancies_tbl (i).attribute13 = pn_lease_utils.g_pn_miss_char)
1105 THEN
1106 p_lease_tenancies_tbl(i).attribute13 := NULL;
1107 -- ELSE
1108 -- l_lease_tenancies_rec.attribute13 := p_lease_tenancies_tbl (i).attribute13;
1109 END IF;
1110
1111 IF (p_lease_tenancies_tbl (i).attribute14 = pn_lease_utils.g_pn_miss_char)
1112 THEN
1113 p_lease_tenancies_tbl(i).attribute14 := NULL;
1114 -- ELSE
1115 -- l_lease_tenancies_rec.attribute14 := p_lease_tenancies_tbl (i).attribute14;
1116 END IF;
1117
1118 IF (p_lease_tenancies_tbl (i).attribute15 = pn_lease_utils.g_pn_miss_char)
1119 THEN
1120 p_lease_tenancies_tbl(i).attribute15 := NULL;
1121 -- ELSE
1122 -- l_lease_tenancies_rec.attribute15 := p_lease_tenancies_tbl (i).attribute15;
1123 END IF;
1124 IF (get_attribute_status('PN_LOCATIONS') > 0) THEN
1125 /* get_attribute_mandatory_status('PN_LOCATIONS'
1126 ,p_lease_tenancies_tbl(i).attribute1
1127 ,p_lease_tenancies_tbl(i).attribute2
1128 ,p_lease_tenancies_tbl(i).attribute3
1129 ,p_lease_tenancies_tbl(i).attribute4
1130 ,p_lease_tenancies_tbl(i).attribute5
1131 ,p_lease_tenancies_tbl(i).attribute6
1132 ,p_lease_tenancies_tbl(i).attribute7
1133 ,p_lease_tenancies_tbl(i).attribute8
1134 ,p_lease_tenancies_tbl(i).attribute9
1135 ,p_lease_tenancies_tbl(i).attribute10
1136 ,p_lease_tenancies_tbl(i).attribute11
1137 ,p_lease_tenancies_tbl(i).attribute12
1138 ,p_lease_tenancies_tbl(i).attribute13
1139 ,p_lease_tenancies_tbl(i).attribute14
1140 ,p_lease_tenancies_tbl(i).attribute15
1141 ,x_return_status
1142 );
1143 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
1144 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
1145 fnd_message.set_token ('API_NAME', l_api_name_full);
1146 fnd_message.set_token ('NULL_PARAM','Required attribute in Locations/Tenancies is NULL');
1147 fnd_msg_pub.ADD;
1148 RAISE fnd_api.g_exc_error;
1149 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
1150 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
1151 fnd_message.set_token ('API_NAME', l_api_name_full);
1152 fnd_message.set_token ('NULL_PARAM', 'Required attribute in Locations/Tenancies is NULL');
1153 fnd_msg_pub.ADD;
1154 RAISE fnd_api.g_exc_unexpected_error;
1155 ELSE*/
1156 IF NOT ((p_lease_tenancies_tbl(i).attribute_category = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute_category IS NULL)
1157 AND (p_lease_tenancies_tbl(i).attribute1 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute1 IS NULL)
1158 AND (p_lease_tenancies_tbl(i).attribute2 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute2 IS NULL)
1159 AND (p_lease_tenancies_tbl(i).attribute3 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute3 IS NULL)
1160 AND (p_lease_tenancies_tbl(i).attribute4 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute4 IS NULL)
1161 AND (p_lease_tenancies_tbl(i).attribute5 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute5 IS NULL)
1162 AND (p_lease_tenancies_tbl(i).attribute6 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute6 IS NULL)
1163 AND (p_lease_tenancies_tbl(i).attribute7 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute7 IS NULL)
1164 AND (p_lease_tenancies_tbl(i).attribute8 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute8 IS NULL)
1165 AND (p_lease_tenancies_tbl(i).attribute9 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute9 IS NULL)
1166 AND (p_lease_tenancies_tbl(i).attribute10 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute10 IS NULL)
1167 AND (p_lease_tenancies_tbl(i).attribute11 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute11 IS NULL)
1168 AND (p_lease_tenancies_tbl(i).attribute12 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute12 IS NULL)
1169 AND (p_lease_tenancies_tbl(i).attribute13 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute13 IS NULL)
1170 AND (p_lease_tenancies_tbl(i).attribute14 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute14 IS NULL)
1171 AND (p_lease_tenancies_tbl(i).attribute15 = pn_lease_utils.g_pn_miss_char OR p_lease_tenancies_tbl(i).attribute15 IS NULL)
1172 ) THEN
1173 pn_lease_utils.validate_desc_flex
1174 (p_api_name => 'PN_LEASE_PVT'|| '.'|| 'CREATE_TENANCIES'
1175 , p_application_short_name => 'PN'
1176 , p_desc_flex_name => 'PN_LOCATIONS'
1177 , p_desc_segment1 => p_lease_tenancies_tbl(i).attribute1
1178 , p_desc_segment2 => p_lease_tenancies_tbl(i).attribute2
1179 , p_desc_segment3 => p_lease_tenancies_tbl(i).attribute3
1180 , p_desc_segment4 => p_lease_tenancies_tbl(i).attribute4
1181 , p_desc_segment5 => p_lease_tenancies_tbl(i).attribute5
1182 , p_desc_segment6 => p_lease_tenancies_tbl(i).attribute6
1183 , p_desc_segment7 => p_lease_tenancies_tbl(i).attribute7
1184 , p_desc_segment8 => p_lease_tenancies_tbl(i).attribute8
1185 , p_desc_segment9 => p_lease_tenancies_tbl(i).attribute9
1186 , p_desc_segment10 => p_lease_tenancies_tbl(i).attribute10
1187 , p_desc_segment11 => p_lease_tenancies_tbl(i).attribute11
1188 , p_desc_segment12 => p_lease_tenancies_tbl(i).attribute12
1189 , p_desc_segment13 => p_lease_tenancies_tbl(i).attribute13
1190 , p_desc_segment14 => p_lease_tenancies_tbl(i).attribute14
1191 , p_desc_segment15 => p_lease_tenancies_tbl(i).attribute15
1192 , p_desc_context => p_lease_tenancies_tbl(i).attribute_category
1193 , p_resp_appl_id => fnd_global.resp_appl_id
1194 , p_resp_id => fnd_global.resp_id
1195 , p_return_status => x_return_status
1196 );
1197
1198 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
1199 p_lease_tenancies_tbl (i).error_flag:='Y';
1200 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
1201 fnd_message.set_token ('API_NAME', l_api_name_full);
1202 fnd_message.set_token ('NULL_PARAM','Required attribute in Tenancies/Locations is NULL');
1203 fnd_msg_pub.ADD;
1204 RAISE fnd_api.g_exc_error;
1205 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
1206 p_lease_tenancies_tbl (i).error_flag:='Y';
1207 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
1208 fnd_message.set_token ('API_NAME', l_api_name_full);
1209 fnd_message.set_token ('NULL_PARAM','Required attribute in Tenancies/Locations is NULL');
1210 fnd_msg_pub.ADD;
1211 RAISE fnd_api.g_exc_unexpected_error;
1212 END IF;
1213 END IF; -- End of attributes valitions in create tenancies
1214 END IF;
1215 END IF;
1216 ----------------------dbms_output.put_line('Validate : Tenancy:7');--Rupak
1217 IF RTRIM(LTRIM(p_operation)) = 'CREATE_TENANCIES'
1218 AND l_error_flag <>'Y'
1219 AND NVL( p_validate,'F') <>'T'
1220 THEN
1221 -- CALL INSERT_TENANCIES_ROW TO INSERT TENANCY RECORD
1222 ----------------------dbms_output.put_line('B4 Insert Tenancies Row');
1223 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:Calling Insert Tenancies Row',3);
1224 pn_lease_pvt.insert_tenancies_row (p_lease_tenancies_rec => p_lease_tenancies_tbl(i)
1225 , p_lease_rec => p_lease_rec
1226 , p_lease_context => p_lease_context
1227 , x_return_status => x_return_status);
1228
1229 IF (x_return_status = fnd_api.g_ret_sts_success AND
1230 p_lease_rec.lease_class_code IS NOT NULL AND
1231 p_lease_rec.lease_class_code <> pn_lease_utils.g_pn_miss_char AND
1232 p_lease_rec.lease_class_code <> 'DIRECT' AND
1233 p_lease_tenancies_tbl(i).customer_id IS NOT NULL AND
1234 p_lease_tenancies_tbl(i).customer_id <> pn_lease_utils.g_pn_miss_num)
1235 THEN
1236 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:Calling Create_Space_Assign Begin',3);
1237 pn_lease_pvt.Create_Space_Assign( p_lease_tenancies_rec => p_lease_tenancies_tbl(i)
1238 , x_return_status => x_return_status);
1239 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:Calling Create_Space_Assign End with Status '|| x_return_status,3);
1240 END IF;
1241
1242 IF (x_return_status = fnd_api.g_ret_sts_error)
1243 THEN
1244 l_error_flag:='Y';
1245 RAISE fnd_api.g_exc_error;
1246 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
1247 THEN
1248 l_error_flag:='Y';
1249 RAISE fnd_api.g_exc_unexpected_error;
1250 END IF;
1251 END IF;
1252 --x_return_status := fnd_api.g_ret_sts_success;
1253 EXCEPTION
1254 WHEN fnd_api.g_exc_error THEN
1255 x_return_status := fnd_api.g_ret_sts_error;
1256 -----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);--Rupak
1257 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
1258 WHEN fnd_api.g_exc_unexpected_error THEN
1259 x_return_status := fnd_api.g_ret_sts_unexp_error;
1260 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);
1261 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:LOOOPING:EXCEPTION:FND_API.G_RET_STS_UNEXP_ERROR'||SQLERRM,3);
1262 WHEN OTHERS THEN
1263 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM);--Rupak
1264 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:LOOOPING:EXCEPTION:'||SQLERRM,3);
1265 x_return_status := fnd_api.g_ret_sts_error;
1266 END;
1267 END LOOP;
1268 ELSE
1269 x_return_status := fnd_api.g_ret_sts_error;
1270 END IF;
1271 END validate_tenancies_tbl;
1272
1273
1274 PROCEDURE update_tenancies_row (
1275 p_lease_tenancies_rec IN OUT NOCOPY lease_tenancies_rec
1276 , p_lease_id IN NUMBER
1277 , p_lease_context IN VARCHAR2
1278 , x_return_status OUT NOCOPY VARCHAR2)
1279 IS
1280 l_tenancy_ovelap_wrn VARCHAR2 (30) := NULL;
1281 l_mutiple_lease VARCHAR2(30) := NULL;
1282 l_automatic_distrubution VARCHAR2(30) := NULL;
1283 l_overlap_tenancy VARCHAR2(30) := NULL;
1284 l_allocated_pct NUMBER;
1285 l_min_pct NUMBER;
1286 l_loc_code VARCHAR2(30) := NULL;
1287 l_loc_area NUMBER;
1288 l_location_code PN_LOCATIONS.LOCATION_CODE%TYPE := p_lease_tenancies_rec.location_code;
1289
1290 -- Get the details of Allocated area percentage
1291 CURSOR cur_alloc_pct(p_tenancy_id number) IS
1292 SELECT nvl(min(allocated_area_pct),0) allocated_area_pct
1293 FROM pn_space_assign_cust_all
1294 WHERE tenancy_id = p_tenancy_id;
1295 BEGIN
1296 ----------------------dbms_output.put_line ( 'p_lease_tenancies_rec.tenancy_id'|| p_lease_tenancies_rec.tenancy_id);--Rupak
1297 pvt_debug(g_pkg_name||'-UPDATE_TENANCIES_ROW:Tenancy ID'||p_lease_tenancies_rec.tenancy_id,3);
1298 -- Initialize the return status.
1299 x_return_status := fnd_api.g_ret_sts_success;
1300
1301 IF p_lease_tenancies_rec.org_id IS NULL OR NVL(pn_mo_cache_utils.check_valid_org(p_lease_tenancies_rec.org_id), 'N') <> 'Y' THEN
1302 fnd_message.set_name('MO', 'MO_ORG_INVALID');
1303 fnd_msg_pub.ADD;
1304 RAISE fnd_api.g_exc_error;
1305 END IF;
1306
1307 l_mutiple_lease := NVL(pn_mo_cache_utils.get_profile_value('PN_MULTIPLE_LEASE_FOR_LOCATION'
1308 , p_lease_tenancies_rec.org_id)
1309 ,'N');
1310 l_automatic_distrubution := NVL(pn_mo_cache_utils.get_profile_value('PN_AUTOMATIC_SPACE_DISTRIBUTION'
1311 , p_lease_tenancies_rec.org_id)
1312 ,'N');
1313 l_overlap_tenancy := nvl(pn_mo_cache_utils.get_profile_value('PN_MULT_TNC_SAME_LEASE'
1314 , p_lease_tenancies_rec.org_id)
1315 ,'N');
1316
1317 IF l_automatic_distrubution = 'N' AND (l_mutiple_lease <> 'N' OR l_overlap_tenancy <>'N') THEN
1318
1319 pn_tenancies_pkg.get_loc_info(p_lease_tenancies_rec.location_id,
1320 NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date),
1321 p_lease_tenancies_rec.expiration_date,
1322 l_loc_code);
1323
1324 pn_tenancies_pkg.get_allocated_area(NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date),
1325 p_lease_tenancies_rec.expiration_date,
1326 p_lease_tenancies_rec.allocated_area_pct,
1327 l_loc_area
1328 );
1329
1330 pn_tenancies_pkg.Availaible_Space (p_lease_tenancies_rec.location_id,
1331 NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date),
1332 p_lease_tenancies_rec.expiration_date,
1333 l_min_pct);
1334
1335 FOR rec_cur_alloc_pct IN cur_alloc_pct(p_lease_tenancies_rec.tenancy_id)
1336 LOOP
1337 l_allocated_pct := rec_cur_alloc_pct.allocated_area_pct;
1338 END LOOP;
1339
1340 IF p_lease_tenancies_rec.ALLOCATED_AREA_PCT> l_min_pct + l_allocated_pct THEN
1341
1342 fnd_message.set_name('PN', 'PN_LOC_VACANT_AREA_LESSER');
1343 fnd_message.set_token('LOCATION_CODE',l_location_code);
1344 fnd_message.set_token('MAX_AREA',l_min_pct + l_allocated_pct);
1345 fnd_msg_pub.ADD;
1346 RAISE fnd_api.g_exc_error;
1347
1348 END IF;
1349 p_lease_tenancies_rec.allocated_area := l_loc_area;
1350 END IF;
1351
1352 INIT_TENANCIES_REC( p_lease_tenancies_rec => p_lease_tenancies_rec
1353 , p_lease_context => p_lease_context
1354 , x_return_status => x_return_status
1355 );
1356
1357 c_loc_rec := null;
1358 OPEN c_loc(p_lease_tenancies_rec.tenancy_id);
1359 FETCH c_loc into c_loc_rec;
1360 CLOSE c_loc;
1361
1362 pn_tenancies_pkg.update_row
1363 (x_tenancy_id => p_lease_tenancies_rec.tenancy_id
1364 , x_location_id => p_lease_tenancies_rec.location_id
1365 , x_lease_id => p_lease_id
1366 , x_lease_change_id => p_lease_tenancies_rec.lease_change_id
1367 , x_tenancy_usage_lookup_code => p_lease_tenancies_rec.tenancy_usage_lookup_code
1368 , x_primary_flag => p_lease_tenancies_rec.primary_flag
1369 , x_estimated_occupancy_date => p_lease_tenancies_rec.estimated_occupancy_date
1370 , x_occupancy_date => p_lease_tenancies_rec.occupancy_date
1371 , x_expiration_date => p_lease_tenancies_rec.expiration_date
1372 , x_assignable_flag => p_lease_tenancies_rec.assignable_flag
1373 , x_subleaseable_flag => p_lease_tenancies_rec.subleaseable_flag
1374 , x_tenants_proportionate_share => p_lease_tenancies_rec.tenants_proportionate_share
1375 , x_allocated_area_pct => p_lease_tenancies_rec.allocated_area_pct
1376 , x_allocated_area => p_lease_tenancies_rec.allocated_area
1377 , x_status => p_lease_tenancies_rec.status
1378 , x_attribute_category => p_lease_tenancies_rec.attribute_category
1379 , x_attribute1 => p_lease_tenancies_rec.attribute1
1380 , x_attribute2 => p_lease_tenancies_rec.attribute2
1381 , x_attribute3 => p_lease_tenancies_rec.attribute3
1382 , x_attribute4 => p_lease_tenancies_rec.attribute4
1383 , x_attribute5 => p_lease_tenancies_rec.attribute5
1384 , x_attribute6 => p_lease_tenancies_rec.attribute6
1385 , x_attribute7 => p_lease_tenancies_rec.attribute7
1386 , x_attribute8 => p_lease_tenancies_rec.attribute8
1387 , x_attribute9 => p_lease_tenancies_rec.attribute9
1388 , x_attribute10 => p_lease_tenancies_rec.attribute10
1389 , x_attribute11 => p_lease_tenancies_rec.attribute11
1390 , x_attribute12 => p_lease_tenancies_rec.attribute12
1391 , x_attribute13 => p_lease_tenancies_rec.attribute13
1392 , x_attribute14 => p_lease_tenancies_rec.attribute14
1393 , x_attribute15 => p_lease_tenancies_rec.attribute15
1394 , x_last_update_date => SYSDATE
1395 , x_last_updated_by => g_user_id
1396 , x_last_update_login => fnd_global.login_id
1397 , x_tenancy_ovelap_wrn => l_tenancy_ovelap_wrn
1398 , x_recovery_type_code => p_lease_tenancies_rec.recovery_type_code
1399 , x_recovery_space_std_code => p_lease_tenancies_rec.recovery_space_std_code
1400 , x_fin_oblig_end_date => p_lease_tenancies_rec.fin_oblig_end_date
1401 , x_customer_id => p_lease_tenancies_rec.customer_id
1402 , x_customer_site_use_id => p_lease_tenancies_rec.customer_site_use_id
1403 , x_lease_rentable_area => p_lease_tenancies_rec.lease_rentable_area
1404 , x_lease_usable_area => p_lease_tenancies_rec.lease_usable_area
1405 , x_lease_assignable_area => p_lease_tenancies_rec.lease_assignable_area
1406 , x_lease_load_factor => p_lease_tenancies_rec.lease_load_factor
1407 , x_location_rentable_area => p_lease_tenancies_rec.location_rentable_area
1408 , x_location_usable_area => p_lease_tenancies_rec.location_usable_area
1409 , x_location_assignable_area => p_lease_tenancies_rec.location_assignable_area
1410 , x_location_load_factor => p_lease_tenancies_rec.location_load_factor);
1411 ----------------------dbms_output.put_line ('end of tenancies_UPDATE_ROW procedure of PVT package');--Rupak
1412 pvt_debug(g_pkg_name||'-UPDATE_TENANCIES_ROW:After Updating the Tenancy Record'||p_lease_tenancies_rec.tenancy_id,3);
1413 EXCEPTION
1414 WHEN OTHERS
1415 THEN
1416 ----------------------dbms_output.put_line ( 'at l_LEASE tenancies EXCEPTION: '|| SQLERRM);--Rupak
1417 x_return_status := fnd_api.g_ret_sts_error;
1418 pvt_debug(g_pkg_name||'-UPDATE_TENANCIES_ROW:Exception while updating:'||SQLERRM,3);
1419 END update_tenancies_row;
1420
1421
1422 PROCEDURE update_contacts_row (
1423 p_lease_contacts_rec IN OUT NOCOPY lease_contacts_rec
1424 , p_lease_id IN NUMBER
1425 , p_lease_context IN VARCHAR2
1426 , x_return_status OUT NOCOPY VARCHAR2)
1427 IS
1428 BEGIN
1429 pvt_debug(g_pkg_name||'-UPDATE_CONTACTS_ROW:Contact Assignment ID'||p_lease_contacts_rec.contact_assignment_id,3);
1430 pn_contact_assignments_pkg.update_row
1431 (x_contact_assignment_id => p_lease_contacts_rec.contact_assignment_id
1432 , x_last_update_date => SYSDATE
1433 , x_last_updated_by => g_user_id
1434 , x_last_update_login => fnd_global.login_id
1435 , x_company_id => p_lease_contacts_rec.company_id
1436 , x_company_site_id => p_lease_contacts_rec.company_site_id
1437 , x_lease_id => p_lease_contacts_rec.lease_id
1438 , x_lease_change_id => p_lease_contacts_rec.lease_change_id
1439 , x_location_id => p_lease_contacts_rec.location_id
1440 , x_status => p_lease_contacts_rec.status
1441 , x_attribute_category => p_lease_contacts_rec.attribute_category
1442 , x_attribute1 => p_lease_contacts_rec.attribute1
1443 , x_attribute2 => p_lease_contacts_rec.attribute2
1444 , x_attribute3 => p_lease_contacts_rec.attribute3
1445 , x_attribute4 => p_lease_contacts_rec.attribute4
1446 , x_attribute5 => p_lease_contacts_rec.attribute5
1447 , x_attribute6 => p_lease_contacts_rec.attribute6
1448 , x_attribute7 => p_lease_contacts_rec.attribute7
1449 , x_attribute8 => p_lease_contacts_rec.attribute8
1450 , x_attribute9 => p_lease_contacts_rec.attribute9
1451 , x_attribute10 => p_lease_contacts_rec.attribute10
1452 , x_attribute11 => p_lease_contacts_rec.attribute11
1453 , x_attribute12 => p_lease_contacts_rec.attribute12
1454 , x_attribute13 => p_lease_contacts_rec.attribute13
1455 , x_attribute14 => p_lease_contacts_rec.attribute14
1456 , x_attribute15 => p_lease_contacts_rec.attribute15
1457 );
1458 ------------------------dbms_output.put_line('end of LEASE_UPDATE_ROW procedure of PVT package');
1459 pvt_debug(g_pkg_name||'-UPDATE_CONTACTS_ROW:Update of the Contact Record Successful'||p_lease_contacts_rec.contact_assignment_id,3);
1460 EXCEPTION
1461 WHEN OTHERS
1462 THEN
1463 NULL;
1464 ----------------------dbms_output.put_line ( 'at l_LEASE CONTACTS EXCEPTION: '|| SQLERRM);
1465 pvt_debug(g_pkg_name||'-UPDATE_CONTACTS_ROW:Exception in update of the Contact Record'||SQLERRM,3);
1466 END update_contacts_row;
1467
1468
1469 PROCEDURE update_tenancies (
1470 p_api_version IN NUMBER
1471 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
1472 , p_commit IN VARCHAR2 := fnd_api.g_false
1473 , p_validate IN VARCHAR2 := fnd_api.g_false
1474 , p_lease_tenancies_tbl IN OUT NOCOPY lease_tenancies_tbl
1475 , p_lease_id IN NUMBER
1476 , p_lease_change_id IN NUMBER
1477 , p_lease_context IN VARCHAR2
1478 , x_return_status OUT NOCOPY VARCHAR2
1479 )
1480 IS
1481 CURSOR cur_tenancies_details (
1482 p_tenancy_id NUMBER)
1483 IS
1484 SELECT *
1485 FROM pn_tenancies_all
1486 WHERE tenancy_id = p_tenancy_id;
1487
1488 l_api_version CONSTANT NUMBER := 1.0;
1489 l_api_name CONSTANT VARCHAR2 (30) := 'Update_Tenancies';
1490 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name
1491 || '.'
1492 || l_api_name;
1493 l_tenancies lease_tenancies_tbl;
1494 l_tenancies_index BINARY_INTEGER;
1495 l_return_status VARCHAR2 (1);
1496 l_lease_class_code VARCHAR2 (30);
1497 l_lease_commencement_date DATE;
1498 l_lease_termination_date DATE;
1499 l_parent_lease_id NUMBER;
1500 l_assign_flag VARCHAR2 (1) := 'N';
1501 l_lease_id NUMBER;
1502 l_tenancies_record_cnt NUMBER;
1503
1504 l_lease_rec lease_rec;
1505
1506 l_error_count_uerr NUMBER:=0;
1507 l_error_count_err NUMBER:=0;
1508 p NUMBER:=NULL;
1509
1510 p_lease_tenancies_tbl_tmp lease_tenancies_tbl;
1511 p_lease_tenancies_tbl_update lease_tenancies_tbl;
1512 q NUMBER:=NULL;
1513 BEGIN
1514 pvt_debug(g_pkg_name||'-UPDATE_TENANCIES_TBL:Procedure Begin',3);
1515
1516 -- Standard start of API savepoint
1517 -- Initialize the return status.
1518 x_return_status := fnd_api.g_ret_sts_success;
1519
1520 l_lease_rec.lease_id := p_lease_id;
1521 l_lease_rec.lease_change_id := p_lease_change_id;
1522 --------------------------------------------------
1523 -- Make sure the Lease Number or Lease Id is not null
1524 ------ -------------------------------------------
1525 IF p_lease_id IS NULL
1526 THEN
1527 pn_lease_utils.add_null_parameter_msg (p_token_apiname => l_api_name_full
1528 , p_token_nullparam => 'LEASE_ID_NULL');
1529 RAISE fnd_api.g_exc_error;
1530 ELSE
1531 BEGIN
1532 SELECT pla.lease_class_code
1533 , pld.lease_commencement_date
1534 , pld.lease_termination_date
1535 , pla.parent_lease_id
1536 INTO l_lease_rec.lease_class_code
1537 , l_lease_rec.lease_commencement_date
1538 , l_lease_rec.lease_termination_date
1539 , l_lease_rec.parent_lease_id
1540 FROM pn_leases_all pla
1541 , pn_lease_details_all pld
1542 WHERE pla.lease_id = p_lease_id
1543 AND pla.lease_id = pld.lease_id
1544 AND pld.org_id = g_org_id
1545 AND pla.org_id = g_org_id;
1546 EXCEPTION
1547 WHEN OTHERS
1548 THEN
1549 fnd_message.set_name ('PN', 'PN_INV_DRVLEASED');
1550 fnd_message.set_token ('API_NAME', l_api_name_full);
1551 fnd_message.set_token ('LEASE_ID', p_lease_id);
1552 fnd_message.set_token ('SQLERRM', SQLERRM);
1553 fnd_msg_pub.ADD;
1554 RAISE fnd_api.g_exc_error;
1555 END;
1556 END IF;
1557
1558 ----------------------dbms_output.put_line('In Update_Tenancies:B4 validate_tenancies_tbl'||p_lease_tenancies_tbl(1).location_id);--Rupak
1559 pvt_debug(g_pkg_name||'-UPDATE_TENANCIES:Before Validating the tenancy table records',3);
1560
1561 q:=1;
1562 FOR i IN 1..p_lease_tenancies_tbl.COUNT
1563 LOOP
1564 IF(p_lease_tenancies_tbl (i).tenancy_id IS NOT NULL OR p_lease_tenancies_tbl (i).tenancy_id <> pn_lease_utils.g_pn_miss_num) THEN
1565 pvt_debug(g_pkg_name||'-update_contacts:Assigning the tenancy table values to other table',3);
1566 p_lease_tenancies_tbl_update(q) := p_lease_tenancies_tbl (i);
1567 q:= q+1;
1568 END IF;
1569 END LOOP;
1570 IF (p_lease_tenancies_tbl_update.COUNT > 0) THEN
1571 validate_tenancies_tbl (p_lease_tenancies_tbl => p_lease_tenancies_tbl_update
1572 , p_lease_rec => l_lease_rec
1573 , p_validate => p_validate
1574 , p_lease_context => p_lease_context
1575 , p_operation => 'UPDATE_TENANCY'
1576 , x_return_status => x_return_status
1577 );
1578
1579 l_tenancies_record_cnt := p_lease_tenancies_tbl.COUNT;
1580 l_lease_id := p_lease_id;
1581
1582 FOR i IN p_lease_tenancies_tbl_update.FIRST .. p_lease_tenancies_tbl_update.LAST
1583 LOOP
1584 IF(p_lease_tenancies_tbl_update (i).tenancy_id IS NOT NULL OR p_lease_tenancies_tbl_update (i).tenancy_id <> pn_lease_utils.g_pn_miss_num) THEN
1585 l_assign_flag := 'N';
1586 IF (p_lease_tenancies_tbl_update(i).error_flag = 'N') THEN
1587 ----------------------dbms_output.put_line('In Update tenancies:in TABLE TYPE:p_lease_id'||p_lease_id);--Rupak
1588 pvt_debug(g_pkg_name||'-UPDATE_TENANCIES:In Table Type',3);
1589 FOR r_tenancies_details IN cur_tenancies_details (p_lease_tenancies_tbl_update (i).tenancy_id)
1590 LOOP
1591 BEGIN
1592 ----------------------dbms_output.put_line('r_tenancies_details.location_id'||r_tenancies_details.location_id);--Rupak
1593 pvt_debug(g_pkg_name||'-UPDATE_TENANCIES:R_TENANCIES_DETAILS.LOCATION_ID'||r_tenancies_details.location_id,3);
1594
1595 IF ( (r_tenancies_details.tenancy_id = p_lease_tenancies_tbl_update (i).tenancy_id)
1596 AND (l_assign_flag = 'N'))
1597 THEN
1598 ----------------------dbms_output.put_line('In Update Tenancy:in IF CONDITION:p_lease_id'||p_lease_id);--Rupak
1599
1600 IF ( p_lease_tenancies_tbl_update (i).location_id IS NULL
1601 OR p_lease_tenancies_tbl_update (i).location_id = pn_lease_utils.g_pn_miss_num)
1602 THEN
1603 p_lease_tenancies_tbl_update (i).location_id := r_tenancies_details.location_id;
1604 END IF;
1605
1606 IF ( p_lease_tenancies_tbl_update (i).tenancy_usage_lookup_code IS NULL
1607 OR p_lease_tenancies_tbl_update (i).tenancy_usage_lookup_code = pn_lease_utils.g_pn_miss_char)
1608 THEN
1609 p_lease_tenancies_tbl_update (i).tenancy_usage_lookup_code := r_tenancies_details.tenancy_usage_lookup_code;
1610 END IF;
1611
1612 IF ( p_lease_tenancies_tbl_update (i).primary_flag IS NULL
1613 OR p_lease_tenancies_tbl_update (i).primary_flag = pn_lease_utils.g_pn_miss_char)
1614 THEN
1615 p_lease_tenancies_tbl_update (i).primary_flag := r_tenancies_details.primary_flag;
1616 END IF;
1617
1618 IF ( p_lease_tenancies_tbl_update (i).estimated_occupancy_date IS NULL
1619 OR p_lease_tenancies_tbl_update (i).estimated_occupancy_date = pn_lease_utils.g_pn_miss_date)
1620 THEN
1621 p_lease_tenancies_tbl_update (i).estimated_occupancy_date := r_tenancies_details.estimated_occupancy_date;
1622 END IF;
1623
1624 IF ( p_lease_tenancies_tbl_update (i).occupancy_date IS NULL
1625 OR p_lease_tenancies_tbl_update (i).occupancy_date = pn_lease_utils.g_pn_miss_date)
1626 THEN
1627 p_lease_tenancies_tbl_update (i).occupancy_date := r_tenancies_details.occupancy_date;
1628 END IF;
1629
1630 IF ( p_lease_tenancies_tbl_update (i).expiration_date IS NULL
1631 OR p_lease_tenancies_tbl_update (i).expiration_date = pn_lease_utils.g_pn_miss_date)
1632 THEN
1633 p_lease_tenancies_tbl_update (i).expiration_date := r_tenancies_details.expiration_date;
1634 END IF;
1635
1636 IF ( p_lease_tenancies_tbl_update (i).assignable_flag IS NULL
1637 OR p_lease_tenancies_tbl_update (i).assignable_flag = pn_lease_utils.g_pn_miss_char)
1638 THEN
1639 p_lease_tenancies_tbl_update (i).assignable_flag := r_tenancies_details.assignable_flag;
1640 END IF;
1641
1642 IF ( p_lease_tenancies_tbl_update (i).subleaseable_flag IS NULL
1643 OR p_lease_tenancies_tbl_update (i).subleaseable_flag = pn_lease_utils.g_pn_miss_char)
1644 THEN
1645 p_lease_tenancies_tbl_update (i).subleaseable_flag := r_tenancies_details.subleaseable_flag;
1646 END IF;
1647
1648 IF ( p_lease_tenancies_tbl_update (i).tenants_proportionate_share IS NULL
1649 OR p_lease_tenancies_tbl_update (i).tenants_proportionate_share = pn_lease_utils.g_pn_miss_num)
1650 THEN
1651 p_lease_tenancies_tbl_update (i).tenants_proportionate_share := r_tenancies_details.tenants_proportionate_share;
1652 END IF;
1653
1654 IF ( p_lease_tenancies_tbl_update (i).status IS NULL
1655 OR p_lease_tenancies_tbl_update (i).status = pn_lease_utils.g_pn_miss_char)
1656 THEN
1657 p_lease_tenancies_tbl_update (i).status := r_tenancies_details.status;
1658 END IF;
1659
1660 IF ( p_lease_tenancies_tbl_update (i).recovery_type_code IS NULL
1661 OR p_lease_tenancies_tbl_update (i).recovery_type_code = pn_lease_utils.g_pn_miss_char)
1662 THEN
1663 p_lease_tenancies_tbl_update (i).recovery_type_code := r_tenancies_details.recovery_type_code;
1664 END IF;
1665
1666 IF ( p_lease_tenancies_tbl_update (i).recovery_space_std_code IS NULL
1667 OR p_lease_tenancies_tbl_update (i).recovery_space_std_code = pn_lease_utils.g_pn_miss_char)
1668 THEN
1669 p_lease_tenancies_tbl_update (i).recovery_space_std_code := r_tenancies_details.recovery_space_std_code;
1670 END IF;
1671
1672 IF ( p_lease_tenancies_tbl_update (i).fin_oblig_end_date IS NULL
1673 OR p_lease_tenancies_tbl_update (i).fin_oblig_end_date = pn_lease_utils.g_pn_miss_date)
1674 THEN
1675 p_lease_tenancies_tbl_update (i).fin_oblig_end_date := r_tenancies_details.fin_oblig_end_date;
1676 END IF;
1677
1678 IF ( p_lease_tenancies_tbl_update (i).customer_site_use_id IS NULL
1679 OR p_lease_tenancies_tbl_update (i).customer_site_use_id = pn_lease_utils.g_pn_miss_num)
1680 THEN
1681 p_lease_tenancies_tbl_update (i).customer_site_use_id := r_tenancies_details.customer_site_use_id;
1682 END IF;
1683
1684 IF ( p_lease_tenancies_tbl_update (i).lease_rentable_area IS NULL
1685 OR p_lease_tenancies_tbl_update (i).lease_rentable_area = pn_lease_utils.g_pn_miss_num)
1686 THEN
1687 p_lease_tenancies_tbl_update (i).lease_rentable_area := r_tenancies_details.lease_rentable_area;
1688 END IF;
1689
1690 IF ( p_lease_tenancies_tbl_update (i).lease_usable_area IS NULL
1691 OR p_lease_tenancies_tbl_update (i).lease_usable_area = pn_lease_utils.g_pn_miss_num)
1692 THEN
1693 p_lease_tenancies_tbl_update (i).lease_usable_area := r_tenancies_details.lease_usable_area;
1694 END IF;
1695
1696 IF ( p_lease_tenancies_tbl_update (i).lease_assignable_area IS NULL
1697 OR p_lease_tenancies_tbl_update (i).lease_assignable_area = pn_lease_utils.g_pn_miss_num)
1698 THEN
1699 p_lease_tenancies_tbl_update (i).lease_assignable_area := r_tenancies_details.lease_assignable_area;
1700 END IF;
1701
1702 IF ( p_lease_tenancies_tbl_update (i).lease_load_factor IS NULL
1703 OR p_lease_tenancies_tbl_update (i).lease_load_factor = pn_lease_utils.g_pn_miss_num)
1704 THEN
1705 p_lease_tenancies_tbl_update (i).lease_load_factor := r_tenancies_details.lease_load_factor;
1706 END IF;
1707
1708 IF ( p_lease_tenancies_tbl_update (i).location_rentable_area IS NULL
1709 OR p_lease_tenancies_tbl_update (i).location_rentable_area = pn_lease_utils.g_pn_miss_num)
1710 THEN
1711 p_lease_tenancies_tbl_update (i).location_rentable_area := r_tenancies_details.location_rentable_area;
1712 END IF;
1713
1714 IF ( p_lease_tenancies_tbl_update (i).location_usable_area IS NULL
1715 OR p_lease_tenancies_tbl_update (i).location_usable_area = pn_lease_utils.g_pn_miss_num)
1716 THEN
1717 p_lease_tenancies_tbl_update (i).location_usable_area := r_tenancies_details.location_usable_area;
1718 END IF;
1719
1720 IF ( p_lease_tenancies_tbl_update (i).location_assignable_area IS NULL
1721 OR p_lease_tenancies_tbl_update (i).location_assignable_area = pn_lease_utils.g_pn_miss_num)
1722 THEN
1723 p_lease_tenancies_tbl_update (i).location_assignable_area := r_tenancies_details.location_assignable_area;
1724 END IF;
1725
1726 IF ( p_lease_tenancies_tbl_update (i).location_load_factor IS NULL
1727 OR p_lease_tenancies_tbl_update (i).location_load_factor = pn_lease_utils.g_pn_miss_num)
1728 THEN
1729 p_lease_tenancies_tbl_update (i).location_load_factor := r_tenancies_details.location_load_factor;
1730 END IF;
1731
1732 IF ( p_lease_tenancies_tbl_update (i).allocated_area IS NULL
1733 OR p_lease_tenancies_tbl_update (i).allocated_area = pn_lease_utils.g_pn_miss_num)
1734 THEN
1735 p_lease_tenancies_tbl_update (i).allocated_area := r_tenancies_details.allocated_area;
1736 END IF;
1737
1738 IF ( p_lease_tenancies_tbl_update (i).allocated_area_pct IS NULL
1739 OR p_lease_tenancies_tbl_update (i).allocated_area_pct = pn_lease_utils.g_pn_miss_num)
1740 THEN
1741 p_lease_tenancies_tbl_update (i).allocated_area_pct := r_tenancies_details.allocated_area_pct;
1742 END IF;
1743
1744 IF ( p_lease_tenancies_tbl_update (i).lease_change_id IS NULL
1745 OR p_lease_tenancies_tbl_update (i).lease_change_id = pn_lease_utils.g_pn_miss_num)
1746 THEN
1747 p_lease_tenancies_tbl_update (i).lease_change_id := r_tenancies_details.lease_change_id;
1748 END IF;
1749
1750 ------------------------dbms_output.put_line('IN TENANCY ATTRIBUTES');
1751
1752 IF NOT ((p_lease_tenancies_tbl_update(i).attribute_category = pn_lease_utils.g_pn_miss_char)
1753 AND (p_lease_tenancies_tbl_update(i).attribute1 = pn_lease_utils.g_pn_miss_char)
1754 AND (p_lease_tenancies_tbl_update(i).attribute2 = pn_lease_utils.g_pn_miss_char)
1755 AND (p_lease_tenancies_tbl_update(i).attribute3 = pn_lease_utils.g_pn_miss_char)
1756 AND (p_lease_tenancies_tbl_update(i).attribute4 = pn_lease_utils.g_pn_miss_char)
1757 AND (p_lease_tenancies_tbl_update(i).attribute5 = pn_lease_utils.g_pn_miss_char)
1758 AND (p_lease_tenancies_tbl_update(i).attribute6 = pn_lease_utils.g_pn_miss_char)
1759 AND (p_lease_tenancies_tbl_update(i).attribute7 = pn_lease_utils.g_pn_miss_char)
1760 AND (p_lease_tenancies_tbl_update(i).attribute8 = pn_lease_utils.g_pn_miss_char)
1761 AND (p_lease_tenancies_tbl_update(i).attribute9 = pn_lease_utils.g_pn_miss_char)
1762 AND (p_lease_tenancies_tbl_update(i).attribute10 = pn_lease_utils.g_pn_miss_char)
1763 AND (p_lease_tenancies_tbl_update(i).attribute11 = pn_lease_utils.g_pn_miss_char)
1764 AND (p_lease_tenancies_tbl_update(i).attribute12 = pn_lease_utils.g_pn_miss_char)
1765 AND (p_lease_tenancies_tbl_update(i).attribute13 = pn_lease_utils.g_pn_miss_char)
1766 AND (p_lease_tenancies_tbl_update(i).attribute14 = pn_lease_utils.g_pn_miss_char)
1767 AND (p_lease_tenancies_tbl_update(i).attribute15 = pn_lease_utils.g_pn_miss_char)
1768 )
1769 THEN
1770 IF (p_lease_tenancies_tbl_update (i).attribute_category = pn_lease_utils.g_pn_miss_char)
1771 THEN
1772 p_lease_tenancies_tbl_update (i).attribute_category := r_tenancies_details.attribute_category;
1773 END IF;
1774
1775 IF (p_lease_tenancies_tbl_update (i).attribute1 = pn_lease_utils.g_pn_miss_char)
1776 THEN
1777 p_lease_tenancies_tbl_update (i).attribute1 := r_tenancies_details.attribute1;
1778 END IF;
1779 IF (p_lease_tenancies_tbl_update (i).attribute2 = pn_lease_utils.g_pn_miss_char)
1780 THEN
1781 p_lease_tenancies_tbl_update (i).attribute2 := r_tenancies_details.attribute2;
1782 END IF;
1783 IF (p_lease_tenancies_tbl_update (i).attribute3 = pn_lease_utils.g_pn_miss_char)
1784 THEN
1785 p_lease_tenancies_tbl_update (i).attribute3 := r_tenancies_details.attribute3;
1786 END IF;
1787 IF (p_lease_tenancies_tbl_update (i).attribute4 = pn_lease_utils.g_pn_miss_char)
1788 THEN
1789 p_lease_tenancies_tbl_update (i).attribute4 := r_tenancies_details.attribute4;
1790 END IF;
1791 IF (p_lease_tenancies_tbl_update (i).attribute5 = pn_lease_utils.g_pn_miss_char)
1792 THEN
1793 p_lease_tenancies_tbl_update (i).attribute5 := r_tenancies_details.attribute5;
1794 END IF;
1795 IF (p_lease_tenancies_tbl_update (i).attribute6 = pn_lease_utils.g_pn_miss_char)
1796 THEN
1797 p_lease_tenancies_tbl_update (i).attribute6 := r_tenancies_details.attribute6;
1798 END IF;
1799 IF (p_lease_tenancies_tbl_update (i).attribute7 = pn_lease_utils.g_pn_miss_char)
1800 THEN
1801 p_lease_tenancies_tbl_update (i).attribute7 := r_tenancies_details.attribute7;
1802 END IF;
1803 IF (p_lease_tenancies_tbl_update (i).attribute8 = pn_lease_utils.g_pn_miss_char)
1804 THEN
1805 p_lease_tenancies_tbl_update (i).attribute8 := r_tenancies_details.attribute8;
1806 END IF;
1807 IF (p_lease_tenancies_tbl_update (i).attribute9 = pn_lease_utils.g_pn_miss_char)
1808 THEN
1809 p_lease_tenancies_tbl_update (i).attribute9 := r_tenancies_details.attribute9;
1810 END IF;
1811 IF (p_lease_tenancies_tbl_update (i).attribute10 = pn_lease_utils.g_pn_miss_char)
1812 THEN
1813 p_lease_tenancies_tbl_update (i).attribute10 := r_tenancies_details.attribute10;
1814 END IF;
1815 IF (p_lease_tenancies_tbl_update (i).attribute11 = pn_lease_utils.g_pn_miss_char)
1816 THEN
1817 p_lease_tenancies_tbl_update (i).attribute11 := r_tenancies_details.attribute11;
1818 END IF;
1819 IF (p_lease_tenancies_tbl_update (i).attribute12 = pn_lease_utils.g_pn_miss_char)
1820 THEN
1821 p_lease_tenancies_tbl_update (i).attribute12 := r_tenancies_details.attribute12;
1822 END IF;
1823 IF (p_lease_tenancies_tbl_update (i).attribute13 = pn_lease_utils.g_pn_miss_char)
1824 THEN
1825 p_lease_tenancies_tbl_update (i).attribute13 := r_tenancies_details.attribute13;
1826 END IF;
1827 IF (p_lease_tenancies_tbl_update (i).attribute14 = pn_lease_utils.g_pn_miss_char)
1828 THEN
1829 p_lease_tenancies_tbl_update (i).attribute14 := r_tenancies_details.attribute14;
1830 END IF;
1831
1832 IF (p_lease_tenancies_tbl_update (i).attribute15 = pn_lease_utils.g_pn_miss_char)
1833 THEN
1834 p_lease_tenancies_tbl_update (i).attribute15 := r_tenancies_details.attribute15;
1835 END IF;
1836
1837
1838 pn_lease_utils.validate_desc_flex
1839 (p_api_name => l_api_name_full
1840 , p_application_short_name => 'PN'
1841 , p_desc_flex_name => 'PN_LOCATIONS'
1842 , p_desc_segment1 => p_lease_tenancies_tbl_update (i).attribute1
1843 , p_desc_segment2 => p_lease_tenancies_tbl_update (i).attribute2
1844 , p_desc_segment3 => p_lease_tenancies_tbl_update (i).attribute3
1845 , p_desc_segment4 => p_lease_tenancies_tbl_update (i).attribute4
1846 , p_desc_segment5 => p_lease_tenancies_tbl_update (i).attribute5
1847 , p_desc_segment6 => p_lease_tenancies_tbl_update (i).attribute6
1848 , p_desc_segment7 => p_lease_tenancies_tbl_update (i).attribute7
1849 , p_desc_segment8 => p_lease_tenancies_tbl_update (i).attribute8
1850 , p_desc_segment9 => p_lease_tenancies_tbl_update (i).attribute9
1851 , p_desc_segment10 => p_lease_tenancies_tbl_update (i).attribute10
1852 , p_desc_segment11 => p_lease_tenancies_tbl_update (i).attribute11
1853 , p_desc_segment12 => p_lease_tenancies_tbl_update (i).attribute12
1854 , p_desc_segment13 => p_lease_tenancies_tbl_update (i).attribute13
1855 , p_desc_segment14 => p_lease_tenancies_tbl_update (i).attribute14
1856 , p_desc_segment15 => p_lease_tenancies_tbl_update (i).attribute15
1857 , p_desc_context => p_lease_tenancies_tbl_update (i).attribute_category
1858 , p_resp_appl_id => fnd_global.resp_appl_id
1859 , p_resp_id => fnd_global.resp_id
1860 , p_return_status => x_return_status
1861 );
1862
1863 IF (x_return_status = fnd_api.g_ret_sts_error)
1864 THEN
1865 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
1866 fnd_message.set_token ('COLUMN', 'PN_TENANCIES_DESC_FILEDS');
1867 fnd_message.set_token ('P_TEXT', 'PN_TENANCIES'|| '-'|| SQLERRM);
1868 fnd_msg_pub.ADD;
1869 RAISE fnd_api.g_exc_error;
1870 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
1871 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
1872 fnd_message.set_token ('COLUMN', 'PN_TENANCIES_DESC_FILEDS');
1873 fnd_message.set_token ('P_TEXT', 'PN_TENANCIES'|| '-'|| SQLERRM);
1874 fnd_msg_pub.ADD;
1875 RAISE fnd_api.g_exc_unexpected_error;
1876 END IF;
1877 END IF;
1878
1879 ----------------------dbms_output.put_line('In Update tenancies B4 Update tenancy');--Rupak
1880 pvt_debug(g_pkg_name||'-UPDATE_TENANCIES:Calling UPDATE_TENANCIES_ROW',3);
1881 update_tenancies_row (p_lease_tenancies_rec => p_lease_tenancies_tbl_update (i)
1882 , p_lease_id => p_lease_id
1883 , p_lease_context => p_lease_context
1884 , x_return_status => x_return_status
1885 );
1886
1887 IF (x_return_status = fnd_api.g_ret_sts_success) THEN
1888
1889 IF l_lease_rec.lease_class_code <> 'DIRECT' AND
1890 (nvl(p_lease_tenancies_tbl_update(i).location_id,-99) <> nvl(c_loc_rec.location_id,-99) OR
1891 (nvl(p_lease_tenancies_tbl_update(i).occupancy_date,p_lease_tenancies_tbl_update(i).estimated_occupancy_date) <>
1892 nvl(c_loc_rec.occupancy_date,c_loc_rec.estimated_occupancy_date)) OR
1893 nvl(p_lease_tenancies_tbl_update(i).expiration_date,sysdate) <> nvl(c_loc_rec.expiration_date,sysdate) OR
1894 nvl(p_lease_tenancies_tbl_update(i).customer_id,-99) <> nvl(c_loc_rec.customer_id,-99) OR
1895 nvl(p_lease_tenancies_tbl_update(i).customer_site_use_id,-99) <> nvl(c_loc_rec.customer_site_use_id,-99) OR
1896 nvl(p_lease_tenancies_tbl_update(i).recovery_type_code,' ') <> nvl(c_loc_rec.recovery_type_code,' ') OR
1897 nvl(p_lease_tenancies_tbl_update(i).recovery_space_std_code,' ') <> nvl(c_loc_rec.recovery_space_std_code,' ') OR
1898 nvl(p_lease_tenancies_tbl_update(i).fin_oblig_end_date,sysdate) <> nvl(c_loc_rec.fin_oblig_end_date,sysdate) OR
1899 nvl(p_lease_tenancies_tbl_update(i).allocated_area_pct,-99) <> nvl(c_loc_rec.allocated_area_pct,-99)) THEN
1900
1901 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES:Calling Update_Space_Assign Begin',3);
1902 pn_lease_pvt.Update_Space_Assign( p_lease_tenancies_rec => p_lease_tenancies_tbl_update(i)
1903 , x_return_status => x_return_status);
1904 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES:Calling Update_Space_Assign End with Status '|| x_return_status,3);
1905 END IF;
1906 END IF;
1907
1908 IF (x_return_status = fnd_api.g_ret_sts_error)
1909 THEN
1910 RAISE fnd_api.g_exc_error;
1911 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
1912 THEN
1913 RAISE fnd_api.g_exc_unexpected_error;
1914 END IF;
1915
1916 l_assign_flag := 'Y';
1917 END IF;
1918 EXCEPTION
1919 WHEN fnd_api.g_exc_error THEN
1920 x_return_status := fnd_api.g_ret_sts_error;
1921 pvt_debug(g_pkg_name||'-update_tenancies:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
1922 WHEN OTHERS THEN
1923 x_return_status := fnd_api.g_ret_sts_unexp_error;
1924 pvt_debug(g_pkg_name||'-update_tenancies:LOOOPING:EXCEPTION:'||SQLERRM,3);
1925 END;
1926
1927 END LOOP;
1928 END IF;--Error Flag Check
1929 END IF; --ID NULL CHECK
1930 END LOOP;
1931 END IF;
1932 --If Tenancy ID is not given
1933 p:=1;
1934 FOR i IN 1..p_lease_tenancies_tbl.COUNT
1935 LOOP
1936 IF(p_lease_tenancies_tbl (i).tenancy_id IS NULL OR p_lease_tenancies_tbl (i).tenancy_id = pn_lease_utils.g_pn_miss_num) THEN
1937 pvt_debug(g_pkg_name||'-update_contacts:Assigning the tenancy table values to other table',3);
1938 p_lease_tenancies_tbl_tmp(p) := p_lease_tenancies_tbl (i);
1939 p:= p+1;
1940 END IF;
1941 END LOOP;
1942
1943 pvt_debug(g_pkg_name||'-update_contacts:Inserting the values of tenancy record as ID is not passed for this record',3);
1944
1945 IF(p_lease_tenancies_tbl_tmp.COUNT > 0) THEN
1946 validate_tenancies_tbl (p_lease_tenancies_tbl => p_lease_tenancies_tbl_tmp
1947 , p_lease_rec => l_lease_rec
1948 , p_validate => p_validate
1949 , p_lease_context => p_lease_context
1950 , p_operation => 'CREATE_TENANCIES'
1951 , x_return_status => x_return_status
1952 );
1953 pvt_debug(g_pkg_name||'-update_tenancies:Inserting the values of tenancy record return Status'||x_return_status,3);
1954 ELSE
1955 pvt_debug(g_pkg_name||'-update_tenancies:the temperory table is with out any records',3);
1956 END IF;
1957 EXCEPTION
1958 WHEN OTHERS THEN
1959 pvt_debug(g_pkg_name||'-update_tenancies:MAIN:EXCEPTION'||SQLERRM,3);
1960 x_return_status := fnd_api.g_ret_sts_error;
1961 END update_tenancies;
1962
1963
1964 PROCEDURE update_contacts (
1965 p_api_version IN NUMBER
1966 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
1967 , p_commit IN VARCHAR2 := fnd_api.g_false
1968 , p_validate IN VARCHAR2 := fnd_api.g_false
1969 , p_lease_contacts_tbl IN OUT NOCOPY lease_contacts_tbl
1970 , p_lease_id IN NUMBER
1971 , p_lease_change_id IN NUMBER
1972 , p_lease_context IN VARCHAR2
1973 , x_return_status OUT NOCOPY VARCHAR2
1974 , x_msg_count OUT NOCOPY NUMBER
1975 , x_msg_data OUT NOCOPY VARCHAR2)
1976 IS
1977 CURSOR cur_contacts_details (l_lease_id NUMBER)
1978 IS
1979 SELECT *
1980 FROM pn_contact_assignments_all
1981 WHERE lease_id = p_lease_id;
1982
1983 l_assign_flag VARCHAR2 (1) := 'N';
1984 l_contact_record_cnt NUMBER := pn_lease_utils.g_pn_miss_num;
1985 x_conct_return_status VARCHAR2 (1);
1986 l_return_status VARCHAR2 (1);
1987 l_lease_id NUMBER;
1988 l_api_version CONSTANT NUMBER := 1.0;
1989 l_api_name CONSTANT VARCHAR2 (30) := 'UPDATE_CONTACTS';
1990 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name|| '.'|| l_api_name;
1991
1992 l_lease_rec lease_rec;
1993 p_lease_contacts_tbl_tmp lease_contacts_tbl;
1994 p_lease_contacts_tbl_update lease_contacts_tbl;
1995 p NUMBER:=NULL;
1996 q NUMBER:=NULL;
1997 BEGIN
1998 l_lease_rec.lease_id := p_lease_id;
1999 l_lease_rec.lease_change_id := p_lease_change_id;
2000 ------------------------dbms_output.put_line('In Update Contacts:B4 VALIDATE_CONTACTS_TBL Calling;p_lease_id:'||p_lease_id);
2001 pvt_debug(g_pkg_name||'-UPDATE_CONTACTS:Calling VALIDATE_CONTACTS_TBL',3);
2002
2003 q:=1;
2004 FOR i IN 1..p_lease_contacts_tbl.COUNT
2005 LOOP
2006 IF(p_lease_contacts_tbl (i).contact_assignment_id IS NOT NULL OR p_lease_contacts_tbl (i).contact_assignment_id <> pn_lease_utils.g_pn_miss_num) THEN
2007 pvt_debug(g_pkg_name||'-update_contacts:Assigning the contact table values to other table',3);
2008 p_lease_contacts_tbl_update(q) := p_lease_contacts_tbl (i);
2009 q:= q+1;
2010 END IF;
2011 END LOOP;
2012
2013 IF(p_lease_contacts_tbl_update.COUNT > 0) THEN
2014 validate_contacts_tbl (p_lease_contacts_tbl => p_lease_contacts_tbl_update
2015 , p_lease_rec => l_lease_rec
2016 , p_validate => p_validate
2017 , p_lease_context => p_lease_context
2018 , p_operation => 'UPDATE_CONTACTS'
2019 , x_return_status => x_return_status);
2020 ------------------------dbms_output.put_line('In Update Contacts:After VALIDATE_CONTACTS_TBL Calling'||p_lease_contacts_tbl_update(1).role);
2021 ------------------------dbms_output.put_line('In Update Contacts:After VALIDATE_CONTACTS_TBL Calling'||p_lease_contacts_tbl_update(1).company_id);
2022 l_contact_record_cnt := p_lease_contacts_tbl_update.COUNT;
2023 l_lease_id := p_lease_id;
2024
2025 FOR i IN p_lease_contacts_tbl_update.FIRST .. p_lease_contacts_tbl_update.LAST
2026 LOOP
2027 IF(p_lease_contacts_tbl_update (i).contact_assignment_id IS NOT NULL OR p_lease_contacts_tbl_update (i).contact_assignment_id <> pn_lease_utils.g_pn_miss_num) THEN
2028 l_assign_flag := 'N';
2029 IF (p_lease_contacts_tbl_update (i).error_flag = 'N') THEN
2030 ------------------------dbms_output.put_line('In Update Contacts:in TABLE TYPE:p_lease_id'||p_lease_id);
2031 FOR r_contact_details IN cur_contacts_details (l_lease_id)
2032 LOOP
2033 ------------------------dbms_output.put_line('r_contact_details.company_id;'||r_contact_details.company_id);
2034 BEGIN
2035 IF ((r_contact_details.contact_assignment_id =p_lease_contacts_tbl_update (i).contact_assignment_id) AND (l_assign_flag = 'N')) THEN
2036 ----------------------dbms_output.put_line ( 'In Update Contacts:in IF CONDITION:p_lease_id'|| p_lease_id);
2037
2038 IF ( p_lease_contacts_tbl_update (i).company_id IS NULL
2039 OR p_lease_contacts_tbl_update (i).company_id = pn_lease_utils.g_pn_miss_num)
2040 THEN
2041 p_lease_contacts_tbl_update (i).company_id := r_contact_details.company_id;
2042 END IF;
2043
2044 IF ( p_lease_contacts_tbl_update (i).company_site_id IS NULL
2045 OR p_lease_contacts_tbl_update (i).company_site_id = pn_lease_utils.g_pn_miss_num)
2046 THEN
2047 p_lease_contacts_tbl_update (i).company_site_id := r_contact_details.company_site_id;
2048 END IF;
2049
2050 IF ( p_lease_contacts_tbl_update (i).location_id IS NULL
2051 OR p_lease_contacts_tbl_update (i).location_id = pn_lease_utils.g_pn_miss_num)
2052 THEN
2053 p_lease_contacts_tbl_update (i).location_id := r_contact_details.location_id;
2054 END IF;
2055
2056 IF ( p_lease_contacts_tbl_update (i).status IS NULL
2057 OR p_lease_contacts_tbl_update (i).status = pn_lease_utils.g_pn_miss_char)
2058 THEN
2059 p_lease_contacts_tbl_update (i).status := r_contact_details.status;
2060 END IF;
2061
2062 IF ( p_lease_contacts_tbl_update (i).lease_change_id IS NULL
2063 OR p_lease_contacts_tbl_update (i).lease_change_id = pn_lease_utils.g_pn_miss_num)
2064 THEN
2065 p_lease_contacts_tbl_update (i).lease_change_id := r_contact_details.lease_change_id;
2066 END IF;
2067
2068 p_lease_contacts_tbl_update (i).lease_id := p_lease_id;
2069
2070 ------------------------dbms_output.put_line(' p_lease_contacts_tbl_update(i).lease_id'|| p_lease_contacts_tbl_update(i).lease_id);
2071
2072 IF NOT ((p_lease_contacts_tbl_update(i).attribute_category = pn_lease_utils.g_pn_miss_char)
2073 AND (p_lease_contacts_tbl_update(i).attribute1 = pn_lease_utils.g_pn_miss_char)
2074 AND (p_lease_contacts_tbl_update(i).attribute2 = pn_lease_utils.g_pn_miss_char)
2075 AND (p_lease_contacts_tbl_update(i).attribute3 = pn_lease_utils.g_pn_miss_char)
2076 AND (p_lease_contacts_tbl_update(i).attribute4 = pn_lease_utils.g_pn_miss_char)
2077 AND (p_lease_contacts_tbl_update(i).attribute5 = pn_lease_utils.g_pn_miss_char)
2078 AND (p_lease_contacts_tbl_update(i).attribute6 = pn_lease_utils.g_pn_miss_char)
2079 AND (p_lease_contacts_tbl_update(i).attribute7 = pn_lease_utils.g_pn_miss_char)
2080 AND (p_lease_contacts_tbl_update(i).attribute8 = pn_lease_utils.g_pn_miss_char)
2081 AND (p_lease_contacts_tbl_update(i).attribute9 = pn_lease_utils.g_pn_miss_char)
2082 AND (p_lease_contacts_tbl_update(i).attribute10 = pn_lease_utils.g_pn_miss_char)
2083 AND (p_lease_contacts_tbl_update(i).attribute11 = pn_lease_utils.g_pn_miss_char)
2084 AND (p_lease_contacts_tbl_update(i).attribute12 = pn_lease_utils.g_pn_miss_char)
2085 AND (p_lease_contacts_tbl_update(i).attribute13 = pn_lease_utils.g_pn_miss_char)
2086 AND (p_lease_contacts_tbl_update(i).attribute14 = pn_lease_utils.g_pn_miss_char)
2087 AND (p_lease_contacts_tbl_update(i).attribute15 = pn_lease_utils.g_pn_miss_char)
2088 )
2089 THEN
2090 ------------------------dbms_output.put_line('IN CONTACT ATTRIBUTES');
2091 IF (p_lease_contacts_tbl_update (i).attribute_category = pn_lease_utils.g_pn_miss_char)
2092 THEN
2093 p_lease_contacts_tbl_update (i).attribute_category := NULL;
2094 ELSE
2095 p_lease_contacts_tbl_update (i).attribute_category := r_contact_details.attribute_category;
2096 END IF;
2097
2098 IF (p_lease_contacts_tbl_update (i).attribute1 = pn_lease_utils.g_pn_miss_char)
2099 THEN
2100 p_lease_contacts_tbl_update (i).attribute1 := NULL;
2101 NULL;
2102 ELSE
2103 p_lease_contacts_tbl_update (i).attribute1 := r_contact_details.attribute1;
2104 END IF;
2105
2106 IF (p_lease_contacts_tbl_update (i).attribute2 = pn_lease_utils.g_pn_miss_char)
2107 THEN
2108 p_lease_contacts_tbl_update (i).attribute2 := NULL;
2109 ELSE
2110 p_lease_contacts_tbl_update (i).attribute2 := r_contact_details.attribute2;
2111 END IF;
2112
2113 IF (p_lease_contacts_tbl_update (i).attribute3 = pn_lease_utils.g_pn_miss_char)
2114 THEN
2115 p_lease_contacts_tbl_update (i).attribute3 := NULL;
2116 ELSE
2117 p_lease_contacts_tbl_update (i).attribute3 := r_contact_details.attribute3;
2118 END IF;
2119
2120 IF (p_lease_contacts_tbl_update (i).attribute4 = pn_lease_utils.g_pn_miss_char)
2121 THEN
2122 p_lease_contacts_tbl_update (i).attribute4 := NULL;
2123 ELSE
2124 p_lease_contacts_tbl_update (i).attribute4 := r_contact_details.attribute4;
2125 END IF;
2126
2127 IF (p_lease_contacts_tbl_update (i).attribute5 = pn_lease_utils.g_pn_miss_char)
2128 THEN
2129 p_lease_contacts_tbl_update (i).attribute5 := NULL;
2130 ELSE
2131 p_lease_contacts_tbl_update (i).attribute5 := r_contact_details.attribute5;
2132 END IF;
2133
2134 IF (p_lease_contacts_tbl_update (i).attribute6 = pn_lease_utils.g_pn_miss_char)
2135 THEN
2136 p_lease_contacts_tbl_update (i).attribute6 := NULL;
2137 ELSE
2138 p_lease_contacts_tbl_update (i).attribute6 := r_contact_details.attribute6;
2139 END IF;
2140
2141 IF (p_lease_contacts_tbl_update (i).attribute7 = pn_lease_utils.g_pn_miss_char)
2142 THEN
2143 p_lease_contacts_tbl_update (i).attribute7 := NULL;
2144 ELSE
2145 p_lease_contacts_tbl_update (i).attribute7 := r_contact_details.attribute7;
2146 END IF;
2147
2148 IF (p_lease_contacts_tbl_update (i).attribute8 = pn_lease_utils.g_pn_miss_char)
2149 THEN
2150 p_lease_contacts_tbl_update (i).attribute8 := NULL;
2151 ELSE
2152 p_lease_contacts_tbl_update (i).attribute8 := r_contact_details.attribute8;
2153 END IF;
2154
2155 IF (p_lease_contacts_tbl_update (i).attribute9 = pn_lease_utils.g_pn_miss_char)
2156 THEN
2157 p_lease_contacts_tbl_update (i).attribute9 := NULL;
2158 ELSE
2159 p_lease_contacts_tbl_update (i).attribute9 := r_contact_details.attribute9;
2160 END IF;
2161
2162 IF (p_lease_contacts_tbl_update (i).attribute10 = pn_lease_utils.g_pn_miss_char)
2163 THEN
2164 p_lease_contacts_tbl_update (i).attribute10 := NULL;
2165 ELSE
2166 p_lease_contacts_tbl_update (i).attribute10 := r_contact_details.attribute10;
2167 END IF;
2168
2169 IF (p_lease_contacts_tbl_update (i).attribute11 = pn_lease_utils.g_pn_miss_char)
2170 THEN
2171 p_lease_contacts_tbl_update (i).attribute11 := NULL;
2172 ELSE
2173 p_lease_contacts_tbl_update (i).attribute11 := r_contact_details.attribute11;
2174 END IF;
2175
2176 IF (p_lease_contacts_tbl_update (i).attribute12 = pn_lease_utils.g_pn_miss_char)
2177 THEN
2178 p_lease_contacts_tbl_update (i).attribute12 := NULL;
2179 ELSE
2180 p_lease_contacts_tbl_update (i).attribute12 := r_contact_details.attribute12;
2181 END IF;
2182
2183 IF (p_lease_contacts_tbl_update (i).attribute13 = pn_lease_utils.g_pn_miss_char)
2184 THEN
2185 p_lease_contacts_tbl_update (i).attribute13 := NULL;
2186 ELSE
2187 p_lease_contacts_tbl_update (i).attribute13 := r_contact_details.attribute13;
2188 END IF;
2189
2190 IF (p_lease_contacts_tbl_update (i).attribute14 = pn_lease_utils.g_pn_miss_char)
2191 THEN
2192 p_lease_contacts_tbl_update (i).attribute14 := NULL;
2193 ELSE
2194 p_lease_contacts_tbl_update (i).attribute14 := r_contact_details.attribute14;
2195 END IF;
2196
2197 IF (p_lease_contacts_tbl_update (i).attribute15 = pn_lease_utils.g_pn_miss_char)
2198 THEN
2199 p_lease_contacts_tbl_update (i).attribute15 := NULL;
2200 ELSE
2201 p_lease_contacts_tbl_update (i).attribute15 := r_contact_details.attribute15;
2202 END IF;
2203
2204 pn_lease_utils.validate_desc_flex
2205 (p_api_name => l_api_name_full
2206 , p_application_short_name => 'PN'
2207 , p_desc_flex_name => 'PN_CONTACT_ASSIGNMENTS'
2208 , p_desc_segment1 => p_lease_contacts_tbl_update (i).attribute1
2209 , p_desc_segment2 => p_lease_contacts_tbl_update (i).attribute2
2210 , p_desc_segment3 => p_lease_contacts_tbl_update (i).attribute3
2211 , p_desc_segment4 => p_lease_contacts_tbl_update (i).attribute4
2212 , p_desc_segment5 => p_lease_contacts_tbl_update (i).attribute5
2213 , p_desc_segment6 => p_lease_contacts_tbl_update (i).attribute6
2214 , p_desc_segment7 => p_lease_contacts_tbl_update (i).attribute7
2215 , p_desc_segment8 => p_lease_contacts_tbl_update (i).attribute8
2216 , p_desc_segment9 => p_lease_contacts_tbl_update (i).attribute9
2217 , p_desc_segment10 => p_lease_contacts_tbl_update (i).attribute10
2218 , p_desc_segment11 => p_lease_contacts_tbl_update (i).attribute11
2219 , p_desc_segment12 => p_lease_contacts_tbl_update (i).attribute12
2220 , p_desc_segment13 => p_lease_contacts_tbl_update (i).attribute13
2221 , p_desc_segment14 => p_lease_contacts_tbl_update (i).attribute14
2222 , p_desc_segment15 => p_lease_contacts_tbl_update (i).attribute15
2223 , p_desc_context => p_lease_contacts_tbl_update (i).attribute_category
2224 , p_resp_appl_id => fnd_global.resp_appl_id
2225 ,p_resp_id => fnd_global.resp_id
2226 , p_return_status => x_return_status
2227 );
2228 IF (x_return_status = fnd_api.g_ret_sts_error)THEN
2229 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
2230 fnd_message.set_token ('COLUMN','PN_CONTACT_ASSIGNMENTS_DESC_FIELDS');
2231 fnd_message.set_token ('P_TEXT', 'PN_CONTACT_ASSIGNMENTS'|| '-'|| SQLERRM);
2232 fnd_msg_pub.ADD;
2233 RAISE fnd_api.g_exc_error;
2234 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
2235 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
2236 fnd_message.set_token ('COLUMN','PN_CONTACT_ASSIGNMENTS_DESC_FIELDS');
2237 fnd_message.set_token ('P_TEXT', 'PN_CONTACT_ASSIGNMENTS'|| '-'|| SQLERRM);
2238 fnd_msg_pub.ADD;
2239 RAISE fnd_api.g_exc_unexpected_error;
2240 END IF;
2241 END IF;
2242 ----------------------dbms_output.put_line('B4 Update Contact Row');--Rupak
2243 pvt_debug(g_pkg_name||'-UPDATE_CONTACTS:Initialize the values to NULL and Call the UPDATE_CONTACTS_ROW',3);
2244 INIT_CONTACTS_REC( p_lease_contacts_rec => p_lease_contacts_tbl_update(i)
2245 , p_lease_context => p_lease_context
2246 , x_return_status => x_return_status
2247 );
2248 update_contacts_row (p_lease_contacts_rec => p_lease_contacts_tbl_update (i)
2249 , p_lease_id => p_lease_id
2250 , p_lease_context => p_lease_context
2251 , x_return_status => x_return_status);
2252
2253 IF (x_return_status = fnd_api.g_ret_sts_error)
2254 THEN
2255 RAISE fnd_api.g_exc_error;
2256 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
2257 THEN
2258 RAISE fnd_api.g_exc_unexpected_error;
2259 END IF;
2260
2261 l_assign_flag := 'Y';
2262 ELSE
2263 NULL;
2264 ------------------------dbms_output.put_line('In Update Contacts:ELSE PART :p_lease_contacts_tbl_update(i).contact_assignment_id'||p_lease_contacts_tbl_update(i).contact_assignment_id);
2265 ------------------------dbms_output.put_line('In Update Contacts:ELSE PART :r_contact_details.contact_assignment_id'||r_contact_details.contact_assignment_id);
2266 END IF;
2267 EXCEPTION
2268 WHEN fnd_api.g_exc_error THEN
2269 --l_error_count_err := l_error_count_err+1;
2270 x_return_status := fnd_api.g_ret_sts_error;
2271 pvt_debug(g_pkg_name||'-update_contacts:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
2272 WHEN OTHERS THEN
2273 --l_error_count_uerr := l_error_count_uerr+1;
2274 x_return_status := fnd_api.g_ret_sts_unexp_error;
2275 pvt_debug(g_pkg_name||'-update_contacts:LOOOPING:EXCEPTION:'||SQLERRM,3);
2276 END;
2277 END LOOP;
2278 ELSE
2279 NULL;
2280 END IF;--Error Flag Check
2281 END IF;
2282 END LOOP;
2283 --------dbms_output.put_line('Contacts:ID NOT GIVEN');
2284 --If Contact Assignment ID is not given
2285 p:=1;
2286 FOR i IN 1..p_lease_contacts_tbl.COUNT
2287 LOOP
2288 IF(p_lease_contacts_tbl (i).contact_assignment_id IS NULL OR p_lease_contacts_tbl (i).contact_assignment_id = pn_lease_utils.g_pn_miss_num) THEN
2289 pvt_debug(g_pkg_name||'-update_contacts:Assigning the contact table values to other table',3);
2290 p_lease_contacts_tbl_tmp(p) := p_lease_contacts_tbl (i);
2291 p_lease_contacts_tbl_tmp(p).lease_change_id:=g_lease_change_id;
2292 p:= p+1;
2293 END IF;
2294 END LOOP;
2295 END IF;
2296 pvt_debug(g_pkg_name||'-update_contacts:Inserting the values of contact record as ID is not passed for this record',3);
2297
2298 IF(p_lease_contacts_tbl_tmp.COUNT >0 )THEN
2299 validate_contacts_tbl (p_lease_contacts_tbl => p_lease_contacts_tbl_tmp
2300 , p_lease_rec => l_lease_rec
2301 , p_validate => p_validate
2302 , p_lease_context => p_lease_context
2303 , p_operation => l_param_create_mode_operation
2304 , x_return_status => x_return_status
2305 );
2306 pvt_debug(g_pkg_name||'-update_contacts:Inserting the values of contact record return Status'||x_return_status,3);
2307 END IF;
2308 EXCEPTION
2309 WHEN OTHERS THEN
2310 pvt_debug(g_pkg_name||'-update_contacts:MAIN:EXCEPTION'||SQLERRM,3);
2311 END update_contacts;
2312
2313 /* Update Lease API*/
2314 PROCEDURE direct_update_lease (
2315 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false
2316 , p_commit IN VARCHAR2 DEFAULT fnd_api.g_false
2317 , x_return_status OUT NOCOPY VARCHAR2
2318 , x_msg_count OUT NOCOPY NUMBER
2319 , x_msg_data OUT NOCOPY VARCHAR2
2320 , p_lease_id IN NUMBER
2321 , p_lease_detail_id IN NUMBER
2322 , p_lease_change_id IN NUMBER
2323 , p_name IN VARCHAR2
2324 , p_lease_num IN VARCHAR2
2325 , p_parent_lease_id IN NUMBER
2326 , p_lease_type_code IN VARCHAR2
2327 , p_lease_class_code IN VARCHAR2
2328 , p_payment_term_proration_rule IN NUMBER
2329 , p_abstracted_by_user IN NUMBER
2330 , p_status IN VARCHAR2
2331 , p_lease_status IN VARCHAR2
2332 , p_last_update_date IN DATE
2333 , p_last_updated_by IN NUMBER
2334 , p_last_update_login IN NUMBER
2335 , p_responsible_user IN NUMBER
2336 , p_expense_account_id IN NUMBER
2337 , p_accrual_account_id IN NUMBER
2338 , p_receivable_account_id IN NUMBER
2339 , p_term_template_id IN NUMBER
2340 , p_lease_commencement_date IN DATE
2341 , p_lease_termination_date IN DATE
2342 , p_lease_execution_date IN DATE
2343 , p_cal_start IN VARCHAR2
2344 , p_attribute_category IN VARCHAR2
2345 , p_attribute1 IN VARCHAR2
2346 , p_attribute2 IN VARCHAR2
2347 , p_attribute3 IN VARCHAR2
2348 , p_attribute4 IN VARCHAR2
2349 , p_attribute5 IN VARCHAR2
2350 , p_attribute6 IN VARCHAR2
2351 , p_attribute7 IN VARCHAR2
2352 , p_attribute8 IN VARCHAR2
2353 , p_attribute9 IN VARCHAR2
2354 , p_attribute10 IN VARCHAR2
2355 , p_attribute11 IN VARCHAR2
2356 , p_attribute12 IN VARCHAR2
2357 , p_attribute13 IN VARCHAR2
2358 , p_attribute14 IN VARCHAR2
2359 , p_attribute15 IN VARCHAR2
2360 , p_location_id IN NUMBER
2361 , p_customer_id IN NUMBER
2362 , p_grouping_rule_id IN NUMBER DEFAULT NULL
2363 , p_lease_extension_end_date IN DATE)
2364 AS
2365 l_leasecommencementdate DATE := NULL;
2366 l_leaseterminationdate DATE := NULL;
2367 l_leaseexecutiondate DATE := NULL;
2368 l_lastupdatedate DATE := NULL;
2369 l_leaseextensionenddate DATE := NULL;
2370 l_leasechangeid pn_lease_details.lease_change_id%TYPE;
2371 BEGIN
2372 -- Standard start of API savepoint
2373 SAVEPOINT update_lease_pvt;
2374
2375 -- Initialize message list if p_init_msg_list is set to TRUE
2376 IF fnd_api.to_boolean (p_init_msg_list)
2377 THEN
2378 fnd_msg_pub.initialize;
2379 END IF;
2380
2381
2382 pvt_debug(g_pkg_name||'-DIRECT_UPDATE_LEASE:Updating the Lease Record by calling the standard Package',3);
2383 -- Initialize the return status.
2384 x_return_status := fnd_api.g_ret_sts_success;
2385 l_lastupdatedate := p_last_update_date;
2386 l_leasecommencementdate := p_lease_commencement_date;
2387 l_leaseterminationdate := p_lease_termination_date;
2388 l_leaseexecutiondate := p_lease_execution_date;
2389 --Logic to be added later
2390 l_leaseextensionenddate := p_lease_extension_end_date;
2391 --Logic to be added later
2392 -- Lease Number/Name change enhancement Changes.
2393 l_leasechangeid := p_lease_change_id;
2394 pn_leases_pkg.update_row (x_lease_id => p_lease_id
2395 , x_lease_detail_id => p_lease_detail_id
2396 , x_lease_change_id => l_leasechangeid
2397 , x_name => p_name
2398 , x_lease_num => p_lease_num
2399 , x_parent_lease_id => p_parent_lease_id
2400 , x_lease_type_code => p_lease_type_code
2401 , x_lease_class_code => p_lease_class_code
2402 , x_payment_term_proration_rule => p_payment_term_proration_rule
2403 , x_abstracted_by_user => p_abstracted_by_user
2404 , x_status => p_status
2405 , x_lease_status => p_lease_status
2406 , x_last_update_date => sysdate
2407 , x_last_updated_by => fnd_global.user_id
2408 , x_last_update_login => fnd_global.login_id
2409 , x_responsible_user => p_responsible_user
2410 , x_expense_account_id => p_expense_account_id
2411 , x_accrual_account_id => p_accrual_account_id
2412 , x_receivable_account_id => p_receivable_account_id
2413 , x_term_template_id => p_term_template_id
2414 , x_lease_commencement_date => l_leasecommencementdate
2415 , x_lease_termination_date => l_leaseterminationdate
2416 , x_lease_execution_date => l_leaseexecutiondate
2417 , x_lease_extension_end_date => l_leaseextensionenddate
2418 , x_calendar_year_start_date => p_cal_start
2419 , x_attribute_category => p_attribute_category
2420 , x_attribute1 => p_attribute1
2421 , x_attribute2 => p_attribute2
2422 , x_attribute3 => p_attribute3
2423 , x_attribute4 => p_attribute4
2424 , x_attribute5 => p_attribute5
2425 , x_attribute6 => p_attribute6
2426 , x_attribute7 => p_attribute7
2427 , x_attribute8 => p_attribute8
2428 , x_attribute9 => p_attribute9
2429 , x_attribute10 => p_attribute10
2430 , x_attribute11 => p_attribute11
2431 , x_attribute12 => p_attribute12
2432 , x_attribute13 => p_attribute13
2433 , x_attribute14 => p_attribute14
2434 , x_attribute15 => p_attribute15
2435 , x_location_id => p_location_id
2436 , x_customer_id => p_customer_id
2437 , x_grouping_rule_id => p_grouping_rule_id
2438 );
2439
2440 pvt_debug(g_pkg_name||'-DIRECT_UPDATE_LEASE:Update of the Record Successful',3);
2441 EXCEPTION
2442 WHEN fnd_api.g_exc_error
2443 THEN
2444 ROLLBACK TO update_lease_pvt;
2445 x_return_status := fnd_api.g_ret_sts_error;
2446 WHEN OTHERS
2447 THEN
2448 ROLLBACK TO update_lease_pvt;
2449 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
2450 fnd_message.set_token ('P_TEXT', 'pn_lease_pvt.direct_update_lease'|| SQLERRM);
2451 fnd_msg_pub.ADD;
2452 x_return_status := fnd_api.g_ret_sts_unexp_error;
2453 END direct_update_lease;
2454
2455 /*Amend Lease*/
2456 PROCEDURE amend_lease (
2457 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false
2458 , p_commit IN VARCHAR2 DEFAULT fnd_api.g_false
2459 , x_return_status OUT NOCOPY VARCHAR2
2460 , x_msg_count OUT NOCOPY NUMBER
2461 , x_msg_data OUT NOCOPY VARCHAR2
2462 , p_lease_name IN VARCHAR2
2463 , p_lease_id IN NUMBER
2464 , p_creation_date IN DATE DEFAULT SYSDATE
2465 , p_org_id IN NUMBER
2466 , p_lease_commencement_date IN DATE
2467 , p_lease_termination_date IN DATE
2468 , p_lease_execution_date IN DATE
2469 , p_responsible_user IN NUMBER
2470 , p_abstracted_by_user IN NUMBER
2471 , p_attribute_category IN VARCHAR2
2472 , p_attribute1 IN VARCHAR2
2473 , p_attribute2 IN VARCHAR2
2474 , p_attribute3 IN VARCHAR2
2475 , p_attribute4 IN VARCHAR2
2476 , p_attribute5 IN VARCHAR2
2477 , p_attribute6 IN VARCHAR2
2478 , p_attribute7 IN VARCHAR2
2479 , p_attribute8 IN VARCHAR2
2480 , p_attribute9 IN VARCHAR2
2481 , p_attribute10 IN VARCHAR2
2482 , p_attribute11 IN VARCHAR2
2483 , p_attribute12 IN VARCHAR2
2484 , p_attribute13 IN VARCHAR2
2485 , p_attribute14 IN VARCHAR2
2486 , p_attribute15 IN VARCHAR2
2487 , p_last_update_date IN DATE DEFAULT SYSDATE
2488 , p_user_id IN NUMBER
2489 , x_lease_change_id OUT NOCOPY NUMBER
2490 , x_lease_change_num OUT NOCOPY NUMBER)
2491 IS
2492 l_rowid VARCHAR2 (18) := NULL;
2493 l_leasechangeid NUMBER := NULL;
2494 l_lastupdatedate DATE := p_last_update_date;
2495 l_creationdate DATE := p_creation_date;
2496 l_leasechangenumber NUMBER := NULL;
2497 l_org_id NUMBER;
2498 l_changecommencementdate DATE := NULL;
2499 l_changeterminationdate DATE := NULL;
2500 l_changeexecutiondate DATE := NULL;
2501 BEGIN
2502 -- Standard start of API savepoint
2503 SAVEPOINT amend_lease_pvt;
2504
2505 -- Initialize message list if p_init_msg_list is set to TRUE
2506 IF fnd_api.to_boolean (p_init_msg_list)
2507 THEN
2508 fnd_msg_pub.initialize;
2509 END IF;
2510 ----------------------dbms_output.put_line('IN AMEND PROC'||p_lease_name);
2511 pvt_debug(g_pkg_name||'-AMEND_LEASE:Inerting into the Lease Changes Package',3);
2512 -- Initialize the return status.
2513 x_return_status := fnd_api.g_ret_sts_success;
2514 l_org_id := p_org_id;
2515 l_lastupdatedate := p_last_update_date;
2516 l_creationdate := p_creation_date;
2517 l_changecommencementdate := p_lease_commencement_date;
2518 l_changeterminationdate := p_lease_termination_date;
2519 l_changeexecutiondate := p_lease_execution_date;
2520 pn_lease_changes_pkg.insert_row (x_rowid => l_rowid
2521 , x_lease_change_id => l_leasechangeid
2522 , x_lease_id => p_lease_id
2523 , x_lease_change_number => l_leasechangenumber
2524 , x_lease_change_name => p_lease_name
2525 , x_responsible_user => p_responsible_user
2526 , x_change_commencement_date => l_changecommencementdate
2527 , x_change_termination_date => l_changeterminationdate
2528 , x_change_type_lookup_code => 'AMEND'
2529 , x_change_execution_date => l_changeexecutiondate
2530 , x_attribute_category => p_attribute_category
2531 , x_attribute1 => p_attribute1
2532 , x_attribute2 => p_attribute2
2533 , x_attribute3 => p_attribute3
2534 , x_attribute4 => p_attribute4
2535 , x_attribute5 => p_attribute5
2536 , x_attribute6 => p_attribute6
2537 , x_attribute7 => p_attribute7
2538 , x_attribute8 => p_attribute8
2539 , x_attribute9 => p_attribute9
2540 , x_attribute10 => p_attribute10
2541 , x_attribute11 => p_attribute11
2542 , x_attribute12 => p_attribute12
2543 , x_attribute13 => p_attribute13
2544 , x_attribute14 => p_attribute14
2545 , x_attribute15 => p_attribute15
2546 , x_abstracted_by_user => p_abstracted_by_user
2547 , x_creation_date => l_creationdate
2548 , x_created_by => p_user_id
2549 , x_last_update_date => l_lastupdatedate
2550 , x_last_updated_by => p_user_id
2551 , x_last_update_login => fnd_global.login_id
2552 , x_org_id => l_org_id
2553 , x_cutoff_date => NULL);
2554 pvt_debug(g_pkg_name||'-AMEND_LEASE:Insertion into the table successful',3);
2555 x_lease_change_id := l_leasechangeid;
2556 x_lease_change_num := l_leasechangenumber;
2557 EXCEPTION
2558 WHEN fnd_api.g_exc_error
2559 THEN
2560 ROLLBACK TO amend_lease_pvt;
2561 x_return_status := fnd_api.g_ret_sts_error;
2562 WHEN OTHERS
2563 THEN
2564 ROLLBACK TO amend_lease_pvt;
2565 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
2566 fnd_message.set_token ('P_TEXT', 'pn_lease_pvt.amend_lease'|| SQLERRM);
2567 fnd_msg_pub.ADD;
2568 x_return_status := fnd_api.g_ret_sts_unexp_error;
2569 END amend_lease;
2570
2571 /*Edit Lease*/
2572 PROCEDURE edit_lease (
2573 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false
2574 , p_commit IN VARCHAR2 DEFAULT fnd_api.g_false
2575 , x_return_status OUT NOCOPY VARCHAR2
2576 , x_msg_count OUT NOCOPY NUMBER
2577 , x_msg_data OUT NOCOPY VARCHAR2
2578 , p_lease_id IN NUMBER
2579 , p_creation_date IN DATE DEFAULT SYSDATE
2580 , p_org_id IN NUMBER
2581 , p_last_update_date IN DATE DEFAULT SYSDATE
2582 , x_lease_change_id OUT NOCOPY NUMBER
2583 , x_lease_change_num OUT NOCOPY NUMBER)
2584 IS
2585 l_rowid VARCHAR2 (18) := NULL;
2586 l_leasechangeid NUMBER := NULL;
2587 l_lastupdatedate DATE := p_last_update_date;
2588 l_creationdate DATE := p_creation_date;
2589 l_leasechangenumber NUMBER := NULL;
2590 l_org_id NUMBER;
2591 BEGIN
2592 -- Standard start of API savepoint
2593 SAVEPOINT edit_lease_pvt;
2594
2595 -- Initialize message list if p_init_msg_list is set to TRUE
2596 IF fnd_api.to_boolean (p_init_msg_list)
2597 THEN
2598 fnd_msg_pub.initialize;
2599 END IF;
2600 pvt_debug(g_pkg_name||'-EDIT_LEASE:Inerting into the Lease Changes Package',3);
2601 -- Initialize the return status.
2602 x_return_status := fnd_api.g_ret_sts_success;
2603 l_org_id := p_org_id;
2604 pn_lease_changes_pkg.insert_row (x_rowid => l_rowid
2605 , x_lease_change_id => l_leasechangeid
2606 , x_lease_id => p_lease_id
2607 , x_lease_change_number => l_leasechangenumber
2608 , x_lease_change_name => 'EDIT'
2609 , x_responsible_user => NULL
2610 , x_change_commencement_date => NULL
2611 , x_change_termination_date => NULL
2612 , x_change_type_lookup_code => 'EDIT'
2613 , x_change_execution_date => NULL
2614 , x_attribute_category => NULL
2615 , x_attribute1 => NULL
2616 , x_attribute2 => NULL
2617 , x_attribute3 => NULL
2618 , x_attribute4 => NULL
2619 , x_attribute5 => NULL
2620 , x_attribute6 => NULL
2621 , x_attribute7 => NULL
2622 , x_attribute8 => NULL
2623 , x_attribute9 => NULL
2624 , x_attribute10 => NULL
2625 , x_attribute11 => NULL
2626 , x_attribute12 => NULL
2627 , x_attribute13 => NULL
2628 , x_attribute14 => NULL
2629 , x_attribute15 => NULL
2630 , x_abstracted_by_user => NULL
2631 , x_creation_date => l_creationdate
2632 , x_created_by => fnd_global.user_id
2633 , x_last_update_date => l_lastupdatedate
2634 , x_last_updated_by => fnd_global.user_id
2635 , x_last_update_login => fnd_global.login_id
2636 , x_org_id => l_org_id);
2637 pvt_debug(g_pkg_name||'-EDIT_LEASE:Insertion into the table successful',3);
2638 x_return_status := fnd_api.g_ret_sts_success;
2639 x_lease_change_id := l_leasechangeid;
2640 x_lease_change_num := l_leasechangenumber;
2641 EXCEPTION
2642 WHEN fnd_api.g_exc_error
2643 THEN
2644 ROLLBACK TO edit_lease_pvt;
2645 x_return_status := fnd_api.g_ret_sts_error;
2646 WHEN OTHERS
2647 THEN
2648 ROLLBACK TO edit_lease_pvt;
2649 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
2650 fnd_message.set_token ('P_TEXT', 'pn_lease_pvt.edit_lease'
2651 || SQLERRM);
2652 fnd_msg_pub.ADD;
2653 x_return_status := fnd_api.g_ret_sts_unexp_error;
2654 END edit_lease;
2655
2656 PROCEDURE INIT_TENANCIES_REC( p_lease_tenancies_rec IN OUT NOCOPY lease_tenancies_rec
2657 , p_lease_context IN VARCHAR2
2658 , x_return_status OUT NOCOPY VARCHAR2
2659 )
2660 IS
2661
2662 BEGIN
2663 pvt_debug(g_pkg_name||'-Inside INIT_TENANCIES_REC',3);
2664 -- Initialize the return status.
2665 x_return_status := fnd_api.g_ret_sts_success;
2666 IF p_lease_tenancies_rec.tenancy_id = pn_lease_utils.g_pn_miss_num
2667 THEN
2668 p_lease_tenancies_rec.tenancy_id:= NULL;
2669 END IF;
2670
2671
2672 IF p_lease_tenancies_rec.last_update_date = pn_lease_utils.g_pn_miss_date
2673 THEN
2674 p_lease_tenancies_rec.last_update_date:= NULL;
2675 END IF;
2676
2677 IF p_lease_tenancies_rec.last_updated_by = pn_lease_utils.g_pn_miss_num
2678 THEN
2679 p_lease_tenancies_rec.last_updated_by:= NULL;
2680 END IF;
2681
2682 IF p_lease_tenancies_rec.creation_date = pn_lease_utils.g_pn_miss_date
2683 THEN
2684 p_lease_tenancies_rec.creation_date:= NULL;
2685 END IF;
2686
2687 IF p_lease_tenancies_rec.created_by = pn_lease_utils.g_pn_miss_num
2688 THEN
2689 p_lease_tenancies_rec.created_by:= NULL;
2690 END IF;
2691
2692 IF p_lease_tenancies_rec.last_update_login = pn_lease_utils.g_pn_miss_num
2693 THEN
2694 p_lease_tenancies_rec.last_update_login:= NULL;
2695 END IF;
2696
2697 IF p_lease_tenancies_rec.location_id = pn_lease_utils.g_pn_miss_num
2698 THEN
2699 p_lease_tenancies_rec.location_id:= NULL;
2700 END IF;
2701
2702
2703 IF p_lease_tenancies_rec.lease_id = pn_lease_utils.g_pn_miss_num
2704 THEN
2705 p_lease_tenancies_rec.lease_id:= NULL;
2706 END IF;
2707
2708 IF p_lease_tenancies_rec.lease_change_id = pn_lease_utils.g_pn_miss_num
2709 THEN
2710 p_lease_tenancies_rec.lease_change_id:= NULL;
2711 END IF;
2712
2713 IF p_lease_tenancies_rec.tenancy_usage_lookup_code = pn_lease_utils.g_pn_miss_char
2714 THEN
2715 p_lease_tenancies_rec.tenancy_usage_lookup_code:= NULL;
2716 END IF;
2717
2718 IF p_lease_tenancies_rec.primary_flag = pn_lease_utils.g_pn_miss_char
2719 THEN
2720 p_lease_tenancies_rec.primary_flag:= 'N';
2721 END IF;
2722
2723 IF p_lease_tenancies_rec.estimated_occupancy_date = pn_lease_utils.g_pn_miss_date
2724 THEN
2725 p_lease_tenancies_rec.estimated_occupancy_date:= NULL;
2726 END IF;
2727
2728 IF p_lease_tenancies_rec.occupancy_date = pn_lease_utils.g_pn_miss_date
2729 THEN
2730 p_lease_tenancies_rec.occupancy_date:= NULL;
2731 END IF;
2732
2733 IF p_lease_tenancies_rec.expiration_date = pn_lease_utils.g_pn_miss_date
2734 THEN
2735 p_lease_tenancies_rec.expiration_date:= NULL;
2736 END IF;
2737
2738 IF p_lease_tenancies_rec.assignable_flag = pn_lease_utils.g_pn_miss_char
2739 THEN
2740 p_lease_tenancies_rec.assignable_flag:= NULL;
2741 END IF;
2742
2743 IF p_lease_tenancies_rec.subleaseable_flag = pn_lease_utils.g_pn_miss_char
2744 THEN
2745 p_lease_tenancies_rec.subleaseable_flag:= NULL;
2746 END IF;
2747
2748 IF p_lease_tenancies_rec.tenants_proportionate_share = pn_lease_utils.g_pn_miss_num
2749 THEN
2750 p_lease_tenancies_rec.tenants_proportionate_share:= NULL;
2751 END IF;
2752
2753 IF p_lease_tenancies_rec.status = pn_lease_utils.g_pn_miss_char
2754 THEN
2755 p_lease_tenancies_rec.status:= 'A';
2756 END IF;
2757
2758 IF p_lease_tenancies_rec.attribute_category = pn_lease_utils.g_pn_miss_char
2759 THEN
2760 p_lease_tenancies_rec.attribute_category:= NULL;
2761 END IF;
2762
2763 IF p_lease_tenancies_rec.attribute1 = pn_lease_utils.g_pn_miss_char
2764 THEN
2765 p_lease_tenancies_rec.attribute1:= NULL;
2766 END IF;
2767
2768 IF p_lease_tenancies_rec.attribute2 = pn_lease_utils.g_pn_miss_char
2769 THEN
2770 p_lease_tenancies_rec.attribute2:= NULL;
2771 END IF;
2772
2773 IF p_lease_tenancies_rec.attribute3 = pn_lease_utils.g_pn_miss_char
2774 THEN
2775 p_lease_tenancies_rec.attribute3:= NULL;
2776 END IF;
2777
2778 IF p_lease_tenancies_rec.attribute4 = pn_lease_utils.g_pn_miss_char
2779 THEN
2780 p_lease_tenancies_rec.attribute4:= NULL;
2781 END IF;
2782
2783 IF p_lease_tenancies_rec.attribute5 = pn_lease_utils.g_pn_miss_char
2784 THEN
2785 p_lease_tenancies_rec.attribute5:= NULL;
2786 END IF;
2787
2788 IF p_lease_tenancies_rec.attribute6 = pn_lease_utils.g_pn_miss_char
2789 THEN
2790 p_lease_tenancies_rec.attribute6:= NULL;
2791 END IF;
2792
2793 IF p_lease_tenancies_rec.attribute7 = pn_lease_utils.g_pn_miss_char
2794 THEN
2795 p_lease_tenancies_rec.attribute7:= NULL;
2796 END IF;
2797
2798 IF p_lease_tenancies_rec.attribute8 = pn_lease_utils.g_pn_miss_char
2799 THEN
2800 p_lease_tenancies_rec.attribute8:= NULL;
2801 END IF;
2802
2803 IF p_lease_tenancies_rec.attribute9 = pn_lease_utils.g_pn_miss_char
2804 THEN
2805 p_lease_tenancies_rec.attribute9:= NULL;
2806 END IF;
2807
2808 IF p_lease_tenancies_rec.attribute10 = pn_lease_utils.g_pn_miss_char
2809 THEN
2810 p_lease_tenancies_rec.attribute10:= NULL;
2811 END IF;
2812
2813 IF p_lease_tenancies_rec.attribute11 = pn_lease_utils.g_pn_miss_char
2814 THEN
2815 p_lease_tenancies_rec.attribute11:= NULL;
2816 END IF;
2817
2818 IF p_lease_tenancies_rec.attribute12 = pn_lease_utils.g_pn_miss_char
2819 THEN
2820 p_lease_tenancies_rec.attribute12:= NULL;
2821 END IF;
2822
2823 IF p_lease_tenancies_rec.attribute13 = pn_lease_utils.g_pn_miss_char
2824 THEN
2825 p_lease_tenancies_rec.attribute13:= NULL;
2826 END IF;
2827
2828 IF p_lease_tenancies_rec.attribute14 = pn_lease_utils.g_pn_miss_char
2829 THEN
2830 p_lease_tenancies_rec.attribute14:= NULL;
2831 END IF;
2832
2833 IF p_lease_tenancies_rec.attribute15 = pn_lease_utils.g_pn_miss_char
2834 THEN
2835 p_lease_tenancies_rec.attribute15:= NULL;
2836 END IF;
2837
2838 IF p_lease_tenancies_rec.org_id = pn_lease_utils.g_pn_miss_num
2839 THEN
2840 p_lease_tenancies_rec.org_id:= NULL;
2841 END IF;
2842
2843 IF p_lease_tenancies_rec.recovery_type_code = pn_lease_utils.g_pn_miss_char
2844 THEN
2845 p_lease_tenancies_rec.recovery_type_code:= NULL;
2846 END IF;
2847
2848 IF p_lease_tenancies_rec.recovery_space_std_code = pn_lease_utils.g_pn_miss_char
2849 THEN
2850 p_lease_tenancies_rec.recovery_space_std_code:= NULL;
2851 END IF;
2852
2853 IF p_lease_tenancies_rec.fin_oblig_end_date = pn_lease_utils.g_pn_miss_date
2854 THEN
2855 p_lease_tenancies_rec.fin_oblig_end_date := NULL;
2856 END IF;
2857
2858 IF p_lease_tenancies_rec.customer_id = pn_lease_utils.g_pn_miss_num
2859 THEN
2860 p_lease_tenancies_rec.customer_id:= NULL;
2861 END IF;
2862
2863 IF p_lease_tenancies_rec.customer_site_use_id = pn_lease_utils.g_pn_miss_num
2864 THEN
2865 p_lease_tenancies_rec.customer_site_use_id:= NULL;
2866 END IF;
2867
2868 IF p_lease_tenancies_rec.lease_rentable_area = pn_lease_utils.g_pn_miss_num
2869 THEN
2870 p_lease_tenancies_rec.lease_rentable_area:= NULL;
2871 END IF;
2872
2873 IF p_lease_tenancies_rec.lease_usable_area = pn_lease_utils.g_pn_miss_num
2874 THEN
2875 p_lease_tenancies_rec.lease_usable_area:= NULL;
2876 END IF;
2877
2878 IF p_lease_tenancies_rec.lease_assignable_area = pn_lease_utils.g_pn_miss_num
2879 THEN
2880 p_lease_tenancies_rec.lease_assignable_area:= NULL;
2881 END IF;
2882
2883 IF p_lease_tenancies_rec.lease_load_factor = pn_lease_utils.g_pn_miss_num
2884 THEN
2885 p_lease_tenancies_rec.lease_load_factor:= NULL;
2886 END IF;
2887
2888
2889 IF p_lease_tenancies_rec.location_rentable_area = pn_lease_utils.g_pn_miss_num
2890 THEN
2891 p_lease_tenancies_rec.location_rentable_area:= NULL;
2892 END IF;
2893
2894 IF p_lease_tenancies_rec.location_usable_area = pn_lease_utils.g_pn_miss_num
2895 THEN
2896 p_lease_tenancies_rec.location_usable_area:= NULL;
2897 END IF;
2898
2899 IF p_lease_tenancies_rec.location_assignable_area = pn_lease_utils.g_pn_miss_num
2900 THEN
2901 p_lease_tenancies_rec.location_assignable_area:= NULL;
2902 END IF;
2903
2904 IF p_lease_tenancies_rec.location_load_factor = pn_lease_utils.g_pn_miss_num
2905 THEN
2906 p_lease_tenancies_rec.location_load_factor := NULL;
2907 END IF;
2908
2909 IF p_lease_tenancies_rec.allocated_area = pn_lease_utils.g_pn_miss_num
2910 THEN
2911 p_lease_tenancies_rec.allocated_area := NULL;
2912 END IF;
2913 IF p_lease_tenancies_rec.allocated_area_pct = pn_lease_utils.g_pn_miss_num
2914 THEN
2915 p_lease_tenancies_rec.allocated_area_pct := NULL;
2916 END IF;
2917 IF p_lease_tenancies_rec.error_flag = pn_lease_utils.g_pn_miss_char
2918 THEN
2919 p_lease_tenancies_rec.error_flag:= NULL;
2920 END IF;
2921 EXCEPTION
2922 WHEN OTHERS
2923 THEN
2924 x_return_status := fnd_api.g_ret_sts_error;
2925 pvt_debug(g_pkg_name||'- INIT_TENANCIES_REC:Exception in INIT_TENANCIES_REC'||SQLERRM,3);
2926 END INIT_TENANCIES_REC;
2927
2928 PROCEDURE insert_tenancies_row (
2929 p_lease_tenancies_rec IN OUT NOCOPY lease_tenancies_rec
2930 , p_lease_rec IN lease_rec
2931 , p_lease_context IN VARCHAR2
2932 , x_return_status OUT NOCOPY VARCHAR2
2933 )
2934 IS
2935 l_rowid VARCHAR2 (18) := NULL;
2936 --PN_LEASE_UTILS.G_PN_MISS_CHAR;
2937 x_tenancy_ovelap_wrn VARCHAR2 (30) := pn_lease_utils.g_pn_miss_char;
2938
2939 -- l_rowId VARCHAR2(18) := NULL;
2940 -- l_tenancyId NUMBER := NULL;
2941 -- l_estimatedOccupancyDate DATE := NULL;
2942 -- l_occupancyDate DATE := NULL;
2943 -- l_expirationDate DATE := NULL;
2944 -- l_lastUpdateDate DATE := NULL;
2945 -- l_creationDate DATE := NULL;
2946 -- l_tenancy_ovelap_wrn VARCHAR2(30) := NULL;
2947 -- l_message VARCHAR2(30) := NULL; --CAM
2948 -- l_location_id pn_tenancies_all.location_id%TYPE;
2949 -- l_customer_id pn_tenancies_all.customer_id%TYPE;
2950 -- l_customer_site_use_id pn_tenancies_all.customer_site_use_id%TYPE;
2951 -- l_org_id NUMBER;
2952 -- l_allocated_area NUMBER;
2953 l_loc_area NUMBER;
2954 l_min_pct NUMBER;
2955 -- l_answer NUMBER;
2956 -- l_location_code PN_LOCATIONS.LOCATION_CODE%TYPE := NAME_IN('tenancy_fdr_blk.location_code'); /* Bug#7162821 */
2957 -- l_allocated_pct NUMBER;
2958 l_loc_code VARCHAR2(30) := NULL;
2959 l_mutiple_lease VARCHAR2(30) := NULL;
2960 l_automatic_distrubution VARCHAR2(30) := NULL;
2961 l_overlap_tenancy VARCHAR2(30) := NULL;
2962
2963 BEGIN
2964 ----------------------dbms_output.put_line ('In Insert INSERT_TENNANCIES_ROW');
2965 -- Initialize the return status.
2966 x_return_status := fnd_api.g_ret_sts_success;
2967 /*********************************************************************************************************************************************/
2968 IF p_lease_tenancies_rec.org_id IS NULL OR
2969 NVL(pn_mo_cache_utils.check_valid_org(p_lease_tenancies_rec.org_id), 'N') <> 'Y'
2970 THEN
2971 fnd_message.set_name('MO', 'MO_ORG_INVALID');
2972 fnd_msg_pub.ADD;
2973 RAISE fnd_api.g_exc_error;
2974 END IF;
2975
2976 pvt_debug(g_pkg_name||'-Inside INSERT_TENANCIES_ROW',3);
2977 l_mutiple_lease := NVL(pn_mo_cache_utils.get_profile_value('PN_MULTIPLE_LEASE_FOR_LOCATION'
2978 , p_lease_tenancies_rec.org_id)
2979 ,'N');
2980 l_automatic_distrubution := NVL(pn_mo_cache_utils.get_profile_value('PN_AUTOMATIC_SPACE_DISTRIBUTION'
2981 , p_lease_tenancies_rec.org_id)
2982 ,'N');
2983 l_overlap_tenancy := nvl(pn_mo_cache_utils.get_profile_value('PN_MULT_TNC_SAME_LEASE'
2984
2985 , p_lease_tenancies_rec.org_id)
2986 ,'N');
2987
2988 IF l_mutiple_lease = 'N' AND l_overlap_tenancy = 'N' THEN
2989 p_lease_tenancies_rec.allocated_area_pct:=100;
2990 END IF;
2991
2992 IF l_automatic_distrubution = 'N' AND (l_mutiple_lease <> 'N' OR l_overlap_tenancy <>'N') THEN
2993 pn_tenancies_pkg.get_loc_info(
2994 p_lease_tenancies_rec.location_id,
2995 NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date),
2996 p_lease_tenancies_rec.expiration_date,
2997 l_loc_code);
2998
2999 pn_tenancies_pkg.get_allocated_area(
3000 NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date),
3001 p_lease_tenancies_rec.expiration_date,
3002 p_lease_tenancies_rec.allocated_area_pct,
3003 l_loc_area
3004 );
3005
3006 pn_tenancies_pkg.Availaible_Space
3007 (
3008 p_lease_tenancies_rec.location_id,
3009 NVL(p_lease_tenancies_rec.occupancy_date,p_lease_tenancies_rec.estimated_occupancy_date),
3010 p_lease_tenancies_rec.expiration_date,
3011 l_min_pct
3012 );
3013
3014 IF p_lease_tenancies_rec.ALLOCATED_AREA_PCT> l_min_pct THEN
3015
3016 IF l_min_pct = 0 THEN
3017 fnd_message.set_name('PN', 'PN_LOC_VACANT_AREA_ZERO');
3018 fnd_message.set_token('LOCATION_CODE',p_lease_tenancies_rec.location_code);
3019 --l_answer := fnd_message.question(NAME_IN('parameter.pn_option_yes'),
3020 -- NAME_IN('parameter.pn_option_cancel'),
3021 -- NULL);
3022 --IF(l_answer = 1) THEN
3023 -- copy(0,'tenancy_fdr_blk.allocated_area_pct');
3024 -- l_loc_area := 0;
3025 --ELSIF l_answer = 2 THEN -- Cancel
3026 -- Raise Form_trigger_failure;
3027 --END IF;
3028 fnd_msg_pub.ADD;
3029 RAISE fnd_api.g_exc_error;
3030
3031 ELSIF l_min_pct > 0 THEN
3032 fnd_message.set_name('PN', 'PN_LOC_VACANT_AREA_LESSER');
3033 fnd_message.set_token('LOCATION_CODE',p_lease_tenancies_rec.location_code);
3034 fnd_message.set_token('MAX_AREA',nvl(l_min_pct,0));
3035 fnd_msg_pub.ADD;
3036 RAISE fnd_api.g_exc_error;
3037
3038 END IF;
3039 END IF;
3040 p_lease_tenancies_rec.allocated_area := l_loc_area;
3041 END IF;
3042
3043 pvt_debug(g_pkg_name||'-INSERT_TENANCIES_ROW:Before Calling Standard tenancies package:insert_row',3);
3044
3045 /*********************************************************************************************************************************************/
3046 INIT_TENANCIES_REC( p_lease_tenancies_rec => p_lease_tenancies_rec
3047 , p_lease_context => p_lease_context
3048 , x_return_status => x_return_status
3049 );
3050 p_lease_tenancies_rec.lease_id := p_lease_rec.lease_id;
3051 p_lease_tenancies_rec.lease_change_id := p_lease_rec.lease_id;
3052
3053 ----------------------dbms_output.put_line('p_lease_tenancies_rec.lease_id BEFORE CALLING pn_tenancies_pkg.insert_row: '||p_lease_tenancies_rec.lease_id );
3054 ------------------------dbms_output.put_line('p_lease_tenancies_rec.lease_change_id BEFORE CALLING pn_tenancies_pkg.insert_row: '||p_lease_tenancies_rec.lease_change_id );
3055 pn_tenancies_pkg.insert_row
3056 (x_rowid => l_rowid
3057 , x_tenancy_id => p_lease_tenancies_rec.tenancy_id
3058 , x_location_id => p_lease_tenancies_rec.location_id
3059 , x_lease_id => p_lease_tenancies_rec.lease_id
3060 , x_lease_change_id => p_lease_tenancies_rec.lease_change_id
3061 , x_tenancy_usage_lookup_code => p_lease_tenancies_rec.tenancy_usage_lookup_code
3062 , x_primary_flag => p_lease_tenancies_rec.primary_flag
3063 , x_estimated_occupancy_date => p_lease_tenancies_rec.estimated_occupancy_date
3064 , x_occupancy_date => p_lease_tenancies_rec.occupancy_date
3065 , x_expiration_date => p_lease_tenancies_rec.expiration_date
3066 , x_assignable_flag => p_lease_tenancies_rec.assignable_flag
3067 , x_subleaseable_flag => p_lease_tenancies_rec.subleaseable_flag
3068 , x_tenants_proportionate_share => p_lease_tenancies_rec.tenants_proportionate_share
3069 , x_allocated_area_pct => p_lease_tenancies_rec.allocated_area_pct
3070 , x_allocated_area => p_lease_tenancies_rec.allocated_area
3071 , x_status => p_lease_tenancies_rec.status
3072 , x_attribute_category => p_lease_tenancies_rec.attribute_category
3073 , x_attribute1 => p_lease_tenancies_rec.attribute1
3074 , x_attribute2 => p_lease_tenancies_rec.attribute2
3075 , x_attribute3 => p_lease_tenancies_rec.attribute3
3076 , x_attribute4 => p_lease_tenancies_rec.attribute4
3077 , x_attribute5 => p_lease_tenancies_rec.attribute5
3078 , x_attribute6 => p_lease_tenancies_rec.attribute6
3079 , x_attribute7 => p_lease_tenancies_rec.attribute7
3080 , x_attribute8 => p_lease_tenancies_rec.attribute8
3081 , x_attribute9 => p_lease_tenancies_rec.attribute9
3082 , x_attribute10 => p_lease_tenancies_rec.attribute10
3083 , x_attribute11 => p_lease_tenancies_rec.attribute11
3084 , x_attribute12 => p_lease_tenancies_rec.attribute12
3085 , x_attribute13 => p_lease_tenancies_rec.attribute13
3086 , x_attribute14 => p_lease_tenancies_rec.attribute14
3087 , x_attribute15 => p_lease_tenancies_rec.attribute15
3088 , x_creation_date => NVL (p_lease_tenancies_rec.creation_date, SYSDATE)
3089 , x_created_by => NVL (p_lease_tenancies_rec.created_by, fnd_global.user_id)
3090 , x_last_update_date => NVL (p_lease_tenancies_rec.last_update_date, SYSDATE)
3091 , x_last_updated_by => NVL (p_lease_tenancies_rec.last_updated_by, fnd_global.user_id)
3092 , x_last_update_login => NVL (p_lease_tenancies_rec.last_update_login, fnd_global.login_id)
3093 , x_org_id => p_lease_tenancies_rec.org_id
3094 , x_tenancy_ovelap_wrn => x_tenancy_ovelap_wrn
3095 , x_recovery_type_code => p_lease_tenancies_rec.recovery_type_code
3096 , x_recovery_space_std_code => p_lease_tenancies_rec.recovery_space_std_code
3097 , x_fin_oblig_end_date => p_lease_tenancies_rec.fin_oblig_end_date
3098 , x_customer_id => p_lease_tenancies_rec.customer_id
3099 , x_customer_site_use_id => p_lease_tenancies_rec.customer_site_use_id
3100 , x_lease_rentable_area => p_lease_tenancies_rec.lease_rentable_area
3101 , x_lease_usable_area => p_lease_tenancies_rec.lease_usable_area
3102 , x_lease_assignable_area => p_lease_tenancies_rec.lease_assignable_area
3103 , x_lease_load_factor => p_lease_tenancies_rec.lease_load_factor
3104 , x_location_rentable_area => p_lease_tenancies_rec.location_rentable_area
3105 , x_location_usable_area => p_lease_tenancies_rec.location_usable_area
3106 , x_location_assignable_area => p_lease_tenancies_rec.location_assignable_area
3107 , x_location_load_factor => p_lease_tenancies_rec.location_load_factor
3108 );
3109 pvt_debug(g_pkg_name||'- INSERT_TENANCIES_ROW:Insertion into tenancies table successful',3);
3110
3111 -- --------------------dbms_output.put_line('p_lease_tenancies_rec.lease_id after pn_tenancies_pkg.insert_row: '||p_lease_tenancies_rec.lease_id );--Rupak
3112 ----------------------dbms_output.put_line('p_lease_tenancies_rec.lease_change_id after pn_tenancies_pkg.insert_row: '||p_lease_tenancies_rec.lease_change_id );--Rupak
3113 EXCEPTION
3114 WHEN OTHERS
3115 THEN
3116 NULL;
3117 x_return_status := fnd_api.g_ret_sts_error;
3118 ----------------------dbms_output.put_line ( 'IN INSERT_TENANCIES_ROW EXCEPTION: '|| SQLERRM);--Rupak
3119 pvt_debug(g_pkg_name||'- INSERT_TENANCIES_ROW:Exception in Insertion into tenancies table'||SQLERRM,3);
3120
3121 END insert_tenancies_row;
3122
3123
3124
3125
3126
3127
3128 PROCEDURE INIT_CONTACTS_REC( p_lease_contacts_rec IN OUT NOCOPY lease_contacts_rec
3129 , p_lease_context IN VARCHAR2
3130 , x_return_status OUT NOCOPY VARCHAR2
3131 )
3132 IS
3133
3134 BEGIN
3135 pvt_debug(g_pkg_name||'- Inside INIT_CONTACTS_REC',3);
3136 IF p_lease_contacts_rec.contact_assignment_id = pn_lease_utils.g_pn_miss_num
3137 THEN
3138 p_lease_contacts_rec.contact_assignment_id := NULL;
3139 END IF;
3140
3141 IF p_lease_contacts_rec.created_by = pn_lease_utils.g_pn_miss_num
3142 THEN
3143 p_lease_contacts_rec.created_by := NULL;
3144 END IF;
3145
3146 IF p_lease_contacts_rec.last_updated_by = pn_lease_utils.g_pn_miss_num
3147 THEN
3148 p_lease_contacts_rec.last_updated_by := NULL;
3149 END IF;
3150
3151 IF p_lease_contacts_rec.last_update_login = pn_lease_utils.g_pn_miss_num
3152 THEN
3153 p_lease_contacts_rec.last_update_login := NULL;
3154 END IF;
3155
3156
3157 IF p_lease_contacts_rec.creation_date = pn_lease_utils.g_pn_miss_date
3158 THEN
3159 p_lease_contacts_rec.creation_date := NULL;
3160 END IF;
3161
3162 IF p_lease_contacts_rec.last_update_date = pn_lease_utils.g_pn_miss_date
3163 THEN
3164 p_lease_contacts_rec.last_update_date := NULL;
3165 END IF;
3166
3167 IF p_lease_contacts_rec.company_id = pn_lease_utils.g_pn_miss_num
3168 THEN
3169 p_lease_contacts_rec.company_id := NULL;
3170 END IF;
3171
3172 IF p_lease_contacts_rec.company_site_id = pn_lease_utils.g_pn_miss_num
3173 THEN
3174 p_lease_contacts_rec.company_site_id := NULL;
3175 END IF;
3176
3177 IF p_lease_contacts_rec.lease_id = pn_lease_utils.g_pn_miss_num
3178 THEN
3179 p_lease_contacts_rec.lease_id := NULL;
3180 END IF;
3181
3182 IF p_lease_contacts_rec.lease_change_id = pn_lease_utils.g_pn_miss_num
3183 THEN
3184 p_lease_contacts_rec.lease_change_id := NULL;
3185 END IF;
3186
3187 IF p_lease_contacts_rec.location_id = pn_lease_utils.g_pn_miss_num
3188 THEN
3189 p_lease_contacts_rec.location_id := NULL;
3190 END IF;
3191
3192 IF p_lease_contacts_rec.status = pn_lease_utils.g_pn_miss_char
3193 THEN
3194 p_lease_contacts_rec.status := NULL;
3195 END IF;
3196
3197 IF p_lease_contacts_rec.attribute_category = pn_lease_utils.g_pn_miss_char
3198 THEN
3199 p_lease_contacts_rec.attribute_category:= NULL;
3200 END IF;
3201
3202 IF p_lease_contacts_rec.attribute1 = pn_lease_utils.g_pn_miss_char
3203 THEN
3204 p_lease_contacts_rec.attribute1:= NULL;
3205 END IF;
3206
3207 IF p_lease_contacts_rec.attribute2 = pn_lease_utils.g_pn_miss_char
3208 THEN
3209 p_lease_contacts_rec.attribute2:= NULL;
3210 END IF;
3211
3212 IF p_lease_contacts_rec.attribute3 = pn_lease_utils.g_pn_miss_char
3213 THEN
3214 p_lease_contacts_rec.attribute3:= NULL;
3215 END IF;
3216
3217 IF p_lease_contacts_rec.attribute4 = pn_lease_utils.g_pn_miss_char
3218 THEN
3219 p_lease_contacts_rec.attribute4:= NULL;
3220 END IF;
3221
3222 IF p_lease_contacts_rec.attribute5 = pn_lease_utils.g_pn_miss_char
3223 THEN
3224 p_lease_contacts_rec.attribute5:= NULL;
3225 END IF;
3226
3227 IF p_lease_contacts_rec.attribute6 = pn_lease_utils.g_pn_miss_char
3228 THEN
3229 p_lease_contacts_rec.attribute6:= NULL;
3230 END IF;
3231
3232 IF p_lease_contacts_rec.attribute7 = pn_lease_utils.g_pn_miss_char
3233 THEN
3234 p_lease_contacts_rec.attribute7:= NULL;
3235 END IF;
3236
3237 IF p_lease_contacts_rec.attribute8 = pn_lease_utils.g_pn_miss_char
3238 THEN
3239 p_lease_contacts_rec.attribute8:= NULL;
3240 END IF;
3241
3242 IF p_lease_contacts_rec.attribute9 = pn_lease_utils.g_pn_miss_char
3243 THEN
3244 p_lease_contacts_rec.attribute9:= NULL;
3245 END IF;
3246
3247 IF p_lease_contacts_rec.attribute10 = pn_lease_utils.g_pn_miss_char
3248 THEN
3249 p_lease_contacts_rec.attribute10:= NULL;
3250 END IF;
3251
3252 IF p_lease_contacts_rec.attribute11 = pn_lease_utils.g_pn_miss_char
3253 THEN
3254 p_lease_contacts_rec.attribute11:= NULL;
3255 END IF;
3256
3257 IF p_lease_contacts_rec.attribute12 = pn_lease_utils.g_pn_miss_char
3258 THEN
3259 p_lease_contacts_rec.attribute12:= NULL;
3260 END IF;
3261
3262 IF p_lease_contacts_rec.attribute13 = pn_lease_utils.g_pn_miss_char
3263 THEN
3264 p_lease_contacts_rec.attribute13:= NULL;
3265 END IF;
3266
3267 IF p_lease_contacts_rec.attribute14 = pn_lease_utils.g_pn_miss_char
3268 THEN
3269 p_lease_contacts_rec.attribute14:= NULL;
3270 END IF;
3271
3272 IF p_lease_contacts_rec.attribute15 = pn_lease_utils.g_pn_miss_char
3273 THEN
3274 p_lease_contacts_rec.attribute15:= NULL;
3275 END IF;
3276
3277 IF p_lease_contacts_rec.org_id = pn_lease_utils.g_pn_miss_num
3278 THEN
3279 p_lease_contacts_rec.org_id:= NULL;
3280 END IF;
3281 IF p_lease_contacts_rec.error_flag = pn_lease_utils.g_pn_miss_char
3282 THEN
3283 p_lease_contacts_rec.error_flag:= NULL;
3284 END IF;
3285 END INIT_CONTACTS_REC;
3286
3287 PROCEDURE insert_contacts_row (
3288 p_lease_contacts_rec IN OUT NOCOPY lease_contacts_rec
3289 , p_lease_rec IN lease_rec
3290 , p_lease_context IN VARCHAR2
3291 , x_return_status OUT NOCOPY VARCHAR2)
3292 IS
3293 l_rowid VARCHAR2 (18) := NULL;
3294 BEGIN
3295 -- ----------------------dbms_output.put_line('In Insert Contacts ROW');
3296 ----------------------dbms_output.put_line('p_lease_id in insert contacts row'||p_lease_rec.lease_id);
3297 pvt_debug(g_pkg_name||'- INSERT_CONTACTS_ROW:Calling INIT_CONTACTS_REC',3);
3298 INIT_CONTACTS_REC( p_lease_contacts_rec => p_lease_contacts_rec
3299 , p_lease_context => p_lease_context
3300 , x_return_status => x_return_status
3301 );
3302
3303 p_lease_contacts_rec.lease_id:=p_lease_rec.lease_id;
3304 p_lease_contacts_rec.lease_change_id:=p_lease_rec.lease_change_id;
3305 ----------------------dbms_output.put_line('In Contacts Assignment Inserrow');--Rupak
3306 pvt_debug(g_pkg_name||'- INSERT_CONTACTS_ROW:Calling PN_CONTACT_ASSIGNMENTS_PKG.INSERT_ROW',3);
3307 pn_contact_assignments_pkg.insert_row
3308 (x_rowid => l_rowid
3309 , x_contact_assignment_id => p_lease_contacts_rec.contact_assignment_id
3310 , x_last_update_date => NVL
3311 (p_lease_contacts_rec.last_update_date
3312 , SYSDATE)
3313 , x_last_updated_by => NVL
3314 (p_lease_contacts_rec.last_updated_by
3315 , fnd_global.user_id)
3316 , x_creation_date => NVL
3317 (p_lease_contacts_rec.creation_date
3318 , SYSDATE)
3319 , x_created_by => NVL (p_lease_contacts_rec.created_by
3320 , fnd_global.user_id)
3321 , x_last_update_login => NVL
3322 (p_lease_contacts_rec.last_update_login
3323 , fnd_global.login_id)
3324 , x_company_id => p_lease_contacts_rec.company_id
3325 , x_company_site_id => p_lease_contacts_rec.company_site_id
3326 , x_lease_id => p_lease_contacts_rec.lease_id
3327 , x_lease_change_id => p_lease_contacts_rec.lease_change_id
3328 , x_location_id => p_lease_contacts_rec.location_id
3329 , x_status => p_lease_contacts_rec.status
3330 , x_attribute_category => p_lease_contacts_rec.attribute_category
3331 , x_attribute1 => p_lease_contacts_rec.attribute1
3332 , x_attribute2 => p_lease_contacts_rec.attribute2
3333 , x_attribute3 => p_lease_contacts_rec.attribute3
3334 , x_attribute4 => p_lease_contacts_rec.attribute4
3335 , x_attribute5 => p_lease_contacts_rec.attribute5
3336 , x_attribute6 => p_lease_contacts_rec.attribute6
3337 , x_attribute7 => p_lease_contacts_rec.attribute7
3338 , x_attribute8 => p_lease_contacts_rec.attribute8
3339 , x_attribute9 => p_lease_contacts_rec.attribute9
3340 , x_attribute10 => p_lease_contacts_rec.attribute10
3341 , x_attribute11 => p_lease_contacts_rec.attribute11
3342 , x_attribute12 => p_lease_contacts_rec.attribute12
3343 , x_attribute13 => p_lease_contacts_rec.attribute13
3344 , x_attribute14 => p_lease_contacts_rec.attribute14
3345 , x_attribute15 => p_lease_contacts_rec.attribute15
3346 , x_org_id => p_lease_contacts_rec.org_id);
3347
3348 ----------------------dbms_output.put_line('END OF LEASE_INSERT_ROW contact_assignment_id: '|| p_lease_contacts_rec.contact_assignment_id);--Rupak
3349 pvt_debug(g_pkg_name||'- INSERT_CONTACTS_ROW:PN_CONTACT_ASSIGNMENTS_PKG.INSERT_ROW Successful',3);
3350
3351 EXCEPTION
3352 WHEN OTHERS
3353 THEN
3354 NULL;
3355 ----------------------dbms_output.put_line ( 'IN LEASE CONTACTS INSERT EXCEPTION: '|| SQLERRM);--Rupak
3356 pvt_debug(g_pkg_name||'- INSERT_CONTACTS_ROW:Exception:PN_CONTACT_ASSIGNMENTS_PKG.INSERT_ROW'||SQLERRM,3);
3357 END insert_contacts_row;
3358
3359 PROCEDURE validate_contacts_tbl (
3360 p_lease_contacts_tbl IN OUT NOCOPY lease_contacts_tbl
3361 , p_lease_rec IN lease_rec
3362 , p_validate IN VARCHAR2
3363 , p_lease_context IN VARCHAR2
3364 , p_operation IN VARCHAR2
3365 , x_return_status OUT NOCOPY VARCHAR2)
3366 IS
3367 l_lease_contacts_rec lease_contacts_rec;
3368 l_return_status VARCHAR2 (30) := NULL;
3369 l_contact_record_cnt NUMBER := pn_lease_utils.g_pn_miss_num;
3370 l_api_name CONSTANT VARCHAR2 (30) := p_operation;
3371 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name || '.'|| l_api_name;
3372 l_error_flag VARCHAR2 (1);
3373 l_err_contact_count NUMBER := 0;
3374 BEGIN
3375
3376 -- Standard start of API savepoint
3377 SAVEPOINT validate_contacts_tbl;
3378
3379 -- Initialize message list if p_init_msg_list is set to TRUE
3380 -- IF fnd_api.to_boolean (p_init_msg_list)
3381 -- THEN
3382 -- FND_MSG_PUB.INITIALIZE;
3383 -- END IF;
3384
3385 -- Initialize the return status.
3386 x_return_status := fnd_api.g_ret_sts_success;
3387 l_contact_record_cnt := p_lease_contacts_tbl.COUNT;
3388 IF l_contact_record_cnt >0
3389 THEN
3390 ----------------------dbms_output.put_line('Private Contacts:1');--Rupak
3391 pvt_debug(g_pkg_name||'- Inside VALIDATE_CONTACTS_TBL',3);
3392 FOR i IN 1 .. l_contact_record_cnt
3393 LOOP
3394 BEGIN
3395 l_error_flag:='N';
3396 p_lease_contacts_tbl (i).error_flag := 'N';
3397 ----------------------dbms_output.put_line('Private Contacts:2');--Rupak
3398 pvt_debug(g_pkg_name||'- VALIDATE_CONTACTS_TBL:',3);
3399 -- Validate Role
3400 IF ( ( p_lease_contacts_tbl (i).role IS NOT NULL
3401 AND p_lease_contacts_tbl (i).role <> pn_lease_utils.g_pn_miss_char)
3402 OR ( p_lease_contacts_tbl (i).role_code IS NOT NULL
3403 AND p_lease_contacts_tbl (i).role_code<> pn_lease_utils.g_pn_miss_char))
3404 THEN
3405 ----------------------dbms_output.put_line('Private Contacts:2.1');--Rupak
3406 pn_lease_utils.get_lookup_code (p_parameter_name => l_param_contact_role
3407 , p_operation => p_operation
3408 , p_lookup_meaning => p_lease_contacts_tbl (i).role
3409 , p_lookup_type => l_lease_role_lookup_type
3410 , x_lookup_type_code => p_lease_contacts_tbl (i).role_code
3411 , x_return_status => x_return_status
3412 );
3413
3414
3415 ----------------------dbms_output.put_line ( 'Contact Role: ' || p_lease_contacts_tbl (i).role_code);--Rupak
3416 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:Contact Role:'||p_lease_contacts_tbl (i).role_code,3);
3417 IF (x_return_status = fnd_api.g_ret_sts_error)
3418 THEN
3419 ----------------------dbms_output.put_line ( 'Contact Role:fnd_api.g_ret_sts_error ' || p_lease_contacts_tbl (i).role_code);--Rupak
3420 l_error_flag:='Y';
3421 p_lease_contacts_tbl (i).error_flag := 'Y';
3422 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
3423 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_lease_role_lookup_type));
3424 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_contacts_tbl (i).role));
3425 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_contacts_tbl (i).role_code));
3426 fnd_msg_pub.ADD;
3427 RAISE fnd_api.g_exc_error;
3428 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
3429 THEN
3430 ----------------------dbms_output.put_line ( 'Contact Role:fnd_api.g_ret_sts_unexp_error ' || p_lease_contacts_tbl (i).role_code);--Rupak
3431 l_error_flag:='Y';
3432 p_lease_contacts_tbl (i).error_flag := 'Y';
3433 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
3434 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_lease_role_lookup_type));
3435 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_contacts_tbl (i).role));
3436 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_contacts_tbl (i).role_code));
3437 fnd_msg_pub.ADD;
3438 RAISE fnd_api.g_exc_unexpected_error;
3439 END IF;
3440
3441 ELSE
3442 IF (trim(p_operation) <> 'UPDATE_CONTACTS') THEN
3443 pn_lease_utils.add_null_parameter_msg
3444 (p_token_apiname => l_api_name_full
3445 , p_token_nullparam => 'CONTACT_ROLE');
3446 l_error_flag:='Y';
3447 RAISE fnd_api.g_exc_error;
3448 END IF;
3449 END IF;
3450
3451 IF (trim(p_operation) = 'UPDATE_CONTACTS' AND ( (p_lease_contacts_tbl (i).role_code IS NULL OR p_lease_contacts_tbl (i).role_code = pn_lease_utils.g_pn_miss_char)
3452 AND(p_lease_contacts_tbl (i).role IS NULL OR p_lease_contacts_tbl (i).role = pn_lease_utils.g_pn_miss_char)
3453 )
3454 ) THEN
3455 BEGIN
3456 SELECT lease_role,lease_role_type
3457 INTO p_lease_contacts_tbl (i).role,p_lease_contacts_tbl (i).role_code
3458 FROM pn_contact_assignments_v
3459 WHERE contact_assignment_id = p_lease_contacts_tbl (i).contact_assignment_id;
3460 EXCEPTION
3461 WHEN OTHERS THEN
3462 ----------------------dbms_output.put_line('Exception: No Data Retrived for the role');--Rupak
3463 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:Exception:No Data Retrived for the role'||SQLERRM,3);
3464 NULL;
3465 END;
3466 END IF;
3467
3468
3469 ----------------------dbms_output.put_line('Private Contacts:3');--Rupak
3470 IF ( ( p_lease_contacts_tbl (i).company_id IS NOT NULL
3471 AND p_lease_contacts_tbl (i).company_id <> pn_lease_utils.g_pn_miss_num)
3472 OR ( p_lease_contacts_tbl (i).company_name IS NOT NULL
3473 AND p_lease_contacts_tbl (i).company_name <> pn_lease_utils.g_pn_miss_char))
3474 THEN
3475 ----------------------dbms_output.put_line('Private Contacts:4');--Rupak
3476
3477 pn_lease_utils.get_company_id (p_parameter_name => l_param_company_id
3478 , p_operation => p_operation
3479 , p_lease_role_type => p_lease_contacts_tbl (i).role_code
3480 , p_company_name => p_lease_contacts_tbl (i).company_name
3481 , x_return_status => x_return_status
3482 , x_company_id => p_lease_contacts_tbl (i).company_id);
3483
3484 ------------------dbms_output.put_line ( 'Contacts Private:Company Id: ' || p_lease_contacts_tbl (i).company_id||'-'||x_return_status);--Rupak
3485 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:Company ID'||p_lease_contacts_tbl (i).company_id,3);
3486
3487
3488 IF (x_return_status = fnd_api.g_ret_sts_error)
3489 THEN
3490 l_error_flag:='Y';
3491 fnd_message.set_name ('PN', 'PN_INVALID_COMPANY');
3492 fnd_message.set_token ('COMPANY_NAME', get_miss_char_decode(p_lease_contacts_tbl (i).company_name));
3493 fnd_message.set_token ('COMPANY_ID', get_miss_num_decode(p_lease_contacts_tbl (i).company_id));
3494 fnd_msg_pub.ADD;
3495 p_lease_contacts_tbl (i).error_flag := 'Y';
3496 RAISE fnd_api.g_exc_error;
3497 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
3498 THEN
3499 l_error_flag:='Y';
3500 fnd_message.set_name ('PN', 'PN_INVALID_COMPANY');
3501 fnd_message.set_token ('COMPANY_NAME', get_miss_char_decode(p_lease_contacts_tbl (i).company_name));
3502 fnd_message.set_token ('COMPANY_ID', get_miss_num_decode(p_lease_contacts_tbl (i).company_id));
3503 fnd_msg_pub.ADD;
3504 p_lease_contacts_tbl (i).error_flag := 'Y';
3505 RAISE fnd_api.g_exc_unexpected_error;
3506 END IF;
3507
3508 ELSE
3509 IF (trim(p_operation) <> 'UPDATE_CONTACTS') THEN
3510 ----------------------dbms_output.put_line('Private Contacts:5');--Rupak
3511 /*pn_lease_utils.add_null_parameter_msg
3512 (p_token_apiname => l_api_name_full
3513 , p_token_nullparam => 'CONTACT_CUSTOMER');*/
3514 l_error_flag:='Y';
3515 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
3516 fnd_message.set_token ('API_NAME', l_api_name_full);
3517 fnd_message.set_token ('NULL_PARAM', 'CONTACT_CUSTOMER');
3518 fnd_msg_pub.ADD;
3519 RAISE fnd_api.g_exc_error;
3520 END IF;
3521 END IF;
3522 ----------------------dbms_output.put_line('Private Contacts:6');--Rupak
3523 IF ( ( p_lease_contacts_tbl (i).company_site_id IS NOT NULL
3524 AND p_lease_contacts_tbl (i).company_site_id <> pn_lease_utils.g_pn_miss_num)
3525 OR ( p_lease_contacts_tbl (i).company_site_name IS NOT NULL
3526 AND p_lease_contacts_tbl (i).company_site_name <> pn_lease_utils.g_pn_miss_char))
3527 THEN
3528 pn_lease_utils.get_company_site_id
3529 (p_parameter_name => l_param_company_site_id
3530 , p_operation => p_operation
3531 , p_company_id => p_lease_contacts_tbl (i).company_id
3532 , p_company_site_name => p_lease_contacts_tbl (i).company_site_name
3533 , x_return_status => x_return_status
3534 , x_company_site_id => p_lease_contacts_tbl (i).company_site_id
3535 );
3536 ----------------------dbms_output.put_line ( 'Company site Id: '|| p_lease_contacts_tbl (i).company_site_id);
3537 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:Company Site ID'||p_lease_contacts_tbl (i).company_site_id,3);
3538 IF (x_return_status = fnd_api.g_ret_sts_error)
3539 THEN
3540 l_error_flag:='Y';
3541 fnd_message.set_name ('PN', 'PN_INVALID_COMPANY_SITE');
3542 fnd_message.set_token ('COMPANY_SITE_NAME', get_miss_char_decode(p_lease_contacts_tbl (i).company_site_name));
3543 fnd_message.set_token ('COMPANY_SITE_ID', get_miss_num_decode(p_lease_contacts_tbl (i).company_site_id));
3544 fnd_msg_pub.ADD;
3545 p_lease_contacts_tbl (i).error_flag := 'Y';
3546 RAISE fnd_api.g_exc_error;
3547 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
3548 THEN
3549 l_error_flag:='Y';
3550 fnd_message.set_name ('PN', 'PN_INVALID_COMPANY_SITE');
3551 fnd_message.set_token ('COMPANY_SITE_NAME', get_miss_char_decode(p_lease_contacts_tbl (i).company_site_name));
3552 fnd_message.set_token ('COMPANY_SITE_ID', get_miss_num_decode(p_lease_contacts_tbl (i).company_site_id));
3553 fnd_msg_pub.ADD;
3554 p_lease_contacts_tbl (i).error_flag := 'Y';
3555 RAISE fnd_api.g_exc_unexpected_error;
3556 END IF;
3557
3558 ELSE
3559 IF (trim(p_operation) <> 'UPDATE_CONTACTS') THEN
3560 /*pn_lease_utils.add_null_parameter_msg
3561 (p_token_apiname => l_api_name_full
3562 , p_token_nullparam => 'CONTACT_CUSTOMER_SITE');*/
3563 l_error_flag:='Y';
3564 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
3565 fnd_message.set_token ('API_NAME', l_api_name_full);
3566 fnd_message.set_token ('NULL_PARAM', 'CONTACT_CUSTOMER_SITE');
3567 fnd_msg_pub.ADD;
3568 RAISE fnd_api.g_exc_error;
3569 END IF;
3570 END IF;
3571 IF(RTRIM(LTRIM(p_operation)) = 'CREATE_LEASE') THEN
3572 ----------------------dbms_output.put_line('Private Contacts:7');--Rupak
3573 -- Validate the descriptive flexfields IN CREATE CONTACTS
3574 /*IF NOT ( (p_lease_contacts_tbl (i).attribute_category = pn_lease_utils.g_pn_miss_char)
3575 AND (p_lease_contacts_tbl (i).attribute1 = pn_lease_utils.g_pn_miss_char)
3576 AND (p_lease_contacts_tbl (i).attribute2 = pn_lease_utils.g_pn_miss_char)
3577 AND (p_lease_contacts_tbl (i).attribute3 = pn_lease_utils.g_pn_miss_char)
3578 AND (p_lease_contacts_tbl (i).attribute4 = pn_lease_utils.g_pn_miss_char)
3579 AND (p_lease_contacts_tbl (i).attribute5 = pn_lease_utils.g_pn_miss_char)
3580 AND (p_lease_contacts_tbl (i).attribute6 = pn_lease_utils.g_pn_miss_char)
3581 AND (p_lease_contacts_tbl (i).attribute7 = pn_lease_utils.g_pn_miss_char)
3582 AND (p_lease_contacts_tbl (i).attribute8 = pn_lease_utils.g_pn_miss_char)
3583 AND (p_lease_contacts_tbl (i).attribute9 = pn_lease_utils.g_pn_miss_char)
3584 AND (p_lease_contacts_tbl (i).attribute10 = pn_lease_utils.g_pn_miss_char)
3585 AND (p_lease_contacts_tbl (i).attribute11 = pn_lease_utils.g_pn_miss_char)
3586 AND (p_lease_contacts_tbl (i).attribute12 = pn_lease_utils.g_pn_miss_char)
3587 AND (p_lease_contacts_tbl (i).attribute13 = pn_lease_utils.g_pn_miss_char)
3588 AND (p_lease_contacts_tbl (i).attribute14 = pn_lease_utils.g_pn_miss_char)
3589 AND (p_lease_contacts_tbl (i).attribute15 = pn_lease_utils.g_pn_miss_char))
3590 THEN*/
3591 ----------------------dbms_output.put_line ('IN ATTRIBUTES:CONTACT');--Rupak
3592 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:Validating the Contact Attributes',3);
3593 IF (p_lease_contacts_tbl(i).attribute_category = pn_lease_utils.g_pn_miss_char) THEN
3594 p_lease_contacts_tbl(i).attribute_category := NULL;
3595 END IF;
3596
3597 IF (p_lease_contacts_tbl(i).attribute1 = pn_lease_utils.g_pn_miss_char)
3598 THEN
3599 p_lease_contacts_tbl(i).attribute1 := NULL;
3600 --ELSE
3601 -- l_lease_contacts_rec.attribute1 := p_lease_contacts_tbl (i).attribute1;
3602 END IF;
3603
3604 IF (p_lease_contacts_tbl (i).attribute2 = pn_lease_utils.g_pn_miss_char)
3605 THEN
3606 p_lease_contacts_tbl(i).attribute2 := NULL;
3607 -- ELSE
3608 -- l_lease_contacts_rec.attribute2 := p_lease_contacts_tbl (i).attribute2;
3609 END IF;
3610
3611 IF (p_lease_contacts_tbl (i).attribute3 = pn_lease_utils.g_pn_miss_char)
3612 THEN
3613 p_lease_contacts_tbl(i).attribute3 := NULL;
3614 --ELSE
3615 -- l_lease_contacts_rec.attribute3 := p_lease_contacts_tbl (i).attribute3;
3616 END IF;
3617
3618 IF (p_lease_contacts_tbl (i).attribute4 = pn_lease_utils.g_pn_miss_char)
3619 THEN
3620 p_lease_contacts_tbl(i).attribute4 := NULL;
3621 -- ELSE
3622 -- l_lease_contacts_rec.attribute4 := p_lease_contacts_tbl (i).attribute4;
3623 END IF;
3624
3625 IF (p_lease_contacts_tbl (i).attribute5 = pn_lease_utils.g_pn_miss_char)
3626 THEN
3627 p_lease_contacts_tbl(i).attribute5 := NULL;
3628 --ELSE
3629 -- l_lease_contacts_rec.attribute5 := p_lease_contacts_tbl (i).attribute5;
3630 END IF;
3631
3632 IF (p_lease_contacts_tbl (i).attribute6 = pn_lease_utils.g_pn_miss_char)
3633 THEN
3634 p_lease_contacts_tbl(i).attribute6 := NULL;
3635 -- ELSE
3636 -- l_lease_contacts_rec.attribute6 := p_lease_contacts_tbl (i).attribute6;
3637 END IF;
3638
3639 IF (p_lease_contacts_tbl (i).attribute7 = pn_lease_utils.g_pn_miss_char)
3640 THEN
3641 p_lease_contacts_tbl(i).attribute7 := NULL;
3642 -- ELSE
3643 -- l_lease_contacts_rec.attribute7 := p_lease_contacts_tbl (i).attribute7;
3644 END IF;
3645
3646 IF (p_lease_contacts_tbl (i).attribute8 = pn_lease_utils.g_pn_miss_char)
3647 THEN
3648 p_lease_contacts_tbl(i).attribute8 := NULL;
3649 --ELSE
3650 -- l_lease_contacts_rec.attribute8 := p_lease_contacts_tbl (i).attribute8;
3651 END IF;
3652
3653 IF (p_lease_contacts_tbl (i).attribute9 = pn_lease_utils.g_pn_miss_char)
3654 THEN
3655 p_lease_contacts_tbl(i).attribute9 := NULL;
3656 -- ELSE
3657 --l_lease_contacts_rec.attribute9 := p_lease_contacts_tbl (i).attribute9;
3658 END IF;
3659
3660 IF (p_lease_contacts_tbl (i).attribute10 = pn_lease_utils.g_pn_miss_char)
3661 THEN
3662 p_lease_contacts_tbl(i).attribute10 := NULL;
3663 -- ELSE
3664 -- l_lease_contacts_rec.attribute10 := p_lease_contacts_tbl (i).attribute10;
3665 END IF;
3666
3667 IF (p_lease_contacts_tbl (i).attribute11 = pn_lease_utils.g_pn_miss_char)
3668 THEN
3669 p_lease_contacts_tbl(i).attribute11 := NULL;
3670 -- ELSE
3671 -- l_lease_contacts_rec.attribute11 := p_lease_contacts_tbl (i).attribute11;
3672 END IF;
3673
3674 IF (p_lease_contacts_tbl (i).attribute12 = pn_lease_utils.g_pn_miss_char)
3675 THEN
3676 p_lease_contacts_tbl(i).attribute12 := NULL;
3677 --ELSE
3678 -- l_lease_contacts_rec.attribute12 := p_lease_contacts_tbl (i).attribute12;
3679 END IF;
3680
3681 IF (p_lease_contacts_tbl (i).attribute13 = pn_lease_utils.g_pn_miss_char)
3682 THEN
3683 p_lease_contacts_tbl(i).attribute13 := NULL;
3684 --ELSE
3685 -- l_lease_contacts_rec.attribute13 := p_lease_contacts_tbl (i).attribute13;
3686 END IF;
3687
3688 IF (p_lease_contacts_tbl (i).attribute14 = pn_lease_utils.g_pn_miss_char)
3689 THEN
3690 p_lease_contacts_tbl(i).attribute14 := NULL;
3691 -- ELSE
3692 -- l_lease_contacts_rec.attribute14 := p_lease_contacts_tbl (i).attribute14;
3693 END IF;
3694
3695 IF (p_lease_contacts_tbl (i).attribute15 = pn_lease_utils.g_pn_miss_char)
3696 THEN
3697 p_lease_contacts_tbl(i).attribute15 := NULL;
3698 -- ELSE
3699 -- l_lease_contacts_rec.attribute15 := p_lease_contacts_tbl (i).attribute15;
3700 END IF;
3701 IF (get_attribute_status('PN_CONTACT_ASSIGNMENTS') > 0) THEN
3702 /*get_attribute_mandatory_status('PN_CONTACT_ASSIGNMENTS'
3703 ,p_lease_contacts_tbl(i).attribute1
3704 ,p_lease_contacts_tbl(i).attribute2
3705 ,p_lease_contacts_tbl(i).attribute3
3706 ,p_lease_contacts_tbl(i).attribute4
3707 ,p_lease_contacts_tbl(i).attribute5
3708 ,p_lease_contacts_tbl(i).attribute6
3709 ,p_lease_contacts_tbl(i).attribute7
3710 ,p_lease_contacts_tbl(i).attribute8
3711 ,p_lease_contacts_tbl(i).attribute9
3712 ,p_lease_contacts_tbl(i).attribute10
3713 ,p_lease_contacts_tbl(i).attribute11
3714 ,p_lease_contacts_tbl(i).attribute12
3715 ,p_lease_contacts_tbl(i).attribute13
3716 ,p_lease_contacts_tbl(i).attribute14
3717 ,p_lease_contacts_tbl(i).attribute15
3718 ,x_return_status
3719 );
3720 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
3721 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
3722 fnd_message.set_token ('API_NAME', l_api_name_full);
3723 fnd_message.set_token ('NULL_PARAM','Required attribute in Contacts is NULL');
3724 fnd_msg_pub.ADD;
3725 RAISE fnd_api.g_exc_error;
3726 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
3727 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
3728 fnd_message.set_token ('API_NAME', l_api_name_full);
3729 fnd_message.set_token ('NULL_PARAM', 'Required attribute in Contacts is NULL');
3730 fnd_msg_pub.ADD;
3731 RAISE fnd_api.g_exc_unexpected_error;
3732 ELSE*/
3733 IF NOT ((p_lease_contacts_tbl(i).attribute_category = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute_category IS NULL)
3734 AND (p_lease_contacts_tbl(i).attribute1 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute1 IS NULL)
3735 AND (p_lease_contacts_tbl(i).attribute2 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute2 IS NULL)
3736 AND (p_lease_contacts_tbl(i).attribute3 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute3 IS NULL)
3737 AND (p_lease_contacts_tbl(i).attribute4 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute4 IS NULL)
3738 AND (p_lease_contacts_tbl(i).attribute5 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute5 IS NULL)
3739 AND (p_lease_contacts_tbl(i).attribute6 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute6 IS NULL)
3740 AND (p_lease_contacts_tbl(i).attribute7 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute7 IS NULL)
3741 AND (p_lease_contacts_tbl(i).attribute8 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute8 IS NULL)
3742 AND (p_lease_contacts_tbl(i).attribute9 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute9 IS NULL)
3743 AND (p_lease_contacts_tbl(i).attribute10 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute10 IS NULL)
3744 AND (p_lease_contacts_tbl(i).attribute11 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute11 IS NULL)
3745 AND (p_lease_contacts_tbl(i).attribute12 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute12 IS NULL)
3746 AND (p_lease_contacts_tbl(i).attribute13 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute13 IS NULL)
3747 AND (p_lease_contacts_tbl(i).attribute14 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute14 IS NULL)
3748 AND (p_lease_contacts_tbl(i).attribute15 = pn_lease_utils.g_pn_miss_char OR p_lease_contacts_tbl(i).attribute15 IS NULL)
3749 ) THEN
3750 pn_lease_utils.validate_desc_flex
3751 (p_api_name => 'PN_LEASE_PVT'||'.'||'CONTACTS'
3752 , p_application_short_name => 'PN'
3753 , p_desc_flex_name => 'PN_CONTACT_ASSIGNMENTS'--l_param_desc_flex_name
3754 , p_desc_segment1 => p_lease_contacts_tbl(i).attribute1
3755 , p_desc_segment2 => p_lease_contacts_tbl(i).attribute2
3756 , p_desc_segment3 => p_lease_contacts_tbl(i).attribute3
3757 , p_desc_segment4 => p_lease_contacts_tbl(i).attribute4
3758 , p_desc_segment5 => p_lease_contacts_tbl(i).attribute5
3759 , p_desc_segment6 => p_lease_contacts_tbl(i).attribute6
3760 , p_desc_segment7 => p_lease_contacts_tbl(i).attribute7
3761 , p_desc_segment8 => p_lease_contacts_tbl(i).attribute8
3762 , p_desc_segment9 => p_lease_contacts_tbl(i).attribute9
3763 , p_desc_segment10 => p_lease_contacts_tbl(i).attribute10
3764 , p_desc_segment11 => p_lease_contacts_tbl(i).attribute11
3765 , p_desc_segment12 => p_lease_contacts_tbl(i).attribute12
3766 , p_desc_segment13 => p_lease_contacts_tbl(i).attribute13
3767 , p_desc_segment14 => p_lease_contacts_tbl(i).attribute14
3768 , p_desc_segment15 => p_lease_contacts_tbl(i).attribute15
3769 , p_desc_context => p_lease_contacts_tbl(i).attribute_category
3770 , p_resp_appl_id => fnd_global.resp_appl_id
3771 , p_resp_id => fnd_global.resp_id
3772 , p_return_status => x_return_status
3773 );
3774
3775 IF (x_return_status = fnd_api.g_ret_sts_error)
3776 THEN
3777 --l_error_flag:='Y';
3778 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
3779 fnd_message.set_token ('COLUMN', 'PN_CONTACT_ASSIGNMENTS_DESC_FIELDS');
3780 fnd_message.set_token ('P_TEXT', 'PN_CONTACT_ASSIGNMENTS'|| '-'|| SQLERRM);
3781 fnd_msg_pub.ADD;
3782 RAISE fnd_api.g_exc_error;
3783 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
3784 THEN
3785 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
3786 fnd_message.set_token ('COLUMN', 'PN_CONTACT_ASSIGNMENTS_DESC_FIELDS');
3787 fnd_message.set_token ('P_TEXT', 'PN_CONTACT_ASSIGNMENTS'|| '-'|| SQLERRM);
3788 fnd_msg_pub.ADD;
3789 RAISE fnd_api.g_exc_unexpected_error;
3790 END IF;
3791 END IF; -- End of attributes valitions in create contacts
3792 END IF;
3793 END IF;
3794
3795 IF ( ( p_lease_contacts_tbl(i).status IS NULL
3796 OR p_lease_contacts_tbl(i).status = pn_lease_utils.g_pn_miss_char
3797 )
3798 )
3799 THEN
3800 p_lease_contacts_tbl(i).status:='A';
3801 END IF;
3802
3803 ----------------------dbms_output.put_line('BEFORE calling insert_contacts_row');
3804
3805
3806
3807 IF (RTRIM(LTRIM(p_operation)) = ('CREATE_LEASE') AND l_error_flag<>'Y' AND NVL( P_VALIDATE,'F')<>'T') THEN
3808 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:Calling the INSERT_CONTACTS_ROW',3);
3809 pn_lease_pvt.insert_contacts_row (p_lease_contacts_rec => p_lease_contacts_tbl(i)
3810 , p_lease_rec => p_lease_rec
3811 , p_lease_context => p_lease_context
3812 , x_return_status => x_return_status);
3813 ----------------------dbms_output.put_line('pn_lease_pvt.insert_contacts_row RETURN STATUS: '||x_return_status);
3814 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:Return Status of the INSERT_CONTACTS_ROW'||x_return_status,3);
3815 IF (x_return_status = fnd_api.g_ret_sts_error)
3816 THEN
3817 l_error_flag:='Y';
3818
3819 RAISE fnd_api.g_exc_error;
3820 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
3821 THEN
3822 l_error_flag:='Y';
3823
3824 RAISE fnd_api.g_exc_unexpected_error;
3825 END IF;
3826 END IF;
3827 EXCEPTION
3828 WHEN fnd_api.g_exc_error THEN
3829 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);
3830 l_err_contact_count := l_err_contact_count +1;
3831 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
3832 WHEN fnd_api.g_exc_unexpected_error THEN
3833 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);
3834 l_err_contact_count := l_err_contact_count +1;
3835 pvt_debug(g_pkg_name||'-VALIDATE_TENANCIES_TBL:LOOOPING:EXCEPTION:FND_API.G_RET_STS_UNEXP_ERROR'||SQLERRM,3);
3836 WHEN OTHERS THEN
3837 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM);
3838 l_err_contact_count := l_err_contact_count +1;
3839 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM,3);
3840 END;
3841 ----------------------dbms_output.put_line('Private Contacts:13');--Rupak
3842 END LOOP;
3843
3844 ELSE
3845 -- Retrun error status when table has no records
3846 --x_return_status := fnd_api.g_ret_sts_error;
3847 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:No Contacts Records Passed'||SQLERRM,3);
3848 END IF;
3849 IF(l_err_contact_count = 0) THEN
3850 x_return_status := fnd_api.g_ret_sts_success;
3851 ELSE
3852 x_return_status := fnd_api.g_ret_sts_error;
3853 END IF;
3854 EXCEPTION
3855 WHEN OTHERS THEN
3856 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:Exception'||SQLERRM,3);
3857 x_return_status := fnd_api.g_ret_sts_error;
3858 END validate_contacts_tbl;
3859
3860
3861
3862 PROCEDURE validate_lease_rec (
3863 p_lease_rec IN OUT NOCOPY lease_rec
3864 , p_validate IN VARCHAR2
3865 , p_lease_exp_rev_accounts_rec IN OUT NOCOPY lease_account_rec
3866 , p_lease_accrual_account_rec IN OUT NOCOPY lease_account_rec
3867 , p_lease_liab_rcvl_account_rec IN OUT NOCOPY lease_account_rec
3868 , p_operation IN VARCHAR2
3869 , p_lease_context IN VARCHAR2
3870 , x_return_status OUT NOCOPY VARCHAR2)
3871 IS
3872 l_lease_rec lease_rec;
3873 l_return_status VARCHAR2 (30) := NULL;
3874 l_org_id NUMBER := g_org_id;--pn_mo_cache_utils.get_profile_value('org_id');--pn_mo_cache_utils.get_current_org_id;
3875 l_term_template_type pn_term_templates_all.term_template_type%TYPE;
3876 l_api_name CONSTANT VARCHAR2 (30) := p_operation;
3877 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name || '.'|| l_api_name;
3878 l_error_flag VARCHAR2(1);
3879 l_tcc_status VARCHAR2(30);
3880 l_pro_rule VARCHAR2(100);
3881 BEGIN
3882 ----------------------dbms_output.put_line ('In VALIDATE_LEASE_REC procedure of PVT package');--Rupak
3883 pvt_debug(g_pkg_name||'-Inside VALIDATE_LEASE_REC:'||x_return_status,3);
3884 -- Standard start of API savepoint
3885 SAVEPOINT validate_lease_rec;
3886 -- Initialize message list if p_init_msg_list is set to TRUE
3887 -- IF fnd_api.to_boolean (p_init_msg_list)
3888 -- THEN
3889 -- FND_MSG_PUB.INITIALIZE;
3890 -- END IF;
3891 -- Initialize the return status.
3892 x_return_status := fnd_api.g_ret_sts_success;
3893 -- Validate Lease Number
3894 pn_leases_pkg.check_unique_lease_number (x_return_status
3895 , p_lease_rec.lease_id
3896 , p_lease_rec.lease_num
3897 , l_org_id);
3898
3899 IF (x_return_status = fnd_api.g_ret_sts_error)
3900 THEN
3901 --l_error_flag:='Y';
3902 fnd_message.set_name ('PN','PN_DUP_LEASE_NUMBER');
3903 fnd_message.set_token('LEASE_NUMBER', p_lease_rec.lease_num);
3904 fnd_msg_pub.ADD;
3905 RAISE fnd_api.g_exc_error;
3906 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
3907 THEN
3908 --l_error_flag:='Y';
3909 fnd_message.set_name ('PN','PN_DUP_LEASE_NUMBER');
3910 fnd_message.set_token('LEASE_NUMBER', p_lease_rec.lease_num);
3911 fnd_msg_pub.ADD;
3912 RAISE fnd_api.g_exc_unexpected_error;
3913 END IF;
3914
3915 -----------------------------------------------------------------------------------
3916 /* -- Validate Lease name
3917 PN_LEASE_UTILS.CHECK_LEASE_NAME
3918 ( p_parameter_name => 'P_LEASE_NAME'
3919 , p_operation => 'CREATE_LEASE'
3920 , x_lease_name => p_lease_rec.lease_name
3921 , x_return_status => x_return_status
3922 );
3923
3924
3925 ----------------------dbms_output.put_line('Lease_name: '|| p_lease_rec.lease_name);
3926 ------------------------dbms_output.put_line('x_return_status: '|| x_return_status);
3927
3928 IF (x_return_status = fnd_api.g_ret_sts_error)
3929 THEN
3930 RAISE FND_API.G_EXC_ERROR;
3931 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
3932 THEN
3933 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3934 END IF;
3935 */
3936
3937 -- Validate Lease Type
3938 pn_lease_utils.get_lookup_code (p_parameter_name => l_param_lease_type
3939 , p_operation => p_operation
3940 , p_lookup_meaning => p_lease_rec.lease_type
3941 , p_lookup_type => l_leasetype_lookup_type
3942 , x_lookup_type_code => p_lease_rec.lease_type_code
3943 , x_return_status => x_return_status);
3944 ----------------------dbms_output.put_line ( 'Lease_TYPE: '|| p_lease_rec.lease_type_code);--Rupak
3945 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Lease Type Code:'||p_lease_rec.lease_type_code,3);
3946
3947 IF (x_return_status = fnd_api.g_ret_sts_error)
3948 THEN
3949 l_error_flag:='Y';
3950 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
3951 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_leasetype_lookup_type));
3952 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_rec.lease_type));
3953 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_rec.lease_type_code));
3954 fnd_msg_pub.ADD;
3955 RAISE fnd_api.g_exc_error;
3956 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
3957 THEN
3958 l_error_flag:='Y';
3959 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
3960 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_type,3));
3961 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
3962 RAISE fnd_api.g_exc_unexpected_error;
3963 END IF;
3964 -- Validate Lease Class
3965 pn_lease_utils.get_lookup_code (p_parameter_name => l_param_lease_class
3966 , p_operation => p_operation
3967 , p_lookup_meaning => p_lease_rec.lease_class
3968 , p_lookup_type => l_leaseclass_lookup_type
3969 , x_lookup_type_code => p_lease_rec.lease_class_code
3970 , x_return_status => x_return_status);
3971
3972 ----------------------dbms_output.put_line ( 'Lease_CLASS: '|| p_lease_rec.lease_class_code);--Rupak
3973 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Lease Class Code:'||p_lease_rec.lease_class_code,3);
3974 ------------------------dbms_output.put_line('x_return_status: '|| x_return_status);
3975 IF (x_return_status = fnd_api.g_ret_sts_error)
3976 THEN
3977 l_error_flag:='Y';
3978 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
3979 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_leaseclass_lookup_type));
3980 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_rec.lease_class));
3981 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_rec.lease_class_code));
3982 fnd_msg_pub.ADD;
3983 RAISE fnd_api.g_exc_error;
3984 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
3985 THEN
3986 l_error_flag:='Y';
3987 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
3988 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_class,3));
3989 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
3990 fnd_msg_pub.ADD;
3991 RAISE fnd_api.g_exc_unexpected_error;
3992 END IF;
3993
3994 -- Validate Master_Lease
3995 IF p_lease_rec.lease_class_code = 'SUB_LEASE'
3996 THEN
3997 pn_lease_utils.get_masterlease_id (p_parameter_name => l_param_master_lease
3998 , p_master_lease => p_lease_rec.parent_lease_name
3999 , p_operation => p_operation
4000 , p_org_id => g_org_id
4001 , p_lease_id => p_lease_rec.lease_id
4002 , x_return_status => x_return_status
4003 , x_master_lease_id => p_lease_rec.parent_lease_id
4004 );
4005
4006 ----------------------dbms_output.put_line ( 'GET_MASTERLEASE_ID: '|| p_lease_rec.parent_lease_id);--Rupak
4007 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Master Lease ID:'||p_lease_rec.parent_lease_id,3);
4008 IF (x_return_status = fnd_api.g_ret_sts_error)
4009 THEN
4010 l_error_flag:='Y';
4011 fnd_message.set_name ('PN', 'PN_INVALID_MASTERLEASE');
4012 fnd_message.set_token ('MASTER_LEASE_ID',get_miss_num_decode(p_lease_rec.parent_lease_id));
4013 fnd_message.set_token ('MASTER_LEASE_NAME', get_miss_char_decode(p_lease_rec.parent_lease_name));
4014 fnd_msg_pub.ADD;
4015 RAISE fnd_api.g_exc_error;
4016 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4017 THEN
4018 l_error_flag:='Y';
4019 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4020 fnd_message.set_token ('COLUMN', SUBSTR(l_param_master_lease,3));
4021 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4022 fnd_msg_pub.ADD;
4023 RAISE fnd_api.g_exc_unexpected_error;
4024 END IF;
4025 ELSE
4026 p_lease_rec.parent_lease_name := NULL;
4027 p_lease_rec.parent_lease_id := NULL;
4028 END IF;
4029
4030 --IF p_lease_rec.parent_lease_id = pn_lease_utils.g_pn_miss_num
4031 --THEN
4032 -- p_lease_rec.parent_lease_id := NULL;
4033
4034 --END IF;
4035
4036
4037 -- Validate Customer Id
4038 IF p_lease_rec.lease_class_code <> 'DIRECT'
4039 THEN
4040 IF ( ( p_lease_rec.customer_name IS NOT NULL AND p_lease_rec.customer_name <> pn_lease_utils.g_pn_miss_char)
4041 OR(p_lease_rec.customer_id IS NOT NULL AND p_lease_rec.customer_id <> pn_lease_utils.g_pn_miss_num)
4042 ) THEN
4043 pn_lease_utils.get_customer_id (p_parameter_name => l_param_lease_customer
4044 , p_operation => p_operation
4045 , p_customer_name => p_lease_rec.customer_name
4046 , x_customer_id => p_lease_rec.customer_id
4047 , x_return_status => x_return_status
4048 );
4049
4050 ----------------dbms_output.put_line ( 'GET_CUSTOMER_ID: '|| p_lease_rec.customer_id);--Rupak
4051 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Customer ID:'||p_lease_rec.customer_id,3);
4052 IF (x_return_status = fnd_api.g_ret_sts_error)
4053 THEN
4054 --l_error_flag:='Y';
4055 ----------------------dbms_output.put_line ('PVT:1');--Rupak
4056 fnd_message.set_name ('PN', 'PN_INVALID_CUSTOMER');
4057 fnd_message.set_token ('CUSTOMER_NAME', get_miss_char_decode(p_lease_rec.customer_name));
4058 fnd_message.set_token ('CUSTOMER_ID', get_miss_num_decode(p_lease_rec.customer_id));
4059 fnd_msg_pub.ADD;
4060 RAISE fnd_api.g_exc_error;
4061 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4062 THEN
4063 --l_error_flag:='Y';
4064 /*--------------------dbms_output.put_line ('PVT:2');--Rupak*/
4065 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4066 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_customer,3));
4067 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4068 fnd_msg_pub.ADD;
4069 RAISE fnd_api.g_exc_unexpected_error;
4070 END IF;
4071 END IF;
4072 ELSE
4073 p_lease_rec.customer_name := NULL;
4074 p_lease_rec.customer_id := NULL;
4075 END IF;
4076
4077
4078 --IF p_lease_rec.customer_id = pn_lease_utils.g_pn_miss_num
4079 --THEN
4080 -- p_lease_rec.customer_id := NULL;
4081
4082 --END IF;
4083
4084
4085 -- Validate Abstracted By
4086 pn_lease_utils.get_user_id (p_parameter_name => l_param_abstracted_by
4087 , p_operation => p_operation
4088 , p_user_name => p_lease_rec.abstracted_by_user
4089 , x_user_id => p_lease_rec.abstracted_by_user_id
4090 , x_return_status => x_return_status);
4091
4092 ----------------------dbms_output.put_line ( 'ABSTRACTED BY: ' || p_lease_rec.abstracted_by_user_id);--Rupak
4093 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Abstracted By:'||p_lease_rec.abstracted_by_user_id,3);
4094 IF (x_return_status = fnd_api.g_ret_sts_error)
4095 THEN
4096 l_error_flag:='Y';
4097 fnd_message.set_name ('PN', 'PN_INVALID_USER');
4098 fnd_message.set_token ('USER_NAME',get_miss_char_decode(p_lease_rec.abstracted_by_user));
4099 fnd_message.set_token ('USER_ID', get_miss_num_decode(p_lease_rec.abstracted_by_user_id));
4100 fnd_msg_pub.ADD;
4101 RAISE fnd_api.g_exc_error;
4102 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4103 THEN
4104 l_error_flag:='Y';
4105 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4106 fnd_message.set_token ('COLUMN', SUBSTR(l_param_abstracted_by,3));
4107 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4108 fnd_msg_pub.ADD;
4109 RAISE fnd_api.g_exc_unexpected_error;
4110 END IF;
4111
4112 --IF p_lease_rec.abstracted_by_user_id = PN_LEASE_UTILS.G_PN_MISS_NUM
4113 --THEN
4114 -- p_lease_rec.abstracted_by_user_id := NULL;
4115
4116 --END IF;
4117
4118 -- Validate approval status
4119 pn_lease_utils.get_lookup_code (p_parameter_name => l_param_status
4120 , p_operation => p_operation
4121 , p_lookup_meaning => p_lease_rec.status
4122 , p_lookup_type => l_status_lookup_type
4123 , x_lookup_type_code => p_lease_rec.status_code
4124 , x_return_status => x_return_status);
4125
4126 ----------------------dbms_output.put_line ( 'APPROVAL STATUS: '|| p_lease_rec.status_code);--Rupak
4127 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Approval Status Code:'||p_lease_rec.status_code,3);
4128 IF (x_return_status = fnd_api.g_ret_sts_error)
4129 THEN
4130 l_error_flag:='Y';
4131 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
4132 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_status_lookup_type));
4133 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_rec.status));
4134 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_rec.status_code));
4135 fnd_msg_pub.ADD;
4136 RAISE fnd_api.g_exc_error;
4137 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4138 THEN
4139 l_error_flag:='Y';
4140 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4141 fnd_message.set_token ('COLUMN', SUBSTR(l_param_status,3));
4142 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4143 fnd_msg_pub.ADD;
4144 RAISE fnd_api.g_exc_unexpected_error;
4145 END IF;
4146
4147 -- Validate Lease status
4148 pn_lease_utils.get_lookup_code (p_parameter_name => l_param_lease_status
4149 , p_operation => p_operation
4150 , p_lookup_meaning => p_lease_rec.lease_status
4151 , p_lookup_type => l_lease_status_lookup_type
4152 , x_lookup_type_code => p_lease_rec.lease_status_code
4153 , x_return_status => x_return_status);
4154
4155 ----------------------dbms_output.put_line ( 'LEASE STATUS: '|| p_lease_rec.lease_status_code);--Rupak
4156 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Lease Status Code:'||p_lease_rec.lease_status_code,3);
4157 IF (x_return_status = fnd_api.g_ret_sts_error)
4158 THEN
4159 l_error_flag:='Y';
4160 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
4161 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_status_lookup_type));
4162 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_rec.status));
4163 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_rec.status_code));
4164 fnd_msg_pub.ADD;
4165 RAISE fnd_api.g_exc_error;
4166 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4167 THEN
4168 l_error_flag:='Y';
4169 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4170 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_status,3));
4171 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4172 fnd_msg_pub.ADD;
4173 RAISE fnd_api.g_exc_unexpected_error;
4174 END IF;
4175
4176 -- Validate Lease Execution, Commencement and Termination dates
4177 pn_lease_utils.crossval_leasedates (p_parameter_name => l_param_lease_dates
4178 , p_operation => p_operation
4179 , p_lease_exec_date => p_lease_rec.lease_execution_date
4180 , p_lease_comm_date => p_lease_rec.lease_commencement_date
4181 , p_lease_term_date => p_lease_rec.lease_termination_date
4182 , x_return_status => x_return_status);
4183
4184
4185 ----------------------dbms_output.put_line('CROSSVAL_LEASEDATES x_return_status: '|| x_return_status);--Rupak
4186 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Cross Val Lease Dates Status:'||x_return_status,3);
4187 IF (x_return_status = fnd_api.g_ret_sts_error)
4188 THEN
4189 l_error_flag:='Y';
4190 fnd_message.set_name ('PN', 'PN_INVALID_TERMINATION_DT');
4191 fnd_message.set_token ('TERMINATION_DATE', p_lease_rec.lease_termination_date);
4192 fnd_message.set_token ('COMMENCEMENT_DATE', p_lease_rec.lease_commencement_date);
4193 fnd_msg_pub.ADD;
4194 RAISE fnd_api.g_exc_error;
4195 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4196 THEN
4197 l_error_flag:='Y';
4198 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4199 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_dates,3));
4200 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4201 fnd_msg_pub.ADD;
4202 RAISE fnd_api.g_exc_unexpected_error;
4203 END IF;
4204
4205 -- Validate Location_id
4206 IF ( ( p_lease_rec.location_id IS NOT NULL
4207 AND p_lease_rec.location_id <> pn_lease_utils.g_pn_miss_num)
4208 OR ( p_lease_rec.location_code IS NOT NULL
4209 AND p_lease_rec.location_code <> pn_lease_utils.g_pn_miss_char))
4210 THEN
4211 pn_lease_utils.get_location_id (p_parameter_name => l_param_lease_location
4212 , p_location_code => p_lease_rec.location_code
4213 , p_operation => p_operation
4214 , p_org_id => p_lease_rec.org_id
4215 , p_lease_class_code => p_lease_rec.lease_class_code
4216 , p_parent_lease_id => p_lease_rec.parent_lease_id
4217 , p_lease_comm_date => p_lease_rec.lease_commencement_date
4218 , p_lease_term_date => p_lease_rec.lease_termination_date
4219 , x_return_status => x_return_status
4220 , x_location_id => p_lease_rec.location_id);
4221
4222
4223 ----------------------dbms_output.put_line('get_location_id x_return_status: '|| x_return_status);--Rupak
4224 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Location ID Return Status:'||x_return_status,3);
4225 IF (x_return_status = fnd_api.g_ret_sts_error)
4226 THEN
4227 l_error_flag:='Y';
4228 fnd_message.set_name ('PN', 'PN_INVALID_LOCATION');
4229 fnd_message.set_token ('LOC_ID', get_miss_num_decode(p_lease_rec.location_id));
4230 fnd_message.set_token ('LOC_CODE', get_miss_char_decode(p_lease_rec.location_code));
4231 fnd_msg_pub.ADD;
4232 RAISE fnd_api.g_exc_error;
4233
4234 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4235 THEN
4236 l_error_flag:='Y';
4237 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4238 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_location,3));
4239 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4240 fnd_msg_pub.ADD;
4241 RAISE fnd_api.g_exc_unexpected_error;
4242 END IF;
4243 END IF;
4244
4245 -- IF p_lease_rec.location_id = pn_lease_utils.g_pn_miss_num
4246 -- THEN
4247 -- p_lease_rec.location_id := NULL;
4248 -- END IF;
4249
4250 -- Validate User Responsible
4251 pn_lease_utils.get_user_id (p_parameter_name => l_param_reponsible_user
4252 , p_operation => p_operation
4253 , p_user_name => p_lease_rec.responsible_user
4254 , x_user_id => p_lease_rec.responsible_user_id
4255 , x_return_status => x_return_status);
4256
4257 ----------------------dbms_output.put_line ( 'USER RESPONSIBLE: '|| p_lease_rec.responsible_user);--Rupak
4258 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:User Responsible:'||p_lease_rec.responsible_user,3);
4259
4260 IF (x_return_status = fnd_api.g_ret_sts_error)
4261 THEN
4262 l_error_flag:='Y';
4263 fnd_message.set_name ('PN', 'PN_INVALID_USER');
4264 fnd_message.set_token ('USER_NAME',get_miss_char_decode(p_lease_rec.responsible_user));
4265 fnd_message.set_token ('USER_ID', get_miss_num_decode(p_lease_rec.responsible_user_id));
4266 fnd_msg_pub.ADD;
4267 RAISE fnd_api.g_exc_error;
4268 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4269 THEN
4270 l_error_flag:='Y';
4271 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4272 fnd_message.set_token ('COLUMN', SUBSTR(l_param_reponsible_user,3));
4273 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4274 fnd_msg_pub.ADD;
4275 RAISE fnd_api.g_exc_unexpected_error;
4276 END IF;
4277
4278
4279 --IF p_lease_rec.responsible_user_id = pn_lease_utils.g_pn_miss_num
4280 --THEN
4281 -- p_lease_rec.responsible_user_id := NULL;
4282
4283 --END IF;
4284
4285
4286
4287 -- Validate Proration Rule
4288 IF ( ( p_lease_rec.pymt_term_pro_rule IS NOT NULL AND p_lease_rec.pymt_term_pro_rule <> pn_lease_utils.g_pn_miss_char)
4289 OR(p_lease_rec.pymt_term_pro_rule_id IS NOT NULL AND p_lease_rec.pymt_term_pro_rule_id <> pn_lease_utils.g_pn_miss_char)
4290 ) THEN
4291 pn_lease_utils.get_lookup_code (p_parameter_name => l_param_propration_rule
4292 , p_operation => p_operation
4293 , p_lookup_meaning => p_lease_rec.pymt_term_pro_rule
4294 , p_lookup_type => l_proration_rule_lookup_type
4295 , x_lookup_type_code => p_lease_rec.pymt_term_pro_rule_id
4296 , x_return_status => x_return_status
4297 );
4298
4299 ----------------------dbms_output.put_line ( '_PRORATION_RULE: ' || p_lease_rec.pymt_term_pro_rule_id||x_return_status);--Rupak
4300 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:PRORATION_RULE:'||p_lease_rec.pymt_term_pro_rule_id,3);
4301 IF (x_return_status = fnd_api.g_ret_sts_error)
4302 THEN
4303 l_error_flag:='Y';
4304 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
4305 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_proration_rule_lookup_type));
4306 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_rec.pymt_term_pro_rule));
4307 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_rec.pymt_term_pro_rule_id));
4308 fnd_msg_pub.ADD;
4309 RAISE fnd_api.g_exc_error;
4310 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4311 THEN
4312 l_error_flag:='Y';
4313 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4314 fnd_message.set_token ('COLUMN', SUBSTR(l_param_reponsible_user,3));
4315 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4316 fnd_msg_pub.ADD;
4317 RAISE fnd_api.g_exc_unexpected_error;
4318 END IF;
4319 END IF;
4320
4321 ----------------------dbms_output.put_line ( 'After proration rule');--Rupak
4322 -- Validate Term Template id
4323 IF p_lease_rec.lease_class_code = 'DIRECT'
4324 OR p_lease_rec.lease_class = 'Expense'
4325 THEN
4326 l_term_template_type := 'PAYMENT';
4327 ----------------------dbms_output.put_line ( 'Test Payment');--Rupak
4328 ELSE
4329 --IF p_lease_rec.lease_class_code='THIRD_PARTY' OR p_lease_rec.lease_class='Revenue'
4330 --THEN
4331 -- l_term_template_type :='BILLING';
4332 --ELSE
4333 -- NULL;
4334 --END IF;
4335 l_term_template_type := 'BILLING';
4336 ----------------------dbms_output.put_line ( 'Test BILLING');--Rupak
4337 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Billing Mode:',3);
4338 END IF;
4339
4340 IF ( ( p_lease_rec.term_template_id IS NOT NULL
4341 AND p_lease_rec.term_template_id <> pn_lease_utils.g_pn_miss_num)
4342 OR ( p_lease_rec.term_template_name IS NOT NULL
4343 AND p_lease_rec.term_template_name <> pn_lease_utils.g_pn_miss_char))
4344 THEN
4345 pn_lease_utils.get_term_template_id (p_parameter_name => l_param_lease_template
4346 , p_termtemp_name => p_lease_rec.term_template_name
4347 , p_operation => p_operation
4348 , p_termtemp_type => l_term_template_type
4349 , p_org_id => l_org_id
4350 , x_return_status => x_return_status
4351 , x_termtemp_id => p_lease_rec.term_template_id);
4352
4353 ----------------------dbms_output.put_line ('GET_TERM_TEMPLATE_ID: '||p_lease_rec.term_template_id);--Rupak
4354 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Deriving Template ID:'||p_lease_rec.term_template_id,3);
4355 ------------------------dbms_output.put_line('x_return_status: '|| x_return_status);
4356 IF (x_return_status = fnd_api.g_ret_sts_error)
4357 THEN
4358 --l_error_flag:='Y';
4359 fnd_message.set_name ('PN', 'PN_INVALID_TERM_TEMPLATE');
4360 fnd_message.set_token ('TERM_TEMPLATE_ID', get_miss_num_decode(p_lease_rec.term_template_id));
4361 fnd_message.set_token ('TERM_TEMPLATE', get_miss_char_decode(p_lease_rec.term_template_name));
4362 fnd_msg_pub.ADD;
4363 RAISE fnd_api.g_exc_error;
4364 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4365 THEN
4366 --l_error_flag:='Y';
4367 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4368 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_template,3));
4369 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4370 fnd_msg_pub.ADD;
4371 RAISE fnd_api.g_exc_unexpected_error;
4372 END IF;
4373
4374 IF x_return_status = fnd_api.g_ret_sts_success
4375 THEN
4376 IF pn_r12_util_pkg.is_r12
4377 THEN
4378
4379 l_tcc_status := pn_r12_util_pkg.check_tax_upgrade (p_lease_rec.term_template_id);
4380 IF l_tcc_status = 'PN_NO_TCC_FOUND' THEN
4381 fnd_message.set_name('PN','PN_NO_TCC_FOUND');
4382 fnd_message.set_token ('API_NAME', l_api_name_full);
4383 fnd_message.set_token ('R12_FLAG', p_lease_rec.term_template_id);
4384 fnd_msg_pub.ADD;
4385
4386 l_error_flag:='Y';
4387 RAISE fnd_api.g_exc_error;
4388 ELSIF l_tcc_status = 'PN_UPG_TCC' THEN
4389 fnd_message.set_name('PN','PN_UPG_TCC_FOUND');
4390 fnd_message.set_token ('API_NAME', l_api_name_full);
4391 fnd_message.set_token ('R12_FLAG', p_lease_rec.term_template_id);
4392 fnd_msg_pub.ADD;
4393 END IF;
4394
4395 END IF;
4396
4397 END IF;
4398
4399 END IF;
4400
4401 ----------------------dbms_output.put_line ('Test 1');--Rupak
4402
4403 /******************************************************************************************
4404 ************************************************************************************************/
4405
4406 --IF p_lease_rec.term_template_id = pn_lease_utils.g_pn_miss_num
4407 --THEN
4408 -- p_lease_rec.term_template_id := NULL;
4409 --END IF;
4410
4411 -- Validate GET_INVOICE_GROUP_RULE
4412 IF p_lease_rec.lease_class_code = 'DIRECT'
4413 THEN
4414
4415 IF ( ( p_lease_rec.grouping_rule_id IS NOT NULL
4416 AND p_lease_rec.grouping_rule_id <> pn_lease_utils.g_pn_miss_num)
4417 OR ( p_lease_rec.grouping_rule_name IS NOT NULL
4418 AND p_lease_rec.grouping_rule_name <> pn_lease_utils.g_pn_miss_char))
4419 THEN
4420 ----------------------dbms_output.put_line ('Before calling PN_LEASE_UTILS.GET_INVOICE_GROUPING_RULE');--Rupak
4421 pn_lease_utils.get_invoice_grouping_rule(
4422 p_parameter_name => l_param_lease_grouping_rule
4423 , p_grouping_rule => p_lease_rec.grouping_rule_name
4424 , p_operation => p_operation
4425 , x_return_status => x_return_status
4426 , x_grouping_rule_id => p_lease_rec.grouping_rule_id
4427 );
4428 ----------------------dbms_output.put_line ('GET_GROUPING_RULE: '||p_lease_rec.grouping_rule_id);--Rupak
4429 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Grouping Rule ID:'||p_lease_rec.grouping_rule_id,3);
4430
4431 IF (x_return_status = fnd_api.g_ret_sts_error)
4432 THEN
4433 --l_error_flag:='Y';
4434 fnd_message.set_name ('PN', 'PN_INVOICE_GROUPING_RULE');
4435 fnd_message.set_token ('GROUPING_ID', get_miss_num_decode(p_lease_rec.grouping_rule_id));
4436 fnd_message.set_token ('GROUPING_RULE', get_miss_char_decode(p_lease_rec.grouping_rule_name));
4437 fnd_msg_pub.ADD;
4438 RAISE fnd_api.g_exc_error;
4439 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4440 THEN
4441 --l_error_flag:='Y';
4442 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4443 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_grouping_rule,3));
4444 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4445 fnd_msg_pub.ADD;
4446 RAISE fnd_api.g_exc_unexpected_error;
4447 END IF;
4448 END IF;
4449 END IF;
4450
4451
4452 --IF p_lease_rec.grouping_rule_id = pn_lease_utils.g_pn_miss_num
4453 --THEN
4454 -- p_lease_rec.grouping_rule_id:= NULL;
4455 --END IF;
4456
4457
4458 -- Validate GET_CAL_START_DATE
4459 IF ( ( p_lease_rec.cal_start IS NOT NULL
4460 AND p_lease_rec.cal_start <> pn_lease_utils.g_pn_miss_char
4461 )
4462 )
4463 THEN
4464 ----------------------dbms_output.put_line ('Before calling PN_LEASE_UTILS.GET_CAL_START_DATE ');
4465
4466 pn_lease_utils.get_cal_start_date ( p_parameter_name => l_param_lease_cal_start
4467 , x_cal_start => p_lease_rec.cal_start
4468 , p_operation => p_operation
4469 , x_return_status => x_return_status
4470 );
4471 ----------------------dbms_output.put_line ('p_lease_rec.cal_start: '||p_lease_rec.cal_start);--Rupak
4472 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Cal Start Date:'||p_lease_rec.cal_start,3);
4473 ----------------------dbms_output.put_line('PN_LEASE_UTILS.GET_CAL_START_DATE x_return_status: '|| x_return_status);
4474
4475 IF (x_return_status = fnd_api.g_ret_sts_error)
4476 THEN
4477 --l_error_flag:='Y';
4478 fnd_message.set_name ('PN', 'PN_CAL_INVALID_DATE');
4479 fnd_msg_pub.ADD;
4480 RAISE fnd_api.g_exc_error;
4481 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4482 THEN
4483 --l_error_flag:='Y';
4484 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
4485 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_cal_start,3));
4486 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
4487 fnd_msg_pub.ADD;
4488 RAISE fnd_api.g_exc_unexpected_error;
4489 END IF;
4490 END IF;
4491
4492
4493 --IF p_lease_rec.cal_start = pn_lease_utils.g_pn_miss_char
4494 --THEN
4495 -- p_lease_rec.cal_start := NULL;
4496 --
4497 --END IF;
4498
4499
4500 -- Validate Account Id, Segment and concatenated segments
4501 IF ( ( p_lease_exp_rev_accounts_rec.account_id IS NOT NULL
4502 AND p_lease_exp_rev_accounts_rec.account_id <> pn_lease_utils.g_pn_miss_num)
4503 OR ( p_lease_exp_rev_accounts_rec.account_conc_segs IS NOT NULL
4504 AND p_lease_exp_rev_accounts_rec.account_conc_segs <> pn_lease_utils.g_pn_miss_char)
4505 OR ( ( (p_lease_exp_rev_accounts_rec.account_segment1 IS NOT NULL)
4506 AND (p_lease_exp_rev_accounts_rec.account_segment1 <>
4507 pn_lease_utils.g_pn_miss_char))
4508 OR ( (p_lease_exp_rev_accounts_rec.account_segment2 IS NOT NULL)
4509 AND (p_lease_exp_rev_accounts_rec.account_segment2 <>
4510 pn_lease_utils.g_pn_miss_char))
4511 OR ( (p_lease_exp_rev_accounts_rec.account_segment3 IS NOT NULL)
4512 AND (p_lease_exp_rev_accounts_rec.account_segment3 <>
4513 pn_lease_utils.g_pn_miss_char))
4514 OR ( (p_lease_exp_rev_accounts_rec.account_segment4 IS NOT NULL)
4515 AND (p_lease_exp_rev_accounts_rec.account_segment4 <>
4516 pn_lease_utils.g_pn_miss_char))
4517 OR ( (p_lease_exp_rev_accounts_rec.account_segment5 IS NOT NULL)
4518 AND (p_lease_exp_rev_accounts_rec.account_segment5 <>
4519 pn_lease_utils.g_pn_miss_char))
4520 OR ( (p_lease_exp_rev_accounts_rec.account_segment6 IS NOT NULL)
4521 AND (p_lease_exp_rev_accounts_rec.account_segment6 <>
4522 pn_lease_utils.g_pn_miss_char))
4523 OR ( (p_lease_exp_rev_accounts_rec.account_segment7 IS NOT NULL)
4524 AND (p_lease_exp_rev_accounts_rec.account_segment7 <>
4525 pn_lease_utils.g_pn_miss_char))
4526 OR ( (p_lease_exp_rev_accounts_rec.account_segment8 IS NOT NULL)
4527 AND (p_lease_exp_rev_accounts_rec.account_segment8 <>
4528 pn_lease_utils.g_pn_miss_char))
4529 OR ( (p_lease_exp_rev_accounts_rec.account_segment9 IS NOT NULL)
4530 AND (p_lease_exp_rev_accounts_rec.account_segment9 <>
4531 pn_lease_utils.g_pn_miss_char))
4532 OR ( (p_lease_exp_rev_accounts_rec.account_segment10 IS NOT NULL)
4533 AND (p_lease_exp_rev_accounts_rec.account_segment10 <>
4534 pn_lease_utils.g_pn_miss_char))
4535 OR ( (p_lease_exp_rev_accounts_rec.account_segment11 IS NOT NULL)
4536 AND (p_lease_exp_rev_accounts_rec.account_segment11 <>
4537 pn_lease_utils.g_pn_miss_char))
4538 OR ( (p_lease_exp_rev_accounts_rec.account_segment12 IS NOT NULL)
4539 AND (p_lease_exp_rev_accounts_rec.account_segment12 <>
4540 pn_lease_utils.g_pn_miss_char))
4541 OR ( (p_lease_exp_rev_accounts_rec.account_segment13 IS NOT NULL)
4542 AND (p_lease_exp_rev_accounts_rec.account_segment13 <>
4543 pn_lease_utils.g_pn_miss_char))
4544 OR ( (p_lease_exp_rev_accounts_rec.account_segment14 IS NOT NULL)
4545 AND (p_lease_exp_rev_accounts_rec.account_segment14 <>
4546 pn_lease_utils.g_pn_miss_char))
4547 OR ( (p_lease_exp_rev_accounts_rec.account_segment15 IS NOT NULL)
4548 AND (p_lease_exp_rev_accounts_rec.account_segment15 <>
4549 pn_lease_utils.g_pn_miss_char))
4550 OR ( (p_lease_exp_rev_accounts_rec.account_segment16 IS NOT NULL)
4551 AND (p_lease_exp_rev_accounts_rec.account_segment16 <>
4552 pn_lease_utils.g_pn_miss_char))
4553 OR ( (p_lease_exp_rev_accounts_rec.account_segment17 IS NOT NULL)
4554 AND (p_lease_exp_rev_accounts_rec.account_segment17 <>
4555 pn_lease_utils.g_pn_miss_char))
4556 OR ( (p_lease_exp_rev_accounts_rec.account_segment18 IS NOT NULL)
4557 AND (p_lease_exp_rev_accounts_rec.account_segment18 <>
4558 pn_lease_utils.g_pn_miss_char))
4559 OR ( (p_lease_exp_rev_accounts_rec.account_segment19 IS NOT NULL)
4560 AND (p_lease_exp_rev_accounts_rec.account_segment19 <>
4561 pn_lease_utils.g_pn_miss_char))
4562 OR ( (p_lease_exp_rev_accounts_rec.account_segment20 IS NOT NULL)
4563 AND (p_lease_exp_rev_accounts_rec.account_segment20 <>
4564 pn_lease_utils.g_pn_miss_char))))
4565 THEN
4566 ----------------------dbms_output.put_line ( 'Before calling GET_EXP_REC_ACCOUNT_ID: ' );
4567 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:To Get the Account ID for Expense-Revenue',3);
4568 pn_lease_utils.get_account_id
4569 (p_parameter_name => l_param_exp_rev_acct
4570 , p_operation => p_operation
4571 , p_account_id => p_lease_exp_rev_accounts_rec.account_id
4572 , p_account_conc_segs => p_lease_exp_rev_accounts_rec.account_conc_segs
4573 , p_account_segment1 => p_lease_exp_rev_accounts_rec.account_segment1
4574 , p_account_segment2 => p_lease_exp_rev_accounts_rec.account_segment2
4575 , p_account_segment3 => p_lease_exp_rev_accounts_rec.account_segment3
4576 , p_account_segment4 => p_lease_exp_rev_accounts_rec.account_segment4
4577 , p_account_segment5 => p_lease_exp_rev_accounts_rec.account_segment5
4578 , p_account_segment6 => p_lease_exp_rev_accounts_rec.account_segment6
4579 , p_account_segment7 => p_lease_exp_rev_accounts_rec.account_segment7
4580 , p_account_segment8 => p_lease_exp_rev_accounts_rec.account_segment8
4581 , p_account_segment9 => p_lease_exp_rev_accounts_rec.account_segment9
4582 , p_account_segment10 => p_lease_exp_rev_accounts_rec.account_segment10
4583 , p_account_segment11 => p_lease_exp_rev_accounts_rec.account_segment11
4584 , p_account_segment12 => p_lease_exp_rev_accounts_rec.account_segment12
4585 , p_account_segment13 => p_lease_exp_rev_accounts_rec.account_segment13
4586 , p_account_segment14 => p_lease_exp_rev_accounts_rec.account_segment14
4587 , p_account_segment15 => p_lease_exp_rev_accounts_rec.account_segment15
4588 , p_account_segment16 => p_lease_exp_rev_accounts_rec.account_segment16
4589 , p_account_segment17 => p_lease_exp_rev_accounts_rec.account_segment17
4590 , p_account_segment18 => p_lease_exp_rev_accounts_rec.account_segment18
4591 , p_account_segment19 => p_lease_exp_rev_accounts_rec.account_segment19
4592 , p_account_segment20 => p_lease_exp_rev_accounts_rec.account_segment20
4593 , x_return_status => x_return_status
4594 );
4595 ----------------------dbms_output.put_line ( 'GET_EXP_REC_ACCOUNT_ID: '|| p_lease_exp_rev_accounts_rec.account_id);
4596 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Expense-Revenue Account ID'||p_lease_exp_rev_accounts_rec.account_id,3);
4597 ------------------------dbms_output.put_line('x_return_status: '|| x_return_status);
4598 IF (x_return_status = fnd_api.g_ret_sts_error)
4599 THEN
4600 l_error_flag:='Y';
4601 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
4602 fnd_message.set_token ('ACCOUNT_ID', p_lease_exp_rev_accounts_rec.account_id);
4603 fnd_msg_pub.ADD;
4604 RAISE fnd_api.g_exc_error;
4605 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4606 THEN
4607 l_error_flag:='Y';
4608 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
4609 fnd_message.set_token ('ACCOUNT_ID', p_lease_exp_rev_accounts_rec.account_id);
4610 fnd_msg_pub.ADD;
4611 RAISE fnd_api.g_exc_unexpected_error;
4612 END IF;
4613 END IF;
4614
4615 -- IF p_lease_exp_rev_accounts_rec.account_id = pn_lease_utils.g_pn_miss_num
4616 -- THEN
4617 -- p_lease_exp_rev_accounts_rec.account_id:= NULL;
4618 -- END IF;
4619
4620
4621 IF ( ( p_lease_accrual_account_rec.account_id IS NOT NULL
4622 AND p_lease_accrual_account_rec.account_id <> pn_lease_utils.g_pn_miss_num)
4623 OR ( p_lease_accrual_account_rec.account_conc_segs IS NOT NULL
4624 AND p_lease_accrual_account_rec.account_conc_segs <> pn_lease_utils.g_pn_miss_char)
4625 OR ( ( (p_lease_accrual_account_rec.account_segment1 IS NOT NULL)
4626 AND (p_lease_accrual_account_rec.account_segment1 <> pn_lease_utils.g_pn_miss_char))
4627 OR ( (p_lease_accrual_account_rec.account_segment2 IS NOT NULL)
4628 AND (p_lease_accrual_account_rec.account_segment2 <> pn_lease_utils.g_pn_miss_char))
4629 OR ( (p_lease_accrual_account_rec.account_segment3 IS NOT NULL)
4630 AND (p_lease_accrual_account_rec.account_segment3 <> pn_lease_utils.g_pn_miss_char))
4631 OR ( (p_lease_accrual_account_rec.account_segment4 IS NOT NULL)
4632 AND (p_lease_accrual_account_rec.account_segment4 <> pn_lease_utils.g_pn_miss_char))
4633 OR ( (p_lease_accrual_account_rec.account_segment5 IS NOT NULL)
4634 AND (p_lease_accrual_account_rec.account_segment5 <> pn_lease_utils.g_pn_miss_char))
4635 OR ( (p_lease_accrual_account_rec.account_segment6 IS NOT NULL)
4636 AND (p_lease_accrual_account_rec.account_segment6 <> pn_lease_utils.g_pn_miss_char))
4637 OR ( (p_lease_accrual_account_rec.account_segment7 IS NOT NULL)
4638 AND (p_lease_accrual_account_rec.account_segment7 <> pn_lease_utils.g_pn_miss_char))
4639 OR ( (p_lease_accrual_account_rec.account_segment8 IS NOT NULL)
4640 AND (p_lease_accrual_account_rec.account_segment8 <> pn_lease_utils.g_pn_miss_char))
4641 OR ( (p_lease_accrual_account_rec.account_segment9 IS NOT NULL)
4642 AND (p_lease_accrual_account_rec.account_segment9 <> pn_lease_utils.g_pn_miss_char))
4643 OR ( (p_lease_accrual_account_rec.account_segment10 IS NOT NULL)
4644 AND (p_lease_accrual_account_rec.account_segment10 <>
4645 pn_lease_utils.g_pn_miss_char))
4646 OR ( (p_lease_accrual_account_rec.account_segment11 IS NOT NULL)
4647 AND (p_lease_accrual_account_rec.account_segment11 <>
4648 pn_lease_utils.g_pn_miss_char))
4649 OR ( (p_lease_accrual_account_rec.account_segment12 IS NOT NULL)
4650 AND (p_lease_accrual_account_rec.account_segment12 <>
4651 pn_lease_utils.g_pn_miss_char))
4652 OR ( (p_lease_accrual_account_rec.account_segment13 IS NOT NULL)
4653 AND (p_lease_accrual_account_rec.account_segment13 <>
4654 pn_lease_utils.g_pn_miss_char))
4655 OR ( (p_lease_accrual_account_rec.account_segment14 IS NOT NULL)
4656 AND (p_lease_accrual_account_rec.account_segment14 <>
4657 pn_lease_utils.g_pn_miss_char))
4658 OR ( (p_lease_accrual_account_rec.account_segment15 IS NOT NULL)
4659 AND (p_lease_accrual_account_rec.account_segment15 <>
4660 pn_lease_utils.g_pn_miss_char))
4661 OR ( (p_lease_accrual_account_rec.account_segment16 IS NOT NULL)
4662 AND (p_lease_accrual_account_rec.account_segment16 <>
4663 pn_lease_utils.g_pn_miss_char))
4664 OR ( (p_lease_accrual_account_rec.account_segment17 IS NOT NULL)
4665 AND (p_lease_accrual_account_rec.account_segment17 <>
4666 pn_lease_utils.g_pn_miss_char))
4667 OR ( (p_lease_accrual_account_rec.account_segment18 IS NOT NULL)
4668 AND (p_lease_accrual_account_rec.account_segment18 <>
4669 pn_lease_utils.g_pn_miss_char))
4670 OR ( (p_lease_accrual_account_rec.account_segment19 IS NOT NULL)
4671 AND (p_lease_accrual_account_rec.account_segment19 <>
4672 pn_lease_utils.g_pn_miss_char))
4673 OR ( (p_lease_accrual_account_rec.account_segment20 IS NOT NULL)
4674 AND (p_lease_accrual_account_rec.account_segment20 <>
4675 pn_lease_utils.g_pn_miss_char))))
4676 THEN
4677 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:To Get the Account ID for Accrual',3);
4678 pn_lease_utils.get_account_id
4679 (p_parameter_name => l_param_accrual_acct
4680 , p_operation => p_operation
4681 , p_account_id => p_lease_accrual_account_rec.account_id
4682 , p_account_conc_segs => p_lease_accrual_account_rec.account_conc_segs
4683 , p_account_segment1 => p_lease_accrual_account_rec.account_segment1
4684 , p_account_segment2 => p_lease_accrual_account_rec.account_segment2
4685 , p_account_segment3 => p_lease_accrual_account_rec.account_segment3
4686 , p_account_segment4 => p_lease_accrual_account_rec.account_segment4
4687 , p_account_segment5 => p_lease_accrual_account_rec.account_segment5
4688 , p_account_segment6 => p_lease_accrual_account_rec.account_segment6
4689 , p_account_segment7 => p_lease_accrual_account_rec.account_segment7
4690 , p_account_segment8 => p_lease_accrual_account_rec.account_segment8
4691 , p_account_segment9 => p_lease_accrual_account_rec.account_segment9
4692 , p_account_segment10 => p_lease_accrual_account_rec.account_segment10
4693 , p_account_segment11 => p_lease_accrual_account_rec.account_segment11
4694 , p_account_segment12 => p_lease_accrual_account_rec.account_segment12
4695 , p_account_segment13 => p_lease_accrual_account_rec.account_segment13
4696 , p_account_segment14 => p_lease_accrual_account_rec.account_segment14
4697 , p_account_segment15 => p_lease_accrual_account_rec.account_segment15
4698 , p_account_segment16 => p_lease_accrual_account_rec.account_segment16
4699 , p_account_segment17 => p_lease_accrual_account_rec.account_segment17
4700 , p_account_segment18 => p_lease_accrual_account_rec.account_segment18
4701 , p_account_segment19 => p_lease_accrual_account_rec.account_segment19
4702 , p_account_segment20 => p_lease_accrual_account_rec.account_segment20
4703 , x_return_status => x_return_status);
4704
4705 ----------------------dbms_output.put_line ( 'GET_ACCRLC_ACCOUNT_ID: '|| p_lease_accrual_account_rec.account_id);
4706 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Accrual Account ID'||p_lease_accrual_account_rec.account_id,3);
4707
4708 IF (x_return_status = fnd_api.g_ret_sts_error)
4709 THEN
4710 l_error_flag:='Y';
4711 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
4712 fnd_message.set_token ('ACCOUNT_ID', p_lease_accrual_account_rec.account_id);
4713 fnd_msg_pub.ADD;
4714 RAISE fnd_api.g_exc_error;
4715 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4716 THEN
4717 l_error_flag:='Y';
4718 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
4719 fnd_message.set_token ('ACCOUNT_ID', p_lease_accrual_account_rec.account_id);
4720 fnd_msg_pub.ADD;
4721 RAISE fnd_api.g_exc_unexpected_error;
4722 END IF;
4723 END IF;
4724
4725
4726 -- IF p_lease_accrual_account_rec.account_id = pn_lease_utils.g_pn_miss_num
4727 -- THEN
4728 -- p_lease_accrual_account_rec.account_id:= NULL;
4729 -- END IF;
4730
4731 IF ( ( p_lease_liab_rcvl_account_rec.account_id IS NOT NULL
4732 AND p_lease_liab_rcvl_account_rec.account_id <> pn_lease_utils.g_pn_miss_num)
4733 OR ( p_lease_liab_rcvl_account_rec.account_conc_segs IS NOT NULL
4734 AND p_lease_liab_rcvl_account_rec.account_conc_segs <> pn_lease_utils.g_pn_miss_char)
4735 OR ( ( (p_lease_liab_rcvl_account_rec.account_segment1 IS NOT NULL)
4736 AND (p_lease_liab_rcvl_account_rec.account_segment1 <>
4737 pn_lease_utils.g_pn_miss_char))
4738 OR ( (p_lease_liab_rcvl_account_rec.account_segment2 IS NOT NULL)
4739 AND (p_lease_liab_rcvl_account_rec.account_segment2 <>
4740 pn_lease_utils.g_pn_miss_char))
4741 OR ( (p_lease_liab_rcvl_account_rec.account_segment3 IS NOT NULL)
4742 AND (p_lease_liab_rcvl_account_rec.account_segment3 <>
4743 pn_lease_utils.g_pn_miss_char))
4744 OR ( (p_lease_liab_rcvl_account_rec.account_segment4 IS NOT NULL)
4745 AND (p_lease_liab_rcvl_account_rec.account_segment4 <>
4746 pn_lease_utils.g_pn_miss_char))
4747 OR ( (p_lease_liab_rcvl_account_rec.account_segment5 IS NOT NULL)
4748 AND (p_lease_liab_rcvl_account_rec.account_segment5 <>
4749 pn_lease_utils.g_pn_miss_char))
4750 OR ( (p_lease_liab_rcvl_account_rec.account_segment6 IS NOT NULL)
4751 AND (p_lease_liab_rcvl_account_rec.account_segment6 <>
4752 pn_lease_utils.g_pn_miss_char))
4753 OR ( (p_lease_liab_rcvl_account_rec.account_segment7 IS NOT NULL)
4754 AND (p_lease_liab_rcvl_account_rec.account_segment7 <>
4755 pn_lease_utils.g_pn_miss_char))
4756 OR ( (p_lease_liab_rcvl_account_rec.account_segment8 IS NOT NULL)
4757 AND (p_lease_liab_rcvl_account_rec.account_segment8 <>
4758 pn_lease_utils.g_pn_miss_char))
4759 OR ( (p_lease_liab_rcvl_account_rec.account_segment9 IS NOT NULL)
4760 AND (p_lease_liab_rcvl_account_rec.account_segment9 <>
4761 pn_lease_utils.g_pn_miss_char))
4762 OR ( (p_lease_liab_rcvl_account_rec.account_segment10 IS NOT NULL)
4763 AND (p_lease_liab_rcvl_account_rec.account_segment10 <>
4764 pn_lease_utils.g_pn_miss_char))
4765 OR ( (p_lease_liab_rcvl_account_rec.account_segment11 IS NOT NULL)
4766 AND (p_lease_liab_rcvl_account_rec.account_segment11 <>
4767 pn_lease_utils.g_pn_miss_char))
4768 OR ( (p_lease_liab_rcvl_account_rec.account_segment12 IS NOT NULL)
4769 AND (p_lease_liab_rcvl_account_rec.account_segment12 <>
4770 pn_lease_utils.g_pn_miss_char))
4771 OR ( (p_lease_liab_rcvl_account_rec.account_segment13 IS NOT NULL)
4772 AND (p_lease_liab_rcvl_account_rec.account_segment13 <>
4773 pn_lease_utils.g_pn_miss_char))
4774 OR ( (p_lease_liab_rcvl_account_rec.account_segment14 IS NOT NULL)
4775 AND (p_lease_liab_rcvl_account_rec.account_segment14 <>
4776 pn_lease_utils.g_pn_miss_char))
4777 OR ( (p_lease_liab_rcvl_account_rec.account_segment15 IS NOT NULL)
4778 AND (p_lease_liab_rcvl_account_rec.account_segment15 <>
4779 pn_lease_utils.g_pn_miss_char))
4780 OR ( (p_lease_liab_rcvl_account_rec.account_segment16 IS NOT NULL)
4781 AND (p_lease_liab_rcvl_account_rec.account_segment16 <>
4782 pn_lease_utils.g_pn_miss_char))
4783 OR ( (p_lease_liab_rcvl_account_rec.account_segment17 IS NOT NULL)
4784 AND (p_lease_liab_rcvl_account_rec.account_segment17 <>
4785 pn_lease_utils.g_pn_miss_char))
4786 OR ( (p_lease_liab_rcvl_account_rec.account_segment18 IS NOT NULL)
4787 AND (p_lease_liab_rcvl_account_rec.account_segment18 <>
4788 pn_lease_utils.g_pn_miss_char))
4789 OR ( (p_lease_liab_rcvl_account_rec.account_segment19 IS NOT NULL)
4790 AND (p_lease_liab_rcvl_account_rec.account_segment19 <>
4791 pn_lease_utils.g_pn_miss_char))
4792 OR ( (p_lease_liab_rcvl_account_rec.account_segment20 IS NOT NULL)
4793 AND (p_lease_liab_rcvl_account_rec.account_segment20 <>
4794 pn_lease_utils.g_pn_miss_char))))
4795 THEN
4796 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:To Get the Account ID for Liability-Receivable',3);
4797 pn_lease_utils.get_account_id
4798 (p_parameter_name => l_param_liab_rvbl_acct
4799 , p_operation => p_operation
4800 , p_account_id => p_lease_liab_rcvl_account_rec.account_id
4801 , p_account_conc_segs => p_lease_liab_rcvl_account_rec.account_conc_segs
4802 , p_account_segment1 => p_lease_liab_rcvl_account_rec.account_segment1
4803 , p_account_segment2 => p_lease_liab_rcvl_account_rec.account_segment2
4804 , p_account_segment3 => p_lease_liab_rcvl_account_rec.account_segment3
4805 , p_account_segment4 => p_lease_liab_rcvl_account_rec.account_segment4
4806 , p_account_segment5 => p_lease_liab_rcvl_account_rec.account_segment5
4807 , p_account_segment6 => p_lease_liab_rcvl_account_rec.account_segment6
4808 , p_account_segment7 => p_lease_liab_rcvl_account_rec.account_segment7
4809 , p_account_segment8 => p_lease_liab_rcvl_account_rec.account_segment8
4810 , p_account_segment9 => p_lease_liab_rcvl_account_rec.account_segment9
4811 , p_account_segment10 => p_lease_liab_rcvl_account_rec.account_segment10
4812 , p_account_segment11 => p_lease_liab_rcvl_account_rec.account_segment11
4813 , p_account_segment12 => p_lease_liab_rcvl_account_rec.account_segment12
4814 , p_account_segment13 => p_lease_liab_rcvl_account_rec.account_segment13
4815 , p_account_segment14 => p_lease_liab_rcvl_account_rec.account_segment14
4816 , p_account_segment15 => p_lease_liab_rcvl_account_rec.account_segment15
4817 , p_account_segment16 => p_lease_liab_rcvl_account_rec.account_segment16
4818 , p_account_segment17 => p_lease_liab_rcvl_account_rec.account_segment17
4819 , p_account_segment18 => p_lease_liab_rcvl_account_rec.account_segment18
4820 , p_account_segment19 => p_lease_liab_rcvl_account_rec.account_segment19
4821 , p_account_segment20 => p_lease_liab_rcvl_account_rec.account_segment20
4822 , x_return_status => x_return_status);
4823
4824 ----------------------dbms_output.put_line ( 'GET_LIAB_RVCL_ACCOUNT_ID: '|| p_lease_liab_rcvl_account_rec.account_id);
4825 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Liability-Receivable Account ID'||p_lease_liab_rcvl_account_rec.account_id,3);
4826
4827 IF (x_return_status = fnd_api.g_ret_sts_error)
4828 THEN
4829 l_error_flag:='Y';
4830 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
4831 fnd_message.set_token ('ACCOUNT_ID', p_lease_liab_rcvl_account_rec.account_id);
4832 fnd_msg_pub.ADD;
4833 RAISE fnd_api.g_exc_error;
4834 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
4835 THEN
4836 l_error_flag:='Y';
4837 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
4838 fnd_message.set_token ('ACCOUNT_ID', p_lease_liab_rcvl_account_rec.account_id);
4839 fnd_msg_pub.ADD;
4840 RAISE fnd_api.g_exc_unexpected_error;
4841 END IF;
4842 END IF;
4843
4844 -- IF p_lease_liab_rcvl_account_rec.account_id = pn_lease_utils.g_pn_miss_num
4845 -- THEN
4846 -- p_lease_liab_rcvl_account_rec.account_id := NULL;
4847 -- END IF;
4848
4849 ----------------------------------------------------------------
4850 -- DESCRIPTIVE FLEXSFIELDS VALIDATION
4851 ----------------------------------------------------------------
4852
4853 ----------------------dbms_output.put_line('p_lease_rec.attribute_category'||p_lease_rec.attribute_category);
4854 ----------------------dbms_output.put_line('p_lease_rec.attribute1'||p_lease_rec.attribute1);
4855 ----------------------dbms_output.put_line('p_lease_rec.attribute2'||p_lease_rec.attribute2);
4856 ----------------------dbms_output.put_line('p_lease_rec.attribute3'||p_lease_rec.attribute3);
4857 ----------------------dbms_output.put_line('p_lease_rec.attribute4'||p_lease_rec.attribute4);
4858 ----------------------dbms_output.put_line('p_lease_rec.attribute5'||p_lease_rec.attribute5);
4859 -- Validate the descriptive flexfields
4860 --
4861 /*IF NOT ( (p_lease_rec.attribute_category = pn_lease_utils.g_pn_miss_char)
4862 AND (p_lease_rec.attribute1 = pn_lease_utils.g_pn_miss_char)
4863 AND (p_lease_rec.attribute2 = pn_lease_utils.g_pn_miss_char)
4864 AND (p_lease_rec.attribute3 = pn_lease_utils.g_pn_miss_char)
4865 AND (p_lease_rec.attribute4 = pn_lease_utils.g_pn_miss_char)
4866 AND (p_lease_rec.attribute5 = pn_lease_utils.g_pn_miss_char)
4867 AND (p_lease_rec.attribute6 = pn_lease_utils.g_pn_miss_char)
4868 AND (p_lease_rec.attribute7 = pn_lease_utils.g_pn_miss_char)
4869 AND (p_lease_rec.attribute8 = pn_lease_utils.g_pn_miss_char)
4870 AND (p_lease_rec.attribute9 = pn_lease_utils.g_pn_miss_char)
4871 AND (p_lease_rec.attribute10 = pn_lease_utils.g_pn_miss_char)
4872 AND (p_lease_rec.attribute11 = pn_lease_utils.g_pn_miss_char)
4873 AND (p_lease_rec.attribute12 = pn_lease_utils.g_pn_miss_char)
4874 AND (p_lease_rec.attribute13 = pn_lease_utils.g_pn_miss_char)
4875 AND (p_lease_rec.attribute14 = pn_lease_utils.g_pn_miss_char)
4876 AND (p_lease_rec.attribute15 = pn_lease_utils.g_pn_miss_char))
4877 THEN*/
4878 --------------------dbms_output.put_line ('IN ATTRIBUTES');
4879
4880 IF (p_lease_rec.attribute_category = pn_lease_utils.g_pn_miss_char)
4881 THEN
4882 p_lease_rec.attribute_category := NULL;
4883 -- ELSE
4884 -- l_lease_rec.attribute_category := p_lease_rec.attribute_category;
4885 END IF;
4886
4887 IF (p_lease_rec.attribute1 = pn_lease_utils.g_pn_miss_char)
4888 THEN
4889 p_lease_rec.attribute1 := NULL;
4890 --ELSE
4891 -- l_lease_rec.attribute1 := p_lease_rec.attribute1;
4892 END IF;
4893
4894 IF (p_lease_rec.attribute2 = pn_lease_utils.g_pn_miss_char)
4895 THEN
4896 p_lease_rec.attribute2 := NULL;
4897 -- ELSE
4898 -- l_lease_rec.attribute2 := p_lease_rec.attribute2;
4899 END IF;
4900
4901 IF (p_lease_rec.attribute3 = pn_lease_utils.g_pn_miss_char)
4902 THEN
4903 p_lease_rec.attribute3 := NULL;
4904 -- ELSE
4905 -- l_lease_rec.attribute3 := p_lease_rec.attribute3;
4906 END IF;
4907
4908 IF (p_lease_rec.attribute4 = pn_lease_utils.g_pn_miss_char)
4909 THEN
4910 p_lease_rec.attribute4 := NULL;
4911 -- ELSE
4912 -- l_lease_rec.attribute4 := p_lease_rec.attribute4;
4913 END IF;
4914
4915 IF (p_lease_rec.attribute5 = pn_lease_utils.g_pn_miss_char)
4916 THEN
4917 p_lease_rec.attribute5 := NULL;
4918 -- ELSE
4919 -- l_lease_rec.attribute5 := p_lease_rec.attribute5;
4920 END IF;
4921
4922 IF (p_lease_rec.attribute6 = pn_lease_utils.g_pn_miss_char)
4923 THEN
4924 p_lease_rec.attribute6 := NULL;
4925 -- ELSE
4926 -- l_lease_rec.attribute6 := p_lease_rec.attribute6;
4927 END IF;
4928
4929 IF (p_lease_rec.attribute7 = pn_lease_utils.g_pn_miss_char)
4930 THEN
4931 p_lease_rec.attribute7 := NULL;
4932 -- ELSE
4933 -- l_lease_rec.attribute7 := p_lease_rec.attribute7;
4934 END IF;
4935
4936 IF (p_lease_rec.attribute8 = pn_lease_utils.g_pn_miss_char)
4937 THEN
4938 p_lease_rec.attribute8 := NULL;
4939 -- ELSE
4940 -- l_lease_rec.attribute8 := p_lease_rec.attribute8;
4941 END IF;
4942
4943 IF (p_lease_rec.attribute9 = pn_lease_utils.g_pn_miss_char)
4944 THEN
4945 p_lease_rec.attribute9 := NULL;
4946 -- ELSE
4947 -- l_lease_rec.attribute9 := p_lease_rec.attribute9;
4948 END IF;
4949
4950 IF (p_lease_rec.attribute10 = pn_lease_utils.g_pn_miss_char)
4951 THEN
4952 p_lease_rec.attribute10 := NULL;
4953 -- ELSE
4954 -- l_lease_rec.attribute10 := p_lease_rec.attribute10;
4955 END IF;
4956
4957 IF (p_lease_rec.attribute11 = pn_lease_utils.g_pn_miss_char)
4958 THEN
4959 p_lease_rec.attribute11 := NULL;
4960 -- ELSE
4961 -- l_lease_rec.attribute11 := p_lease_rec.attribute11;
4962 END IF;
4963
4964 IF (p_lease_rec.attribute12 = pn_lease_utils.g_pn_miss_char)
4965 THEN
4966 p_lease_rec.attribute12 := NULL;
4967 -- ELSE
4968 -- l_lease_rec.attribute12 := p_lease_rec.attribute12;
4969 END IF;
4970
4971 IF (p_lease_rec.attribute13 = pn_lease_utils.g_pn_miss_char)
4972 THEN
4973 p_lease_rec.attribute13 := NULL;
4974 -- ELSE
4975 -- l_lease_rec.attribute13 := p_lease_rec.attribute13;
4976 END IF;
4977
4978 IF (p_lease_rec.attribute14 = pn_lease_utils.g_pn_miss_char)
4979 THEN
4980 p_lease_rec.attribute14 := NULL;
4981 --ELSE
4982 -- l_lease_rec.attribute14 := p_lease_rec.attribute14;
4983 END IF;
4984
4985 IF (p_lease_rec.attribute15 = pn_lease_utils.g_pn_miss_char)
4986 THEN
4987 p_lease_rec.attribute15 := NULL;
4988 --ELSE
4989 -- l_lease_rec.attribute15 := p_lease_rec.attribute15;
4990 END IF;
4991
4992
4993 IF (get_attribute_status('PN_LEASE_DETAILS') > 0) THEN
4994 /* get_attribute_mandatory_status('PN_LEASE_DETAILS'
4995 , p_lease_rec.attribute1
4996 , p_lease_rec.attribute2
4997 , p_lease_rec.attribute3
4998 , p_lease_rec.attribute4
4999 , p_lease_rec.attribute5
5000 , p_lease_rec.attribute6
5001 , p_lease_rec.attribute7
5002 , p_lease_rec.attribute8
5003 , p_lease_rec.attribute9
5004 , p_lease_rec.attribute10
5005 , p_lease_rec.attribute11
5006 , p_lease_rec.attribute12
5007 , p_lease_rec.attribute13
5008 , p_lease_rec.attribute14
5009 , p_lease_rec.attribute15
5010 ,x_return_status
5011 );
5012 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
5013 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
5014 fnd_message.set_token ('API_NAME', l_api_name_full);
5015 fnd_message.set_token ('NULL_PARAM','Required attribute in Lease is NULL');
5016 fnd_msg_pub.ADD;
5017 RAISE fnd_api.g_exc_error;
5018 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
5019 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
5020 fnd_message.set_token ('API_NAME', l_api_name_full);
5021 fnd_message.set_token ('NULL_PARAM', 'Required attribute in Lease is NULL');
5022 fnd_msg_pub.ADD;
5023 RAISE fnd_api.g_exc_unexpected_error;
5024 ELSE*/
5025 IF NOT ((p_lease_rec.attribute_category = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute_category IS NULL)
5026 AND (p_lease_rec.attribute1 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute1 IS NULL)
5027 AND (p_lease_rec.attribute2 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute2 IS NULL)
5028 AND (p_lease_rec.attribute3 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute3 IS NULL)
5029 AND (p_lease_rec.attribute4 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute4 IS NULL)
5030 AND (p_lease_rec.attribute5 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute5 IS NULL)
5031 AND (p_lease_rec.attribute6 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute6 IS NULL)
5032 AND (p_lease_rec.attribute7 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute7 IS NULL)
5033 AND (p_lease_rec.attribute8 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute8 IS NULL)
5034 AND (p_lease_rec.attribute9 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute9 IS NULL)
5035 AND (p_lease_rec.attribute10 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute10 IS NULL)
5036 AND (p_lease_rec.attribute11 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute11 IS NULL)
5037 AND (p_lease_rec.attribute12 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute12 IS NULL)
5038 AND (p_lease_rec.attribute13 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute13 IS NULL)
5039 AND (p_lease_rec.attribute14 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute14 IS NULL)
5040 AND (p_lease_rec.attribute15 = pn_lease_utils.g_pn_miss_char OR p_lease_rec.attribute15 IS NULL)
5041 ) THEN
5042 pn_lease_utils.validate_desc_flex (p_api_name => l_api_name_full
5043 , p_application_short_name => 'PN'
5044 , p_desc_flex_name => 'PN_LEASE_DETAILS'
5045 , p_desc_segment1 => p_lease_rec.attribute1
5046 , p_desc_segment2 => p_lease_rec.attribute2
5047 , p_desc_segment3 => p_lease_rec.attribute3
5048 , p_desc_segment4 => p_lease_rec.attribute4
5049 , p_desc_segment5 => p_lease_rec.attribute5
5050 , p_desc_segment6 => p_lease_rec.attribute6
5051 , p_desc_segment7 => p_lease_rec.attribute7
5052 , p_desc_segment8 => p_lease_rec.attribute8
5053 , p_desc_segment9 => p_lease_rec.attribute9
5054 , p_desc_segment10 => p_lease_rec.attribute10
5055 , p_desc_segment11 => p_lease_rec.attribute11
5056 , p_desc_segment12 => p_lease_rec.attribute12
5057 , p_desc_segment13 => p_lease_rec.attribute13
5058 , p_desc_segment14 => p_lease_rec.attribute14
5059 , p_desc_segment15 => p_lease_rec.attribute15
5060 , p_desc_context => p_lease_rec.attribute_category
5061 , p_resp_appl_id => fnd_global.resp_appl_id
5062 , p_resp_id => fnd_global.resp_id
5063 , p_return_status => x_return_status
5064 );
5065 IF (x_return_status = fnd_api.g_ret_sts_error)
5066 THEN
5067 fnd_message.set_name ('PN', 'PN_API_LEASE_DETAILS_DESC_FLEX_ERR');
5068 fnd_message.set_token ('API_NAME',l_api_name_full);
5069 fnd_message.set_token ('DESC_FLEX_MSG', 'Lease Details Descriptive Fields Error');
5070 fnd_msg_pub.ADD;
5071 RAISE fnd_api.g_exc_error;
5072 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
5073 THEN
5074 fnd_message.set_name ('PN', 'PN_API_LEASE_DETAILS_DESC_FLEX_ERR');
5075 fnd_message.set_token ('API_NAME',l_api_name_full);
5076 fnd_message.set_token ('DESC_FLEX_MSG', 'Lease Details Descriptive Fields Error');
5077 fnd_msg_pub.ADD;
5078 RAISE fnd_api.g_exc_unexpected_error;
5079 END IF;
5080 END IF;
5081 END IF; -- End of attributes valitions in create lease
5082
5083
5084 EXCEPTION
5085 WHEN fnd_api.g_exc_error THEN
5086 x_return_status := fnd_api.g_ret_sts_error;
5087 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:FND_API.G_RET_STS_ERROR:Exception:'||SQLERRM,3);
5088 WHEN OTHERS
5089 THEN
5090 x_return_status := fnd_api.g_ret_sts_unexp_error;
5091 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC;Exception:'||SQLERRM,3);
5092 END validate_lease_rec;
5093
5094 PROCEDURE INIT_LEASE_REC( p_lease_rec IN OUT NOCOPY lease_rec
5095 , p_lease_context IN VARCHAR2
5096 , x_return_status OUT NOCOPY VARCHAR2
5097 )
5098 IS
5099
5100 BEGIN
5101 pvt_debug(g_pkg_name||'-Inside INIT_LEASE_REC',3);
5102 ----------------------dbms_output.put_line('INIT_LEASE_REC:1');--Rupak
5103 x_return_status := fnd_api.g_ret_sts_success;
5104 IF p_lease_rec.lease_id = pn_lease_utils.g_pn_miss_num
5105 THEN
5106 p_lease_rec.lease_id:= NULL;
5107 END IF;
5108
5109 IF p_lease_rec.lease_change_id = pn_lease_utils.g_pn_miss_num
5110 THEN
5111 p_lease_rec.lease_change_id:= NULL;
5112 END IF;
5113
5114 IF p_lease_rec.lease_detail_id = pn_lease_utils.g_pn_miss_num
5115 THEN
5116 p_lease_rec.lease_detail_id:= NULL;
5117 END IF;
5118
5119 IF p_lease_rec.lease_name = pn_lease_utils.g_pn_miss_char
5120 THEN
5121 p_lease_rec.lease_name:= NULL;
5122 END IF;
5123 ----------------------dbms_output.put_line('INIT_LEASE_REC:2');--Rupak
5124 IF p_lease_rec.lease_num = pn_lease_utils.g_pn_miss_char
5125 THEN
5126 p_lease_rec.lease_num:= NULL;
5127 END IF;
5128
5129 IF p_lease_rec.parent_lease_id = pn_lease_utils.g_pn_miss_num
5130 THEN
5131 p_lease_rec.parent_lease_id := NULL;
5132 END IF;
5133 ----------------------dbms_output.put_line('INIT_LEASE_REC:3');--Rupak
5134 IF p_lease_rec.lease_type_code = pn_lease_utils.g_pn_miss_char
5135 THEN
5136 p_lease_rec.lease_type_code:= NULL;
5137 END IF;
5138
5139 IF p_lease_rec.lease_class_code = pn_lease_utils.g_pn_miss_char
5140 THEN
5141 p_lease_rec.lease_class_code:= NULL;
5142 END IF;
5143 ----------------------dbms_output.put_line('INIT_LEASE_REC:4');--Rupak
5144 IF p_lease_rec.pymt_term_pro_rule_id = pn_lease_utils.g_pn_miss_char
5145 THEN
5146 p_lease_rec.pymt_term_pro_rule_id := NULL;
5147
5148 END IF;
5149
5150 IF p_lease_rec.abstracted_by_user_id = pn_lease_utils.g_pn_miss_num
5151 THEN
5152 p_lease_rec.abstracted_by_user_id := NULL;
5153
5154 END IF;
5155 ----------------------dbms_output.put_line('INIT_LEASE_REC:5');--Rupak
5156 IF p_lease_rec.lease_status_code = pn_lease_utils.g_pn_miss_char
5157 THEN
5158 p_lease_rec.lease_status_code:= NULL;
5159 END IF;
5160
5161 IF p_lease_rec.creation_date = pn_lease_utils.g_pn_miss_date
5162 THEN
5163 p_lease_rec.creation_date:= NULL;
5164 END IF;
5165
5166 IF p_lease_rec.created_by = pn_lease_utils.g_pn_miss_num
5167 THEN
5168 p_lease_rec.created_by:= NULL;
5169 END IF;
5170 ----------------------dbms_output.put_line('INIT_LEASE_REC:6');--Rupak
5171 IF p_lease_rec.last_update_date = pn_lease_utils.g_pn_miss_date
5172 THEN
5173 p_lease_rec.last_update_date:= NULL;
5174 END IF;
5175
5176 IF p_lease_rec.last_updated_by = pn_lease_utils.g_pn_miss_num
5177 THEN
5178 p_lease_rec.last_updated_by:= NULL;
5179 END IF;
5180
5181 IF p_lease_rec.last_update_login = pn_lease_utils.g_pn_miss_num
5182 THEN
5183 p_lease_rec.last_update_login:= NULL;
5184 END IF;
5185 ----------------------dbms_output.put_line('INIT_LEASE_REC:7');--Rupak
5186 IF p_lease_rec.responsible_user_id = pn_lease_utils.g_pn_miss_num
5187 THEN
5188 p_lease_rec.responsible_user_id := NULL;
5189
5190 END IF;
5191
5192 IF p_lease_rec.term_template_id = pn_lease_utils.g_pn_miss_num
5193 THEN
5194 p_lease_rec.term_template_id := NULL;
5195 END IF;
5196
5197 IF p_lease_rec.lease_commencement_date = pn_lease_utils.g_pn_miss_date
5198 THEN
5199 p_lease_rec.lease_commencement_date := NULL;
5200 END IF;
5201 ----------------------dbms_output.put_line('INIT_LEASE_REC:8');--Rupak
5202 IF p_lease_rec.lease_termination_date = pn_lease_utils.g_pn_miss_date
5203 THEN
5204 p_lease_rec.lease_termination_date := NULL;
5205 END IF;
5206
5207 IF p_lease_rec.lease_execution_date = pn_lease_utils.g_pn_miss_date
5208 THEN
5209 p_lease_rec.lease_execution_date := NULL;
5210 END IF;
5211
5212 IF p_lease_rec.attribute_category = pn_lease_utils.g_pn_miss_char
5213 THEN
5214 p_lease_rec.attribute_category:= NULL;
5215 END IF;
5216 ----------------------dbms_output.put_line('INIT_LEASE_REC:9');--Rupak
5217 IF p_lease_rec.attribute1 = pn_lease_utils.g_pn_miss_char
5218 THEN
5219 p_lease_rec.attribute1:= NULL;
5220 END IF;
5221
5222 IF p_lease_rec.attribute2 = pn_lease_utils.g_pn_miss_char
5223 THEN
5224 p_lease_rec.attribute2:= NULL;
5225 END IF;
5226
5227 IF p_lease_rec.attribute3 = pn_lease_utils.g_pn_miss_char
5228 THEN
5229 p_lease_rec.attribute3:= NULL;
5230 END IF;
5231 ----------------------dbms_output.put_line('INIT_LEASE_REC:10');--Rupak
5232 IF p_lease_rec.attribute4 = pn_lease_utils.g_pn_miss_char
5233 THEN
5234 p_lease_rec.attribute4:= NULL;
5235 END IF;
5236
5237 IF p_lease_rec.attribute5 = pn_lease_utils.g_pn_miss_char
5238 THEN
5239 p_lease_rec.attribute5:= NULL;
5240 END IF;
5241
5242 IF p_lease_rec.attribute6 = pn_lease_utils.g_pn_miss_char
5243 THEN
5244 p_lease_rec.attribute6:= NULL;
5245 END IF;
5246
5247 IF p_lease_rec.attribute7 = pn_lease_utils.g_pn_miss_char
5248 THEN
5249 p_lease_rec.attribute7:= NULL;
5250 END IF;
5251
5252 IF p_lease_rec.attribute8 = pn_lease_utils.g_pn_miss_char
5253 THEN
5254 p_lease_rec.attribute8:= NULL;
5255 END IF;
5256 ----------------------dbms_output.put_line('INIT_LEASE_REC:11');--Rupak
5257 IF p_lease_rec.attribute9 = pn_lease_utils.g_pn_miss_char
5258 THEN
5259 p_lease_rec.attribute9:= NULL;
5260 END IF;
5261
5262 IF p_lease_rec.attribute10 = pn_lease_utils.g_pn_miss_char
5263 THEN
5264 p_lease_rec.attribute10:= NULL;
5265 END IF;
5266
5267 IF p_lease_rec.attribute11 = pn_lease_utils.g_pn_miss_char
5268 THEN
5269 p_lease_rec.attribute11:= NULL;
5270 END IF;
5271
5272 IF p_lease_rec.attribute12 = pn_lease_utils.g_pn_miss_char
5273 THEN
5274 p_lease_rec.attribute12:= NULL;
5275 END IF;
5276 ----------------------dbms_output.put_line('INIT_LEASE_REC:12');--Rupak
5277 IF p_lease_rec.attribute13 = pn_lease_utils.g_pn_miss_char
5278 THEN
5279 p_lease_rec.attribute13:= NULL;
5280 END IF;
5281
5282 IF p_lease_rec.attribute14 = pn_lease_utils.g_pn_miss_char
5283 THEN
5284 p_lease_rec.attribute14:= NULL;
5285 END IF;
5286
5287 IF p_lease_rec.attribute15 = pn_lease_utils.g_pn_miss_char
5288 THEN
5289 p_lease_rec.attribute15:= NULL;
5290 END IF;
5291
5292 IF p_lease_rec.customer_id = pn_lease_utils.g_pn_miss_num
5293 THEN
5294 p_lease_rec.customer_id := NULL;
5295
5296 END IF;
5297
5298 IF p_lease_rec.location_id = pn_lease_utils.g_pn_miss_num
5299 THEN
5300 p_lease_rec.location_id := NULL;
5301 END IF;
5302 ----------------------dbms_output.put_line('INIT_LEASE_REC:13');--Rupak
5303 IF p_lease_rec.grouping_rule_id = pn_lease_utils.g_pn_miss_num
5304 THEN
5305 p_lease_rec.grouping_rule_id:= NULL;
5306 END IF;
5307
5308 IF p_lease_rec.cal_start = pn_lease_utils.g_pn_miss_char
5309 THEN
5310 p_lease_rec.cal_start := NULL;
5311
5312 END IF;
5313 ----------------------dbms_output.put_line('INIT_LEASE_REC:14');--Rupak
5314 IF p_lease_rec.org_id = pn_lease_utils.g_pn_miss_num
5315 THEN
5316 p_lease_rec.org_id:= NULL;
5317 END IF;
5318
5319 EXCEPTION
5320 WHEN OTHERS THEN
5321 ----------------------dbms_output.put_line('IN EXCEPTION:INIT_LEASE_REC PROC'||SQLERRM);
5322 pvt_debug(g_pkg_name||'-Exception:INIT_LEASE_REC'||SQLERRM,3);
5323 x_return_status := fnd_api.g_ret_sts_error;
5324 END INIT_LEASE_REC;
5325
5326 PROCEDURE lease_insert_row (
5327 p_lease_rec IN OUT NOCOPY lease_rec
5328 , p_lease_exp_rev_accounts_rec IN OUT NOCOPY lease_account_rec
5329 , p_lease_accrual_account_rec IN OUT NOCOPY lease_account_rec
5330 , p_lease_liab_rcvl_account_rec IN OUT NOCOPY lease_account_rec
5331 , p_location_exist IN VARCHAR2 := fnd_api.g_false
5332 , p_lease_context IN VARCHAR2
5333 , x_return_status OUT NOCOPY VARCHAR2)
5334 IS
5335 l_rowid VARCHAR2 (18) := NULL;
5336 BEGIN
5337 pvt_debug(g_pkg_name||'-Inside LEASE_INSERT_ROW',3);
5338 INIT_LEASE_REC( p_lease_rec => p_lease_rec
5339 , p_lease_context => p_lease_context
5340 , x_return_status => x_return_status
5341 );
5342 IF p_lease_exp_rev_accounts_rec.account_id = pn_lease_utils.g_pn_miss_num
5343 THEN
5344 p_lease_exp_rev_accounts_rec.account_id := NULL;
5345
5346 END IF;
5347
5348 IF p_lease_accrual_account_rec.account_id = pn_lease_utils.g_pn_miss_num
5349 THEN
5350 p_lease_accrual_account_rec.account_id := NULL;
5351
5352 END IF;
5353
5354 IF p_lease_liab_rcvl_account_rec.account_id = pn_lease_utils.g_pn_miss_num
5355 THEN
5356 p_lease_liab_rcvl_account_rec.account_id := NULL;
5357
5358 END IF;
5359
5360 /*
5361 ----------------------dbms_output.put_line('l_rowid'||l_rowid);
5362 ----------------------dbms_output.put_line('p_lease_rec.lease_id'||p_lease_rec.lease_id);
5363
5364 ----------------------dbms_output.put_line('p_lease_rec.lease_change_id'||p_lease_rec.lease_change_id);
5365 ----------------------dbms_output.put_line('p_lease_rec.lease_detail_id'||p_lease_rec.lease_detail_id);
5366 ----------------------dbms_output.put_line('p_lease_rec.lease_name'||p_lease_rec.lease_name);
5367 ----------------------dbms_output.put_line('p_lease_rec.lease_num'||p_lease_rec.lease_num);
5368 ----------------------dbms_output.put_line('p_lease_rec.parent_lease_id'||p_lease_rec.parent_lease_id);
5369 ----------------------dbms_output.put_line('p_lease_rec.lease_type_code'||p_lease_rec.lease_type_code);
5370 ----------------------dbms_output.put_line('p_lease_rec.lease_class_code'||p_lease_rec.lease_class_code);
5371 ----------------------dbms_output.put_line('p_lease_rec.pymt_term_pro_rule_id'||p_lease_rec.pymt_term_pro_rule_id);
5372
5373 ----------------------dbms_output.put_line('p_lease_rec.abstracted_by_user_id'||p_lease_rec.abstracted_by_user_id);
5374 ----------------------dbms_output.put_line('p_lease_rec.responsible_user_id'||p_lease_rec.responsible_user_id);
5375 ----------------------dbms_output.put_line('p_lease_exp_rev_accounts_rec.account_id'||p_lease_exp_rev_accounts_rec.account_id);
5376 ----------------------dbms_output.put_line('p_lease_accrual_account_rec.account_id'||p_lease_accrual_account_rec.account_id);
5377 ----------------------dbms_output.put_line('p_lease_liab_rcvl_account_rec.account_id'||p_lease_liab_rcvl_account_rec.account_id);
5378 ----------------------dbms_output.put_line('p_lease_rec.term_template_id'||p_lease_rec.term_template_id);
5379 ----------------------dbms_output.put_line('p_lease_rec.lease_commencement_date'||p_lease_rec.lease_commencement_date);
5380 ----------------------dbms_output.put_line('p_lease_rec.lease_termination_date'||p_lease_rec.lease_termination_date);
5381 ----------------------dbms_output.put_line('p_lease_rec.lease_execution_date'||p_lease_rec.lease_execution_date);
5382 ----------------------dbms_output.put_line(' p_lease_rec.attribute_category'|| p_lease_rec.attribute_category);
5383
5384 ----------------------dbms_output.put_line('p_lease_rec.attribute1'||p_lease_rec.attribute1);
5385 ----------------------dbms_output.put_line('p_lease_rec.attribute2'||p_lease_rec.attribute2);
5386 ----------------------dbms_output.put_line('p_lease_rec.attribute3'||p_lease_rec.attribute3);
5387 ----------------------dbms_output.put_line('p_lease_rec.attribute4'||p_lease_rec.attribute4);
5388 ----------------------dbms_output.put_line('p_lease_rec.attribute5'||p_lease_rec.attribute5);
5389 ----------------------dbms_output.put_line('p_lease_rec.attribute6' ||p_lease_rec.attribute6);
5390 ----------------------dbms_output.put_line('p_lease_rec.attribute7'||p_lease_rec.attribute7);
5391 ----------------------dbms_output.put_line('p_lease_rec.attribute8'||p_lease_rec.attribute8);
5392 ----------------------dbms_output.put_line('p_lease_rec.attribute9'||p_lease_rec.attribute9);
5393 ----------------------dbms_output.put_line('p_lease_rec.attribute10'||p_lease_rec.attribute10);
5394
5395 ----------------------dbms_output.put_line('p_lease_rec.attribute11'||p_lease_rec.attribute11);
5396 ----------------------dbms_output.put_line('p_lease_rec.attribute12'||p_lease_rec.attribute12);
5397 ----------------------dbms_output.put_line('p_lease_rec.attribute13'||p_lease_rec.attribute13);
5398 ----------------------dbms_output.put_line('p_lease_rec.attribute14'||p_lease_rec.attribute14);
5399 ----------------------dbms_output.put_line('p_lease_rec.attribute15'||p_lease_rec.attribute15);
5400
5401 ----------------------dbms_output.put_line('p_lease_rec.org_id'||p_lease_rec.org_id);
5402 ----------------------dbms_output.put_line('p_lease_rec.location_id'||p_lease_rec.location_id);
5403 ----------------------dbms_output.put_line('p_lease_rec.customer_id'||p_lease_rec.customer_id);
5404 ----------------------dbms_output.put_line('p_lease_rec.grouping_rule_id'||p_lease_rec.grouping_rule_id);
5405 ----------------------dbms_output.put_line('p_lease_rec.cal_start'||p_lease_rec.cal_start);
5406
5407 */
5408 pvt_debug(g_pkg_name||'-LEASE_INSERT_ROW:Calling Insert Row of the Lease:PN_LEASES_PKG.INSERT_ROW',3);
5409 pn_leases_pkg.insert_row
5410 (x_rowid => l_rowid
5411 , x_lease_id => p_lease_rec.lease_id
5412 , x_lease_change_id => p_lease_rec.lease_change_id
5413 , x_lease_detail_id => p_lease_rec.lease_detail_id
5414 , x_name => p_lease_rec.lease_name
5415 , x_lease_num => p_lease_rec.lease_num
5416 , x_parent_lease_id => p_lease_rec.parent_lease_id
5417 , x_lease_type_code => p_lease_rec.lease_type_code
5418 , x_lease_class_code => p_lease_rec.lease_class_code
5419 , x_payment_term_proration_rule => p_lease_rec.pymt_term_pro_rule_id
5420 , x_abstracted_by_user => p_lease_rec.abstracted_by_user_id
5421 , x_status => p_lease_rec.status_code
5422 , x_lease_status => p_lease_rec.lease_status_code
5423 , x_creation_date => SYSDATE
5424 , x_created_by => fnd_global.user_id
5425 , x_last_update_date => p_lease_rec.last_update_date
5426 , x_last_updated_by => fnd_global.user_id
5427 , x_last_update_login => fnd_global.login_id
5428 , x_responsible_user => p_lease_rec.responsible_user_id
5429 , x_expense_account_id => p_lease_exp_rev_accounts_rec.account_id
5430 , x_accrual_account_id => p_lease_accrual_account_rec.account_id
5431 , x_receivable_account_id => p_lease_liab_rcvl_account_rec.account_id
5432 , x_term_template_id => p_lease_rec.term_template_id
5433 , x_lease_commencement_date => p_lease_rec.lease_commencement_date
5434 , x_lease_termination_date => p_lease_rec.lease_termination_date
5435 , x_lease_execution_date => p_lease_rec.lease_execution_date
5436 , x_attribute_category => p_lease_rec.attribute_category
5437 , x_attribute1 => p_lease_rec.attribute1
5438 , x_attribute2 => p_lease_rec.attribute2
5439 , x_attribute3 => p_lease_rec.attribute3
5440 , x_attribute4 => p_lease_rec.attribute4
5441 , x_attribute5 => p_lease_rec.attribute5
5442 , x_attribute6 => p_lease_rec.attribute6
5443 , x_attribute7 => p_lease_rec.attribute7
5444 , x_attribute8 => p_lease_rec.attribute8
5445 , x_attribute9 => p_lease_rec.attribute9
5446 , x_attribute10 => p_lease_rec.attribute10
5447 , x_attribute11 => p_lease_rec.attribute11
5448 , x_attribute12 => p_lease_rec.attribute12
5449 , x_attribute13 => p_lease_rec.attribute13
5450 , x_attribute14 => p_lease_rec.attribute14
5451 , x_attribute15 => p_lease_rec.attribute15
5452 , x_org_id => g_org_id--p_lease_rec.org_id
5453 , x_location_id => p_lease_rec.location_id
5454 , x_customer_id => p_lease_rec.customer_id
5455 , x_grouping_rule_id => p_lease_rec.grouping_rule_id
5456 , x_calendar_year_start_date => p_lease_rec.cal_start
5457 );
5458 x_return_status := fnd_api.g_ret_sts_success;
5459 ----------------------dbms_output.put_line('p_lease_rec.lease_id'||p_lease_rec.lease_id);--Rupak
5460 pvt_debug(g_pkg_name||'-LEASE_INSERT_ROW:PN_LEASES_PKG.INSERT_ROW Successful',3);
5461 EXCEPTION
5462 WHEN OTHERS
5463 THEN
5464 --NULL;
5465 ----------------------dbms_output.put_line ( 'In LEASE INSERT EXCEPTION: '|| SQLERRM);
5466 x_return_status := fnd_api.g_ret_sts_error;
5467 pvt_debug(g_pkg_name||'-LEASE_INSERT_ROW:Exception'||SQLERRM,3);
5468 END lease_insert_row;
5469
5470 /*-----------------------------------------SUNITHA Begins----------------------------*/
5471
5472
5473 PROCEDURE VALIDATE_NOTE_FOR_CREATE ( p_note_tbl IN OUT NOCOPY lease_note_tbl_type
5474 ,x_tbl OUT NOCOPY temp_tbl_type
5475 ,x_return_status IN OUT NOCOPY VARCHAR2
5476
5477 )
5478 IS
5479 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
5480 l_index BINARY_INTEGER;
5481 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
5482 l_lookup_code PN_NOTE_HEADERS.NOTE_TYPE_LOOKUP_CODE%TYPE := pn_lease_utils.g_pn_miss_char;
5483 l_cur_id NUMBER;
5484 l_tbl_index BINARY_INTEGER;
5485 l_tbl_flag NUMBER := 1;
5486 l_tbl temp_tbl_type;
5487 l_api_name VARCHAR2(30) := 'CREATE_NOTES';
5488 l_err_note_count NUMBER:=0;
5489 BEGIN
5490 ----------------------dbms_output.put_line('VALIDATION FOR NOTES CREATION STARTED');
5491 x_return_status := fnd_api.g_ret_sts_success;
5492 pvt_debug(g_pkg_name||'-Inside VALIDATE_NOTE_FOR_CREATE',3);
5493 for l_index in p_note_tbl.FIRST.. p_note_tbl.LAST LOOP
5494 BEGIN
5495 l_tbl_flag := 1;
5496 ----------------------dbms_output.put_line('VALIDATION FOR : '||l_index ||' RECORD');
5497 l_tbl_index := l_index;
5498 INITIALIZE_NOTES_REC(p_note_tbl(l_index),'CREATE_NOTES',x_return_status);
5499 IF (p_note_tbl(l_index).note_date IS NULL OR p_note_tbl(l_index).note_date = pn_lease_utils.g_pn_miss_date)THEN
5500 l_tbl_flag := 0;
5501 /* PN_LEASE_UTILS.ADD_NULL_PARAMETER_MSG (
5502 p_token_apiname => l_api_name
5503 , p_token_nullparam => 'NOTE DATE'
5504 );*/
5505 pvt_debug(g_pkg_name||'-VALIDATE_NOTE_FOR_CREATE:NOTE DATE IS NULL',3);
5506 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
5507 fnd_message.set_token ('API_NAME', l_api_name);
5508 fnd_message.set_token ('NULL_PARAM', 'NOTE DATE');
5509 fnd_msg_pub.ADD;
5510 RAISE fnd_api.g_exc_error;
5511 END IF;
5512
5513
5514 -------------------------------------------------------------------------------------------------
5515 IF ( (p_note_tbl(l_index).note_type IS NOT NULL AND p_note_tbl(l_index).note_type <> pn_lease_utils.g_pn_miss_char)
5516 OR(p_note_tbl(l_index).note_type_lookup_code IS NOT NULL AND p_note_tbl(l_index).note_type_lookup_code <> pn_lease_utils.g_pn_miss_char)
5517 ) THEN
5518 pn_lease_utils.get_lookup_code(p_parameter_name => l_param_note_type--'NOTE TYPE'
5519 , p_lookup_meaning => p_note_tbl(l_index).note_type
5520 , p_operation => 'CREATE_NOTE'
5521 , p_lookup_type => l_pn_note_type--'PN_NOTE_TYPE'
5522 , x_return_status => x_return_status
5523 , x_lookup_type_code => p_note_tbl(l_index).note_type_lookup_code
5524 );
5525 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
5526 --p_lease_contacts_tbl (i).error_flag := 'Y';
5527 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
5528 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_pn_note_type));
5529 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_note_tbl(l_index).note_type));
5530 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_note_tbl(l_index).note_type_lookup_code));
5531 fnd_msg_pub.ADD;
5532 RAISE fnd_api.g_exc_error;
5533 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
5534 --p_lease_contacts_tbl (i).error_flag := 'Y';
5535 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
5536 fnd_message.set_token ('COLUMN', SUBSTR(l_param_note_type,3));
5537 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
5538 fnd_msg_pub.ADD;
5539 RAISE fnd_api.g_exc_unexpected_error;
5540 END IF;
5541 ELSE
5542 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
5543 fnd_message.set_token ('API_NAME', l_api_name);
5544 fnd_message.set_token ('NULL_PARAM', l_pn_note_type);
5545 fnd_msg_pub.ADD;
5546 RAISE fnd_api.g_exc_error;
5547 END IF;
5548
5549
5550 -- dff validations
5551
5552
5553 IF (get_attribute_status('PN_NOTE_HEADERS') > 0) THEN
5554 ----------dbms_output.put_line('NOTE HEADER:1');
5555 /*get_attribute_mandatory_status('PN_NOTE_HEADERS'
5556 ,p_note_tbl(l_index).attribute1
5557 ,p_note_tbl(l_index).attribute2
5558 ,p_note_tbl(l_index).attribute3
5559 ,p_note_tbl(l_index).attribute4
5560 ,p_note_tbl(l_index).attribute5
5561 ,p_note_tbl(l_index).attribute6
5562 ,p_note_tbl(l_index).attribute7
5563 ,p_note_tbl(l_index).attribute8
5564 ,p_note_tbl(l_index).attribute9
5565 ,p_note_tbl(l_index).attribute10
5566 ,p_note_tbl(l_index).attribute11
5567 ,p_note_tbl(l_index).attribute12
5568 ,p_note_tbl(l_index).attribute13
5569 ,p_note_tbl(l_index).attribute14
5570 ,p_note_tbl(l_index).attribute15
5571 ,x_return_status
5572 );
5573 ----------dbms_output.put_line('NOTE HEADER:2'||x_return_status);
5574 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
5575 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
5576 fnd_message.set_token ('API_NAME', l_api_name);
5577 fnd_message.set_token ('NULL_PARAM','Required attribute in Notes is NULL');
5578 fnd_msg_pub.ADD;
5579 RAISE fnd_api.g_exc_error;
5580 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
5581 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
5582 fnd_message.set_token ('API_NAME', l_api_name);
5583 fnd_message.set_token ('NULL_PARAM', 'Required attribute in Notes is NULL');
5584 fnd_msg_pub.ADD;
5585 RAISE fnd_api.g_exc_unexpected_error;
5586 ELSE*/
5587 IF NOT ((p_note_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute_category IS NULL)
5588 AND (p_note_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute1 IS NULL)
5589 AND (p_note_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute2 IS NULL)
5590 AND (p_note_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute3 IS NULL)
5591 AND (p_note_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute4 IS NULL)
5592 AND (p_note_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute5 IS NULL)
5593 AND (p_note_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute6 IS NULL)
5594 AND (p_note_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute7 IS NULL)
5595 AND (p_note_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute8 IS NULL)
5596 AND (p_note_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute9 IS NULL)
5597 AND (p_note_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute10 IS NULL)
5598 AND (p_note_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute11 IS NULL)
5599 AND (p_note_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute12 IS NULL)
5600 AND (p_note_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute13 IS NULL)
5601 AND (p_note_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute14 IS NULL)
5602 AND (p_note_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char OR p_note_tbl(l_index).attribute15 IS NULL)
5603 ) THEN
5604 PN_LEASE_UTILS.validate_desc_flex (
5605 p_api_name => 'PN_NOTE_HEADERS'--l_api_name_full
5606 , p_application_short_name => 'PN'
5607 , p_desc_flex_name => 'PN_NOTE_HEADERS'
5608 , p_desc_segment1 => p_note_tbl(l_index).attribute1
5609 , p_desc_segment2 => p_note_tbl(l_index).attribute2
5610 , p_desc_segment3 => p_note_tbl(l_index).attribute3
5611 , p_desc_segment4 => p_note_tbl(l_index).attribute4
5612 , p_desc_segment5 => p_note_tbl(l_index).attribute5
5613 , p_desc_segment6 => p_note_tbl(l_index).attribute6
5614 , p_desc_segment7 => p_note_tbl(l_index).attribute7
5615 , p_desc_segment8 => p_note_tbl(l_index).attribute8
5616 , p_desc_segment9 => p_note_tbl(l_index).attribute9
5617 , p_desc_segment10 =>p_note_tbl(l_index).attribute10
5618 , p_desc_segment11 =>p_note_tbl(l_index).attribute11
5619 , p_desc_segment12 =>p_note_tbl(l_index).attribute12
5620 , p_desc_segment13 =>p_note_tbl(l_index).attribute13
5621 , p_desc_segment14 =>p_note_tbl(l_index).attribute14
5622 , p_desc_segment15 =>p_note_tbl(l_index).attribute15
5623 , p_desc_context => p_note_tbl(l_index).attribute_category
5624 , p_resp_appl_id => fnd_global.resp_appl_id
5625 , p_resp_id => fnd_global.resp_id
5626 , p_return_status=> x_return_status
5627 );
5628 ----------dbms_output.put_line('NOTE HDR:x_return_status'||x_return_status);
5629 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
5630 ----------dbms_output.put_line('NOTES:1'||x_return_status);
5631 l_tbl_flag := 0;
5632 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
5633 fnd_message.set_token ('COLUMN', 'PN_NOTE_HEADERS_DESC_FIELDS');
5634 fnd_message.set_token ('P_TEXT', 'PN_NOTE_HEADERS'|| '-'|| SQLERRM);
5635 fnd_msg_pub.ADD;
5636 RAISE fnd_api.g_exc_error;
5637 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
5638 ----------dbms_output.put_line('NOTES:2'||x_return_status);
5639 l_tbl_flag := 0;
5640 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
5641 fnd_message.set_token ('COLUMN', 'PN_NOTE_HEADERS_DESC_FIELDS');
5642 fnd_message.set_token ('P_TEXT', 'PN_NOTE_HEADERS'|| '-'|| SQLERRM);
5643 fnd_msg_pub.ADD;
5644 RAISE fnd_api.g_exc_unexpected_error;
5645 END IF;
5646 END IF;
5647 END IF;
5648 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
5649 EXCEPTION
5650 WHEN fnd_api.g_exc_error THEN
5651 l_err_note_count := l_err_note_count+1;
5652 --pvt_debug(g_pkg_name||'-VALIDATE_NOTE_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
5653 WHEN fnd_api.g_exc_unexpected_error THEN
5654 l_err_note_count := l_err_note_count+1;
5655 WHEN OTHERS THEN
5656 l_err_note_count := l_err_note_count+1;
5657 END;
5658 END LOOP;
5659 IF (l_err_note_count = 0 ) THEN
5660 x_return_status := fnd_api.g_ret_sts_success;
5661 ELSE
5662 x_return_status := fnd_api.g_ret_sts_error;
5663 END IF;
5664
5665 x_tbl := l_tbl;
5666
5667 ----------------------dbms_output.put_line('VALIDATION FOR NOTE CREATION COMPLETED');
5668 EXCEPTION
5669 WHEN fnd_api.g_exc_error THEN
5670 x_return_status := fnd_api.g_ret_sts_error;
5671 WHEN fnd_api.g_exc_unexpected_error THEN
5672 x_return_status := fnd_api.g_ret_sts_unexp_error;
5673 ----------------------dbms_output.put_line('NOTE VALIDATION FAILED');
5674 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
5675 pvt_debug(g_pkg_name||'-Unexpected:Exception:VALIDATE_NOTE_FOR_CREATE'||SQLERRM,3);
5676 WHEN OTHERS THEN
5677 x_return_status := fnd_api.g_ret_sts_unexp_error;
5678 ----------------------dbms_output.put_line('NOTE VALIDATION FAILED');
5679 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
5680 pvt_debug(g_pkg_name||'-OTHERS:Exception:VALIDATE_NOTE_FOR_CREATE'||SQLERRM,3);
5681 END VALIDATE_NOTE_FOR_CREATE;
5682
5683
5684
5685 PROCEDURE NOTE_INSERT_ROW(p_note_tbl IN OUT NOCOPY lease_note_tbl_type
5686 , p_lease_id IN PN_LEASES_ALL.lease_id%type
5687 , x_return_status OUT NOCOPY VARCHAR2
5688 , p_tbl IN temp_tbl_type
5689 , p_commit IN VARCHAR2
5690 )
5691 IS
5692 l_index BINARY_INTEGER;
5693 l_hdr_row_id VARCHAR2(100) ;
5694 l_dt_row_id VARCHAR2(100) ;
5695 l_note_header_tbl lease_note_tbl_type := p_note_tbl;
5696 l_note_header_id PN_NOTE_HEADERS.NOTE_HEADER_ID%TYPE;
5697 l_note_detail_id PN_NOTE_DETAILS.NOTE_DETAIL_ID%TYPE;
5698 BEGIN
5699 ----------------------dbms_output.put_line('PVT INSERT PROCEDURE FOR NOTE HEADER:STARTING'||p_note_tbl(1).note_date);--Rupak
5700 pvt_debug(g_pkg_name||'-Inside NOTE_INSERT_ROW',3);
5701 for l_index in p_note_tbl.FIRST..p_note_tbl.LAST LOOP
5702 ----------------------dbms_output.put_line('PVT INSERT PROCEDURE FOR NOTE HEADER:IN FOR LOOP OUTSIDE IF'||p_note_tbl(1).note_date);--Rupak
5703 -- IF p_tbl(l_index).temp_flag = 1 THEN --Commented Rupak
5704 l_hdr_row_id := NULL;
5705 l_note_header_id := NULL;
5706 -- --------------------dbms_output.put_line('PVT INSERT PROCEDURE FOR NOTE HEADER: '||l_index||' RECORD');--Rupak
5707 pvt_debug(g_pkg_name||'-NOTE_INSERT_ROW:Calling PN_NOTE_HEADERS_PKG.INSERT_ROW',3);
5708 pn_note_headers_pkg.insert_row (
5709 x_rowid => l_hdr_row_id
5710 , x_note_header_id => l_note_header_id
5711 , x_lease_id => p_lease_id
5712 , x_note_type_lookup_code => l_note_header_tbl(l_index).note_type_lookup_code
5713 , x_note_date => trunc(l_note_header_tbl(l_index).note_date)
5714 , x_creation_date => sysdate
5715 , x_created_by => fnd_global.user_id
5716 , x_last_update_date => sysdate
5717 , x_last_updated_by => fnd_global.user_id
5718 , x_last_update_login => fnd_global.user_id
5719 , x_attribute_category => l_note_header_tbl(l_index).attribute_category
5720 , x_attribute1 => l_note_header_tbl(l_index).attribute1
5721 , x_attribute2 => l_note_header_tbl(l_index).attribute2
5722 , x_attribute3 => l_note_header_tbl(l_index).attribute3
5723 , x_attribute4 => l_note_header_tbl(l_index).attribute4
5724 , x_attribute5 => l_note_header_tbl(l_index).attribute5
5725 , x_attribute6 => l_note_header_tbl(l_index).attribute6
5726 , x_attribute7 => l_note_header_tbl(l_index).attribute7
5727 , x_attribute8 => l_note_header_tbl(l_index).attribute8
5728 , x_attribute9 => l_note_header_tbl(l_index).attribute9
5729 , x_attribute10 => l_note_header_tbl(l_index).attribute10
5730 , x_attribute11 => l_note_header_tbl(l_index).attribute11
5731 , x_attribute12 => l_note_header_tbl(l_index).attribute12
5732 , x_attribute13 => l_note_header_tbl(l_index).attribute13
5733 , x_attribute14 => l_note_header_tbl(l_index).attribute14
5734 , x_attribute15 => l_note_header_tbl(l_index).attribute15
5735 );
5736
5737 pvt_debug(g_pkg_name||'-NOTE_INSERT_ROW:PN_NOTE_HEADERS_PKG.INSERT_ROW Successful',3);
5738 IF l_note_header_id is NOT NULL THEN
5739 ----------------------dbms_output.put_line('NOTE HEADER CREATED WITH NOTE HEADER ID: '||l_note_header_id);--Rupak
5740 l_note_header_tbl(l_index).note_header_id := l_note_header_id;
5741 l_note_detail_id := NULL;
5742 IF l_note_header_tbl(l_index).text IS NOT NULL OR l_note_header_tbl(l_index).text <> pn_lease_utils.g_pn_miss_char THEN
5743 pvt_debug(g_pkg_name||'-NOTE_INSERT_ROW:Calling PN_NOTE_DETAILS_PKG.INSERT_ROW',3);
5744 ------------------dbms_output.put_line('Inside Details'||l_note_header_tbl(l_index).note_header_id);--OOPS
5745
5746 pn_note_details_pkg.insert_row (
5747 x_rowid => l_dt_row_id
5748 , x_note_detail_id => l_note_detail_id
5749 , x_note_header_id => l_note_header_tbl(l_index).note_header_id
5750 , x_text => l_note_header_tbl(l_index).text
5751 , x_creation_date => sysdate
5752 , x_created_by => fnd_global.user_id
5753 , x_last_update_date => sysdate
5754 , x_last_updated_by => fnd_global.user_id
5755 , x_last_update_login => fnd_global.user_id
5756 );
5757
5758 pvt_debug(g_pkg_name||'-NOTE_INSERT_ROW:PN_NOTE_DETAILS_PKG.INSERT_ROW Succesful',3);
5759 ------------------dbms_output.put_line('After calling note details'||l_note_detail_id);
5760 IF l_note_detail_id IS NOT NULL THEN
5761 l_note_header_tbl(l_index).note_detail_id := l_note_detail_id;
5762 ------------------dbms_output.put_line('NOTE DETAIL CREATED');
5763 END IF;
5764
5765 END IF;
5766 END IF;
5767 -- END IF; --Commented Rupak
5768 END loop;
5769 x_return_status := fnd_api.g_ret_sts_success;
5770 EXCEPTION
5771 WHEN OTHERS THEN
5772 ROLLBACK;
5773 x_return_status := fnd_api.g_ret_sts_unexp_error;
5774 ----------------------dbms_output.put_line('INSERT FOR NOTE CREATION FAILED') ;
5775 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
5776 END NOTE_INSERT_ROW;
5777
5778
5779 PROCEDURE CREATE_NOTE (
5780 p_lease_id IN NUMBER
5781 , p_commit IN VARCHAR2
5782 , p_validate IN VARCHAR2
5783 , p_note_tbl IN OUT NOCOPY lease_note_tbl_type
5784 , x_return_status OUT NOCOPY VARCHAR2
5785 -- , x_msg_count OUT NUMBER
5786 -- , x_msg_data OUT VARCHAR2
5787 )
5788 IS
5789 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
5790
5791 x_out_tbl temp_tbl_type;
5792 l_api_name VARCHAR2(100):='NOTES CREATION';
5793 BEGIN
5794 ----------------------dbms_output.put_line('CREATE NOTE PROCESS STARTED');--Rupak
5795 pvt_debug(g_pkg_name||'-Inside CREATE_NOTE',3);
5796 VALIDATE_NOTE_FOR_CREATE(p_note_tbl => p_note_tbl
5797 ,x_tbl => x_out_tbl
5798 ,x_return_status => x_return_status
5799 );
5800 pvt_debug(g_pkg_name||'-CREATE_NOTE:Cal to VALIDATE_NOTE_FOR_CREATE Status:'||x_return_status,3);
5801 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
5802 ----------------------dbms_output.put_line('In Create_Note:3');--Rupak
5803 pvt_debug(g_pkg_name||'-CREATE_NOTE:Calling NOTE_INSERT_ROW',3);
5804 NOTE_INSERT_ROW( p_note_tbl => p_note_tbl
5805 ,p_lease_id => p_lease_id
5806 ,x_return_status => x_return_status
5807 ,p_tbl => x_out_tbl
5808 ,p_commit => p_commit
5809 );
5810 pvt_debug(g_pkg_name||'-CREATE_NOTE:Call to NOTE_INSERT_ROW Succesful',3);
5811 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
5812 RAISE fnd_api.g_exc_error;
5813 ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
5814 RAISE fnd_api.g_exc_unexpected_error;
5815 END IF;
5816
5817 ELSE
5818 ----------------------dbms_output.put_line('In Create_Note:5');--Rupak
5819 RAISE fnd_api.g_exc_error;
5820 END IF;
5821
5822 --x_return_status := l_return_status;
5823 EXCEPTION
5824 WHEN fnd_api.g_exc_error THEN
5825 x_return_status := fnd_api.g_ret_sts_error;
5826 --------------------dbms_output.put_line('NOTES CREATION FAILED'||SQLERRM); --Rupak
5827 WHEN OTHERS THEN
5828 x_return_status := fnd_api.g_ret_sts_unexp_error;
5829 pvt_debug(g_pkg_name||'-CREATE_NOTE:Exception:NOTE_INSERT_ROW',3);
5830 END CREATE_NOTE;
5831
5832 PROCEDURE VALIDATE_NOTE_FOR_UPDATE(
5833 p_note_tbl IN OUT NOCOPY lease_note_tbl_type
5834 ,p_lease_id PN_LEASES_ALL.LEASE_ID%TYPE
5835 ,x_tbl OUT NOCOPY temp_tbl_type
5836 ,x_return_status IN OUT NOCOPY VARCHAR2
5837
5838 )
5839 IS
5840 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
5841 l_index BINARY_INTEGER;
5842 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
5843 l_lookup_code PN_NOTE_HEADERS.NOTE_TYPE_LOOKUP_CODE%TYPE := pn_lease_utils.g_pn_miss_char;
5844 l_cur_id NUMBER;
5845 l_tbl_index BINARY_INTEGER;
5846 l_tbl_flag NUMBER ;
5847 l_tbl temp_tbl_type;
5848 l_api_name VARCHAR2(30) := 'UPDATE_NOTES';
5849 CURSOR c_note (
5850 l_cur_id NUMBER
5851 )
5852 IS
5853 SELECT note_header_id
5854 , note_date
5855 , last_updated_by
5856 , last_update_date
5857 , last_update_login
5858 , created_by
5859 , creation_date
5860 , note_type_lookup_code
5861 , lease_id
5862 , attribute_category
5863 , attribute1
5864 , attribute2
5865 , attribute3
5866 , attribute4
5867 , attribute5
5868 , attribute6
5869 , attribute7
5870 , attribute8
5871 , attribute9
5872 , attribute10
5873 , attribute11
5874 , attribute12
5875 , attribute13
5876 , attribute14
5877 , attribute15
5878 FROM pn_note_headers
5879 WHERE note_header_id = l_cur_id;
5880 lcu_note_hdr_rec c_note%ROWTYPE;
5881 BEGIN
5882 l_return_status := fnd_api.g_ret_sts_success ;
5883 -- --------------------dbms_output.put_line('In Note Validate PROC'||p_note_tbl(1).note_header_id);--Rupak
5884 pvt_debug(g_pkg_name||'-Inside VALIDATE_NOTE_FOR_UPDATE',3);
5885 for l_index IN 1..p_note_tbl.COUNT --in p_note_tbl.FIRST..p_note_tbl.LAST loop
5886 LOOP
5887 BEGIN
5888 l_tbl_index := l_index;
5889
5890 ----------------------dbms_output.put_line('In For loop');--Rupak
5891
5892 IF ( p_note_tbl(l_index).note_header_id IS NULL OR p_note_tbl(l_index).note_header_id = pn_lease_utils.g_pn_miss_num)THEN
5893 l_tbl_flag := 0;
5894 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
5895 fnd_message.set_token ('API_NAME', l_api_name);
5896 fnd_message.set_token ('NULL_PARAM', 'NOTE ID');
5897 fnd_msg_pub.ADD;
5898 RAISE fnd_api.g_exc_error;
5899 ELSE
5900 l_tbl_flag := 2;
5901 pvt_debug(g_pkg_name||'-Validation:VALIDATE_NOTE_FOR_UPDATE',3);
5902 l_cur_id := p_note_tbl(l_index).note_header_id;
5903 OPEN c_note(l_cur_id);
5904 FETCH c_note INTO lcu_note_hdr_rec;
5905
5906 IF lcu_note_hdr_rec.lease_id <> p_lease_id THEN
5907 l_tbl_flag := 0;
5908 ----------------------dbms_output.put_line('LEASE ID INVALID');--Rupak
5909 pvt_debug(g_pkg_name||'-VALIDATE_NOTE_FOR_UPDATE:Lease ID Invalid',3);
5910 END IF;
5911 IF (p_note_tbl(l_index).note_date = pn_lease_utils.g_pn_miss_date) THEN
5912 p_note_tbl(l_index).note_date := lcu_note_hdr_rec.note_date;
5913 ELSIF(p_note_tbl(l_index).note_date IS NULL) THEN
5914 l_tbl_flag := 0;
5915 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
5916 fnd_message.set_token ('API_NAME', l_api_name);
5917 fnd_message.set_token ('NULL_PARAM', 'NOTE DATE : NULL');
5918 fnd_msg_pub.ADD;
5919 RAISE fnd_api.g_exc_error;
5920 END IF;
5921
5922 IF ( (p_note_tbl(l_index).note_type IS NOT NULL AND p_note_tbl(l_index).note_type <> pn_lease_utils.g_pn_miss_char)
5923 OR(p_note_tbl(l_index).note_type_lookup_code IS NOT NULL AND p_note_tbl(l_index).note_type_lookup_code <> pn_lease_utils.g_pn_miss_char)
5924 ) THEN
5925 pn_lease_utils.get_lookup_code(p_parameter_name => l_param_note_type--'NOTE TYPE'
5926 , p_lookup_meaning => p_note_tbl(l_index).note_type
5927 , p_operation => 'UPDATE_NOTE'
5928 , p_lookup_type => l_pn_note_type--'PN_NOTE_TYPE'
5929 , x_return_status => x_return_status
5930 , x_lookup_type_code => p_note_tbl(l_index).note_type_lookup_code
5931 );
5932 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
5933 --p_lease_contacts_tbl (i).error_flag := 'Y';
5934 l_tbl_flag := 0;
5935 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
5936 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_pn_note_type));
5937 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_note_tbl(l_index).note_type));
5938 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_note_tbl(l_index).note_type_lookup_code));
5939 fnd_msg_pub.ADD;
5940 RAISE fnd_api.g_exc_error;
5941 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
5942 --p_lease_contacts_tbl (i).error_flag := 'Y';
5943 l_tbl_flag := 0;
5944 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
5945 fnd_message.set_token ('COLUMN', SUBSTR(l_param_note_type,3));
5946 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
5947 fnd_msg_pub.ADD;
5948 RAISE fnd_api.g_exc_unexpected_error;
5949 END IF;
5950 ELSIF(p_note_tbl(l_index).note_type IS NULL OR p_note_tbl(l_index).note_type_lookup_code IS NULL) THEN
5951 p_note_tbl(l_index).note_type_lookup_code := NULL;
5952 ELSE
5953 p_note_tbl(l_index).note_type_lookup_code := lcu_note_hdr_rec.note_type_lookup_code;
5954 END IF;
5955
5956
5957 --------------------------------------------------------------------------------------------------------------------------------
5958 /*IF NOT ( (p_note_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char)
5959 AND (p_note_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char)
5960 AND (p_note_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char)
5961 AND (p_note_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char)
5962 AND (p_note_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char)
5963 AND (p_note_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char)
5964 AND (p_note_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char)
5965 AND (p_note_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char)
5966 AND (p_note_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char)
5967 AND (p_note_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char)
5968 AND (p_note_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char)
5969 AND (p_note_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char)
5970 AND (p_note_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char)
5971 AND (p_note_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char)
5972 AND (p_note_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char)
5973 AND (p_note_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char)
5974 ) THEN*/
5975 IF (p_note_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char) THEN
5976 p_note_tbl(l_index).attribute_category := lcu_note_hdr_rec.attribute_category;
5977 END IF;
5978 IF (p_note_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char) THEN
5979 p_note_tbl(l_index).attribute1 := lcu_note_hdr_rec.attribute1;
5980 END IF;
5981 IF (p_note_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char) THEN
5982 p_note_tbl(l_index).attribute2 := lcu_note_hdr_rec.attribute2;
5983 END IF;
5984 IF (p_note_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char) THEN
5985 p_note_tbl(l_index).attribute3 := lcu_note_hdr_rec.attribute3;
5986 END IF;
5987 IF (p_note_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char) THEN
5988 p_note_tbl(l_index).attribute4 := lcu_note_hdr_rec.attribute4;
5989 END IF;
5990 IF (p_note_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char) THEN
5991 p_note_tbl(l_index).attribute5 := lcu_note_hdr_rec.attribute5;
5992 END IF;
5993 IF (p_note_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char) THEN
5994 p_note_tbl(l_index).attribute6 := lcu_note_hdr_rec.attribute6;
5995 END IF;
5996 IF (p_note_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char) THEN
5997 p_note_tbl(l_index).attribute7 := lcu_note_hdr_rec.attribute7;
5998 END IF;
5999 IF (p_note_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char) THEN
6000 p_note_tbl(l_index).attribute8 := lcu_note_hdr_rec.attribute8;
6001 END IF;
6002 IF (p_note_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char) THEN
6003 p_note_tbl(l_index).attribute9 := lcu_note_hdr_rec.attribute9;
6004 END IF;
6005 IF (p_note_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char) THEN
6006 p_note_tbl(l_index).attribute10 := lcu_note_hdr_rec.attribute10;
6007 END IF;
6008 IF (p_note_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char) THEN
6009 p_note_tbl(l_index).attribute11 := lcu_note_hdr_rec.attribute11;
6010 END IF;
6011 IF (p_note_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char) THEN
6012 p_note_tbl(l_index).attribute12 := lcu_note_hdr_rec.attribute12;
6013 END IF;
6014 IF (p_note_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char) THEN
6015 p_note_tbl(l_index).attribute13 := lcu_note_hdr_rec.attribute13;
6016 END IF;
6017 IF (p_note_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char) THEN
6018 p_note_tbl(l_index).attribute14 := lcu_note_hdr_rec.attribute14;
6019 END IF;
6020 IF (p_note_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char) THEN
6021 p_note_tbl(l_index).attribute15 := lcu_note_hdr_rec.attribute15;
6022 END IF;
6023 PN_LEASE_UTILS.validate_desc_flex (
6024 p_api_name => 'PN_API'--l_api_name_full
6025 , p_application_short_name => 'PN'
6026 , p_desc_flex_name => 'PN_NOTE_HEADERS'
6027 , p_desc_segment1 => p_note_tbl(l_index).attribute1
6028 , p_desc_segment2 => p_note_tbl(l_index).attribute2
6029 , p_desc_segment3 => p_note_tbl(l_index).attribute3
6030 , p_desc_segment4 => p_note_tbl(l_index).attribute4
6031 , p_desc_segment5 => p_note_tbl(l_index).attribute5
6032 , p_desc_segment6 => p_note_tbl(l_index).attribute6
6033 , p_desc_segment7 => p_note_tbl(l_index).attribute7
6034 , p_desc_segment8 => p_note_tbl(l_index).attribute8
6035 , p_desc_segment9 => p_note_tbl(l_index).attribute9
6036 , p_desc_segment10 =>p_note_tbl(l_index).attribute10
6037 , p_desc_segment11 =>p_note_tbl(l_index).attribute11
6038 , p_desc_segment12 =>p_note_tbl(l_index).attribute12
6039 , p_desc_segment13 =>p_note_tbl(l_index).attribute13
6040 , p_desc_segment14 =>p_note_tbl(l_index).attribute14
6041 , p_desc_segment15 =>p_note_tbl(l_index).attribute15
6042 , p_desc_context => p_note_tbl(l_index).attribute_category
6043 , p_resp_appl_id => fnd_global.RESP_APPL_ID
6044 , p_resp_id => fnd_global.RESP_ID
6045 , p_return_status => l_return_status
6046 );
6047 ----------------------dbms_output.put_line('dff validated');
6048 IF (l_return_status = fnd_api.g_ret_sts_error)
6049 THEN
6050 l_tbl_flag := 0;
6051 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
6052 THEN
6053 l_tbl_flag := 0;
6054 RAISE fnd_api.g_exc_unexpected_error;
6055 END IF;
6056 -- END IF;
6057 CLOSE c_note;
6058
6059 END IF;
6060 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
6061 EXCEPTION
6062 WHEN fnd_api.g_exc_error THEN
6063 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);
6064 pvt_debug(g_pkg_name||'-VALIDATE_NOTE_FOR_UPDATE:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
6065 WHEN OTHERS THEN
6066 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM);
6067 pvt_debug(g_pkg_name||'-VALIDATE_NOTE_FOR_UPDATE:LOOOPING:EXCEPTION:'||SQLERRM,3);
6068 END;
6069 ----------------------dbms_output.put_line('Private Contacts:13');--Rupak
6070 END LOOP;
6071
6072 --------------------dbms_output.put_line('Outside For Loop');
6073 x_tbl := l_tbl;
6074 x_return_status := fnd_api.g_ret_sts_success;
6075 EXCEPTION
6076 WHEN OTHERS THEN
6077 x_return_status := fnd_api.g_ret_sts_unexp_error;
6078 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
6079 pvt_debug(g_pkg_name||'-Exception:VALIDATE_NOTE_FOR_UPDATE'||SQLERRM,3);
6080 END VALIDATE_NOTE_FOR_UPDATE;
6081
6082
6083 PROCEDURE NOTE_UPDATE_ROW ( p_note_tbl IN OUT NOCOPY lease_note_tbl_type
6084 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
6085 ,x_return_status OUT NOCOPY VARCHAR2
6086 ,p_tbl IN temp_tbl_type
6087 ,p_commit IN VARCHAR2
6088 )
6089 IS
6090 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
6091 l_index BINARY_INTEGER;
6092 l_dt_row_id VARCHAR2(100);
6093 l_note_detail_id PN_NOTE_DETAILS.NOTE_DETAIL_ID%TYPE;
6094 l_err_note_count NUMBER:=0;
6095 l_flag VARCHAR(1) := 'N';
6096 BEGIN
6097 ----------------dbms_output.put_line('IN UPDATE NOTE:0');
6098 pvt_debug(g_pkg_name||'-Inside NOTE_UPDATE_ROW',3);
6099 for l_index in p_note_tbl.FIRST..p_note_tbl.LAST LOOP
6100 BEGIN
6101 ----------------dbms_output.put_line('IN UPDATE NOTE:1'||p_tbl(l_index).temp_flag);
6102 l_flag := 'N';
6103 IF p_tbl(l_index).temp_flag = 2 THEN
6104 pvt_debug(g_pkg_name||'-NOTE_UPDATE_ROW:Calling PN_NOTE_HEADERS_PKG.UPDATE_ROW',3);
6105 pn_note_headers_pkg.update_row (
6106 x_note_header_id => p_note_tbl(l_index).note_header_id
6107 , x_lease_id => p_lease_id
6108 , x_note_type_lookup_code => p_note_tbl(l_index).note_type_lookup_code
6109 , x_note_date => trunc(p_note_tbl(l_index).note_date)
6110 , x_last_update_date => sysdate
6111 , x_last_updated_by => fnd_global.user_id
6112 , x_last_update_login => fnd_global.user_id
6113 , x_attribute_category => p_note_tbl(l_index).attribute_category
6114 , x_attribute1 => p_note_tbl(l_index).attribute1
6115 , x_attribute2 => p_note_tbl(l_index).attribute2
6116 , x_attribute3 => p_note_tbl(l_index).attribute3
6117 , x_attribute4 => p_note_tbl(l_index).attribute4
6118 , x_attribute5 => p_note_tbl(l_index).attribute5
6119 , x_attribute6 => p_note_tbl(l_index).attribute6
6120 , x_attribute7 => p_note_tbl(l_index).attribute7
6121 , x_attribute8 => p_note_tbl(l_index).attribute8
6122 , x_attribute9 => p_note_tbl(l_index).attribute9
6123 , x_attribute10 => p_note_tbl(l_index).attribute10
6124 , x_attribute11 => p_note_tbl(l_index).attribute11
6125 , x_attribute12 => p_note_tbl(l_index).attribute12
6126 , x_attribute13 => p_note_tbl(l_index).attribute13
6127 , x_attribute14 => p_note_tbl(l_index).attribute14
6128 , x_attribute15 => p_note_tbl(l_index).attribute15
6129 );
6130 --x_return_status:=fnd_api.g_ret_sts_success;
6131
6132 l_flag := 'Y';
6133 ----------------------dbms_output.put_line('NOTE HEADER UPDATED WITH NOTE HEADER ID : '||p_note_tbl(l_index).note_header_id );--Rupak
6134 pvt_debug(g_pkg_name||'-NOTE_UPDATE_ROW:Calling PN_NOTE_HEADERS_PKG.UPDATE_ROW Succesful',3);
6135 ----------------dbms_output.put_line('Note Details:123'||p_note_tbl(l_index).note_detail_id);
6136 IF (p_note_tbl(l_index).note_detail_id IS NULL OR p_note_tbl(l_index).note_detail_id = pn_lease_utils.g_pn_miss_num) THEN
6137 BEGIN
6138 SELECT note_detail_id
6139 INTO p_note_tbl(l_index).note_detail_id
6140 FROM pn_note_details
6141 WHERE note_header_id = p_note_tbl(l_index).note_header_id
6142 AND LANGUAGE = 'US';--userenv('lang');
6143 ----------------dbms_output.put_line('Note Details:'||p_note_tbl(l_index).note_detail_id);
6144 EXCEPTION
6145 WHEN NO_DATA_FOUND THEN
6146 p_note_tbl(l_index).note_detail_id:= NULL;
6147 WHEN OTHERS THEN
6148 p_note_tbl(l_index).note_detail_id:= NULL;
6149 END;
6150 END IF;
6151 pvt_debug(g_pkg_name||'-NOTE_UPDATE_ROW:NOTE_DETAIL_ID'||p_note_tbl(l_index).note_detail_id,3);
6152 IF (( p_note_tbl(l_index).note_detail_id IS NOT NULL AND p_note_tbl(l_index).note_detail_id <> pn_lease_utils.g_pn_miss_num )
6153 OR(p_note_tbl(l_index).text IS NOT NULL OR p_note_tbl(l_index).text <> pn_lease_utils.g_pn_miss_char )
6154 )
6155 THEN
6156 ----------------------dbms_output.put_line('NOTE DETAIL update');--Rupak
6157 pn_note_details_pkg.update_row (
6158 x_note_detail_id => p_note_tbl(l_index).note_detail_id
6159 , x_text => p_note_tbl(l_index).text
6160 , x_last_update_date => sysdate
6161 , x_last_updated_by => fnd_global.user_id
6162 , x_last_update_login => fnd_global.user_id
6163 );
6164
6165 IF (l_flag = 'Y') THEN
6166 x_return_status:=fnd_api.g_ret_sts_success;
6167 END IF;
6168
6169 pvt_debug(g_pkg_name||'-NOTE_UPDATE_ROW:NOTE DETAIL UPDATED WITH NOTE DETAIL ID'||p_note_tbl(l_index).note_detail_id,3);
6170 ----------------------dbms_output.put_line('NOTE DETAIL UPDATED WITH NOTE DETAIL ID : '||p_note_tbl(l_index).note_detail_id);--Rupak
6171 ELSIF(( p_note_tbl(l_index).note_detail_id IS NULL AND p_note_tbl(l_index).text is NOT NULL)
6172 OR (p_note_tbl(l_index).note_detail_id = pn_lease_utils.g_pn_miss_num AND p_note_tbl(l_index).text <> pn_lease_utils.g_pn_miss_char )
6173 )
6174 THEN
6175 l_note_detail_id := NULL;
6176 ----------------------dbms_output.put_line('NOTE DETAIL INSERT:');--Rupak
6177 pn_note_details_pkg.insert_row (
6178 x_rowid => l_dt_row_id
6179 , x_note_detail_id => l_note_detail_id
6180 , x_note_header_id => p_note_tbl(l_index).note_header_id
6181 , x_text => p_note_tbl(l_index).text
6182 , x_creation_date => sysdate
6183 , x_created_by => fnd_global.user_id
6184 , x_last_update_date => sysdate
6185 , x_last_updated_by => fnd_global.user_id
6186 , x_last_update_login => fnd_global.user_id
6187 );
6188
6189 IF (l_flag = 'Y') THEN
6190 x_return_status:=fnd_api.g_ret_sts_success;
6191 END IF;
6192 ----------------------dbms_output.put_line('NOTE DETAIL CREATED WITH NOTE DETAIL ID :'||l_note_detail_id);--Rupak
6193 pvt_debug(g_pkg_name||'-NOTE_UPDATE_ROW:PN_NOTE_DETAILS_PKG.INSERT_ROW Succesful'||l_note_detail_id,3);
6194 END IF;
6195 END IF;
6196 EXCEPTION
6197 WHEN OTHERS THEN
6198 l_err_note_count := l_err_note_count+1;
6199 END;
6200 END loop;
6201
6202 IF (l_err_note_count = 0) THEN
6203 x_return_status := fnd_api.g_ret_sts_success;
6204 ELSE
6205 x_return_status := fnd_api.g_ret_sts_error;
6206 END IF;
6207 EXCEPTION
6208 WHEN OTHERS THEN
6209 x_return_status := fnd_api.g_ret_sts_unexp_error;
6210 ------------------dbms_output.put_line('NOTE UPDATION FAILED'||SQLERRM);
6211 END NOTE_UPDATE_ROW;
6212
6213 PROCEDURE UPDATE_NOTE (
6214 p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
6215 , p_commit IN VARCHAR2
6216 , p_validate IN VARCHAR2
6217 , p_note_tbl IN OUT NOCOPY lease_note_tbl_type
6218 , x_return_status OUT NOCOPY VARCHAR2
6219 -- , x_msg_count OUT NUMBER
6220 -- , x_msg_data OUT VARCHAR2
6221 )
6222 IS
6223 l_return_status VARCHAR2 (1) := fnd_api.g_ret_sts_success;
6224 -- x_msg_count NUMBER ;
6225 -- x_msg_data VARCHAR2(2000) ;
6226 x_out_tbl temp_tbl_type;
6227 l_api_name VARCHAR2(30) := 'UPDATE NOTES';
6228
6229 p_note_tbl_create lease_note_tbl_type;
6230 p_note_tbl_update lease_note_tbl_type;
6231 m NUMBER;
6232 n NUMBER;
6233 l_err_notes_cnt NUMBER:=0;
6234 BEGIN
6235 x_return_status := fnd_api.g_ret_sts_success;
6236 pvt_debug(g_pkg_name||'-Inside UPDATE_NOTE',3);
6237
6238 m:=1;
6239 n:=1;
6240 FOR i IN 1..p_note_tbl.COUNT
6241 LOOP
6242 IF(p_note_tbl(i).note_header_id IS NOT NULL AND p_note_tbl(i).note_header_id <> pn_lease_utils.g_pn_miss_num) THEN
6243
6244 --p_note_tbl(i).p_null_id := 'N';
6245 p_note_tbl_update(n):=p_note_tbl(i);
6246 n:=n+1;
6247 ELSE
6248
6249 --p_note_tbl(i).p_null_id := 'Y';
6250 p_note_tbl_create(m):=p_note_tbl(i);
6251 m:=m+1;
6252 END IF;
6253 END LOOP;
6254 IF(p_note_tbl_update.COUNT > 0) THEN
6255 VALIDATE_NOTE_FOR_UPDATE(p_note_tbl => p_note_tbl_update
6256 ,p_lease_id => p_lease_id
6257 ,x_tbl => x_out_tbl
6258 ,x_return_status => x_return_status
6259 );
6260 ----------------dbms_output.put_line('In UPDATE_NOTE:0'||x_return_status);--OOPS
6261 pvt_debug(g_pkg_name||'-UPDATE_NOTE:VALIDATE_NOTE_FOR_UPDATE Return Status:'||x_return_status,3);
6262 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
6263 --------------------dbms_output.put_line('In Note Update:2 IN IF'||p_note_tbl(1).note_header_id);--Rupak
6264 NOTE_UPDATE_ROW(
6265 p_note_tbl => p_note_tbl_update
6266 , p_lease_id => p_lease_id
6267 , x_return_status => x_return_status
6268 , p_tbl => x_out_tbl
6269 , p_commit => p_commit
6270 );
6271 pvt_debug(g_pkg_name||'-UPDATE_NOTE:NOTE_UPDATE_ROW Return Status:'||x_return_status,3);
6272 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
6273 --x_return_status := fnd_api.g_ret_sts_unexp_error;
6274 l_err_notes_cnt := l_err_notes_cnt + 1;
6275 ELSE
6276 --x_return_status := fnd_api.g_ret_sts_error;
6277 l_err_notes_cnt := l_err_notes_cnt + 1;
6278 END IF;
6279 END IF;
6280
6281 IF(p_note_tbl_create.COUNT > 0) THEN
6282
6283 VALIDATE_NOTE_FOR_CREATE(p_note_tbl => p_note_tbl_create
6284 ,x_tbl => x_out_tbl
6285 ,x_return_status => x_return_status
6286 );
6287 pvt_debug(g_pkg_name||'-CREATE_NOTE:Cal to VALIDATE_NOTE_FOR_CREATE Status:'||x_return_status,3);
6288 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
6289 ----------------------dbms_output.put_line('In Create_Note:3');--Rupak
6290 pvt_debug(g_pkg_name||'-CREATE_NOTE:Calling NOTE_INSERT_ROW',3);
6291 NOTE_INSERT_ROW( p_note_tbl => p_note_tbl_create
6292 ,p_lease_id => p_lease_id
6293 ,x_return_status => x_return_status
6294 ,p_tbl => x_out_tbl
6295 ,p_commit => p_commit
6296 );
6297 pvt_debug(g_pkg_name||'-CREATE_NOTE:Call to NOTE_INSERT_ROW Succesful',3);
6298 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
6299 l_err_notes_cnt := l_err_notes_cnt + 1;
6300 ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6301 l_err_notes_cnt := l_err_notes_cnt + 1;
6302 END IF;
6303
6304 ELSE
6305 ----------------------dbms_output.put_line('In Create_Note:5');--Rupak
6306 l_err_notes_cnt := l_err_notes_cnt + 1;
6307 END IF;
6308 END IF;
6309
6310 IF(l_err_notes_cnt = 0) THEN
6311 x_return_status := fnd_api.g_ret_sts_success;
6312 ELSE
6313 x_return_status := fnd_api.g_ret_sts_error;
6314 END IF;
6315
6316 EXCEPTION
6317 WHEN fnd_api.g_exc_error THEN
6318 x_return_status := fnd_api.g_ret_sts_error;
6319 WHEN OTHERS THEN
6320 x_return_status := fnd_api.g_ret_sts_unexp_error;
6321 ----------------------dbms_output.put_line ('NOTES UPDATION FAILED');--Rupak
6322 ----------------dbms_output.put_line('In UPDATE_NOTE:2'||x_return_status||SQLERRM);--OOPS
6323 pvt_debug(g_pkg_name||'-UPDATE_NOTE:Unexpected Exception:'||SQLERRM,3);
6324 END UPDATE_NOTE;
6325
6326
6327 PROCEDURE VALIDATE_RIGHT_FOR_CREATE (p_right_tbl IN OUT NOCOPY lease_right_tbl_type
6328 ,x_tbl OUT NOCOPY temp_tbl_type
6329 ,x_return_status IN OUT NOCOPY VARCHAR2
6330 )IS
6331 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
6332 l_index BINARY_INTEGER;
6333 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
6334 l_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE;
6335 l_cur_id NUMBER;
6336 l_tbl_index BINARY_INTEGER;
6337 l_tbl_flag NUMBER := 1;
6338 l_tbl temp_tbl_type;
6339 l_api_name VARCHAR2(30) := 'CREATE RIGHT';
6340 BEGIN
6341 ----------------------dbms_output.put_line('VALIDATIONS FOR RIGHT CREATION STARTED');
6342 pvt_debug(g_pkg_name||'-Inside VALIDATE_RIGHT_FOR_CREATE',3);
6343 for l_index in p_right_tbl.FIRST.. p_right_tbl.LAST LOOP
6344 BEGIN
6345 INITIALIZE_RIGHTS_REC(p_right_tbl(l_index),'CREATE_RIGHTS',x_return_status);
6346 l_tbl_index := l_index;
6347 -------------------------------------------------------------------------------------------------
6348 IF ( (p_right_tbl(l_index).right_type IS NOT NULL AND p_right_tbl(l_index).right_type <> pn_lease_utils.g_pn_miss_char)
6349 OR(p_right_tbl(l_index).right_type_code IS NOT NULL AND p_right_tbl(l_index).right_type_code <> pn_lease_utils.g_pn_miss_char)
6350 ) THEN
6351 pn_lease_utils.get_lookup_code(
6352 p_parameter_name => l_param_right_type
6353 , p_lookup_meaning => p_right_tbl(l_index).right_type
6354 , p_operation => 'CREATE_RIGHT'
6355 , p_lookup_type => l_pn_rights_type
6356 , x_return_status => x_return_status
6357 , x_lookup_type_code => p_right_tbl(l_index).right_type_code
6358 );
6359 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
6360 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
6361 fnd_message.set_token ('LOOKUP_TYPE', l_pn_rights_type);
6362 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_right_tbl(l_index).right_type));
6363 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode( p_right_tbl(l_index).right_type_code));
6364 fnd_msg_pub.ADD;
6365 RAISE fnd_api.g_exc_error;
6366 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
6367 --l_error_flag:='Y';
6368 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
6369 fnd_message.set_token ('COLUMN', SUBSTR(l_param_right_type,3));
6370 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
6371 fnd_msg_pub.ADD;
6372 RAISE fnd_api.g_exc_unexpected_error;
6373 END IF;
6374 ELSE
6375 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
6376 fnd_message.set_token ('API_NAME', l_api_name);
6377 fnd_message.set_token ('NULL_PARAM', l_pn_rights_type);
6378 fnd_msg_pub.ADD;
6379 RAISE fnd_api.g_exc_error;
6380 END IF;
6381
6382
6383
6384
6385 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6386
6387 IF ( (p_right_tbl(l_index).right_status IS NOT NULL AND p_right_tbl(l_index).right_status <> pn_lease_utils.g_pn_miss_char)
6388 OR(p_right_tbl(l_index).right_status_code IS NOT NULL AND p_right_tbl(l_index).right_status_code <> pn_lease_utils.g_pn_miss_char)
6389 ) THEN
6390 pn_lease_utils.get_lookup_code(
6391 p_parameter_name => l_param_right_status
6392 , p_lookup_meaning => p_right_tbl(l_index).right_status
6393 , p_operation => 'CREATE_RIGHT'
6394 , p_lookup_type => l_pn_right_status_type
6395 , x_return_status => x_return_status
6396 , x_lookup_type_code => p_right_tbl(l_index).right_status_code
6397 );
6398 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
6399 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
6400 fnd_message.set_token ('LOOKUP_TYPE', l_pn_right_status_type);
6401 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_right_tbl(l_index).right_status));
6402 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_right_tbl(l_index).right_status_code));
6403 fnd_msg_pub.ADD;
6404 RAISE fnd_api.g_exc_error;
6405 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
6406 --l_error_flag:='Y';
6407 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
6408 fnd_message.set_token ('COLUMN', SUBSTR(l_param_right_status,3));
6409 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
6410 fnd_msg_pub.ADD;
6411 RAISE fnd_api.g_exc_unexpected_error;
6412 END IF;
6413 ELSE
6414 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
6415 fnd_message.set_token ('API_NAME', l_api_name);
6416 fnd_message.set_token ('NULL_PARAM', l_pn_right_status_type);
6417 fnd_msg_pub.ADD;
6418 RAISE fnd_api.g_exc_error;
6419 END IF;
6420
6421
6422
6423
6424
6425 -- dff validations
6426
6427 IF (get_attribute_status('PN_RIGHTS') > 0) THEN
6428 /*get_attribute_mandatory_status('PN_RIGHTS'
6429 ,p_right_tbl(l_index).attribute1
6430 ,p_right_tbl(l_index).attribute2
6431 ,p_right_tbl(l_index).attribute3
6432 ,p_right_tbl(l_index).attribute4
6433 ,p_right_tbl(l_index).attribute5
6434 ,p_right_tbl(l_index).attribute6
6435 ,p_right_tbl(l_index).attribute7
6436 ,p_right_tbl(l_index).attribute8
6437 ,p_right_tbl(l_index).attribute9
6438 ,p_right_tbl(l_index).attribute10
6439 ,p_right_tbl(l_index).attribute11
6440 ,p_right_tbl(l_index).attribute12
6441 ,p_right_tbl(l_index).attribute13
6442 ,p_right_tbl(l_index).attribute14
6443 ,p_right_tbl(l_index).attribute15
6444 ,x_return_status
6445 );
6446 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
6447 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
6448 fnd_message.set_token ('API_NAME', l_api_name);
6449 fnd_message.set_token ('NULL_PARAM','Required attribute in Rights is NULL');
6450 fnd_msg_pub.ADD;
6451 RAISE fnd_api.g_exc_error;
6452 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
6453 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
6454 fnd_message.set_token ('API_NAME', l_api_name);
6455 fnd_message.set_token ('NULL_PARAM', 'Required attribute in Rights is NULL');
6456 fnd_msg_pub.ADD;
6457 RAISE fnd_api.g_exc_unexpected_error;
6458 ELSE*/
6459 IF NOT ((p_right_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute_category IS NULL)
6460 AND (p_right_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute1 IS NULL)
6461 AND (p_right_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute2 IS NULL)
6462 AND (p_right_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute3 IS NULL)
6463 AND (p_right_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute4 IS NULL)
6464 AND (p_right_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute5 IS NULL)
6465 AND (p_right_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute6 IS NULL)
6466 AND (p_right_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute7 IS NULL)
6467 AND (p_right_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute8 IS NULL)
6468 AND (p_right_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute9 IS NULL)
6469 AND (p_right_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute10 IS NULL)
6470 AND (p_right_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute11 IS NULL)
6471 AND (p_right_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute12 IS NULL)
6472 AND (p_right_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute13 IS NULL)
6473 AND (p_right_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute14 IS NULL)
6474 AND (p_right_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char OR p_right_tbl(l_index).attribute15 IS NULL)
6475 ) THEN
6476 PN_LEASE_UTILS.validate_desc_flex (
6477 p_api_name => 'PN_API'--l_api_name_full
6478 , p_application_short_name => 'PN'
6479 , p_desc_flex_name => 'PN_RIGHTS'
6480 , p_desc_segment1 => p_right_tbl(l_index).attribute1
6481 , p_desc_segment2 => p_right_tbl(l_index).attribute2
6482 , p_desc_segment3 => p_right_tbl(l_index).attribute3
6483 , p_desc_segment4 => p_right_tbl(l_index).attribute4
6484 , p_desc_segment5 => p_right_tbl(l_index).attribute5
6485 , p_desc_segment6 => p_right_tbl(l_index).attribute6
6486 , p_desc_segment7 => p_right_tbl(l_index).attribute7
6487 , p_desc_segment8 => p_right_tbl(l_index).attribute8
6488 , p_desc_segment9 => p_right_tbl(l_index).attribute9
6489 , p_desc_segment10 =>p_right_tbl(l_index).attribute10
6490 , p_desc_segment11 =>p_right_tbl(l_index).attribute11
6491 , p_desc_segment12 =>p_right_tbl(l_index).attribute12
6492 , p_desc_segment13 =>p_right_tbl(l_index).attribute13
6493 , p_desc_segment14 =>p_right_tbl(l_index).attribute14
6494 , p_desc_segment15 =>p_right_tbl(l_index).attribute15
6495 , p_desc_context => p_right_tbl(l_index).attribute_category
6496 , p_resp_appl_id => fnd_global.RESP_APPL_ID
6497 , p_resp_id => fnd_global.RESP_ID
6498 , p_return_status => x_return_status
6499 );
6500 IF (x_return_status = fnd_api.g_ret_sts_error)
6501 THEN
6502 l_tbl_flag := 0;
6503 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
6504 fnd_message.set_token ('COLUMN', 'PN_RIGHTS_DESC_FIELDS');
6505 fnd_message.set_token ('P_TEXT', 'PN_RIGHTS'|| '-'|| SQLERRM);
6506 fnd_msg_pub.ADD;
6507 RAISE fnd_api.g_exc_error;
6508 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
6509 THEN
6510 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
6511 fnd_message.set_token ('COLUMN', 'PN_RIGHTS_DESC_FIELDS');
6512 fnd_message.set_token ('P_TEXT', 'PN_RIGHTS'|| '-'|| SQLERRM);
6513 fnd_msg_pub.ADD;
6514 RAISE fnd_api.g_exc_unexpected_error;
6515 END IF;
6516 END IF;
6517 END IF;
6518 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
6519 EXCEPTION
6520 WHEN fnd_api.g_exc_error THEN
6521 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
6522 WHEN OTHERS THEN
6523 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM,3);
6524 END;
6525 END LOOP;
6526 ----------------------dbms_output.put_line('VALIDATIONS FOR RIGHTS CREATION COMPLETED');
6527 x_tbl := l_tbl;
6528 x_return_status := fnd_api.g_ret_sts_success;
6529
6530 EXCEPTION
6531 WHEN OTHERS THEN
6532 x_return_status := fnd_api.g_ret_sts_unexp_error;
6533 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
6534 pvt_debug(g_pkg_name||'-VALIDATE_RIGHT_FOR_CREATE:Exception'||SQLERRM,3);
6535 END VALIDATE_RIGHT_FOR_CREATE;
6536
6537 PROCEDURE RIGHT_INSERT_ROW(p_right_tbl IN OUT NOCOPY lease_right_tbl_type
6538 , p_lease_id IN PN_LEASES_ALL.lease_id%type
6539 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
6540 , x_return_status OUT NOCOPY VARCHAR2
6541 , p_tbl IN temp_tbl_type
6542 , p_commit IN VARCHAR2
6543 )
6544 IS
6545 l_index BINARY_INTEGER;
6546 t_index BINARY_INTEGER;
6547 l_row_id VARCHAR2(100) ;
6548 l_right_id PN_RIGHTS_ALL.RIGHT_ID%TYPE;
6549 BEGIN
6550 ----------------------dbms_output.put_line('IN INSERT PROCEDURE FOR RIGHTS');--Rupak
6551 pvt_debug(g_pkg_name||'-Inside RIGHT_INSERT_ROW',3);
6552 for l_index in p_right_tbl.FIRST..p_right_tbl.LAST loop
6553 -- IF p_tbl(l_index).temp_flag = 1 THEN
6554 ----------------------dbms_output.put_line('INSERT PROCEDURE FOR RIGHTS IN IF :RECORD :'||l_index||' STARTED');--Rupak
6555 l_right_id := NULL;
6556 BEGIN
6557 pvt_debug(g_pkg_name||'-RIGHT_INSERT_ROW:Calling INITIALIZE_RIGHTS_REC',3);
6558 INITIALIZE_RIGHTS_REC( p_right_rec => p_right_tbl(l_index)
6559 , p_lease_context => 'CREATE_RIGHTS'
6560 , x_return_status => x_return_status
6561 );
6562 pvt_debug(g_pkg_name||'-RIGHT_INSERT_ROW:Calling PN_RIGHTS_PKG.INSERT_ROW',3);
6563 pn_rights_pkg.insert_row(
6564 x_rowid => l_row_id
6565 , x_right_id => l_right_id
6566 , x_right_num => p_right_tbl(l_index).right_num
6567 , x_lease_id => p_lease_id
6568 , x_lease_change_id => p_lease_change_id
6569 , x_right_type_code => p_right_tbl(l_index).right_type_code
6570 , x_right_status_code => p_right_tbl(l_index).right_status_code
6571 , x_right_reference => p_right_tbl(l_index).right_reference
6572 , x_start_date => null
6573 , x_expiration_date => null
6574 , x_right_comments => p_right_tbl(l_index).right_comments
6575 , x_attribute_category => p_right_tbl(l_index).attribute_category
6576 , x_attribute1 => p_right_tbl(l_index).attribute1
6577 , x_attribute2 => p_right_tbl(l_index).attribute2
6578 , x_attribute3 => p_right_tbl(l_index).attribute3
6579 , x_attribute4 => p_right_tbl(l_index).attribute4
6580 , x_attribute5 => p_right_tbl(l_index).attribute5
6581 , x_attribute6 => p_right_tbl(l_index).attribute6
6582 , x_attribute7 => p_right_tbl(l_index).attribute7
6583 , x_attribute8 => p_right_tbl(l_index).attribute8
6584 , x_attribute9 => p_right_tbl(l_index).attribute9
6585 , x_attribute10 => p_right_tbl(l_index).attribute10
6586 , x_attribute11 => p_right_tbl(l_index).attribute11
6587 , x_attribute12 => p_right_tbl(l_index).attribute12
6588 , x_attribute13 => p_right_tbl(l_index).attribute13
6589 , x_attribute14 => p_right_tbl(l_index).attribute14
6590 , x_attribute15 => p_right_tbl(l_index).attribute15
6591 , x_creation_date => sysdate
6592 , x_created_by => fnd_global.user_id
6593 , x_last_update_date => sysdate
6594 , x_last_updated_by => fnd_global.user_id
6595 , x_last_update_login => fnd_global.user_id
6596 , x_org_id => fnd_global.org_id
6597 );
6598
6599 ----------------------dbms_output.put_line('RECORD FOR RIGHTS CREATED WITH RIGHT ID: '|| l_right_id);--Rupak
6600 pvt_debug(g_pkg_name||'-RIGHT_INSERT_ROW:PN_RIGHTS_PKG.INSERT_ROW Successful',3);
6601 p_right_tbl(l_index).right_id := l_right_id;
6602 EXCEPTION
6603 WHEN OTHERS THEN
6604 --NULL
6605 ----------------------dbms_output.put_line('Exception In Insert RIGHTS'||SQLERRM);
6606 pvt_debug(g_pkg_name||'-RIGHT_INSERT_ROW:PN_RIGHTS_PKG.INSERT_ROW:Exception'||SQLERRM,3);
6607 END;
6608 -- END IF;
6609 END loop;
6610
6611 x_return_status := fnd_api.g_ret_sts_success;
6612 ----------------------dbms_output.put_line('INSERT OF RIGHTS COMPLETED');
6613 p_right_tbl := p_right_tbl;
6614
6615 EXCEPTION
6616 WHEN OTHERS THEN
6617 x_return_status := fnd_api.g_ret_sts_unexp_error;
6618 ----------------------dbms_output.put_line('INSERT PROCEDURE FAILED FOR RIGHTS CREATION') ;
6619 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
6620 pvt_debug(g_pkg_name||'-RIGHT_INSERT_ROW::Exception'||SQLERRM,3);
6621 END RIGHT_INSERT_ROW;
6622
6623 PROCEDURE CREATE_RIGHT (
6624 p_lease_id IN PN_LEASES_ALL.lease_id%type
6625 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
6626 , p_commit IN VARCHAR2
6627 , p_validate IN VARCHAR2
6628 , p_right_tbl IN OUT NOCOPY lease_right_tbl_type
6629 , x_return_status OUT NOCOPY VARCHAR2
6630 -- , x_msg_count OUT NUMBER
6631 -- , x_msg_data OUT VARCHAR2
6632 )
6633 IS
6634 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
6635 x_out_tbl temp_tbl_type;
6636 BEGIN
6637 ----------------------dbms_output.put_line('CREATION OF RIGHT PROCESS STARTED');--Rupak
6638 pvt_debug(g_pkg_name||'-Inside CREATE_RIGHT',3);
6639 VALIDATE_RIGHT_FOR_CREATE(p_right_tbl => p_right_tbl
6640 ,x_tbl => x_out_tbl
6641 ,x_return_status => x_return_status
6642 );
6643 IF NVL(p_validate,'F') <>'T' and x_return_status = fnd_api.g_ret_sts_success THEN
6644 RIGHT_INSERT_ROW(p_right_tbl => p_right_tbl
6645 ,p_lease_id => p_lease_id
6646 ,p_lease_change_id => p_lease_change_id
6647 ,x_return_status => x_return_status
6648 ,p_tbl => x_out_tbl
6649 ,p_commit => p_commit
6650 );
6651 pvt_debug(g_pkg_name||'-CREATE_RIGHT:RIGHT_INSERT_ROW Return Status:'||l_return_status,3);
6652 ELSE
6653 RAISE fnd_api.g_exc_error;
6654 END IF;
6655
6656 --x_return_status := l_return_status;
6657 ----------------------dbms_output.put_line('CREATION OF RIGHT PROCESS COMPLETED');
6658 EXCEPTION
6659 WHEN OTHERS THEN
6660 x_return_status := fnd_api.g_ret_sts_unexp_error;
6661 ----------------------dbms_output.put_line('CREATION OF RIGHTS FAILED');
6662 pvt_debug(g_pkg_name||'-CREATE_RIGHT:Exception'||SQLERRM,3);
6663 END CREATE_RIGHT;
6664
6665
6666
6667 PROCEDURE VALIDATE_RIGHT_FOR_UPDATE(
6668 p_right_tbl IN OUT NOCOPY lease_right_tbl_type
6669 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
6670 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.LEASE_CHANGE_ID%TYPE
6671 ,x_tbl OUT NOCOPY temp_tbl_type
6672 ,x_return_status IN OUT NOCOPY VARCHAR2
6673 ,p_commit IN VARCHAR2
6674 )
6675 IS
6676 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
6677 l_index BINARY_INTEGER;
6678 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
6679 l_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE;
6680 l_cur_id NUMBER;
6681 l_tbl_index BINARY_INTEGER;
6682 l_tbl_flag NUMBER ;
6683 l_tbl temp_tbl_type;
6684 l_api_name VARCHAR2(30) := 'UPDATE_RIGHTS';
6685 CURSOR c_right (
6686 p_right_id NUMBER
6687 )
6688 IS
6689 SELECT right_id
6690 , lease_id
6691 , lease_change_id
6692 , right_num
6693 , right_type_code
6694 , right_status_code
6695 , right_reference
6696 , right_comments
6697 , attribute_category
6698 , attribute1
6699 , attribute2
6700 , attribute3
6701 , attribute4
6702 , attribute5
6703 , attribute6
6704 , attribute7
6705 , attribute8
6706 , attribute9
6707 , attribute10
6708 , attribute11
6709 , attribute12
6710 , attribute13
6711 , attribute14
6712 , attribute15
6713 , org_id
6714 FROM pn_rights_all
6715 WHERE right_id = p_right_id;
6716 lcu_right_rec c_right%ROWTYPE;
6717 BEGIN
6718 l_return_status := fnd_api.g_ret_sts_success ;
6719
6720 FOR l_index in p_right_tbl.FIRST..p_right_tbl.LAST LOOP
6721 BEGIN
6722 l_tbl_index := l_index;
6723 IF (p_right_tbl(l_index).right_id IS NULL OR p_right_tbl(l_index).right_id = pn_lease_utils.g_pn_miss_num) THEN
6724 l_tbl_flag := 1;
6725 pvt_debug(g_pkg_name||'-Inside VALIDATE_RIGHT_FOR_UPDATE',3);
6726 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
6727 fnd_message.set_token ('API_NAME', l_api_name);
6728 fnd_message.set_token ('NULL_PARAM', 'RIGHT ID IS NULL');
6729 fnd_msg_pub.ADD;
6730 RAISE fnd_api.g_exc_error;
6731 ELSE
6732 --------------------dbms_output.put_line ('VALIDATIONS FOR RIGHT UPDATE STARTEDIN ELSE');--Rupak
6733 pvt_debug(g_pkg_name||'-VALIDATE_RIGHT_FOR_UPDATE:ELSE Part',3);
6734 l_tbl_flag := 2;
6735 l_cur_id := p_right_tbl(l_index).right_id;
6736
6737 OPEN c_right(l_cur_id);
6738 --------------------dbms_output.put_line('cursor opened for update');
6739 FETCH c_right INTO lcu_right_rec;
6740
6741 /*IF ( p_right_tbl(l_index).right_num IS NOT NULL AND p_right_tbl(l_index).right_num <> pn_lease_utils.g_pn_miss_num)
6742 THEN
6743 IF p_right_tbl(l_index).right_num <> lcu_right_rec.right_num THEN
6744 --------------------dbms_output.put_line ('right num :' ||p_right_tbl(l_index).right_num );--Rupak
6745 l_tbl_flag := 0;
6746 END IF;
6747 ELSE*/
6748 IF (p_right_tbl(l_index).right_num = pn_lease_utils.g_pn_miss_num) THEN
6749 p_right_tbl(l_index).right_num := lcu_right_rec.right_num;
6750 END IF;
6751
6752 IF (p_right_tbl(l_index).right_reference = pn_lease_utils.g_pn_miss_char)THEN
6753 p_right_tbl(l_index).right_reference := lcu_right_rec.right_reference;
6754 END IF;
6755
6756 IF (p_right_tbl(l_index).right_comments = pn_lease_utils.g_pn_miss_char) THEN
6757 p_right_tbl(l_index).right_comments := lcu_right_rec.right_comments;
6758 END IF;
6759
6760
6761
6762
6763 IF ( (p_right_tbl(l_index).right_type IS NOT NULL AND p_right_tbl(l_index).right_type <> pn_lease_utils.g_pn_miss_char)
6764 OR(p_right_tbl(l_index).right_type_code IS NOT NULL AND p_right_tbl(l_index).right_type_code <> pn_lease_utils.g_pn_miss_char)
6765 ) THEN
6766 pn_lease_utils.get_lookup_code(
6767 p_parameter_name => l_param_right_type
6768 , p_lookup_meaning => p_right_tbl(l_index).right_type
6769 , p_operation => 'CREATE_RIGHT'
6770 , p_lookup_type => l_pn_rights_type
6771 , x_return_status => x_return_status
6772 , x_lookup_type_code => p_right_tbl(l_index).right_type_code
6773 );
6774 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
6775 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
6776 fnd_message.set_token ('LOOKUP_TYPE', l_pn_rights_type);
6777 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_right_tbl(l_index).right_type));
6778 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode( p_right_tbl(l_index).right_type_code));
6779 fnd_msg_pub.ADD;
6780 RAISE fnd_api.g_exc_error;
6781 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
6782 --l_error_flag:='Y';
6783 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
6784 fnd_message.set_token ('COLUMN', SUBSTR(l_param_right_type,3));
6785 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
6786 fnd_msg_pub.ADD;
6787 RAISE fnd_api.g_exc_unexpected_error;
6788 END IF;
6789 ELSIF(p_right_tbl(l_index).right_type IS NULL OR p_right_tbl(l_index).right_type_code IS NULL) THEN
6790 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
6791 fnd_message.set_token ('API_NAME', l_api_name);
6792 fnd_message.set_token ('NULL_PARAM', 'RIGHT_TYPE AND RIGHT_TYPE_CODE CANNOT BE NULL');
6793 fnd_msg_pub.ADD;
6794 RAISE fnd_api.g_exc_error;
6795 ELSE
6796 p_right_tbl(l_index).right_type_code := lcu_right_rec.right_type_code;
6797 END IF;
6798 -------------------------------------------------------------------------------------------------------------------------------------------------------------
6799
6800 IF ( (p_right_tbl(l_index).right_status IS NOT NULL AND p_right_tbl(l_index).right_status <> pn_lease_utils.g_pn_miss_char)
6801 OR(p_right_tbl(l_index).right_status_code IS NOT NULL AND p_right_tbl(l_index).right_status_code <> pn_lease_utils.g_pn_miss_char)
6802 ) THEN
6803 pn_lease_utils.get_lookup_code(
6804 p_parameter_name => l_param_right_status
6805 , p_lookup_meaning => p_right_tbl(l_index).right_status
6806 , p_operation => 'CREATE_RIGHT'
6807 , p_lookup_type => l_pn_right_status_type
6808 , x_return_status => x_return_status
6809 , x_lookup_type_code => p_right_tbl(l_index).right_status_code
6810 );
6811 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
6812 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
6813 fnd_message.set_token ('LOOKUP_TYPE', l_pn_right_status_type);
6814 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_right_tbl(l_index).right_status));
6815 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_right_tbl(l_index).right_status_code));
6816 fnd_msg_pub.ADD;
6817 RAISE fnd_api.g_exc_error;
6818 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
6819 --l_error_flag:='Y';
6820 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
6821 fnd_message.set_token ('COLUMN', SUBSTR(l_param_right_status,3));
6822 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
6823 fnd_msg_pub.ADD;
6824 RAISE fnd_api.g_exc_unexpected_error;
6825 END IF;
6826 ELSIF(p_right_tbl(l_index).right_status IS NULL OR p_right_tbl(l_index).right_status_code IS NULL) THEN
6827 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
6828 fnd_message.set_token ('API_NAME', l_api_name);
6829 fnd_message.set_token ('NULL_PARAM', 'RIGHT_STATUS AND RIGHT_STATUS_CODE CANNOT BE NULL');
6830 fnd_msg_pub.ADD;
6831 RAISE fnd_api.g_exc_error;
6832 ELSE
6833 p_right_tbl(l_index).right_status_code := lcu_right_rec.right_status_code;
6834 END IF;
6835
6836
6837
6838 -----------------------------------------------------------------------------------------------------------------------
6839 -- --------------dbms_output.put_line('lcu_right_rec.attribute_category:1'||lcu_right_rec.attribute_category||l_index);
6840 -- --------------dbms_output.put_line('lcu_right_rec.attribute_category:'||p_right_tbl(l_index).attribute_category);
6841 -- Dff validations
6842 /*IF NOT ( (p_right_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char)
6843 AND (p_right_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char)
6844 AND (p_right_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char)
6845 AND (p_right_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char)
6846 AND (p_right_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char)
6847 AND (p_right_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char)
6848 AND (p_right_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char)
6849 AND (p_right_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char)
6850 AND (p_right_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char)
6851 AND (p_right_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char)
6852 AND (p_right_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char)
6853 AND (p_right_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char)
6854 AND (p_right_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char)
6855 AND (p_right_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char)
6856 AND (p_right_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char)
6857 AND (p_right_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char)
6858 ) THEN*/
6859 IF (p_right_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char) THEN
6860 ----------------dbms_output.put_line('lcu_right_rec.attribute_category;'||lcu_right_rec.attribute_category);
6861 p_right_tbl(l_index).attribute_category := lcu_right_rec.attribute_category;
6862 ELSIF(p_right_tbl(l_index).attribute_category IS NULL) THEN
6863 p_right_tbl(l_index).attribute1 := NULL;
6864 END IF;
6865 IF (p_right_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char) THEN
6866 p_right_tbl(l_index).attribute1 := lcu_right_rec.attribute1;
6867 ELSIF(p_right_tbl(l_index).attribute1 IS NULL) THEN
6868 p_right_tbl(l_index).attribute1 := NULL;
6869 END IF;
6870
6871 IF (p_right_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char) THEN
6872 p_right_tbl(l_index).attribute2 := lcu_right_rec.attribute2;
6873 ELSIF(p_right_tbl(l_index).attribute2 IS NULL) THEN
6874 p_right_tbl(l_index).attribute2 := NULL;
6875 END IF;
6876 IF (p_right_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char) THEN
6877 p_right_tbl(l_index).attribute3 := lcu_right_rec.attribute3;
6878 ELSIF(p_right_tbl(l_index).attribute3 IS NULL) THEN
6879 p_right_tbl(l_index).attribute3 := NULL;
6880 END IF;
6881 IF (p_right_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char) THEN
6882 p_right_tbl(l_index).attribute4 := lcu_right_rec.attribute4;
6883 ELSIF(p_right_tbl(l_index).attribute4 IS NULL) THEN
6884 p_right_tbl(l_index).attribute4 := NULL;
6885 END IF;
6886 IF (p_right_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char) THEN
6887 p_right_tbl(l_index).attribute5 := lcu_right_rec.attribute5;
6888 ELSIF(p_right_tbl(l_index).attribute5 IS NULL) THEN
6889 p_right_tbl(l_index).attribute5 := NULL;
6890 END IF;
6891 IF (p_right_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char) THEN
6892 p_right_tbl(l_index).attribute6 := lcu_right_rec.attribute6;
6893 ELSIF(p_right_tbl(l_index).attribute6 IS NULL) THEN
6894 p_right_tbl(l_index).attribute6 := NULL;
6895 END IF;
6896 IF (p_right_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char) THEN
6897 p_right_tbl(l_index).attribute7 := lcu_right_rec.attribute7;
6898 ELSIF(p_right_tbl(l_index).attribute7 IS NULL) THEN
6899 p_right_tbl(l_index).attribute7 := NULL;
6900 END IF;
6901 IF (p_right_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char) THEN
6902 p_right_tbl(l_index).attribute8 := lcu_right_rec.attribute8;
6903 ELSIF(p_right_tbl(l_index).attribute8 IS NULL) THEN
6904 p_right_tbl(l_index).attribute8 := NULL;
6905 END IF;
6906 IF (p_right_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char) THEN
6907 p_right_tbl(l_index).attribute9 := lcu_right_rec.attribute9;
6908 ELSIF(p_right_tbl(l_index).attribute9 IS NULL) THEN
6909 p_right_tbl(l_index).attribute9 := NULL;
6910 END IF;
6911 IF (p_right_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char) THEN
6912 p_right_tbl(l_index).attribute10 := lcu_right_rec.attribute10;
6913 ELSIF(p_right_tbl(l_index).attribute10 IS NULL) THEN
6914 p_right_tbl(l_index).attribute10 := NULL;
6915 END IF;
6916 IF (p_right_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char) THEN
6917 p_right_tbl(l_index).attribute11 := lcu_right_rec.attribute11;
6918 ELSIF(p_right_tbl(l_index).attribute11 IS NULL) THEN
6919 p_right_tbl(l_index).attribute11 := NULL;
6920 END IF;
6921 IF (p_right_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char) THEN
6922 p_right_tbl(l_index).attribute12 := lcu_right_rec.attribute12;
6923 ELSIF(p_right_tbl(l_index).attribute12 IS NULL) THEN
6924 p_right_tbl(l_index).attribute12 := NULL;
6925 END IF;
6926 IF (p_right_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char) THEN
6927 p_right_tbl(l_index).attribute13 := lcu_right_rec.attribute13;
6928 ELSIF(p_right_tbl(l_index).attribute13 IS NULL) THEN
6929 p_right_tbl(l_index).attribute13 := NULL;
6930 END IF;
6931 IF (p_right_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char) THEN
6932 p_right_tbl(l_index).attribute14 := lcu_right_rec.attribute14;
6933 ELSIF(p_right_tbl(l_index).attribute14 IS NULL) THEN
6934 p_right_tbl(l_index).attribute14 := NULL;
6935 END IF;
6936 IF (p_right_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char) THEN
6937 p_right_tbl(l_index).attribute15 := lcu_right_rec.attribute15;
6938 ELSIF(p_right_tbl(l_index).attribute15 IS NULL) THEN
6939 p_right_tbl(l_index).attribute15 := NULL;
6940 END IF;
6941
6942 PN_LEASE_UTILS.validate_desc_flex (
6943 p_api_name => 'PN_RIGHTS'--l_api_name_full
6944 , p_application_short_name => 'PN'
6945 , p_desc_flex_name => 'PN_RIGHTS'
6946 , p_desc_segment1 => p_right_tbl(l_index).attribute1
6947 , p_desc_segment2 => p_right_tbl(l_index).attribute2
6948 , p_desc_segment3 => p_right_tbl(l_index).attribute3
6949 , p_desc_segment4 => p_right_tbl(l_index).attribute4
6950 , p_desc_segment5 => p_right_tbl(l_index).attribute5
6951 , p_desc_segment6 => p_right_tbl(l_index).attribute6
6952 , p_desc_segment7 => p_right_tbl(l_index).attribute7
6953 , p_desc_segment8 => p_right_tbl(l_index).attribute8
6954 , p_desc_segment9 => p_right_tbl(l_index).attribute9
6955 , p_desc_segment10 =>p_right_tbl(l_index).attribute10
6956 , p_desc_segment11 =>p_right_tbl(l_index).attribute11
6957 , p_desc_segment12 =>p_right_tbl(l_index).attribute12
6958 , p_desc_segment13 =>p_right_tbl(l_index).attribute13
6959 , p_desc_segment14 =>p_right_tbl(l_index).attribute14
6960 , p_desc_segment15 =>p_right_tbl(l_index).attribute15
6961 , p_desc_context => p_right_tbl(l_index).attribute_category
6962 , p_resp_appl_id => fnd_global.resp_appl_id
6963 , p_resp_id => fnd_global.resp_id
6964 , p_return_status => x_return_status
6965 );
6966 --------------------dbms_output.put_line('dff validated');
6967 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
6968 l_tbl_flag := 0;
6969 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
6970 fnd_message.set_token ('COLUMN', 'PN_RIGHTS_DESC_FIELDS');
6971 fnd_message.set_token ('P_TEXT', 'PN_RIGHTS'|| '-'|| SQLERRM);
6972 fnd_msg_pub.ADD;
6973 RAISE fnd_api.g_exc_error;
6974 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) THEN
6975 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
6976 fnd_message.set_token ('COLUMN', 'PN_RIGHTS_DESC_FIELDS');
6977 fnd_message.set_token ('P_TEXT', 'PN_RIGHTS'|| '-'|| SQLERRM);
6978 fnd_msg_pub.ADD;
6979 RAISE fnd_api.g_exc_unexpected_error;
6980 END IF;
6981 -- END IF;
6982 CLOSE c_right;
6983 ------------------dbms_output.put_line ('VALIDATIONS FOR RIGHT UPDATE COMPLETED');--Rupak
6984 END IF;
6985 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
6986 EXCEPTION
6987 WHEN fnd_api.g_exc_error THEN
6988 pvt_debug(g_pkg_name||'-VALIDATE_RIGHT_FOR_UPDATE:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
6989 WHEN OTHERS THEN
6990 pvt_debug(g_pkg_name||'-VALIDATE_RIGHT_FOR_UPDATE:LOOOPING:EXCEPTION:'||SQLERRM,3);
6991 END;
6992 END LOOP;
6993 x_tbl := l_tbl;
6994 x_return_status := fnd_api.g_ret_sts_success;
6995 EXCEPTION
6996 WHEN OTHERS THEN
6997 x_return_status := fnd_api.g_ret_sts_unexp_error;
6998 --------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
6999 END VALIDATE_RIGHT_FOR_UPDATE;
7000
7001 PROCEDURE RIGHT_UPDATE_ROW( p_right_tbl IN OUT NOCOPY lease_right_tbl_type
7002 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%type
7003 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
7004 ,x_return_status OUT NOCOPY VARCHAR2
7005 ,p_tbl IN temp_tbl_type
7006 ,p_commit IN VARCHAR2
7007 )
7008 IS
7009 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
7010 l_index BINARY_INTEGER;
7011 l_right_count NUMBER:=0;
7012 BEGIN
7013 ----------------------dbms_output.put_line (' RIGHT_UPDATE_ROW :RIGHT_UPDATE_ROW');--Rupak
7014 pvt_debug(g_pkg_name||'-Inside RIGHT_UPDATE_ROW',3);
7015
7016 For l_index in p_right_tbl.FIRST..p_right_tbl.LAST loop
7017 ----------------------dbms_output.put_line (' RIGHT_UPDATE_ROW :IN FOR'||p_tbl(l_index).temp_flag);--Rupak
7018 BEGIN
7019 IF p_tbl(l_index).temp_flag = 2 THEN
7020 ----------------------dbms_output.put_line (' RIGHT_UPDATE_ROW:IN IF RRECORD UPDATION STARTED FOR RIGHTS');--Rupak
7021 pvt_debug(g_pkg_name||'-RIGHT_UPDATE_ROW:Calling PN_RIGHTS_PKG.UPDATE_ROW',3);
7022
7023 pn_rights_pkg.update_row(
7024 x_right_id => p_right_tbl(l_index).right_id
7025 , x_lease_id => p_lease_id
7026 , x_lease_change_id => p_lease_change_id
7027 , x_right_num => p_right_tbl(l_index).right_num
7028 , x_right_type_code => p_right_tbl(l_index).right_type_code
7029 , x_right_status_code => p_right_tbl(l_index).right_status_code
7030 , x_right_reference => p_right_tbl(l_index).right_reference
7031 , x_start_date => NULL
7032 , x_expiration_date => NULL
7033 , x_right_comments => p_right_tbl(l_index).right_comments
7034 , x_attribute_category => p_right_tbl(l_index).attribute_category
7035 , x_attribute1 => p_right_tbl(l_index).attribute1
7036 , x_attribute2 => p_right_tbl(l_index).attribute2
7037 , x_attribute3 => p_right_tbl(l_index).attribute3
7038 , x_attribute4 => p_right_tbl(l_index).attribute4
7039 , x_attribute5 => p_right_tbl(l_index).attribute5
7040 , x_attribute6 => p_right_tbl(l_index).attribute6
7041 , x_attribute7 => p_right_tbl(l_index).attribute7
7042 , x_attribute8 => p_right_tbl(l_index).attribute8
7043 , x_attribute9 => p_right_tbl(l_index).attribute9
7044 , x_attribute10 => p_right_tbl(l_index).attribute10
7045 , x_attribute11 => p_right_tbl(l_index).attribute11
7046 , x_attribute12 => p_right_tbl(l_index).attribute12
7047 , x_attribute13 => p_right_tbl(l_index).attribute13
7048 , x_attribute14 => p_right_tbl(l_index).attribute14
7049 , x_attribute15 => p_right_tbl(l_index).attribute15
7050 , x_last_update_date => sysdate
7051 , x_last_updated_by => fnd_global.user_id
7052 , x_last_update_login => fnd_global.user_id
7053 );
7054
7055
7056 ----------------------dbms_output.put_line ('RECORD UPDATION COMPLETED FOR RIGHTS');--Rupak
7057 pvt_debug(g_pkg_name||'-RIGHT_UPDATE_ROW:PN_RIGHTS_PKG.UPDATE_ROW Successful',3);
7058
7059 END IF;
7060 EXCEPTION
7061 WHEN OTHERS THEN
7062 l_right_count := l_right_count+1;
7063 pvt_debug(g_pkg_name||'-RIGHT_INSERT_ROW:PN_RIGHTS_PKG.INSERT_ROW:Exception'||SQLERRM,3);
7064 END;
7065 END LOOP;
7066 IF l_right_count = 0 THEN
7067 x_return_status := fnd_api.g_ret_sts_success;
7068 ELSE
7069 x_return_status := fnd_api.g_ret_sts_error;
7070 END IF;
7071 EXCEPTION
7072 WHEN OTHERS THEN
7073 x_return_status := fnd_api.g_ret_sts_unexp_error;
7074 ----------------------dbms_output.put_line ('RECORD NOT UPDATED FOR RIGHTS');
7075 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
7076 pvt_debug(g_pkg_name||'-RIGHT_UPDATE_ROW:Exception'||SQLERRM,3);
7077 END RIGHT_UPDATE_ROW;
7078
7079 PROCEDURE UPDATE_RIGHT (
7080 p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
7081 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.LEASE_CHANGE_ID%TYPE
7082 , p_commit IN VARCHAR2
7083 , p_validate IN VARCHAR2
7084 , p_right_tbl IN OUT NOCOPY lease_right_tbl_type
7085 , x_return_status OUT NOCOPY VARCHAR2
7086 -- , x_msg_count OUT NUMBER
7087 -- , x_msg_data OUT VARCHAR2
7088 )
7089 IS
7090 l_return_status VARCHAR2 (1) := fnd_api.g_ret_sts_success;
7091 l_msg_count NUMBER;
7092 l_msg_data VARCHAR2(2000) ;
7093 x_out_tbl temp_tbl_type;
7094
7095 p_right_tbl_create lease_right_tbl_type;
7096 p_right_tbl_update lease_right_tbl_type;
7097 m NUMBER;
7098 n NUMBER;
7099 l_err_right_cnt NUMBER:=0;
7100 BEGIN
7101 x_return_status := fnd_api.g_ret_sts_success;
7102 pvt_debug(g_pkg_name||'-Inside UPDATE_RIGHT:Calling VALIDATE_RIGHT_FOR_UPDATE',3);
7103 m:=1;
7104 n:=1;
7105
7106 FOR i IN 1..p_right_tbl.COUNT
7107 LOOP
7108 IF(p_right_tbl(i).right_id IS NOT NULL AND p_right_tbl(i).right_id <> pn_lease_utils.g_pn_miss_num) THEN
7109
7110 --p_right_tbl(i).p_null_id := 'N';
7111 p_right_tbl_update(n):=p_right_tbl(i);
7112 n:=n+1;
7113 ELSE
7114
7115 --p_right_tbl(i).p_null_id := 'Y';
7116 p_right_tbl_create(m):=p_right_tbl(i);
7117 m:=m+1;
7118 END IF;
7119 END LOOP;
7120
7121 IF(p_right_tbl_update.COUNT > 0) THEN
7122
7123 VALIDATE_RIGHT_FOR_UPDATE(p_right_tbl => p_right_tbl_update
7124 ,p_lease_id => p_lease_id
7125 ,p_lease_change_id => p_lease_change_id
7126 ,x_tbl => x_out_tbl
7127 ,x_return_status => x_return_status
7128 ,p_commit => p_commit
7129 );
7130
7131 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
7132
7133 ----------------------dbms_output.put_line ('CALLING UPDATE PROCEDURE OF RIGHTS:p_lease_change_id'||p_lease_change_id);--Rupak
7134 pvt_debug(g_pkg_name||'-Inside UPDATE_RIGHT:Calling RIGHT_UPDATE_ROW',3);
7135
7136 RIGHT_UPDATE_ROW(
7137 p_right_tbl => p_right_tbl_update
7138 , p_lease_id => p_lease_id
7139 , p_lease_change_id => p_lease_change_id
7140 , x_return_status => x_return_status
7141 , p_tbl => x_out_tbl
7142 , p_commit => p_commit
7143 );
7144 pvt_debug(g_pkg_name||'-UPDATE_RIGHT:RIGHT_UPDATE_ROW Successful',3);
7145
7146 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7147 --x_return_status := fnd_api.g_ret_sts_unexp_error;
7148 l_err_right_cnt := l_err_right_cnt + 1;
7149 ELSE
7150 --x_return_status := fnd_api.g_ret_sts_error;
7151 l_err_right_cnt := l_err_right_cnt + 1;
7152 END IF;
7153 END IF;
7154
7155 IF(p_right_tbl_create.COUNT > 0) THEN
7156
7157 pvt_debug(g_pkg_name||'-Inside CREATE_RIGHT',3);
7158 VALIDATE_RIGHT_FOR_CREATE(p_right_tbl => p_right_tbl_create
7159 ,x_tbl => x_out_tbl
7160 ,x_return_status => x_return_status
7161 );
7162 IF NVL(p_validate,'F') <>'T' and x_return_status = fnd_api.g_ret_sts_success THEN
7163 RIGHT_INSERT_ROW(p_right_tbl => p_right_tbl_create
7164 ,p_lease_id => p_lease_id
7165 ,p_lease_change_id => p_lease_change_id
7166 ,x_return_status => x_return_status
7167 ,p_tbl => x_out_tbl
7168 ,p_commit => p_commit
7169 );
7170 pvt_debug(g_pkg_name||'-CREATE_RIGHT:RIGHT_INSERT_ROW Return Status:'||l_return_status,3);
7171 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
7172 --RAISE fnd_api.g_exc_error;
7173 l_err_right_cnt := l_err_right_cnt + 1;
7174 END IF;
7175 ELSE
7176 --RAISE fnd_api.g_exc_error;
7177 l_err_right_cnt := l_err_right_cnt + 1;
7178 END IF;
7179 END IF;
7180
7181 IF(l_err_right_cnt = 0) THEN
7182 x_return_status := fnd_api.g_ret_sts_success;
7183 ELSE
7184 x_return_status := fnd_api.g_ret_sts_error;
7185 END IF;
7186
7187 EXCEPTION
7188 WHEN OTHERS THEN
7189 x_return_status := fnd_api.g_ret_sts_unexp_error;
7190 ----------------------dbms_output.put_line('UPDATION OF RIGHTS FAILED'||SQLERRM);--Rupak
7191 pvt_debug(g_pkg_name||'-UPDATE_RIGHT:Exception:'||SQLERRM,3);
7192 END UPDATE_RIGHT;
7193
7194
7195 PROCEDURE VALIDATE_OBLIGATION_FOR_CREATE(
7196 p_obligation_tbl IN OUT NOCOPY lease_obligation_tbl_type
7197 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%type
7198 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
7199 ,x_tbl OUT NOCOPY temp_tbl_type
7200 ,x_return_status IN OUT NOCOPY VARCHAR2
7201 )
7202 IS
7203 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
7204 l_index BINARY_INTEGER ;
7205 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE ;
7206 l_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE ;
7207 l_company_id NUMBER ;
7208 l_tbl_index BINARY_INTEGER ;
7209 l_tbl_flag NUMBER := 1 ;
7210 l_tbl temp_tbl_type ;
7211 l_api_name VARCHAR2(30) := 'CREATE OBLIGATION' ;
7212
7213
7214 BEGIN
7215 ----------------------dbms_output.put_line('VALIDATIONS TO CREATE OBLIGATIONS STARTED');--Rupak
7216 pvt_debug(g_pkg_name||'-Inside VALIDATE_OBLIGATION_FOR_CREATE',3);
7217 FOR l_index in p_obligation_tbl.FIRST.. p_obligation_tbl.LAST
7218 LOOP
7219 BEGIN
7220 INITIALIZE_OBLIGATIONS_REC (p_obligation_tbl(l_index),'CREATE_OBLIGATIONS', x_return_status);
7221 l_tbl_index := l_index;
7222
7223 IF (p_obligation_tbl(l_index).start_date IS NOT NULL AND p_obligation_tbl(l_index).end_date IS NOT NULL) THEN
7224 pn_lease_utils.crossval_leasedates ( p_parameter_name => l_param_obligation_date --'START AND END DATE'
7225 , p_operation => 'CREATE_OBLIGATION'
7226 , p_lease_exec_date => NULL
7227 , p_lease_comm_date => p_obligation_tbl(l_index).start_date
7228 , p_lease_term_date => p_obligation_tbl(l_index).end_date
7229 , x_return_status => x_return_status
7230 );
7231 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7232 l_tbl_flag := 0;
7233 fnd_message.set_name ('PN', 'PN_INVALID_TERMINATION_DT');
7234 fnd_message.set_token ('COMMENCEMENT_DATE',get_miss_date_decode(p_obligation_tbl(l_index).start_date));
7235 fnd_message.set_token ('TERMINATION_DATE', get_miss_date_decode(p_obligation_tbl(l_index).end_date));
7236 fnd_msg_pub.ADD;
7237 RAISE fnd_api.g_exc_error;
7238 END IF;
7239 ELSE
7240 l_tbl_flag := 0;
7241 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
7242 fnd_message.set_token ('API_NAME', l_api_name);
7243 fnd_message.set_token ('NULL_PARAM', 'START DATE END DATE NULL');
7244 fnd_msg_pub.ADD;
7245 RAISE fnd_api.g_exc_error;
7246
7247 END IF;
7248
7249 IF (p_obligation_tbl(l_index).status IS NULL AND p_obligation_tbl(l_index).status NOT IN ('A','I','n')) THEN
7250 l_tbl_flag := 0;
7251 pvt_debug(g_pkg_name||'-VALIDATE_OBLIGATION_FOR_CREATE:STATUS AND STATUS CODE:NULL',3);
7252 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
7253 fnd_message.set_token ('API_NAME', l_api_name);
7254 fnd_message.set_token ('NULL_PARAM', l_pn_status);
7255 fnd_msg_pub.ADD;
7256 RAISE fnd_api.g_exc_error;
7257 END IF;
7258
7259
7260
7261 ------------------------------------------------------------------------------------------------------------------------------------------------------
7262
7263 IF (( p_obligation_tbl(l_index).service_type IS NOT NULL OR p_obligation_tbl(l_index).service_type_lookup_code IS NOT NULL)
7264 ) THEN
7265 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_service_type
7266 , p_lookup_meaning => p_obligation_tbl(l_index).service_type
7267 , p_operation => 'CREATE_OBLIGATION'
7268 , p_lookup_type => l_pn_landlord_service_type
7269 , x_return_status => x_return_status
7270 , x_lookup_type_code => p_obligation_tbl(l_index).service_type_lookup_code
7271 );
7272 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7273 --l_error_flag:='Y';
7274 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
7275 fnd_message.set_token ('LOOKUP_TYPE', l_pn_landlord_service_type);
7276 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_obligation_tbl(l_index).service_type));
7277 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_obligation_tbl(l_index).service_type_lookup_code));
7278 fnd_msg_pub.ADD;
7279 RAISE fnd_api.g_exc_error;
7280 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7281 --l_error_flag:='Y';
7282 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
7283 fnd_message.set_token ('COLUMN', SUBSTR(l_param_service_type,3));
7284 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
7285 fnd_msg_pub.ADD;
7286 RAISE fnd_api.g_exc_unexpected_error;
7287 END IF;
7288 ELSE
7289 l_tbl_flag := 0;
7290 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
7291 fnd_message.set_token ('API_NAME', l_api_name);
7292 fnd_message.set_token ('NULL_PARAM', l_pn_landlord_service_type);
7293 fnd_msg_pub.ADD;
7294 RAISE fnd_api.g_exc_error;
7295 END IF;
7296
7297
7298 --------------------------------------------------------------------------------------------------------------------------------------------------------------
7299 IF (( p_obligation_tbl(l_index).responsibility IS NOT NULL OR p_obligation_tbl(l_index).responsibility_code IS NOT NULL)
7300 ) THEN
7301 pn_lease_utils.get_lookup_code(p_parameter_name => l_param_responsibility
7302 ,p_lookup_meaning => p_obligation_tbl(l_index).responsibility
7303 ,p_operation => 'CREATE_OBLIGATION'
7304 ,p_lookup_type => l_pn_obligation_resp_type
7305 ,x_return_status => x_return_status
7306 ,x_lookup_type_code => p_obligation_tbl(l_index).responsibility_code
7307 );
7308 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7309 --l_error_flag:='Y';
7310 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
7311 fnd_message.set_token ('LOOKUP_TYPE', l_pn_obligation_resp_type);
7312 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_obligation_tbl(l_index).responsibility));
7313 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_obligation_tbl(l_index).responsibility_code));
7314 fnd_msg_pub.ADD;
7315 RAISE fnd_api.g_exc_error;
7316 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7317 --l_error_flag:='Y';
7318 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
7319 fnd_message.set_token ('COLUMN', SUBSTR(l_param_responsibility,3));
7320 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
7321 fnd_msg_pub.ADD;
7322 RAISE fnd_api.g_exc_unexpected_error;
7323 END IF;
7324 /*ELSE
7325 l_tbl_flag := 0;
7326 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
7327 fnd_message.set_token ('API_NAME', l_api_name);
7328 fnd_message.set_token ('NULL_PARAM', l_pn_obligation_resp_type);
7329 fnd_msg_pub.ADD;
7330 RAISE fnd_api.g_exc_error;*/
7331 END IF;
7332
7333
7334 ------------------------------------------------------------------------------------------------------------------------------------------------------------
7335 IF (( p_obligation_tbl(l_index).financial_resp_party IS NOT NULL OR p_obligation_tbl(l_index).financial_resp_party_code IS NOT NULL)
7336 ) THEN
7337 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_financial_resp_party
7338 , p_lookup_meaning => p_obligation_tbl(l_index).financial_resp_party
7339 , p_operation => 'CREATE_OBLIGATION'
7340 , p_lookup_type => l_pn_obligation_fin_resp_type
7341 , x_return_status => x_return_status
7342 , x_lookup_type_code => p_obligation_tbl(l_index).financial_resp_party_code
7343 );
7344 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7345 --l_error_flag:='Y';
7346 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
7347 fnd_message.set_token ('LOOKUP_TYPE', l_pn_obligation_fin_resp_type);
7348 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_obligation_tbl(l_index).financial_resp_party));
7349 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_obligation_tbl(l_index).financial_resp_party_code));
7350 fnd_msg_pub.ADD;
7351 RAISE fnd_api.g_exc_error;
7352 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7353 --l_error_flag:='Y';
7354 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
7355 fnd_message.set_token ('COLUMN', SUBSTR(l_param_financial_resp_party,3));
7356 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
7357 fnd_msg_pub.ADD;
7358 RAISE fnd_api.g_exc_unexpected_error;
7359 END IF;
7360 /*ELSE
7361 l_tbl_flag := 0;
7362 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
7363 fnd_message.set_token ('API_NAME', l_api_name);
7364 fnd_message.set_token ('NULL_PARAM', l_pn_obligation_fin_resp_type);
7365 fnd_msg_pub.ADD;
7366 RAISE fnd_api.g_exc_error;*/
7367 END IF;
7368
7369
7370
7371 ----------------------------------------------------------------------------------------------------------------------------------------
7372
7373 IF (p_obligation_tbl(l_index).company_name IS NOT NULL OR p_obligation_tbl(l_index).company_id IS NOT NULL) THEN
7374 pn_lease_utils.validate_company_id(p_company_name => p_obligation_tbl(l_index).company_name
7375 , x_company_id => p_obligation_tbl(l_index).company_id
7376 , x_return_status => x_return_status
7377 );
7378 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7379 --l_error_flag:='Y';
7380 fnd_message.set_name ('PN', 'PN_INVALID_COMPANY');
7381 fnd_message.set_token ('COMPANY_NAME', get_miss_char_decode(p_obligation_tbl(l_index).company_name));
7382 fnd_message.set_token ('COMPANY_ID', get_miss_num_decode(p_obligation_tbl(l_index).company_id));
7383 fnd_msg_pub.ADD;
7384 --p_lease_contacts_tbl (i).error_flag := 'Y';
7385 RAISE fnd_api.g_exc_error;
7386 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7387 --l_error_flag:='Y';
7388 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
7389 fnd_message.set_token ('COLUMN', SUBSTR(l_param_company,3));
7390 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
7391 fnd_msg_pub.ADD;
7392 RAISE fnd_api.g_exc_unexpected_error;
7393 END IF;
7394 /*ELSE
7395 l_tbl_flag := 0;
7396 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
7397 fnd_message.set_token ('API_NAME', l_api_name);
7398 fnd_message.set_token ('NULL_PARAM', l_param_company);
7399 fnd_msg_pub.ADD;
7400 RAISE fnd_api.g_exc_error;*/
7401 END IF;
7402
7403
7404 --------------------------------------------------------------------------------------------------------------------------------------------------------------
7405 -- dff validations
7406 /* IF NOT ( (p_obligation_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char)
7407 AND (p_obligation_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char)
7408 AND (p_obligation_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char)
7409 AND (p_obligation_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char)
7410 AND (p_obligation_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char)
7411 AND (p_obligation_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char)
7412 AND (p_obligation_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char)
7413 AND (p_obligation_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char)
7414 AND (p_obligation_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char)
7415 AND (p_obligation_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char)
7416 AND (p_obligation_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char)
7417 AND (p_obligation_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char)
7418 AND (p_obligation_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char)
7419 AND (p_obligation_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char)
7420 AND (p_obligation_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char)
7421 AND (p_obligation_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char)
7422 ) THEN*/
7423 IF (get_attribute_status('PN_LANDLORD_SERVICES') > 0) THEN
7424 /*get_attribute_mandatory_status('PN_LANDLORD_SERVICES'
7425 ,p_obligation_tbl(l_index).attribute1
7426 ,p_obligation_tbl(l_index).attribute2
7427 ,p_obligation_tbl(l_index).attribute3
7428 ,p_obligation_tbl(l_index).attribute4
7429 ,p_obligation_tbl(l_index).attribute5
7430 ,p_obligation_tbl(l_index).attribute6
7431 ,p_obligation_tbl(l_index).attribute7
7432 ,p_obligation_tbl(l_index).attribute8
7433 ,p_obligation_tbl(l_index).attribute9
7434 ,p_obligation_tbl(l_index).attribute10
7435 ,p_obligation_tbl(l_index).attribute11
7436 ,p_obligation_tbl(l_index).attribute12
7437 ,p_obligation_tbl(l_index).attribute13
7438 ,p_obligation_tbl(l_index).attribute14
7439 ,p_obligation_tbl(l_index).attribute15
7440 ,x_return_status
7441 );
7442 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
7443 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
7444 fnd_message.set_token ('API_NAME', l_api_name);
7445 fnd_message.set_token ('NULL_PARAM','Required attribute in Obligations is NULL');
7446 fnd_msg_pub.ADD;
7447 RAISE fnd_api.g_exc_error;
7448 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7449 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
7450 fnd_message.set_token ('API_NAME', l_api_name);
7451 fnd_message.set_token ('NULL_PARAM', 'Required attribute in Obligations is NULL');
7452 fnd_msg_pub.ADD;
7453 RAISE fnd_api.g_exc_unexpected_error;
7454 ELSE*/
7455 IF NOT ((p_obligation_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute_category IS NULL)
7456 AND (p_obligation_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute1 IS NULL)
7457 AND (p_obligation_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute2 IS NULL)
7458 AND (p_obligation_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute3 IS NULL)
7459 AND (p_obligation_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute4 IS NULL)
7460 AND (p_obligation_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute5 IS NULL)
7461 AND (p_obligation_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute6 IS NULL)
7462 AND (p_obligation_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute7 IS NULL)
7463 AND (p_obligation_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute8 IS NULL)
7464 AND (p_obligation_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute9 IS NULL)
7465 AND (p_obligation_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute10 IS NULL)
7466 AND (p_obligation_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute11 IS NULL)
7467 AND (p_obligation_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute12 IS NULL)
7468 AND (p_obligation_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute13 IS NULL)
7469 AND (p_obligation_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute14 IS NULL)
7470 AND (p_obligation_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char OR p_obligation_tbl(l_index).attribute15 IS NULL)
7471 ) THEN
7472 PN_LEASE_UTILS.validate_desc_flex (
7473 p_api_name => 'PN_LANDLORD_SERVICES'--l_api_name_full
7474 , p_application_short_name => 'PN'
7475 , p_desc_flex_name => 'PN_LANDLORD_SERVICES'
7476 , p_desc_segment1 => p_obligation_tbl(l_index).attribute1
7477 , p_desc_segment2 => p_obligation_tbl(l_index).attribute2
7478 , p_desc_segment3 => p_obligation_tbl(l_index).attribute3
7479 , p_desc_segment4 => p_obligation_tbl(l_index).attribute4
7480 , p_desc_segment5 => p_obligation_tbl(l_index).attribute5
7481 , p_desc_segment6 => p_obligation_tbl(l_index).attribute6
7482 , p_desc_segment7 => p_obligation_tbl(l_index).attribute7
7483 , p_desc_segment8 => p_obligation_tbl(l_index).attribute8
7484 , p_desc_segment9 => p_obligation_tbl(l_index).attribute9
7485 , p_desc_segment10 =>p_obligation_tbl(l_index).attribute10
7486 , p_desc_segment11 =>p_obligation_tbl(l_index).attribute11
7487 , p_desc_segment12 =>p_obligation_tbl(l_index).attribute12
7488 , p_desc_segment13 =>p_obligation_tbl(l_index).attribute13
7489 , p_desc_segment14 =>p_obligation_tbl(l_index).attribute14
7490 , p_desc_segment15 =>p_obligation_tbl(l_index).attribute15
7491 , p_desc_context => p_obligation_tbl(l_index).attribute_category
7492 , p_resp_appl_id => fnd_global.resp_appl_id
7493 , p_resp_id => fnd_global.resp_id
7494 , p_return_status => x_return_status
7495 );
7496 ----------------------dbms_output.put_line('dff validated');
7497 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7498 l_tbl_flag := 0;
7499 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
7500 fnd_message.set_token ('COLUMN', 'PN_LANDLORD_SERVICES_DESC_FIELDS');
7501 fnd_message.set_token ('P_TEXT', 'PN_LANDLORD_SERVICES'|| '-'|| SQLERRM);
7502 fnd_msg_pub.ADD;
7503 RAISE fnd_api.g_exc_error;
7504 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7505 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
7506 fnd_message.set_token ('COLUMN', 'PN_LANDLORD_SERVICES_DESC_FIELDS');
7507 fnd_message.set_token ('P_TEXT', 'PN_LANDLORD_SERVICES'|| '-'|| SQLERRM);
7508 fnd_msg_pub.ADD;
7509 RAISE fnd_api.g_exc_unexpected_error;
7510 END IF;
7511 END IF;
7512 END IF;
7513 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
7514 EXCEPTION
7515 WHEN fnd_api.g_exc_error THEN
7516 pvt_debug(g_pkg_name||'-VALIDATE_OBLIGATION_FOR_CREATE:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
7517 WHEN OTHERS THEN
7518 pvt_debug(g_pkg_name||'-VALIDATE_OBLIGATION_FOR_CREATE:LOOOPING:EXCEPTION:'||SQLERRM,3);
7519 END;
7520 END LOOP;
7521 x_tbl := l_tbl;
7522 x_return_status := fnd_api.g_ret_sts_success;
7523
7524 EXCEPTION
7525 WHEN fnd_api.g_exc_error THEN
7526 x_return_status := fnd_api.g_ret_sts_error;
7527 ----------------------dbms_output.put_line('OBLIGATION VALIDATION FAILED');
7528 WHEN OTHERS THEN
7529 x_return_status := fnd_api.g_ret_sts_unexp_error;
7530 pvt_debug(g_pkg_name||'-VALIDATE_OBLIGATION_FOR_CREATE:OTHERS:EXCEPTION:'||SQLERRM,3);
7531 END VALIDATE_OBLIGATION_FOR_CREATE;
7532
7533 PROCEDURE OBLIGATION_INSERT_ROW(p_obligation_tbl IN OUT NOCOPY LEASE_OBLIGATION_TBL_TYPE
7534 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
7535 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.LEASE_CHANGE_ID%TYPE
7536 ,x_return_status IN OUT NOCOPY VARCHAR2
7537 ,p_tbl IN OUT NOCOPY TEMP_TBL_TYPE
7538 ,p_commit IN VARCHAR2
7539 )
7540 IS
7541 --l_index NUMBER;
7542 l_row_id VARCHAR2(100) ;
7543 l_landlord_service_id PN_LANDLORD_SERVICES.LANDLORD_SERVICE_ID%TYPE;
7544 BEGIN
7545
7546 pvt_debug(g_pkg_name||'-Inside OBLIGATION_INSERT_ROW',3);
7547 ----------------------dbms_output.put_line('In OBLIGATION_INSERT_ROW:P_LEASE_ID'||p_lease_id);--Rupak
7548
7549 ----------------------dbms_output.put_line('In OBLIGATION_INSERT_ROW:p_lease_change_id'||p_lease_change_id);--Rupak
7550 ----------------------dbms_output.put_line('In OBLIGATION_INSERT_ROW:p_obligation_tbl'||p_obligation_tbl.FIRST);--Rupak
7551 ----------------------dbms_output.put_line('In OBLIGATION_INSERT_ROW:p_obligation_tbl'||p_obligation_tbl.LAST);--Rupak
7552 ----------------------dbms_output.put_line('In OBLIGATION_INSERT_ROW:p_obligation_tbl(status)'||p_obligation_tbl(1).STATUS);--Rupak
7553 ----------------------dbms_output.put_line('In OBLIGATION_INSERT_ROW:p_obligation_tbl(service_type)'||p_obligation_tbl(1).service_type);--Rupak
7554 --IF p_obligation_tbl.count > 0 THEN
7555 ----------------------dbms_output.put_line('Inside If Count '||p_obligation_tbl.count);--Rupak
7556 for l_index in p_obligation_tbl.FIRST..p_obligation_tbl.LAST LOOP
7557 --l_index := 1;
7558 ----------------------dbms_output.put_line('In OBLIGATION_INSERT_ROW:p_obligation_tblIN FOR OUTSIDE IF'||p_obligation_tbl(l_index).temp_flag);--Rupak
7559 IF p_tbl(l_index).temp_flag = 1 THEN
7560 ----------------------dbms_output.put_line ('INSERT ROW INTO PN_LANDLORD_SERVICES_ALL STARTED FOR OBLIGATIONS');--Rupak
7561 pvt_debug(g_pkg_name||'-OBLIGATION_INSERT_ROW:Calling PN_LANDLORD_SERVICES_PKG.INSERT_ROW',3);
7562 l_landlord_service_id := NULL;
7563 PN_LANDLORD_SERVICES_PKG.insert_row(
7564 X_ROWID => l_row_id,
7565 X_LANDLORD_SERVICE_ID => l_landlord_service_id,
7566 X_LEASE_ID => p_lease_id,
7567 X_LEASE_CHANGE_ID => p_lease_change_id,
7568 X_SERVICE_TYPE_LOOKUP_CODE => p_obligation_tbl(l_index).service_type_lookup_code,
7569 X_START_DATE => p_obligation_tbl(l_index).start_date,
7570 X_END_DATE => p_obligation_tbl(l_index).end_date,
7571 X_STATUS => p_obligation_tbl(l_index).status,
7572 X_ATTRIBUTE_CATEGORY => p_obligation_tbl(l_index).attribute_category,
7573 X_ATTRIBUTE1 => p_obligation_tbl(l_index).attribute1,
7574 X_ATTRIBUTE2 => p_obligation_tbl(l_index).attribute1,
7575 X_ATTRIBUTE3 => p_obligation_tbl(l_index).attribute1,
7576 X_ATTRIBUTE4 => p_obligation_tbl(l_index).attribute1,
7577 X_ATTRIBUTE5 => p_obligation_tbl(l_index).attribute1,
7578 X_ATTRIBUTE6 => p_obligation_tbl(l_index).attribute1,
7579 X_ATTRIBUTE7 => p_obligation_tbl(l_index).attribute1,
7580 X_ATTRIBUTE8 => p_obligation_tbl(l_index).attribute1,
7581 X_ATTRIBUTE9 => p_obligation_tbl(l_index).attribute1,
7582 X_ATTRIBUTE10 => p_obligation_tbl(l_index).attribute1,
7583 X_ATTRIBUTE11 => p_obligation_tbl(l_index).attribute1,
7584 X_ATTRIBUTE12 => p_obligation_tbl(l_index).attribute1,
7585 X_ATTRIBUTE13 => p_obligation_tbl(l_index).attribute1,
7586 X_ATTRIBUTE14 => p_obligation_tbl(l_index).attribute1,
7587 X_ATTRIBUTE15 => p_obligation_tbl(l_index).attribute1,
7588 X_CREATION_DATE => sysdate,
7589 X_CREATED_BY => fnd_global.user_id,
7590 X_LAST_UPDATE_DATE => sysdate,
7591 X_LAST_UPDATED_BY => fnd_global.user_id,
7592 X_LAST_UPDATE_LOGIN => fnd_global.user_id,
7593 X_OBLIGATION_NUM => p_obligation_tbl(l_index).obligation_num,
7594 X_RESPONSIBILITY_CODE => p_obligation_tbl(l_index).responsibility_code,
7595 X_COMMON_AREA_RESP => p_obligation_tbl(l_index).common_area_resp,
7596 X_FINANCIAL_RESP_PARTY_CODE => p_obligation_tbl(l_index).financial_resp_party_code,
7597 X_FINANCIAL_PCT_RESP => p_obligation_tbl(l_index).financial_pct_resp,
7598 X_RESPONSIBILITY_MAINT => p_obligation_tbl(l_index).responsibility_maint,
7599 X_COMPANY_ID => p_obligation_tbl(l_index).company_id,
7600 X_OBLIGATION_REFERENCE => p_obligation_tbl(l_index).obligation_reference,
7601 X_OBLIGATION_COMMENTS => p_obligation_tbl(l_index).obligation_comments,
7602 X_org_id => fnd_global.org_id
7603 );
7604 pvt_debug(g_pkg_name||'-OBLIGATION_INSERT_ROW:PN_LANDLORD_SERVICES_PKG.INSERT_ROW Successful',3);
7605 ----------------------dbms_output.put_line (' RECORD : '||l_index|| ' WITH landlord_service_id: '||l_landlord_service_id||' INSERTED');
7606 p_obligation_tbl(l_index).landlord_service_id := p_obligation_tbl(l_index).landlord_service_id;
7607 END IF;
7608
7609 END loop;
7610 -- END IF;
7611 EXCEPTION
7612 WHEN OTHERS THEN
7613 x_return_status := fnd_api.g_ret_sts_unexp_error;
7614 ----------------------dbms_output.put_line('INSERT INTO OBLIGATIONS FAILED') ;
7615 ----------------------dbms_output.put_line('In OBLIGATION INSERT ROW PROC:sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);--Rupak
7616 pvt_debug(g_pkg_name||'-OBLIGATION_INSERT_ROW:Exception:PN_LANDLORD_SERVICES_PKG.INSERT_ROW',3);
7617 END OBLIGATION_INSERT_ROW;
7618
7619 PROCEDURE CREATE_OBLIGATION (
7620 p_lease_id IN NUMBER
7621 , p_lease_change_id IN NUMBER
7622 , p_commit IN VARCHAR2
7623 , p_validate IN VARCHAR2
7624 , p_obligation_tbl IN OUT NOCOPY lease_obligation_tbl_type
7625 , x_return_status OUT NOCOPY VARCHAR2
7626 -- , x_msg_count OUT NUMBER
7627 -- , x_msg_data OUT VARCHAR2
7628 )
7629 IS
7630 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
7631 l_msg_count NUMBER ;
7632 l_msg_data VARCHAR2(2000) ;
7633 x_out_tbl temp_tbl_type ;
7634 BEGIN
7635 ----------------------dbms_output.put_line('In Create Obligation:PVT');--Rupak
7636 pvt_debug(g_pkg_name||'-Inside CREATE_OBLIGATION',3);
7637 VALIDATE_OBLIGATION_FOR_CREATE(
7638 p_obligation_tbl => p_obligation_tbl
7639 ,p_lease_id => p_lease_id
7640 ,p_lease_change_id => p_lease_change_id
7641 ,x_tbl => x_out_tbl
7642 ,x_return_status => x_return_status
7643 );
7644 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
7645 OBLIGATION_INSERT_ROW(
7646 p_obligation_tbl => p_obligation_tbl
7647 ,p_lease_id => p_lease_id
7648 ,p_lease_change_id => p_lease_change_id
7649 ,x_return_status => x_return_status
7650 ,p_tbl => x_out_tbl
7651 ,p_commit => p_commit
7652 );
7653 ELSE
7654 RAISE fnd_api.g_exc_error;
7655 END IF;
7656 ----------------------dbms_output.put_line('In Create Obligation:PVT After OBLIGATION_INSERT_ROW');--Rupak
7657 pvt_debug(g_pkg_name||'-CREATE_OBLIGATION:VALIDATE_OBLIGATION_FOR_CREATE Return Status:'||l_return_status,3);
7658 EXCEPTION
7659 WHEN fnd_api.g_exc_error THEN
7660 x_return_status := fnd_api.g_ret_sts_error;
7661 WHEN OTHERS THEN
7662 x_return_status := fnd_api.g_ret_sts_unexp_error;
7663 ----------------------dbms_output.put_line('CREATION OF RIGHTS FAILED');
7664 pvt_debug(g_pkg_name||'-CREATE_OBLIGATION:Exception'||SQLERRM,3);
7665 END CREATE_OBLIGATION;
7666
7667
7668 PROCEDURE VALIDATE_OBLIGATION_FOR_UPDATE(
7669 p_obligation_tbl IN OUT NOCOPY lease_obligation_tbl_type
7670 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
7671 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.LEASE_CHANGE_ID%TYPE
7672 ,x_tbl OUT NOCOPY temp_tbl_type
7673 ,x_return_status IN OUT NOCOPY VARCHAR2
7674 )
7675 IS
7676 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
7677 l_index BINARY_INTEGER;
7678 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
7679 l_landlord_service_id PN_LANDLORD_SERVICES_ALL.LANDLORD_SERVICE_ID%TYPE;
7680 l_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE;
7681 l_company_id PN_LANDLORD_SERVICES_ALL.company_id%type ;
7682 l_cur_id NUMBER;
7683 l_tbl_index BINARY_INTEGER;
7684 l_tbl_flag NUMBER;
7685 l_tbl temp_tbl_type;
7686 l_api_name VARCHAR2(30) := 'UPDATE_OBLIGATIONS';
7687 CURSOR c_oblg (
7688 p_landlord_service_id NUMBER
7689 )
7690 IS
7691 SELECT landlord_service_id
7692 , lease_id
7693 , lease_change_id
7694 , status
7695 , service_type_lookup_code
7696 , start_date
7697 , end_date
7698 , obligation_comments
7699 , obligation_reference
7700 , company_id
7701 , responsibility_maint
7702 , financial_pct_resp
7703 , financial_resp_party_code
7704 , common_area_resp
7705 , responsibility_code
7706 , org_id
7707 , obligation_num
7708 , attribute_category
7709 , attribute1
7710 , attribute2
7711 , attribute3
7712 , attribute4
7713 , attribute5
7714 , attribute6
7715 , attribute7
7716 , attribute8
7717 , attribute9
7718 , attribute10
7719 , attribute11
7720 , attribute12
7721 , attribute13
7722 , attribute14
7723 , attribute15
7724 FROM pn_landlord_services_all
7725 WHERE landlord_service_id = p_landlord_service_id;
7726 lcu_oblg_rec c_oblg%ROWTYPE;
7727 BEGIN
7728 l_return_status := fnd_api.g_ret_sts_success ;
7729
7730 pvt_debug(g_pkg_name||'-Inside VALIDATE_OBLIGATION_FOR_UPDATE',3);
7731 for l_index in p_obligation_tbl.FIRST..p_obligation_tbl.LAST LOOP
7732 BEGIN
7733 l_tbl_index := l_index;
7734
7735 --INITIALIZE_OBLIGATIONS_REC (p_obligation_tbl(l_index),'UPDATE_OBLIGATIONS', x_return_status);
7736 IF (p_obligation_tbl(l_index).landlord_service_id IS NULL OR p_obligation_tbl(l_index).landlord_service_id = pn_lease_utils.g_pn_miss_num)THEN
7737 l_tbl_flag := 1;
7738 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
7739 fnd_message.set_token ('API_NAME', l_api_name);
7740 fnd_message.set_token ('NULL_PARAM', 'OBLIATION_ID NULL');
7741 fnd_msg_pub.ADD;
7742 RAISE fnd_api.g_exc_error;
7743 pvt_debug(g_pkg_name||'-VALIDATE_OBLIGATION_FOR_UPDATE:landlord_service_id IS NULL',3);
7744 ELSE
7745 l_tbl_flag := 2;
7746 l_lookup_code := NULL;
7747 l_cur_id := p_obligation_tbl(l_index).landlord_service_id;
7748 OPEN c_oblg(l_cur_id);
7749
7750 FETCH c_oblg INTO lcu_oblg_rec;
7751
7752
7753 IF (p_obligation_tbl(l_index).obligation_num = pn_lease_utils.g_pn_miss_char) THEN
7754 p_obligation_tbl(l_index).obligation_num := lcu_oblg_rec.obligation_num ;
7755 END IF;
7756
7757 IF (p_obligation_tbl(l_index).obligation_comments = pn_lease_utils.g_pn_miss_char) THEN
7758 p_obligation_tbl(l_index).obligation_comments := lcu_oblg_rec.obligation_comments;
7759 --------------------dbms_output.put_line('OBLIGATION COMMENTS VALIDATED IN EXISTING RECORD');
7760 END IF;
7761 IF ( p_obligation_tbl(l_index).obligation_reference = pn_lease_utils.g_pn_miss_char) THEN
7762 p_obligation_tbl(l_index).obligation_reference := lcu_oblg_rec.obligation_reference;
7763 --------------------dbms_output.put_line('OBLIGATION REFERENCE VALIDATED IN EXISTING RECORD');
7764 END IF;
7765
7766 IF (p_obligation_tbl(l_index).responsibility_maint = pn_lease_utils.g_pn_miss_char) THEN
7767 p_obligation_tbl(l_index).responsibility_maint := lcu_oblg_rec.responsibility_maint;
7768 END IF;
7769 IF(p_obligation_tbl(l_index).common_area_resp = pn_lease_utils.g_pn_miss_char) THEN
7770 p_obligation_tbl(l_index).common_area_resp := lcu_oblg_rec.common_area_resp;
7771 END IF;
7772
7773 IF(p_obligation_tbl(l_index).financial_pct_resp = pn_lease_utils.g_pn_miss_char) THEN
7774 p_obligation_tbl(l_index).financial_pct_resp := lcu_oblg_rec.financial_pct_resp;
7775 --------------------dbms_output.put_line('FINANCIAL PCT RESP VALIDATED IN EXISTING RECORD');
7776 END IF;
7777
7778 ----------------------------------------------------------------------------------------------------------------------
7779 IF ( (p_obligation_tbl(l_index).start_date IS NOT NULL AND p_obligation_tbl(l_index).start_date <> pn_lease_utils.g_pn_miss_date)
7780 AND(p_obligation_tbl(l_index).end_date IS NOT NULL AND p_obligation_tbl(l_index).end_date <> pn_lease_utils.g_pn_miss_date)
7781 ) THEN
7782 pn_lease_utils.crossval_leasedates ( p_parameter_name => l_param_obligation_date --'START AND END DATE'
7783 , p_operation => 'UPADATE_OBLIGATION'
7784 , p_lease_exec_date => NULL
7785 , p_lease_comm_date => p_obligation_tbl(l_index).start_date
7786 , p_lease_term_date => p_obligation_tbl(l_index).end_date
7787 , x_return_status => x_return_status
7788 );
7789 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7790 l_tbl_flag := 0;
7791 fnd_message.set_name ('PN', 'PN_INVALID_TERMINATION_DT');
7792 fnd_message.set_token ('COMMENCEMENT_DATE',get_miss_date_decode(p_obligation_tbl(l_index).start_date));
7793 fnd_message.set_token ('TERMINATION_DATE', get_miss_date_decode(p_obligation_tbl(l_index).end_date));
7794 fnd_msg_pub.ADD;
7795 RAISE fnd_api.g_exc_error;
7796 END IF;
7797 ELSE
7798 p_obligation_tbl(l_index).start_date := lcu_oblg_rec.start_date;
7799 p_obligation_tbl(l_index).end_date := lcu_oblg_rec.end_date;
7800 END IF;
7801
7802 --------------------------------------------------------------------------------------------------------------------------------------
7803 IF( (p_obligation_tbl(l_index).company_name IS NOT NULL AND p_obligation_tbl(l_index).company_name <> pn_lease_utils.g_pn_miss_char)
7804 OR
7805 (p_obligation_tbl(l_index).company_id IS NOT NULL AND p_obligation_tbl(l_index).company_id <> pn_lease_utils.g_pn_miss_num)
7806 ) THEN
7807 --------------------dbms_output.put_line (' COMPANY NAME AND COMPANY ID ARE NOT NULL');
7808 --------------------dbms_output.put_line (' COMPANY NAME :'||p_obligation_tbl(l_index).company_name);
7809 --------------------dbms_output.put_line (' COMPANY ID :'||p_obligation_tbl(l_index).company_id);
7810
7811 PN_LEASE_UTILS.VALIDATE_COMPANY_ID ( p_company_name => p_obligation_tbl(l_index).company_name
7812 , x_company_id => p_obligation_tbl(l_index).company_id
7813 , x_return_status => x_return_status
7814 );
7815 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7816 RAISE fnd_api.g_exc_error;
7817 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7818 RAISE fnd_api.g_exc_unexpected_error;
7819 END IF;
7820 ELSIF (p_obligation_tbl(l_index).company_name IS NULL OR p_obligation_tbl(l_index).company_id IS NULL) THEN
7821 p_obligation_tbl(l_index).company_id := NULL;
7822 ELSE
7823 p_obligation_tbl(l_index).company_id := lcu_oblg_rec.company_id;
7824 END IF;
7825
7826 ---------------------------------------------------------------------------------------------------------------------------
7827 /*IF p_obligation_tbl(l_index).company_id IS NULL AND p_obligation_tbl(l_index).company_name IS NULL THEN
7828 p_obligation_tbl(l_index).company_id := lcu_oblg_rec.company_id;
7829 END IF;*/
7830 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
7831 IF(p_obligation_tbl(l_index).status = PN_LEASE_UTILS.g_pn_miss_char OR p_obligation_tbl(l_index).status NOT IN ('A','I','n'))THEN
7832 p_obligation_tbl(l_index).status:= lcu_oblg_rec.status;
7833 ELSIF(p_obligation_tbl(l_index).status IS NULL) THEN
7834 p_obligation_tbl(l_index).status := 'I';
7835 END IF;
7836 --------------------------------------------------------------------------------------------------------------------------------------------------------------
7837
7838
7839 IF ( (p_obligation_tbl(l_index).service_type <> pn_lease_utils.g_pn_miss_char AND p_obligation_tbl(l_index).service_type IS NOT NULL)
7840 OR (p_obligation_tbl(l_index).service_type_lookup_code <> pn_lease_utils.g_pn_miss_char AND p_obligation_tbl(l_index).service_type_lookup_code IS NOT NULL)
7841 ) THEN
7842 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_service_type
7843 , p_lookup_meaning => p_obligation_tbl(l_index).service_type
7844 , p_operation => 'UPDATE_OBLIGATION'
7845 , p_lookup_type => l_pn_landlord_service_type
7846 , x_return_status => x_return_status
7847 , x_lookup_type_code => p_obligation_tbl(l_index).service_type_lookup_code
7848 );
7849 ------------------dbms_output.put_line('In Resp:1'||x_return_status);
7850 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7851 --l_error_flag:='Y';
7852 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
7853 fnd_message.set_token ('LOOKUP_TYPE', l_pn_landlord_service_type);
7854 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_obligation_tbl(l_index).service_type));
7855 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_obligation_tbl(l_index).service_type_lookup_code));
7856 fnd_msg_pub.ADD;
7857 RAISE fnd_api.g_exc_error;
7858 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7859 --l_error_flag:='Y';
7860 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
7861 fnd_message.set_token ('COLUMN', SUBSTR(l_param_service_type,3));
7862 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
7863 fnd_msg_pub.ADD;
7864 RAISE fnd_api.g_exc_unexpected_error;
7865 END IF;
7866 ELSIF(p_obligation_tbl(l_index).service_type IS NULL OR p_obligation_tbl(l_index).service_type_lookup_code IS NULL) THEN
7867 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
7868 fnd_message.set_token ('API_NAME', l_api_name);
7869 fnd_message.set_token ('NULL_PARAM', 'SERVICE_TYPE AND SERVICE_TYPE_LOOKUP_CODE CANNOT BE NULL');
7870 fnd_msg_pub.ADD;
7871 RAISE fnd_api.g_exc_error;
7872 ELSE
7873 p_obligation_tbl(l_index).service_type_lookup_code := lcu_oblg_rec.service_type_lookup_code;
7874 END IF;
7875
7876 --------------------------------------------------------------------------------------------------------------
7877 IF ( ( p_obligation_tbl(l_index).responsibility IS NOT NULL AND p_obligation_tbl(l_index).responsibility <> pn_lease_utils.g_pn_miss_char)
7878 OR (p_obligation_tbl(l_index).responsibility_code IS NOT NULL AND p_obligation_tbl(l_index).responsibility_code <> pn_lease_utils.g_pn_miss_char)
7879 ) THEN
7880 pn_lease_utils.get_lookup_code(p_parameter_name => l_param_responsibility
7881 ,p_lookup_meaning => p_obligation_tbl(l_index).responsibility
7882 ,p_operation => 'UPDATE_OBLIGATION'
7883 ,p_lookup_type => l_pn_obligation_resp_type
7884 ,x_return_status => x_return_status
7885 ,x_lookup_type_code => p_obligation_tbl(l_index).responsibility_code
7886 );
7887 ----------------dbms_output.put_line('In Resp:123'||x_return_status);
7888 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7889 --l_error_flag:='Y';
7890 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
7891 fnd_message.set_token ('LOOKUP_TYPE', l_pn_obligation_resp_type);
7892 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_obligation_tbl(l_index).responsibility));
7893 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_obligation_tbl(l_index).responsibility_code));
7894 fnd_msg_pub.ADD;
7895 RAISE fnd_api.g_exc_error;
7896 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7897 --l_error_flag:='Y';
7898 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
7899 fnd_message.set_token ('COLUMN', SUBSTR(l_param_responsibility,3));
7900 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
7901 fnd_msg_pub.ADD;
7902 RAISE fnd_api.g_exc_unexpected_error;
7903 END IF;
7904 ELSIF(p_obligation_tbl(l_index).responsibility IS NULL OR p_obligation_tbl(l_index).responsibility_code IS NULL) THEN
7905 p_obligation_tbl(l_index).responsibility_code := NULL;
7906 ELSE
7907 p_obligation_tbl(l_index).responsibility_code := lcu_oblg_rec.responsibility_code;
7908 END IF;
7909
7910
7911 -------------------------------------------------------------------------------------------------------------------------------------------------------------------
7912 IF ( ( p_obligation_tbl(l_index).financial_resp_party IS NOT NULL AND p_obligation_tbl(l_index).financial_resp_party <>pn_lease_utils.g_pn_miss_char)
7913 OR ( p_obligation_tbl(l_index).financial_resp_party_code IS NOT NULL AND p_obligation_tbl(l_index).financial_resp_party_code <>pn_lease_utils.g_pn_miss_char)
7914 ) THEN
7915 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_financial_resp_party
7916 , p_lookup_meaning => p_obligation_tbl(l_index).financial_resp_party
7917 , p_operation => 'UPDATE_OBLIGATION'
7918 , p_lookup_type => l_pn_obligation_fin_resp_type
7919 , x_return_status => x_return_status
7920 , x_lookup_type_code => p_obligation_tbl(l_index).financial_resp_party_code
7921 );
7922 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
7923 --l_error_flag:='Y';
7924 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
7925 fnd_message.set_token ('LOOKUP_TYPE', l_pn_obligation_fin_resp_type);
7926 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_obligation_tbl(l_index).financial_resp_party));
7927 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_obligation_tbl(l_index).financial_resp_party_code));
7928 fnd_msg_pub.ADD;
7929 RAISE fnd_api.g_exc_error;
7930 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
7931 --l_error_flag:='Y';
7932 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
7933 fnd_message.set_token ('COLUMN', SUBSTR(l_param_financial_resp_party,3));
7934 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
7935 fnd_msg_pub.ADD;
7936 RAISE fnd_api.g_exc_unexpected_error;
7937 END IF;
7938 ELSIF(p_obligation_tbl(l_index).financial_resp_party IS NULL OR p_obligation_tbl(l_index).financial_resp_party_code IS NULL) THEN
7939 p_obligation_tbl(l_index).financial_resp_party_code := NULL;
7940 ELSE
7941 p_obligation_tbl(l_index).financial_resp_party_code := lcu_oblg_rec.financial_resp_party_code;
7942 END IF;
7943
7944 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
7945 /* IF NOT ( (p_obligation_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char)
7946 AND (p_obligation_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char)
7947 AND (p_obligation_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char)
7948 AND (p_obligation_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char)
7949 AND (p_obligation_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char)
7950 AND (p_obligation_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char)
7951 AND (p_obligation_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char)
7952 AND (p_obligation_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char)
7953 AND (p_obligation_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char)
7954 AND (p_obligation_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char)
7955 AND (p_obligation_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char)
7956 AND (p_obligation_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char)
7957 AND (p_obligation_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char)
7958 AND (p_obligation_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char)
7959 AND (p_obligation_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char)
7960 AND (p_obligation_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char)
7961 ) THEN*/
7962 IF (p_obligation_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char) THEN
7963 p_obligation_tbl(l_index).attribute_category := lcu_oblg_rec.attribute_category;
7964 ELSIF(p_obligation_tbl(l_index).attribute_category IS NULL) THEN
7965 p_obligation_tbl(l_index).attribute1 := NULL;
7966 END IF;
7967 IF (p_obligation_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char) THEN
7968 p_obligation_tbl(l_index).attribute1 := lcu_oblg_rec.attribute1;
7969 ELSIF(p_obligation_tbl(l_index).attribute1 IS NULL) THEN
7970 p_obligation_tbl(l_index).attribute1 := NULL;
7971 END IF;
7972
7973 IF (p_obligation_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char) THEN
7974 p_obligation_tbl(l_index).attribute2 := lcu_oblg_rec.attribute2;
7975 ELSIF(p_obligation_tbl(l_index).attribute2 IS NULL) THEN
7976 p_obligation_tbl(l_index).attribute2 := NULL;
7977 END IF;
7978 IF (p_obligation_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char) THEN
7979 p_obligation_tbl(l_index).attribute3 := lcu_oblg_rec.attribute3;
7980 ELSIF(p_obligation_tbl(l_index).attribute3 IS NULL) THEN
7981 p_obligation_tbl(l_index).attribute3 := NULL;
7982 END IF;
7983 IF (p_obligation_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char) THEN
7984 p_obligation_tbl(l_index).attribute4 := lcu_oblg_rec.attribute4;
7985 ELSIF(p_obligation_tbl(l_index).attribute4 IS NULL) THEN
7986 p_obligation_tbl(l_index).attribute4 := NULL;
7987 END IF;
7988 IF (p_obligation_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char) THEN
7989 p_obligation_tbl(l_index).attribute5 := lcu_oblg_rec.attribute5;
7990 ELSIF(p_obligation_tbl(l_index).attribute5 IS NULL) THEN
7991 p_obligation_tbl(l_index).attribute5 := NULL;
7992 END IF;
7993 IF (p_obligation_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char) THEN
7994 p_obligation_tbl(l_index).attribute6 := lcu_oblg_rec.attribute6;
7995 ELSIF(p_obligation_tbl(l_index).attribute6 IS NULL) THEN
7996 p_obligation_tbl(l_index).attribute6 := NULL;
7997 END IF;
7998 IF (p_obligation_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char) THEN
7999 p_obligation_tbl(l_index).attribute7 := lcu_oblg_rec.attribute7;
8000 ELSIF(p_obligation_tbl(l_index).attribute7 IS NULL) THEN
8001 p_obligation_tbl(l_index).attribute7 := NULL;
8002 END IF;
8003 IF (p_obligation_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char) THEN
8004 p_obligation_tbl(l_index).attribute8 := lcu_oblg_rec.attribute8;
8005 ELSIF(p_obligation_tbl(l_index).attribute8 IS NULL) THEN
8006 p_obligation_tbl(l_index).attribute8 := NULL;
8007 END IF;
8008 IF (p_obligation_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char) THEN
8009 p_obligation_tbl(l_index).attribute9 := lcu_oblg_rec.attribute9;
8010 ELSIF(p_obligation_tbl(l_index).attribute9 IS NULL) THEN
8011 p_obligation_tbl(l_index).attribute9 := NULL;
8012 END IF;
8013 IF (p_obligation_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char) THEN
8014 p_obligation_tbl(l_index).attribute10 := lcu_oblg_rec.attribute10;
8015 ELSIF(p_obligation_tbl(l_index).attribute10 IS NULL) THEN
8016 p_obligation_tbl(l_index).attribute10 := NULL;
8017 END IF;
8018 IF (p_obligation_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char) THEN
8019 p_obligation_tbl(l_index).attribute11 := lcu_oblg_rec.attribute11;
8020 ELSIF(p_obligation_tbl(l_index).attribute11 IS NULL) THEN
8021 p_obligation_tbl(l_index).attribute11 := NULL;
8022 END IF;
8023 IF (p_obligation_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char) THEN
8024 p_obligation_tbl(l_index).attribute12 := lcu_oblg_rec.attribute12;
8025 ELSIF(p_obligation_tbl(l_index).attribute12 IS NULL) THEN
8026 p_obligation_tbl(l_index).attribute12 := NULL;
8027 END IF;
8028 IF (p_obligation_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char) THEN
8029 p_obligation_tbl(l_index).attribute13 := lcu_oblg_rec.attribute13;
8030 ELSIF(p_obligation_tbl(l_index).attribute13 IS NULL) THEN
8031 p_obligation_tbl(l_index).attribute13 := NULL;
8032 END IF;
8033 IF (p_obligation_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char) THEN
8034 p_obligation_tbl(l_index).attribute14 := lcu_oblg_rec.attribute14;
8035 ELSIF(p_obligation_tbl(l_index).attribute14 IS NULL) THEN
8036 p_obligation_tbl(l_index).attribute14 := NULL;
8037 END IF;
8038 IF (p_obligation_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char) THEN
8039 p_obligation_tbl(l_index).attribute15 := lcu_oblg_rec.attribute15;
8040 ELSIF(p_obligation_tbl(l_index).attribute15 IS NULL) THEN
8041 p_obligation_tbl(l_index).attribute15 := NULL;
8042 END IF;
8043
8044 PN_LEASE_UTILS.validate_desc_flex (
8045 p_api_name => 'PN_LANDLORD_SERVICES'--l_api_name_full
8046 , p_application_short_name => 'PN'
8047 , p_desc_flex_name => 'PN_LANDLORD_SERVICES'
8048 , p_desc_segment1 => p_obligation_tbl(l_index).attribute1
8049 , p_desc_segment2 => p_obligation_tbl(l_index).attribute2
8050 , p_desc_segment3 => p_obligation_tbl(l_index).attribute3
8051 , p_desc_segment4 => p_obligation_tbl(l_index).attribute4
8052 , p_desc_segment5 => p_obligation_tbl(l_index).attribute5
8053 , p_desc_segment6 => p_obligation_tbl(l_index).attribute6
8054 , p_desc_segment7 => p_obligation_tbl(l_index).attribute7
8055 , p_desc_segment8 => p_obligation_tbl(l_index).attribute8
8056 , p_desc_segment9 => p_obligation_tbl(l_index).attribute9
8057 , p_desc_segment10 =>p_obligation_tbl(l_index).attribute10
8058 , p_desc_segment11 =>p_obligation_tbl(l_index).attribute11
8059 , p_desc_segment12 =>p_obligation_tbl(l_index).attribute12
8060 , p_desc_segment13 =>p_obligation_tbl(l_index).attribute13
8061 , p_desc_segment14 =>p_obligation_tbl(l_index).attribute14
8062 , p_desc_segment15 =>p_obligation_tbl(l_index).attribute15
8063 , p_desc_context => p_obligation_tbl(l_index).attribute_category
8064 , p_resp_appl_id => fnd_global.resp_appl_id
8065 , p_resp_id => fnd_global.resp_id
8066 , p_return_status=> x_return_status
8067 );
8068 --------------------dbms_output.put_line('dff validated');
8069 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
8070 l_tbl_flag := 0;
8071 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
8072 fnd_message.set_token ('COLUMN', 'PN_LANDLORD_SERVICES_DESC_FIELDS');
8073 fnd_message.set_token ('P_TEXT', 'PN_LANDLORD_SERVICES'|| '-'|| SQLERRM);
8074 fnd_msg_pub.ADD;
8075 RAISE fnd_api.g_exc_error;
8076 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
8077 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
8078 fnd_message.set_token ('COLUMN', 'PN_LANDLORD_SERVICES_DESC_FIELDS');
8079 fnd_message.set_token ('P_TEXT', 'PN_LANDLORD_SERVICES'|| '-'|| SQLERRM);
8080 fnd_msg_pub.ADD;
8081 RAISE fnd_api.g_exc_unexpected_error;
8082 END IF;
8083 -- END IF;
8084
8085 CLOSE c_oblg;
8086 END IF;
8087 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
8088 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
8089 EXCEPTION
8090 WHEN fnd_api.g_exc_error THEN
8091 pvt_debug(g_pkg_name||'-VALIDATE_OBLIGATION_FOR_UPDATE:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
8092 WHEN OTHERS THEN
8093 pvt_debug(g_pkg_name||'-VALIDATE_OBLIGATION_FOR_UPDATE:LOOOPING:EXCEPTION:'||SQLERRM,3);
8094 END;
8095 END loop;
8096 x_tbl := l_tbl;
8097 x_return_status := fnd_api.g_ret_sts_success;
8098 EXCEPTION
8099 WHEN fnd_api.g_exc_error THEN
8100 x_return_status := fnd_api.g_ret_sts_error;
8101 --------------------dbms_output.put_line('OBLIGATION VALIDATION FAILED');
8102 WHEN OTHERS THEN
8103 x_return_status := fnd_api.g_ret_sts_unexp_error;
8104 pvt_debug(g_pkg_name||'-VALIDATE_OBLIGATION_FOR_UPDATE:OTHERS:EXCEPTION:'||SQLERRM,3);
8105 END VALIDATE_OBLIGATION_FOR_UPDATE;
8106
8107 PROCEDURE OBLIGATION_UPDATE_ROW (p_obligation_tbl IN OUT NOCOPY lease_obligation_tbl_type
8108 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%type
8109 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
8110 ,x_return_status OUT NOCOPY VARCHAR2
8111 ,p_tbl IN temp_tbl_type
8112 ,p_commit IN VARCHAR2
8113 )
8114 IS
8115 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
8116 l_index BINARY_INTEGER;
8117 l_landlord_service_id pn_landlord_services_all.LANDLORD_SERVICE_ID%TYPE;
8118 l_err_obg_count NUMBER:=0;
8119
8120 BEGIN
8121 pvt_debug(g_pkg_name||'-Inside OBLIGATION_UPDATE_ROW',3);
8122 ----------------------dbms_output.put_line('RECORD UPDATE STARTED FOR OBLIGATIONS');--Rupak
8123 for l_index in p_obligation_tbl.FIRST..p_obligation_tbl.LAST LOOP
8124 BEGIN
8125 ----------------------dbms_output.put_line('RECORD UPDATE STARTED FOR OBLIGATIONSIN FOR LOOP');--Rupak
8126 IF p_tbl(l_index).temp_flag = 2 THEN
8127 ----------------------dbms_output.put_line('RECORD UPDATE STARTED FOR OBLIGATIONSIN FOR LOOP IN IF');--Rupak
8128 pvt_debug(g_pkg_name||'-OBLIGATION_UPDATE_ROW:Calling PN_LANDLORD_SERVICES_PKG.update_Row',3);
8129 BEGIN
8130 PN_LANDLORD_SERVICES_PKG.update_Row
8131 (
8132 X_LANDLORD_SERVICE_ID => p_obligation_tbl(l_index).landlord_service_id,
8133 X_LEASE_ID => p_lease_id,
8134 X_LEASE_CHANGE_ID => p_lease_change_id,
8135 X_SERVICE_TYPE_LOOKUP_CODE => p_obligation_tbl(l_index).service_type_lookup_code,
8136 X_START_DATE => p_obligation_tbl(l_index).start_date,
8137 X_END_DATE => p_obligation_tbl(l_index).end_date,
8138 X_STATUS => p_obligation_tbl(l_index).status,
8139 X_ATTRIBUTE_CATEGORY => p_obligation_tbl(l_index).attribute_category,
8140 X_ATTRIBUTE1 => p_obligation_tbl(l_index).attribute1,
8141 X_ATTRIBUTE2 => p_obligation_tbl(l_index).attribute1,
8142 X_ATTRIBUTE3 => p_obligation_tbl(l_index).attribute1,
8143 X_ATTRIBUTE4 => p_obligation_tbl(l_index).attribute1,
8144 X_ATTRIBUTE5 => p_obligation_tbl(l_index).attribute1,
8145 X_ATTRIBUTE6 => p_obligation_tbl(l_index).attribute1,
8146 X_ATTRIBUTE7 => p_obligation_tbl(l_index).attribute1,
8147 X_ATTRIBUTE8 => p_obligation_tbl(l_index).attribute1,
8148 X_ATTRIBUTE9 => p_obligation_tbl(l_index).attribute1,
8149 X_ATTRIBUTE10 => p_obligation_tbl(l_index).attribute1,
8150 X_ATTRIBUTE11 => p_obligation_tbl(l_index).attribute1,
8151 X_ATTRIBUTE12 => p_obligation_tbl(l_index).attribute1,
8152 X_ATTRIBUTE13 => p_obligation_tbl(l_index).attribute1,
8153 X_ATTRIBUTE14 => p_obligation_tbl(l_index).attribute1,
8154 X_ATTRIBUTE15 => p_obligation_tbl(l_index).attribute1,
8155 X_LAST_UPDATE_DATE => sysdate,
8156 X_LAST_UPDATED_BY => fnd_global.user_id,
8157 X_LAST_UPDATE_LOGIN => fnd_global.user_id,
8158 X_OBLIGATION_NUM => p_obligation_tbl(l_index).obligation_num,
8159 X_RESPONSIBILITY_CODE => p_obligation_tbl(l_index).responsibility_code,
8160 X_COMMON_AREA_RESP => p_obligation_tbl(l_index).common_area_resp,
8161 X_FINANCIAL_RESP_PARTY_CODE => p_obligation_tbl(l_index).financial_resp_party_code,
8162 X_FINANCIAL_PCT_RESP => p_obligation_tbl(l_index).financial_pct_resp,
8163 X_RESPONSIBILITY_MAINT => p_obligation_tbl(l_index).responsibility_maint,
8164 X_COMPANY_ID => p_obligation_tbl(l_index).company_id,
8165 X_OBLIGATION_REFERENCE => p_obligation_tbl(l_index).obligation_reference,
8166 X_OBLIGATION_COMMENTS => p_obligation_tbl(l_index).obligation_comments
8167 );
8168 ----------------------dbms_output.put_line('RECORD '||l_index||' UPDATED FOR OBLIGATIONS');--Rupak
8169 pvt_debug(g_pkg_name||'-OBLIGATION_UPDATE_ROW:PN_LANDLORD_SERVICES_PKG.update_Row Successful',3);
8170
8171 EXCEPTION
8172 WHEN OTHERS THEN
8173 ----------------------dbms_output.put_line('EXCEPTION:UPDATE OBLIGATIONS'||SQLERRM);--Rupak
8174 pvt_debug(g_pkg_name||'-OBLIGATION_UPDATE_ROW:Exception:PN_LANDLORD_SERVICES_PKG.update_Row'||SQLERRM,3);
8175 null;
8176 END;
8177 END IF;
8178 EXCEPTION
8179 WHEN fnd_api.g_exc_error THEN
8180 l_err_obg_count :=l_err_obg_count+1;
8181 WHEN OTHERS THEN
8182 l_err_obg_count :=l_err_obg_count+1;
8183 END;
8184
8185 END LOOP;
8186
8187 IF (l_err_obg_count = 0) THEN
8188 x_return_status:= fnd_api.g_ret_sts_success;
8189 ELSE
8190 x_return_status:= fnd_api.g_ret_sts_error;
8191 END IF;
8192
8193
8194 EXCEPTION
8195 WHEN OTHERS THEN
8196 x_return_status := fnd_api.g_ret_sts_unexp_error;
8197 ----------------------dbms_output.put_line ('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
8198 pvt_debug(g_pkg_name||'-OBLIGATION_UPDATE_ROW:Exception:'||SQLERRM,3);
8199 END OBLIGATION_UPDATE_ROW;
8200
8201 PROCEDURE UPDATE_OBLIGATION (
8202 p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
8203 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.LEASE_CHANGE_ID%TYPE
8204 , p_commit IN VARCHAR2
8205 , p_validate IN VARCHAR2
8206 , p_obligation_tbl IN OUT NOCOPY lease_obligation_tbl_type
8207 , x_return_status OUT NOCOPY VARCHAR2
8208 -- , x_msg_count OUT NUMBER
8209 -- , x_msg_data OUT VARCHAR2
8210 )
8211 IS
8212 l_return_status VARCHAR2 (1) := fnd_api.g_ret_sts_success;
8213 l_msg_count NUMBER ;
8214 l_msg_data VARCHAR2(2000) ;
8215 x_out_tbl temp_tbl_type;
8216
8217 p_obligation_tbl_create lease_obligation_tbl_type;
8218 p_obligation_tbl_update lease_obligation_tbl_type;
8219 m NUMBER;
8220 n NUMBER;
8221 l_err_obligation_cnt NUMBER:=0;
8222
8223 BEGIN
8224 x_return_status := fnd_api.g_ret_sts_success;
8225 ----------------------dbms_output.put_line('In Obligation:1');--Rupak
8226 m:=1;
8227 n:=1;
8228 FOR i IN 1..p_obligation_tbl.COUNT
8229 LOOP
8230 IF(p_obligation_tbl(i).landlord_service_id IS NOT NULL AND p_obligation_tbl(i).landlord_service_id <> pn_lease_utils.g_pn_miss_num) THEN
8231
8232 --p_obligation_tbl(i).p_null_id := 'N';
8233 p_obligation_tbl_update(n):=p_obligation_tbl(i);
8234 n:=n+1;
8235 ELSE
8236
8237 --p_obligation_tbl(i).p_null_id := 'Y';
8238 p_obligation_tbl_create(m):=p_obligation_tbl(i);
8239 m:=m+1;
8240 END IF;
8241 END LOOP;
8242 IF(p_obligation_tbl_update.COUNT > 0) THEN
8243 VALIDATE_OBLIGATION_FOR_UPDATE(
8244 p_obligation_tbl => p_obligation_tbl_update
8245 ,p_lease_id => p_lease_id
8246 ,p_lease_change_id => p_lease_change_id
8247 ,x_tbl => x_out_tbl
8248 ,x_return_status => x_return_status
8249 );
8250 ----------------------dbms_output.put_line('In Obligation:2');--Rupak
8251 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
8252 ----------------------dbms_output.put_line('In Obligation:3');--Rupak
8253 OBLIGATION_UPDATE_ROW(
8254 p_obligation_tbl => p_obligation_tbl_update
8255 , p_lease_id => p_lease_id
8256 , p_lease_change_id => p_lease_change_id
8257 , x_return_status => x_return_status
8258 , p_tbl => x_out_tbl
8259 , p_commit => p_commit
8260 );
8261 pvt_debug(g_pkg_name||'-UPDATE_OBLIGATION:RETURN STATUS:'||x_return_status,3);
8262 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
8263 --x_return_status := fnd_api.g_ret_sts_unexp_error;
8264 l_err_obligation_cnt := l_err_obligation_cnt + 1;
8265 ELSE
8266 --x_return_status := fnd_api.g_ret_sts_error;
8267 l_err_obligation_cnt := l_err_obligation_cnt + 1;
8268 END IF;
8269 END IF;
8270
8271 IF(p_obligation_tbl_create.COUNT > 0) THEN
8272 VALIDATE_OBLIGATION_FOR_CREATE(
8273 p_obligation_tbl => p_obligation_tbl_create
8274 ,p_lease_id => p_lease_id
8275 ,p_lease_change_id => p_lease_change_id
8276 ,x_tbl => x_out_tbl
8277 ,x_return_status => x_return_status
8278 );
8279 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
8280 OBLIGATION_INSERT_ROW(
8281 p_obligation_tbl => p_obligation_tbl_create
8282 ,p_lease_id => p_lease_id
8283 ,p_lease_change_id => p_lease_change_id
8284 ,x_return_status => x_return_status
8285 ,p_tbl => x_out_tbl
8286 ,p_commit => p_commit
8287 );
8288 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
8289 --RAISE fnd_api.g_exc_error;
8290 l_err_obligation_cnt := l_err_obligation_cnt + 1;
8291 END IF;
8292 ELSE
8293 --RAISE fnd_api.g_exc_error;
8294 l_err_obligation_cnt := l_err_obligation_cnt + 1;
8295 END IF;
8296
8297 END IF;
8298 IF(l_err_obligation_cnt = 0) THEN
8299 x_return_status := fnd_api.g_ret_sts_success;
8300 ELSE
8301 x_return_status := fnd_api.g_ret_sts_error;
8302 END IF;
8303
8304 EXCEPTION
8305 WHEN fnd_api.g_exc_unexpected_error THEN
8306 x_return_status:= fnd_api.g_ret_sts_unexp_error;
8307 WHEN OTHERS THEN
8308 x_return_status:= fnd_api.g_ret_sts_unexp_error;
8309 END UPDATE_OBLIGATION;
8310
8311 PROCEDURE VALIDATE_MILESTONE_FOR_CREATE(
8312 p_milestone_tbl IN OUT NOCOPY lease_milestone_tbl_type
8313 ,x_tbl IN OUT NOCOPY temp_tbl_type
8314 ,x_return_status OUT NOCOPY VARCHAR2
8315
8316
8317 )IS
8318 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
8319 l_index BINARY_INTEGER;
8320 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
8321 l_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE;
8322 l_user_id NUMBER;
8323 l_tbl_index BINARY_INTEGER;
8324 l_tbl_flag NUMBER := 1;
8325 l_tbl temp_tbl_type;
8326 l_api_name VARCHAR2(30) := 'CREATE MILESTONE';
8327 BEGIN
8328 ----------------------dbms_output.put_line('VALIDATIONS FOR MILESTONE CREATION STARTED');
8329 pvt_debug(g_pkg_name||'-Inside VALIDATE_MILESTONE_FOR_CREATE',3);
8330 FOR l_index in p_milestone_tbl.FIRST.. p_milestone_tbl.LAST
8331 LOOP
8332 BEGIN
8333 INITIALIZE_MILESTONE_REC(p_milestone_tbl(l_index),'CREATE_MILESTONE',x_return_status);
8334 l_tbl_index := l_index;
8335 -------------------------------------------------------------------------------------------------
8336 IF ( (p_milestone_tbl(l_index).milestone_type IS NOT NULL OR p_milestone_tbl(l_index).milestone_type_code IS NOT NULL)
8337 ) THEN
8338 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_milestone_type
8339 , p_lookup_meaning => p_milestone_tbl(l_index).milestone_type
8340 , p_operation => 'CREATE_MILESTONE'
8341 , p_lookup_type => l_pn_milestones_type
8342 , x_return_status => x_return_status
8343 , x_lookup_type_code => p_milestone_tbl(l_index).milestone_type_code
8344 );
8345 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
8346 --l_error_flag:='Y';
8347 l_tbl_flag := 0;
8348 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
8349 fnd_message.set_token ('LOOKUP_TYPE', l_pn_milestones_type);
8350 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_milestone_tbl(l_index).milestone_type));
8351 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_milestone_tbl(l_index).milestone_type_code));
8352 fnd_msg_pub.ADD;
8353 RAISE fnd_api.g_exc_error;
8354 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
8355 --l_error_flag:='Y';
8356 l_tbl_flag := 0;
8357 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
8358 fnd_message.set_token ('COLUMN', SUBSTR(l_param_milestone_type,3));
8359 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
8360 fnd_msg_pub.ADD;
8361 RAISE fnd_api.g_exc_unexpected_error;
8362 END IF;
8363 ELSE
8364 l_tbl_flag := 0;
8365 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
8366 fnd_message.set_token ('API_NAME', l_api_name);
8367 fnd_message.set_token ('NULL_PARAM', l_pn_milestones_type);
8368 fnd_msg_pub.ADD;
8369 RAISE fnd_api.g_exc_error;
8370 END IF;
8371
8372 ----------------------------------------------------------------------------------------------------------------------------------------------
8373
8374 IF (p_milestone_tbl(l_index).user_name IS NOT NULL OR p_milestone_tbl(l_index).user_id IS NOT NULL) THEN
8375 pn_lease_utils.get_user_id ( p_parameter_name => l_param_milestone_user_name
8376 , p_operation => 'CREATE_MILESTONE'
8377 , p_user_name => p_milestone_tbl(l_index).user_name
8378 , x_user_id => p_milestone_tbl(l_index).user_id
8379 , x_return_status => x_return_status
8380 );
8381 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
8382 --l_error_flag:='Y';
8383 l_tbl_flag := 0;
8384 fnd_message.set_name ('PN', 'PN_INVALID_USER');
8385 fnd_message.set_token ('USER_NAME', p_milestone_tbl(l_index).user_name);
8386 fnd_message.set_token ('USER_ID', p_milestone_tbl(l_index).user_id);
8387 fnd_msg_pub.ADD;
8388 RAISE fnd_api.g_exc_error;
8389 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
8390 --l_error_flag:='Y';
8391 l_tbl_flag := 0;
8392 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
8393 fnd_message.set_token ('COLUMN', SUBSTR(l_param_milestone_user_name,3));
8394 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
8395 fnd_msg_pub.ADD;
8396 RAISE fnd_api.g_exc_unexpected_error;
8397 END IF;
8398 ELSE
8399 l_tbl_flag := 0;
8400 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
8401 fnd_message.set_token ('API_NAME', l_api_name);
8402 fnd_message.set_token ('NULL_PARAM', 'User Name or User ID NULL');
8403 fnd_msg_pub.ADD;
8404 RAISE fnd_api.g_exc_error;
8405 END IF;
8406
8407
8408 ----------------------------------------------------------------------------------------------------------------------------------------------------------
8409 IF p_milestone_tbl(l_index).action_due_date IS NULL THEN
8410 l_tbl_flag := 0;
8411 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
8412 fnd_message.set_token ('API_NAME', l_api_name);
8413 fnd_message.set_token ('NULL_PARAM', 'Action Due Date:NULL');
8414 fnd_msg_pub.ADD;
8415 RAISE fnd_api.g_exc_error;
8416 /*PN_LEASE_UTILS.ADD_NULL_PARAMETER_MSG (p_token_apiname => l_api_name
8417 ,p_token_nullparam =>'ACTION DUE DATE' );*/
8418 END IF;
8419 ------------------------------------------------------------------------------------------------------------------------------------------------------------
8420
8421 -- dff validations
8422 IF NOT ( (p_milestone_tbl(l_index).attribute_category = fnd_api.g_null_char)
8423 AND (p_milestone_tbl(l_index).attribute1 = fnd_api.g_null_char)
8424 AND (p_milestone_tbl(l_index).attribute2 = fnd_api.g_null_char)
8425 AND (p_milestone_tbl(l_index).attribute3 = fnd_api.g_null_char)
8426 AND (p_milestone_tbl(l_index).attribute4 = fnd_api.g_null_char)
8427 AND (p_milestone_tbl(l_index).attribute5 = fnd_api.g_null_char)
8428 AND (p_milestone_tbl(l_index).attribute6 = fnd_api.g_null_char)
8429 AND (p_milestone_tbl(l_index).attribute7 = fnd_api.g_null_char)
8430 AND (p_milestone_tbl(l_index).attribute8 = fnd_api.g_null_char)
8431 AND (p_milestone_tbl(l_index).attribute9 = fnd_api.g_null_char)
8432 AND (p_milestone_tbl(l_index).attribute10 = fnd_api.g_null_char)
8433 AND (p_milestone_tbl(l_index).attribute11 = fnd_api.g_null_char)
8434 AND (p_milestone_tbl(l_index).attribute12 = fnd_api.g_null_char)
8435 AND (p_milestone_tbl(l_index).attribute13 = fnd_api.g_null_char)
8436 AND (p_milestone_tbl(l_index).attribute14 = fnd_api.g_null_char)
8437 AND (p_milestone_tbl(l_index).attribute15 = fnd_api.g_null_char)
8438 ) THEN
8439 PN_LEASE_UTILS.validate_desc_flex (
8440 p_api_name => 'PN_API'--l_api_name_full
8441 , p_application_short_name => 'PN'
8442 , p_desc_flex_name => 'PN_LEASE_MILESTONES'
8443 , p_desc_segment1 => p_milestone_tbl(l_index).attribute1
8444 , p_desc_segment2 => p_milestone_tbl(l_index).attribute2
8445 , p_desc_segment3 => p_milestone_tbl(l_index).attribute3
8446 , p_desc_segment4 => p_milestone_tbl(l_index).attribute4
8447 , p_desc_segment5 => p_milestone_tbl(l_index).attribute5
8448 , p_desc_segment6 => p_milestone_tbl(l_index).attribute6
8449 , p_desc_segment7 => p_milestone_tbl(l_index).attribute7
8450 , p_desc_segment8 => p_milestone_tbl(l_index).attribute8
8451 , p_desc_segment9 => p_milestone_tbl(l_index).attribute9
8452 , p_desc_segment10 =>p_milestone_tbl(l_index).attribute10
8453 , p_desc_segment11 =>p_milestone_tbl(l_index).attribute11
8454 , p_desc_segment12 =>p_milestone_tbl(l_index).attribute12
8455 , p_desc_segment13 =>p_milestone_tbl(l_index).attribute13
8456 , p_desc_segment14 =>p_milestone_tbl(l_index).attribute14
8457 , p_desc_segment15 =>p_milestone_tbl(l_index).attribute15
8458 , p_desc_context => p_milestone_tbl(l_index).attribute_category
8459 , p_resp_appl_id => fnd_global.RESP_APPL_ID
8460 , p_resp_id => fnd_global.RESP_ID
8461 , p_return_status => x_return_status
8462 );
8463 IF (x_return_status = fnd_api.g_ret_sts_error)
8464 THEN
8465 l_tbl_flag := 0;
8466 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
8467 fnd_message.set_token ('COLUMN', 'PN_LANDLORD_SERVICES_DESC_FIELDS');
8468 fnd_message.set_token ('P_TEXT', 'PN_LANDLORD_SERVICES'|| '-'|| SQLERRM);
8469 fnd_msg_pub.ADD;
8470 RAISE fnd_api.g_exc_error;
8471 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
8472 THEN
8473 l_tbl_flag := 0;
8474 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
8475 fnd_message.set_token ('COLUMN', 'PN_LANDLORD_SERVICES_DESC_FIELDS');
8476 fnd_message.set_token ('P_TEXT', 'PN_LANDLORD_SERVICES'|| '-'|| SQLERRM);
8477 fnd_msg_pub.ADD;
8478 RAISE fnd_api.g_exc_unexpected_error;
8479 END IF;
8480 END IF;
8481 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
8482 EXCEPTION
8483 WHEN fnd_api.g_exc_error THEN
8484 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);
8485 pvt_debug(g_pkg_name||'-VALIDATE_MILESTONE_FOR_CREATE:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
8486 WHEN OTHERS THEN
8487 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM);
8488 pvt_debug(g_pkg_name||'-VALIDATE_MILESTONE_FOR_CREATE:LOOOPING:EXCEPTION:'||SQLERRM,3);
8489 END;
8490 ----------------------dbms_output.put_line('Private Contacts:13');--Rupak
8491 END LOOP;
8492 x_tbl := l_tbl;
8493 x_return_status := fnd_api.g_ret_sts_success;
8494
8495 EXCEPTION
8496 WHEN OTHERS THEN
8497 x_return_status := fnd_api.g_ret_sts_unexp_error;
8498 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
8499 fnd_message.set_token ('COLUMN', SUBSTR('MILE STONE UNEXP',3));
8500 fnd_message.set_token ('P_TEXT', 'VALIDATE_MILESTONE_FOR_CREATE'|| '-'|| SQLERRM);
8501 fnd_msg_pub.ADD;
8502 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
8503 pvt_debug(g_pkg_name||'-VALIDATE_MILESTONE_FOR_CREATE:Exception:'||SQLERRM,3);
8504 END VALIDATE_MILESTONE_FOR_CREATE;
8505
8506
8507 PROCEDURE MILESTONE_INSERT_ROW(
8508 p_milestone_tbl IN OUT NOCOPY lease_milestone_tbl_type
8509 ,p_lease_id IN PN_LEASES_ALL.lease_id%type
8510 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
8511 ,p_option_id IN PN_LEASE_MILESTONES_ALL.option_id%type
8512 ,p_insurance_req_id IN PN_LEASE_MILESTONES_ALL.insurance_requirement_id%type
8513 ,p_payment_term_id IN PN_LEASE_MILESTONES_ALL.payment_term_id%type
8514 ,x_return_status OUT NOCOPY VARCHAR2
8515 ,p_tbl IN temp_tbl_type
8516 ,p_commit IN VARCHAR2
8517 )
8518 IS
8519 l_index BINARY_INTEGER;
8520 t_index BINARY_INTEGER;
8521 l_row_id VARCHAR2(100) ;
8522 l_milestone_id PN_LEASE_MILESTONES_ALL.LEASE_MILESTONE_ID%TYPE;
8523 BEGIN
8524 ----------------------dbms_output.put_line('Inside MILESTONE_INSERT_ROW');--Rupak
8525 pvt_debug(g_pkg_name||'-Inside MILESTONE_INSERT_ROW:',3);
8526 for l_index in p_milestone_tbl.FIRST..p_milestone_tbl.LAST LOOP
8527 ----------------------dbms_output.put_line('In MILESTONE_INSERT_ROW IN FOR OUT IF'||p_tbl(l_index).temp_flag);--Rupak
8528 IF p_tbl(l_index).temp_flag = 1 THEN
8529 ----------------------dbms_output.put_line('In MILESTONE_INSERT_ROWIN IF');--Rupak
8530 pvt_debug(g_pkg_name||'-MILESTONE_INSERT_ROW:Calling PN_LEASE_MILESTONES_PKG.INSERT_ROW:',3);
8531 l_milestone_id := NULL;
8532 pn_lease_milestones_pkg.insert_row(
8533 X_ROWID => l_row_id,
8534 X_LEASE_MILESTONE_ID => l_milestone_id,
8535 X_LEASE_CHANGE_ID => p_lease_change_id,
8536 X_MILESTONE_TYPE_CODE => p_milestone_tbl(l_index).milestone_type_code,
8537 X_OPTION_ID => p_option_id,
8538 X_INSURANCE_REQUIREMENT_ID => p_insurance_req_id,
8539 X_PAYMENT_TERM_ID => p_payment_term_id,
8540 X_LEAD_DAYS => p_milestone_tbl(l_index).lead_days,
8541 X_EVERY_DAYS => p_milestone_tbl(l_index).frequency,
8542 X_ACTION_TAKEN => NULL,
8543 X_ACTION_DATE => NULL,
8544 X_ATTRIBUTE_CATEGORY => p_milestone_tbl(l_index).attribute_category,
8545 X_ATTRIBUTE1 => p_milestone_tbl(l_index).attribute1,
8546 X_ATTRIBUTE2 => p_milestone_tbl(l_index).attribute2,
8547 X_ATTRIBUTE3 => p_milestone_tbl(l_index).attribute3,
8548 X_ATTRIBUTE4 => p_milestone_tbl(l_index).attribute4,
8549 X_ATTRIBUTE5 => p_milestone_tbl(l_index).attribute5,
8550 X_ATTRIBUTE6 => p_milestone_tbl(l_index).attribute6,
8551 X_ATTRIBUTE7 => p_milestone_tbl(l_index).attribute7,
8552 X_ATTRIBUTE8 => p_milestone_tbl(l_index).attribute8,
8553 X_ATTRIBUTE9 => p_milestone_tbl(l_index).attribute9,
8554 X_ATTRIBUTE10 => p_milestone_tbl(l_index).attribute10,
8555 X_ATTRIBUTE11 => p_milestone_tbl(l_index).attribute11,
8556 X_ATTRIBUTE12 => p_milestone_tbl(l_index).attribute12,
8557 X_ATTRIBUTE13 => p_milestone_tbl(l_index).attribute13,
8558 X_ATTRIBUTE14 => p_milestone_tbl(l_index).attribute14,
8559 X_ATTRIBUTE15 => p_milestone_tbl(l_index).attribute15,
8560 X_MILESTONE_DATE => p_milestone_tbl(l_index).action_due_date,
8561 X_USER_ID => p_milestone_tbl(l_index).user_id,
8562 X_LEASE_ID => p_lease_id,
8563 X_CREATION_DATE => sysdate,
8564 X_CREATED_BY => fnd_global.user_id,
8565 X_LAST_UPDATE_DATE => sysdate,
8566 X_LAST_UPDATED_BY => fnd_global.user_id,
8567 X_LAST_UPDATE_LOGIN => fnd_global.user_id,
8568 x_org_id => fnd_global.org_id
8569 );
8570
8571 ----------------------dbms_output.put_line('RECORD FOR MILESTONE CREATED WITH MILESTONE ID: '|| l_milestone_id);--Rupak
8572 pvt_debug(g_pkg_name||'-MILESTONE_INSERT_ROW:Calling PN_LEASE_MILESTONES_PKG.INSERT_ROW Successful',3);
8573 p_milestone_tbl(l_index).lease_milestone_id := l_milestone_id;
8574 END IF;
8575 END loop;
8576
8577 x_return_status := fnd_api.g_ret_sts_success;
8578
8579 EXCEPTION
8580 WHEN OTHERS THEN
8581 x_return_status := fnd_api.g_ret_sts_unexp_error;
8582 ----------------------dbms_output.put_line('INSERT PROCEDURE FAILED FOR MILESTONE CREATION') ;
8583 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
8584 pvt_debug(g_pkg_name||'-MILESTONE_INSERT_ROW:Exception'||SQLERRM,3);
8585 END MILESTONE_INSERT_ROW;
8586
8587 PROCEDURE CREATE_MILESTONE (
8588 p_milestone_tbl IN OUT NOCOPY lease_milestone_tbl_type
8589 , p_lease_id IN PN_LEASES_ALL.lease_id%type
8590 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
8591 , p_option_id IN PN_LEASE_MILESTONES_ALL.option_id%type
8592 , p_insurance_req_id IN PN_LEASE_MILESTONES_ALL.insurance_requirement_id%type
8593 , p_payment_term_id IN PN_LEASE_MILESTONES_ALL.payment_term_id%type
8594 , p_commit IN VARCHAR2
8595 , p_validate IN VARCHAR2
8596 , x_return_status OUT NOCOPY VARCHAR2
8597 -- , x_msg_count OUT NUMBER
8598 -- , x_msg_data OUT VARCHAR2
8599 )
8600 IS
8601 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success ;
8602 l_msg_count NUMBER ;
8603 l_msg_data VARCHAR2(2000) ;
8604 x_out_tbl temp_tbl_type ;
8605 BEGIN
8606 VALIDATE_MILESTONE_FOR_CREATE(
8607 p_milestone_tbl => p_milestone_tbl
8608 ,x_tbl => x_out_tbl
8609 ,x_return_status => l_return_status
8610 );
8611 pvt_debug(g_pkg_name||'-Inside CREATE_MILESTONE',3);
8612 IF NVL(p_validate,'F') <> 'T' and l_return_status = fnd_api.g_ret_sts_success THEN
8613 ----------------------dbms_output.put_line('B4 MileStone insert');--Rupak
8614 MILESTONE_INSERT_ROW(p_milestone_tbl => p_milestone_tbl
8615 ,p_lease_id => p_lease_id
8616 ,p_lease_change_id => p_lease_change_id
8617 ,p_option_id => p_option_id
8618 ,p_insurance_req_id => p_insurance_req_id
8619 ,p_payment_term_id => p_payment_term_id
8620 ,x_return_status => l_return_status
8621 ,p_tbl => x_out_tbl
8622 ,p_commit => p_commit
8623 );
8624 ----------------------dbms_output.put_line('CREATE_MILESTONE:after calling MILESTONE_INSERT_ROW');
8625 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error) then
8626 RAISE fnd_api.g_exc_unexpected_error;
8627 END IF;
8628
8629 x_return_status := l_return_status;
8630 EXCEPTION
8631 WHEN OTHERS THEN
8632 x_return_status := fnd_api.g_ret_sts_unexp_error;
8633 ----------------------dbms_output.put_line('CREATION OF MILESTONES FAILED');--Rupak
8634 pvt_debug(g_pkg_name||'-CREATE_MILESTONE:Exception'||SQLERRM,3);
8635 END CREATE_MILESTONE;
8636
8637
8638
8639 PROCEDURE VALIDATE_MILESTONE_FOR_UPDATE(
8640 p_milestone_tbl IN OUT NOCOPY lease_milestone_tbl_type
8641 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
8642 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.LEASE_CHANGE_ID%TYPE
8643 ,p_option_id IN PN_LEASE_MILESTONES_ALL.OPTION_ID%TYPE
8644 ,p_insurance_req_id IN PN_LEASE_MILESTONES_ALL.INSURANCE_REQUIREMENT_ID%TYPE
8645 ,p_payment_term_id IN PN_LEASE_MILESTONES_ALL.PAYMENT_TERM_ID%TYPE
8646 ,x_tbl OUT NOCOPY temp_tbl_type
8647 ,x_return_status IN OUT NOCOPY VARCHAR2
8648 ,p_commit IN VARCHAR2
8649 )
8650 IS
8651 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
8652 l_index BINARY_INTEGER;
8653 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
8654 l_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE;
8655 l_user_id PN_LEASE_MILESTONES_ALL.USER_ID%TYPE;
8656 l_milestone_id PN_LEASE_MILESTONES_ALL.LEASE_MILESTONE_ID%TYPE;
8657 l_cur_id PN_LEASE_MILESTONES_ALL.LEASE_MILESTONE_ID%TYPE;
8658 l_tbl_index BINARY_INTEGER;
8659 l_tbl_flag NUMBER ;
8660 l_tbl temp_tbl_type;
8661 l_api_name VARCHAR2(30) := 'UPDATE_MILESTONE';
8662 CURSOR c_milestone (
8663 p_milestone_id NUMBER
8664 )
8665 IS
8666 select LEASE_MILESTONE_ID,
8667 LEASE_CHANGE_ID,
8668 MILESTONE_TYPE_CODE,
8669 OPTION_ID,
8670 INSURANCE_REQUIREMENT_ID,
8671 PAYMENT_TERM_ID,
8672 LEAD_DAYS,
8673 EVERY_DAYS,
8674 ACTION_TAKEN,
8675 ACTION_DATE,
8676 ATTRIBUTE_CATEGORY,
8677 ATTRIBUTE1,
8678 ATTRIBUTE2,
8679 ATTRIBUTE3,
8680 ATTRIBUTE4,
8681 ATTRIBUTE5,
8682 ATTRIBUTE6,
8683 ATTRIBUTE7,
8684 ATTRIBUTE8,
8685 ATTRIBUTE9,
8686 ATTRIBUTE10,
8687 ATTRIBUTE11,
8688 ATTRIBUTE12,
8689 ATTRIBUTE13,
8690 ATTRIBUTE14,
8691 ATTRIBUTE15,
8692 MILESTONE_DATE,
8693 USER_ID,
8694 LEASE_ID
8695 from pn_lease_milestones_all
8696 where lease_milestone_id = p_milestone_id;
8697
8698 lcu_milestone_rec c_milestone%ROWTYPE;
8699
8700 l_error_count_err NUMBER :=0;
8701 l_error_count_uerr NUMBER :=0;
8702 BEGIN
8703 x_return_status := fnd_api.g_ret_sts_success ;
8704
8705 For l_index in p_milestone_tbl.FIRST..p_milestone_tbl.LAST LOOP
8706 BEGIN
8707 l_tbl_index := l_index;
8708 IF p_milestone_tbl(l_index).lease_milestone_id IS NULL THEN
8709 l_tbl_flag := 1;
8710 ----------------------dbms_output.put_line('In Mile Steone:1');
8711 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
8712 fnd_message.set_token ('API_NAME', l_api_name);
8713 fnd_message.set_token ('NULL_PARAM', 'MILE STONE ID : NULL');
8714 fnd_msg_pub.ADD;
8715 RAISE fnd_api.g_exc_error;
8716 ELSE
8717 -----------------------dbms_output.put_line('In Mile Steone:1');
8718 pvt_debug(g_pkg_name||'-Inside VALIDATE_MILESTONE_FOR_UPDATE',3);
8719 l_tbl_flag := 2;
8720 l_cur_id := p_milestone_tbl(l_index).lease_milestone_id;
8721
8722 OPEN c_milestone(l_cur_id);
8723 ----------------------dbms_output.put_line('cursor opened for update');
8724 FETCH c_milestone INTO lcu_milestone_rec;
8725
8726 IF p_milestone_tbl(l_index).action_due_date = pn_lease_utils.g_pn_miss_date THEN
8727 p_milestone_tbl(l_index).action_due_date := lcu_milestone_rec.milestone_date;
8728 END IF;
8729
8730 IF p_milestone_tbl(l_index).lead_days = pn_lease_utils.g_pn_miss_num THEN
8731 p_milestone_tbl(l_index).lead_days := lcu_milestone_rec.lead_days;
8732 ELSIF(p_milestone_tbl(l_index).lead_days IS NULL) THEN
8733 p_milestone_tbl(l_index).lead_days := NULL;
8734 END IF;
8735
8736 IF (p_milestone_tbl(l_index).frequency = pn_lease_utils.g_pn_miss_num)THEN
8737 p_milestone_tbl(l_index).frequency := lcu_milestone_rec.every_days;
8738 ELSIF(p_milestone_tbl(l_index).frequency IS NULL) THEN
8739 p_milestone_tbl(l_index).frequency := NULL;
8740 END IF;
8741
8742 -------------------------------------------------------------------------------------------------------------------------------------------------
8743
8744 IF((p_milestone_tbl(l_index).milestone_type is not NULL AND p_milestone_tbl(l_index).milestone_type <> pn_lease_utils.g_pn_miss_char)
8745 OR (p_milestone_tbl(l_index).milestone_type_code is not null AND p_milestone_tbl(l_index).milestone_type_code <> pn_lease_utils.g_pn_miss_char)
8746 ) THEN
8747 ----------------------dbms_output.put_line (' MILESTONE TYPE AND MILESTONE TYPE CODE ARE NOT NULL');--Rupak
8748 pvt_debug(g_pkg_name||'-VALIDATE_MILESTONE_FOR_UPDATE:MILESTONE TYPE AND MILESTONE TYPE CODE ARE NOT NULL',3);
8749 pn_lease_utils.get_lookup_code(
8750 p_parameter_name => l_param_milestone_type
8751 , p_lookup_meaning => p_milestone_tbl(l_index).milestone_type
8752 , p_operation => 'UPDATE_MILESTONE'
8753 , p_lookup_type => l_pn_milestones_type
8754 , x_return_status => x_return_status
8755 , x_lookup_type_code => p_milestone_tbl(l_index).milestone_type_code
8756 );
8757 pvt_debug(g_pkg_name||'-VALIDATE_MILESTONE_FOR_UPDATE:MILESTONE TYPE Code'||p_milestone_tbl(l_index).milestone_type_code,3);
8758 ----------------------dbms_output.put_line (' MILESTONE TYPE :1'||p_milestone_tbl(l_index).milestone_type_code);--Rupak
8759 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
8760 -----------------------dbms_output.put_line (' MILESTONE TYPE :2');--Rupak
8761 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
8762 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_pn_milestones_type));
8763 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_milestone_tbl(l_index).milestone_type));
8764 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_milestone_tbl(l_index).milestone_type_code));
8765 fnd_msg_pub.ADD;
8766 RAISE fnd_api.g_exc_error;
8767 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
8768 -- --------------------dbms_output.put_line (' MILESTONE TYPE :3');--Rupak
8769 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
8770 fnd_message.set_token ('COLUMN', SUBSTR(l_param_milestone_type,3));
8771 fnd_message.set_token ('P_TEXT', l_api_name|| '-'|| SQLERRM);
8772 fnd_msg_pub.ADD;
8773 RAISE fnd_api.g_exc_unexpected_error;
8774 END IF;
8775 ELSE
8776 p_milestone_tbl(l_index).milestone_type_code := lcu_milestone_rec.milestone_type_code;
8777 END IF;
8778
8779 ----------------------------------------------------------------------------------------------------------------------------------------------
8780
8781 -- --------------------dbms_output.put_line('In MIle Stone:0'||p_milestone_tbl(l_index).user_id);
8782 IF (( p_milestone_tbl(l_index).user_name IS NOT NULL AND p_milestone_tbl(l_index).user_name <> pn_lease_utils.g_pn_miss_char)
8783 OR ( p_milestone_tbl(l_index).user_id IS NOT NULL AND p_milestone_tbl(l_index).user_id <> pn_lease_utils.g_pn_miss_num)
8784 ) THEN
8785 pn_lease_utils.get_user_id ( p_parameter_name => l_param_milestone_user_name
8786 , p_operation => 'UPDATE_MILESTONE'
8787 , p_user_name => p_milestone_tbl(l_index).user_name
8788 , x_user_id => p_milestone_tbl(l_index).user_id
8789 , x_return_status => x_return_status
8790 );
8791 -- --------------------dbms_output.put_line('In MIle Stone:p_milestone_tbl(l_index).user_id'||p_milestone_tbl(l_index).user_id);
8792 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
8793 --l_error_flag:='Y';
8794 l_tbl_flag := 0;
8795 ----------------------dbms_output.put_line('In MIle Stone:1');
8796 fnd_message.set_name ('PN', 'PN_INVALID_USER');
8797 fnd_message.set_token ('USER_NAME', get_miss_char_decode(p_milestone_tbl(l_index).user_name));
8798 fnd_message.set_token ('USER_ID', get_miss_num_decode(p_milestone_tbl(l_index).user_id));
8799 fnd_msg_pub.ADD;
8800 RAISE fnd_api.g_exc_error;
8801 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
8802 --l_error_flag:='Y';
8803 l_tbl_flag := 0;
8804 ----------------------dbms_output.put_line('In MIle Stone:2');
8805 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
8806 fnd_message.set_token ('COLUMN', SUBSTR(l_param_milestone_user_name,3));
8807 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
8808 fnd_msg_pub.ADD;
8809 RAISE fnd_api.g_exc_unexpected_error;
8810 END IF;
8811 ELSE
8812 p_milestone_tbl(l_index).user_id := lcu_milestone_rec.user_id;
8813 END IF;
8814
8815
8816 -- Dff validations
8817 IF NOT ( (p_milestone_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char)
8818 AND (p_milestone_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char)
8819 AND (p_milestone_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char)
8820 AND (p_milestone_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char)
8821 AND (p_milestone_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char)
8822 AND (p_milestone_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char)
8823 AND (p_milestone_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char)
8824 AND (p_milestone_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char)
8825 AND (p_milestone_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char)
8826 AND (p_milestone_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char)
8827 AND (p_milestone_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char)
8828 AND (p_milestone_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char)
8829 AND (p_milestone_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char)
8830 AND (p_milestone_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char)
8831 AND (p_milestone_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char)
8832 AND (p_milestone_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char)
8833 ) THEN
8834 IF (p_milestone_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char) THEN
8835 p_milestone_tbl(l_index).attribute_category := lcu_milestone_rec.attribute_category;
8836 ELSIF(p_milestone_tbl(l_index).attribute_category IS NULL) THEN
8837 p_milestone_tbl(l_index).attribute_category := NULL;
8838 END IF;
8839 IF (p_milestone_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char) THEN
8840 p_milestone_tbl(l_index).attribute1 := lcu_milestone_rec.attribute1;
8841 ELSIF(p_milestone_tbl(l_index).attribute1 IS NULL) THEN
8842 p_milestone_tbl(l_index).attribute1 := NULL;
8843 END IF;
8844
8845 IF (p_milestone_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char) THEN
8846 p_milestone_tbl(l_index).attribute2 := lcu_milestone_rec.attribute2;
8847 ELSIF(p_milestone_tbl(l_index).attribute2 IS NULL) THEN
8848 p_milestone_tbl(l_index).attribute2 := NULL;
8849 END IF;
8850 IF (p_milestone_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char) THEN
8851 p_milestone_tbl(l_index).attribute3 := lcu_milestone_rec.attribute3;
8852 ELSIF(p_milestone_tbl(l_index).attribute3 IS NULL) THEN
8853 p_milestone_tbl(l_index).attribute3 := NULL;
8854 END IF;
8855 IF (p_milestone_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char) THEN
8856 p_milestone_tbl(l_index).attribute4 := lcu_milestone_rec.attribute4;
8857 ELSIF(p_milestone_tbl(l_index).attribute4 IS NULL) THEN
8858 p_milestone_tbl(l_index).attribute4 := NULL;
8859 END IF;
8860 IF (p_milestone_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char) THEN
8861 p_milestone_tbl(l_index).attribute5 := lcu_milestone_rec.attribute5;
8862 ELSIF(p_milestone_tbl(l_index).attribute5 IS NULL) THEN
8863 p_milestone_tbl(l_index).attribute5 := NULL;
8864 END IF;
8865 IF (p_milestone_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char) THEN
8866 p_milestone_tbl(l_index).attribute6 := lcu_milestone_rec.attribute6;
8867 ELSIF(p_milestone_tbl(l_index).attribute6 IS NULL) THEN
8868 p_milestone_tbl(l_index).attribute6 := NULL;
8869 END IF;
8870 IF (p_milestone_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char) THEN
8871 p_milestone_tbl(l_index).attribute7 := lcu_milestone_rec.attribute7;
8872 ELSIF(p_milestone_tbl(l_index).attribute7 IS NULL) THEN
8873 p_milestone_tbl(l_index).attribute7 := NULL;
8874 END IF;
8875 IF (p_milestone_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char) THEN
8876 p_milestone_tbl(l_index).attribute8 := lcu_milestone_rec.attribute8;
8877 ELSIF(p_milestone_tbl(l_index).attribute8 IS NULL) THEN
8878 p_milestone_tbl(l_index).attribute8 := NULL;
8879 END IF;
8880 IF (p_milestone_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char) THEN
8881 p_milestone_tbl(l_index).attribute9 := lcu_milestone_rec.attribute9;
8882 ELSIF(p_milestone_tbl(l_index).attribute9 IS NULL) THEN
8883 p_milestone_tbl(l_index).attribute9 := NULL;
8884 END IF;
8885 IF (p_milestone_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char) THEN
8886 p_milestone_tbl(l_index).attribute10 := lcu_milestone_rec.attribute10;
8887 ELSIF(p_milestone_tbl(l_index).attribute10 IS NULL) THEN
8888 p_milestone_tbl(l_index).attribute10 := NULL;
8889 END IF;
8890 IF (p_milestone_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char) THEN
8891 p_milestone_tbl(l_index).attribute11 := lcu_milestone_rec.attribute11;
8892 ELSIF(p_milestone_tbl(l_index).attribute11 IS NULL) THEN
8893 p_milestone_tbl(l_index).attribute11 := NULL;
8894 END IF;
8895 IF (p_milestone_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char) THEN
8896 p_milestone_tbl(l_index).attribute12 := lcu_milestone_rec.attribute12;
8897 ELSIF(p_milestone_tbl(l_index).attribute12 IS NULL) THEN
8898 p_milestone_tbl(l_index).attribute12 := NULL;
8899 END IF;
8900 IF (p_milestone_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char) THEN
8901 p_milestone_tbl(l_index).attribute13 := lcu_milestone_rec.attribute13;
8902 ELSIF(p_milestone_tbl(l_index).attribute13 IS NULL) THEN
8903 p_milestone_tbl(l_index).attribute13 := NULL;
8904 END IF;
8905 IF (p_milestone_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char) THEN
8906 p_milestone_tbl(l_index).attribute14 := lcu_milestone_rec.attribute14;
8907 ELSIF(p_milestone_tbl(l_index).attribute14 IS NULL) THEN
8908 p_milestone_tbl(l_index).attribute14 := NULL;
8909 END IF;
8910 IF (p_milestone_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char) THEN
8911 p_milestone_tbl(l_index).attribute15 := lcu_milestone_rec.attribute15;
8912 ELSIF(p_milestone_tbl(l_index).attribute15 IS NULL) THEN
8913 p_milestone_tbl(l_index).attribute15 := NULL;
8914 END IF;
8915
8916 PN_LEASE_UTILS.validate_desc_flex (
8917 p_api_name => 'PN_LANDLORD_SERVICES'--l_api_name_full
8918 , p_application_short_name => 'PN'
8919 , p_desc_flex_name => 'PN_LANDLORD_SERVICES'
8920 , p_desc_segment1 => p_milestone_tbl(l_index).attribute1
8921 , p_desc_segment2 => p_milestone_tbl(l_index).attribute2
8922 , p_desc_segment3 => p_milestone_tbl(l_index).attribute3
8923 , p_desc_segment4 => p_milestone_tbl(l_index).attribute4
8924 , p_desc_segment5 => p_milestone_tbl(l_index).attribute5
8925 , p_desc_segment6 => p_milestone_tbl(l_index).attribute6
8926 , p_desc_segment7 => p_milestone_tbl(l_index).attribute7
8927 , p_desc_segment8 => p_milestone_tbl(l_index).attribute8
8928 , p_desc_segment9 => p_milestone_tbl(l_index).attribute9
8929 , p_desc_segment10 =>p_milestone_tbl(l_index).attribute10
8930 , p_desc_segment11 =>p_milestone_tbl(l_index).attribute11
8931 , p_desc_segment12 =>p_milestone_tbl(l_index).attribute12
8932 , p_desc_segment13 =>p_milestone_tbl(l_index).attribute13
8933 , p_desc_segment14 =>p_milestone_tbl(l_index).attribute14
8934 , p_desc_segment15 =>p_milestone_tbl(l_index).attribute15
8935 , p_desc_context => p_milestone_tbl(l_index).attribute_category
8936 , p_resp_appl_id => fnd_global.resp_appl_id
8937 , p_resp_id => fnd_global.resp_id
8938 , p_return_status=> x_return_status
8939 );
8940 ----------------------dbms_output.put_line('dff validatedMILESTONES');--Rupak
8941 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
8942 l_tbl_flag := 0;
8943 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
8944 THEN
8945 RAISE fnd_api.g_exc_unexpected_error;
8946 END IF;
8947 END IF;
8948 CLOSE c_milestone;
8949 ----------------------dbms_output.put_line ('VALIDATIONS FOR MILESTONES UPDATE COMPLETED');
8950 END IF;
8951 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
8952 EXCEPTION
8953 WHEN fnd_api.g_exc_error THEN
8954 l_error_count_err := l_error_count_err+1;
8955 pvt_debug(g_pkg_name||'-VALIDATE_MILESTONE_FOR_UPDATE:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
8956 WHEN OTHERS THEN
8957 l_error_count_uerr := l_error_count_uerr+1;
8958 pvt_debug(g_pkg_name||'-VALIDATE_MILESTONE_FOR_UPDATE:LOOOPING:EXCEPTION:'||SQLERRM,3);
8959 END;
8960 END LOOP;
8961 ----------------------dbms_output.put_line('Count Mile Stone errors'||l_error_count_err||l_error_count_uerr);--Rupak
8962 IF ( l_error_count_err <> 0 OR l_error_count_uerr <> 0) THEN
8963 x_return_status := fnd_api.g_ret_sts_error;
8964 ELSE
8965 x_return_status := fnd_api.g_ret_sts_success;
8966 ----------------------dbms_output.put_line('Count Mile Stone errors:1'||x_return_status);--Rupak
8967 END IF;
8968 x_tbl := l_tbl;
8969 EXCEPTION
8970 WHEN OTHERS THEN
8971 x_return_status := fnd_api.g_ret_sts_unexp_error;
8972 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);--Rupak
8973 pvt_debug(g_pkg_name||'-VALIDATE_MILESTONE_FOR_UPDATE:Exception:'||SQLERRM,3);
8974 END VALIDATE_MILESTONE_FOR_UPDATE;
8975
8976
8977 PROCEDURE MILESTONE_UPDATE_ROW(
8978 p_milestone_tbl IN OUT NOCOPY lease_milestone_tbl_type
8979 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
8980 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.LEASE_CHANGE_ID%TYPE
8981 ,p_option_id IN PN_LEASE_MILESTONES_ALL.OPTION_ID%TYPE
8982 ,p_insurance_req_id IN PN_LEASE_MILESTONES_ALL.INSURANCE_REQUIREMENT_ID%TYPE
8983 ,p_payment_term_id IN PN_LEASE_MILESTONES_ALL.PAYMENT_TERM_ID%TYPE
8984 ,x_return_status OUT NOCOPY VARCHAR2
8985 ,p_tbl IN temp_tbl_type
8986 ,p_commit IN VARCHAR2
8987 )
8988 IS
8989 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
8990 l_index BINARY_INTEGER;
8991 BEGIN
8992
8993
8994 For l_index in p_milestone_tbl.FIRST..p_milestone_tbl.LAST loop
8995
8996 IF p_tbl(l_index).temp_flag = 2 THEN
8997 ----------------------dbms_output.put_line ('RECORD UPDATION STARTED FOR MILESTONES');--Rupak
8998 ----------------------dbms_output.put_line ('MILESTONE DATE :'||p_milestone_tbl(l_index).action_due_date);
8999 ----------------------dbms_output.put_line ('p_milestone_tbl(l_index).lease_milestone_id'||p_milestone_tbl(l_index).lease_milestone_id);--Rupak
9000 ----------------------dbms_output.put_line ('p_lease_change_id'||p_lease_change_id);--Rupak
9001 ----------------------dbms_output.put_line ('p_insurance_req_id'||p_insurance_req_id);--Rupak
9002 ----------------------dbms_output.put_line ('p_milestone_tbl(l_index).lead_days'||p_milestone_tbl(l_index).lead_days);--Rupak
9003 ----------------------dbms_output.put_line ('p_milestone_tbl(l_index).frequency'||p_milestone_tbl(l_index).frequency);--Rupak
9004 pvt_debug(g_pkg_name||'-Inside MILESTONE_UPDATE_ROW',3);
9005 BEGIN
9006 pn_lease_milestones_pkg.Update_Row (
9007 X_LEASE_MILESTONE_ID => p_milestone_tbl(l_index).lease_milestone_id,
9008 X_LEASE_CHANGE_ID => p_lease_change_id,
9009 X_MILESTONE_TYPE_CODE => p_milestone_tbl(l_index).milestone_type_code,
9010 X_OPTION_ID => p_option_id,
9011 X_INSURANCE_REQUIREMENT_ID => p_insurance_req_id,
9012 X_PAYMENT_TERM_ID => p_payment_term_id,
9013 X_LEAD_DAYS => p_milestone_tbl(l_index).lead_days,
9014 X_EVERY_DAYS => p_milestone_tbl(l_index).frequency,
9015 X_ACTION_TAKEN => null,
9016 X_ACTION_DATE => null,
9017 X_ATTRIBUTE_CATEGORY => p_milestone_tbl(l_index).attribute_category,
9018 X_ATTRIBUTE1 => p_milestone_tbl(l_index).attribute1,
9019 X_ATTRIBUTE2 => p_milestone_tbl(l_index).attribute1,
9020 X_ATTRIBUTE3 => p_milestone_tbl(l_index).attribute1,
9021 X_ATTRIBUTE4 => p_milestone_tbl(l_index).attribute1,
9022 X_ATTRIBUTE5 => p_milestone_tbl(l_index).attribute1,
9023 X_ATTRIBUTE6 => p_milestone_tbl(l_index).attribute1,
9024 X_ATTRIBUTE7 => p_milestone_tbl(l_index).attribute1,
9025 X_ATTRIBUTE8 => p_milestone_tbl(l_index).attribute1,
9026 X_ATTRIBUTE9 => p_milestone_tbl(l_index).attribute1,
9027 X_ATTRIBUTE10 => p_milestone_tbl(l_index).attribute1,
9028 X_ATTRIBUTE11 => p_milestone_tbl(l_index).attribute1,
9029 X_ATTRIBUTE12 => p_milestone_tbl(l_index).attribute1,
9030 X_ATTRIBUTE13 => p_milestone_tbl(l_index).attribute1,
9031 X_ATTRIBUTE14 => p_milestone_tbl(l_index).attribute1,
9032 X_ATTRIBUTE15 => p_milestone_tbl(l_index).attribute1,
9033 X_MILESTONE_DATE => p_milestone_tbl(l_index).action_due_date,
9034 X_USER_ID => p_milestone_tbl(l_index).user_id,
9035 X_LEASE_ID => p_lease_id,
9036 X_LAST_UPDATE_DATE => sysdate,
9037 X_LAST_UPDATED_BY => fnd_global.user_id,
9038 X_LAST_UPDATE_LOGIN => fnd_global.user_id
9039 );
9040
9041 ----------------------dbms_output.put_line ('RECORD UPDATION COMPLETED FOR MILESTONES');--Rupak
9042 pvt_debug(g_pkg_name||'-MILESTONE_UPDATE_ROW:PN_LEASE_MILESTONES_PKG.UPDATE_ROW Successful',3);
9043 EXCEPTION
9044 WHEN OTHERS THEN
9045 ----------------------dbms_output.put_line('EXCEPTION MILE STONES:'||SQLERRM);
9046 pvt_debug(g_pkg_name||'-MILESTONE_UPDATE_ROW:PN_LEASE_MILESTONES_PKG.UPDATE_ROW:Exception'||SQLERRM,3);
9047 END;
9048 END IF;
9049 END loop;
9050 x_return_status := fnd_api.g_ret_sts_success;
9051 EXCEPTION
9052 WHEN OTHERS THEN
9053 x_return_status := fnd_api.g_ret_sts_unexp_error;
9054 ----------------------dbms_output.put_line ('RECORD NOT UPDATED FOR MILESTONES');
9055 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
9056 pvt_debug(g_pkg_name||'-MILESTONE_UPDATE_ROW:Exception'||SQLERRM,3);
9057 END MILESTONE_UPDATE_ROW;
9058
9059 PROCEDURE UPDATE_MILESTONE (
9060 p_milestone_tbl IN OUT NOCOPY lease_milestone_tbl_type
9061 , p_lease_id IN PN_LEASES_ALL.lease_id%type
9062 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
9063 , p_option_id IN PN_LEASE_MILESTONES_ALL.option_id%type
9064 , p_insurance_req_id IN PN_LEASE_MILESTONES_ALL.insurance_requirement_id%type
9065 , p_payment_term_id IN PN_LEASE_MILESTONES_ALL.payment_term_id%type
9066 , p_commit IN VARCHAR2
9067 , p_validate IN VARCHAR2
9068 , x_return_status OUT NOCOPY VARCHAR2
9069 -- , x_msg_count OUT NUMBER
9070 -- , x_msg_data OUT VARCHAR2
9071 )
9072 IS
9073 l_return_status VARCHAR2 (1) := fnd_api.g_ret_sts_success;
9074 l_msg_count NUMBER ;
9075 l_msg_data VARCHAR2(2000) ;
9076 x_out_tbl temp_tbl_type;
9077 BEGIN
9078 ----------------------dbms_output.put_line ('IN UPDATE PROCEDURE OF MILESTONE');--Rupak
9079 pvt_debug(g_pkg_name||'-Inside UPDATE_MILESTONE',3);
9080 VALIDATE_MILESTONE_FOR_UPDATE(p_milestone_tbl => p_milestone_tbl
9081 ,p_lease_id => p_lease_id
9082 ,p_lease_change_id => p_lease_change_id
9083 ,p_option_id => p_option_id
9084 ,p_insurance_req_id => p_insurance_req_id
9085 ,p_payment_term_id => p_payment_term_id
9086 ,x_tbl => x_out_tbl
9087 ,x_return_status => x_return_status
9088 ,p_commit => p_commit
9089 );
9090 ----------------------dbms_output.put_line ('IN UPDATE PROCEDURE OF MILESTONE AFTER VALIDATE_MILESTONE_FOR_UPDATE'||x_return_status);--Rupak
9091 pvt_debug(g_pkg_name||'-UPDATE_MILESTONE:VALIDATE_MILESTONE_FOR_UPDATE Return Status:'||l_return_status,3);
9092 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
9093
9094 ----------------------dbms_output.put_line ('CALLING UPDATE PROCEDURE OF MILESTONE');--Rupak
9095 pvt_debug(g_pkg_name||'-UPDATE_MILESTONE:Calling MILESTONE_UPDATE_ROW:',3);
9096 MILESTONE_UPDATE_ROW(
9097 p_milestone_tbl => p_milestone_tbl
9098 ,p_lease_id => p_lease_id
9099 ,p_lease_change_id => p_lease_change_id
9100 ,p_option_id => p_option_id
9101 ,p_insurance_req_id => p_insurance_req_id
9102 ,p_payment_term_id => p_payment_term_id
9103 ,x_return_status => x_return_status
9104 ,p_tbl => x_out_tbl
9105 ,p_commit => p_commit
9106 );
9107 /*
9108 MILESTONE_INSERT_ROW(
9109 p_milestone_tbl => p_milestone_tbl
9110 ,p_lease_id => p_lease_id
9111 ,p_lease_change_id => p_lease_change_id
9112 ,p_option_id => p_option_id
9113 ,p_insurance_req_id => p_insurance_req_id
9114 ,p_payment_term_id => p_payment_term_id
9115 ,x_return_status => l_return_status
9116 ,p_tbl => x_out_tbl
9117 ,p_commit => p_commit
9118 );*/
9119 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9120 RAISE fnd_api.g_exc_unexpected_error;
9121 ELSE
9122 RAISE fnd_api.g_exc_error;
9123 END IF;
9124
9125 EXCEPTION
9126 WHEN fnd_api.g_exc_error THEN
9127 x_return_status := fnd_api.g_ret_sts_error;
9128 WHEN fnd_api.g_exc_unexpected_error THEN
9129 x_return_status := fnd_api.g_ret_sts_unexp_error;
9130 WHEN OTHERS THEN
9131 x_return_status := fnd_api.g_ret_sts_unexp_error;
9132 ----------------------dbms_output.put_line('UPDATE OF MILESTONE FAILED');
9133 pvt_debug(g_pkg_name||'-UPDATE_MILESTONE:Exception'||SQLERRM,3);
9134 END UPDATE_MILESTONE;
9135
9136
9137 PROCEDURE VALIDATE_INSURANCE_FOR_CREATE (p_insurance_tbl IN OUT NOCOPY lease_insurance_tbl_type
9138 ,x_tbl OUT NOCOPY temp_tbl_type
9139 ,x_return_status IN OUT NOCOPY VARCHAR2
9140 )IS
9141 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
9142 l_index BINARY_INTEGER;
9143 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
9144 l_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE;
9145 l_cur_id NUMBER;
9146 l_tbl_index BINARY_INTEGER;
9147 l_tbl_flag NUMBER := 1;
9148 l_tbl temp_tbl_type;
9149 l_api_name VARCHAR2(30) := 'CREATE INSURANCE';
9150 BEGIN
9151 ----------------------dbms_output.put_line('validation for insurance creation started');--Rupak
9152 pvt_debug(g_pkg_name||'-Inside VALIDATE_INSURANCE_FOR_CREATE',3);
9153 FOR l_index in p_insurance_tbl.FIRST.. p_insurance_tbl.LAST
9154 LOOP
9155 BEGIN
9156 INITIALIZE_INSURANCE_REC(p_insurance_tbl(l_index),'CREATE_INSURANCE',x_return_status);
9157 l_tbl_index := l_index;
9158 IF (p_insurance_tbl(l_index).policy_number IS NULL OR p_insurance_tbl(l_index).policy_number = pn_lease_utils.g_pn_miss_char) THEN
9159 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
9160 fnd_message.set_token ('API_NAME', l_api_name);
9161 fnd_message.set_token ('NULL_PARAM', 'POLICY NUMBER IS NULL');
9162 fnd_msg_pub.ADD;
9163 RAISE fnd_api.g_exc_error;
9164 END IF;
9165 IF (p_insurance_tbl(l_index).insurer_name IS NULL OR p_insurance_tbl(l_index).insurer_name = pn_lease_utils.g_pn_miss_char) THEN
9166 p_insurance_tbl(l_index).insurer_name := NULL;
9167 END IF;
9168 IF (p_insurance_tbl(l_index).insured_amount IS NULL OR p_insurance_tbl(l_index).insured_amount = pn_lease_utils.g_pn_miss_num) THEN
9169 p_insurance_tbl(l_index).insured_amount := NULL;
9170 END IF;
9171 IF (p_insurance_tbl(l_index).required_amount IS NULL OR p_insurance_tbl(l_index).required_amount = pn_lease_utils.g_pn_miss_num) THEN
9172 p_insurance_tbl(l_index).required_amount := NULL;
9173 END IF;
9174 IF (p_insurance_tbl(l_index).insurance_comments IS NULL OR p_insurance_tbl(l_index).insurance_comments = pn_lease_utils.g_pn_miss_char) THEN
9175 p_insurance_tbl(l_index).insurance_comments := NULL;
9176 END IF;
9177
9178 -------------------------------------------------------------------------------------------------------------------------------------------------------------
9179 IF ((p_insurance_tbl(l_index).status IS NOT NULL AND p_insurance_tbl(l_index).status <> pn_lease_utils.g_pn_miss_char)
9180 OR (p_insurance_tbl(l_index).status_code IS NOT NULL AND p_insurance_tbl(l_index).status_code <> pn_lease_utils.g_pn_miss_char)
9181 ) THEN
9182 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_status
9183 , p_lookup_meaning => p_insurance_tbl(l_index).status
9184 , p_operation => 'CREATE_INSURANCE'
9185 , p_lookup_type => l_pn_status
9186 , x_return_status => x_return_status
9187 , x_lookup_type_code => p_insurance_tbl(l_index).status_code
9188 );
9189 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9190 --l_error_flag:='Y';
9191 l_tbl_flag := 0;
9192 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
9193 fnd_message.set_token ('LOOKUP_TYPE', l_pn_status);
9194 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_insurance_tbl(l_index).status));
9195 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_insurance_tbl(l_index).status_code));
9196 fnd_msg_pub.ADD;
9197 RAISE fnd_api.g_exc_error;
9198 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9199 --l_error_flag:='Y';
9200 l_tbl_flag := 0;
9201 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
9202 fnd_message.set_token ('COLUMN', SUBSTR(l_param_status,3));
9203 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
9204 fnd_msg_pub.ADD;
9205 RAISE fnd_api.g_exc_unexpected_error;
9206 END IF;
9207 ELSIF(p_insurance_tbl(l_index).status IS NOT NULL OR p_insurance_tbl(l_index).status_code IS NULL) THEN
9208 p_insurance_tbl(l_index).status_code :='N';
9209 ELSE
9210 l_tbl_flag := 0;
9211 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
9212 fnd_message.set_token ('API_NAME', l_api_name);
9213 fnd_message.set_token ('NULL_PARAM', l_pn_status);
9214 fnd_msg_pub.ADD;
9215 RAISE fnd_api.g_exc_error;
9216 END IF;
9217
9218 -------------------------------------------------------------------------------------------------------------------
9219
9220 IF((p_insurance_tbl(l_index).insurance_type IS NOT NULL AND p_insurance_tbl(l_index).insurance_type <> pn_lease_utils.g_pn_miss_char)
9221 OR (p_insurance_tbl(l_index).insurance_type_lookup_code IS NOT NULL AND p_insurance_tbl(l_index).insurance_type_lookup_code <> pn_lease_utils.g_pn_miss_char)
9222 ) THEN
9223 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_insurance_type
9224 , p_lookup_meaning => p_insurance_tbl(l_index).insurance_type
9225 , p_operation => 'CREATE_INSURANCE'
9226 , p_lookup_type => l_pn_insurance_type
9227 , x_return_status => x_return_status
9228 , x_lookup_type_code => p_insurance_tbl(l_index).insurance_type_lookup_code
9229 );
9230 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9231 --l_error_flag:='Y';
9232 l_tbl_flag := 0;
9233 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
9234 fnd_message.set_token ('LOOKUP_TYPE', l_pn_insurance_type);
9235 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_insurance_tbl(l_index).insurance_type));
9236 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_insurance_tbl(l_index).insurance_type_lookup_code));
9237 fnd_msg_pub.ADD;
9238 RAISE fnd_api.g_exc_error;
9239 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9240 --l_error_flag:='Y';
9241 l_tbl_flag := 0;
9242 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
9243 fnd_message.set_token ('COLUMN', SUBSTR(l_param_insurance_type,3));
9244 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
9245 fnd_msg_pub.ADD;
9246 RAISE fnd_api.g_exc_unexpected_error;
9247 END IF;
9248 ELSIF(p_insurance_tbl(l_index).insurance_type IS NULL OR p_insurance_tbl(l_index).insurance_type_lookup_code IS NULL) THEN
9249 p_insurance_tbl(l_index).insurance_type_lookup_code := NULL;
9250 ELSE
9251 l_tbl_flag := 0;
9252 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
9253 fnd_message.set_token ('API_NAME', l_api_name);
9254 fnd_message.set_token ('NULL_PARAM', l_pn_insurance_type);
9255 fnd_msg_pub.ADD;
9256 RAISE fnd_api.g_exc_error;
9257 END IF;
9258
9259 ---------------------------------------------------------------------------------------------------------------------
9260 IF ( (p_insurance_tbl(l_index).policy_start_date IS NOT NULL AND p_insurance_tbl(l_index).policy_start_date <> pn_lease_utils.g_pn_miss_date)
9261 OR (p_insurance_tbl(l_index).policy_expiration_date IS NOT NULL AND p_insurance_tbl(l_index).policy_expiration_date <> pn_lease_utils.g_pn_miss_date)
9262 ) THEN
9263 pn_lease_utils.crossval_leasedates (p_parameter_name => l_param_start_end_date
9264 , p_operation => 'CREATE INSURANCE'
9265 , p_lease_exec_date => NULL
9266 , p_lease_comm_date => p_insurance_tbl(l_index).policy_start_date
9267 , p_lease_term_date => p_insurance_tbl(l_index).policy_expiration_date
9268 , x_return_status => x_return_status
9269 );
9270 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9271 l_tbl_flag := 0;
9272 fnd_message.set_name ('PN', 'PN_INVALID_TERMINATION_DT');
9273 fnd_message.set_token ('TERMINATION_DATE', p_insurance_tbl(l_index).policy_expiration_date);
9274 fnd_message.set_token ('COMMENCEMENT_DATE', p_insurance_tbl(l_index).policy_start_date);
9275 fnd_msg_pub.ADD;
9276 RAISE fnd_api.g_exc_error;
9277 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9278 l_tbl_flag := 0;
9279 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
9280 fnd_message.set_token ('COLUMN', SUBSTR(l_param_start_end_date,3));
9281 fnd_message.set_token ('P_TEXT', l_api_name|| '-'|| SQLERRM);
9282 fnd_msg_pub.ADD;
9283 RAISE fnd_api.g_exc_unexpected_error;
9284 END IF;
9285 ELSE
9286 l_tbl_flag := 0;
9287 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
9288 fnd_message.set_token ('API_NAME', l_api_name);
9289 fnd_message.set_token ('NULL_PARAM', 'Policy Start and End Date NULL');
9290 fnd_msg_pub.ADD;
9291 RAISE fnd_api.g_exc_error;
9292 END IF;
9293
9294 ---------------------------------------------------------------------------------------------------------------------------------------------------------
9295 -- dff validations
9296 /* IF NOT ( (p_insurance_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char)
9297 AND (p_insurance_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char)
9298 AND (p_insurance_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char)
9299 AND (p_insurance_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char)
9300 AND (p_insurance_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char)
9301 AND (p_insurance_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char)
9302 AND (p_insurance_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char)
9303 AND (p_insurance_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char)
9304 AND (p_insurance_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char)
9305 AND (p_insurance_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char)
9306 AND (p_insurance_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char)
9307 AND (p_insurance_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char)
9308 AND (p_insurance_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char)
9309 AND (p_insurance_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char)
9310 AND (p_insurance_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char)
9311 AND (p_insurance_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char)
9312 ) THEN*/
9313 IF (get_attribute_status('PN_INSURANCE_REQUIREMNTS') > 0) THEN
9314 /*get_attribute_mandatory_status('PN_INSURANCE_REQUIREMNTS'
9315 ,p_insurance_tbl(l_index).attribute1
9316 ,p_insurance_tbl(l_index).attribute2
9317 ,p_insurance_tbl(l_index).attribute3
9318 ,p_insurance_tbl(l_index).attribute4
9319 ,p_insurance_tbl(l_index).attribute5
9320 ,p_insurance_tbl(l_index).attribute6
9321 ,p_insurance_tbl(l_index).attribute7
9322 ,p_insurance_tbl(l_index).attribute8
9323 ,p_insurance_tbl(l_index).attribute9
9324 ,p_insurance_tbl(l_index).attribute10
9325 ,p_insurance_tbl(l_index).attribute11
9326 ,p_insurance_tbl(l_index).attribute12
9327 ,p_insurance_tbl(l_index).attribute13
9328 ,p_insurance_tbl(l_index).attribute14
9329 ,p_insurance_tbl(l_index).attribute15
9330 ,x_return_status
9331 );
9332 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
9333 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
9334 fnd_message.set_token ('API_NAME', l_api_name);
9335 fnd_message.set_token ('NULL_PARAM','Required attribute in Insurance is NULL');
9336 fnd_msg_pub.ADD;
9337 RAISE fnd_api.g_exc_error;
9338 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9339 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
9340 fnd_message.set_token ('API_NAME', l_api_name);
9341 fnd_message.set_token ('NULL_PARAM', 'Required attribute in Insurance is NULL');
9342 fnd_msg_pub.ADD;
9343 RAISE fnd_api.g_exc_unexpected_error;
9344 ELSE*/
9345 IF NOT ((p_insurance_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute_category IS NULL)
9346 AND (p_insurance_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute1 IS NULL)
9347 AND (p_insurance_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute2 IS NULL)
9348 AND (p_insurance_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute3 IS NULL)
9349 AND (p_insurance_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute4 IS NULL)
9350 AND (p_insurance_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute5 IS NULL)
9351 AND (p_insurance_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute6 IS NULL)
9352 AND (p_insurance_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute7 IS NULL)
9353 AND (p_insurance_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute8 IS NULL)
9354 AND (p_insurance_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute9 IS NULL)
9355 AND (p_insurance_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute10 IS NULL)
9356 AND (p_insurance_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute11 IS NULL)
9357 AND (p_insurance_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute12 IS NULL)
9358 AND (p_insurance_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute13 IS NULL)
9359 AND (p_insurance_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute14 IS NULL)
9360 AND (p_insurance_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char OR p_insurance_tbl(l_index).attribute15 IS NULL)
9361 ) THEN
9362 PN_LEASE_UTILS.validate_desc_flex (
9363 p_api_name => 'PN_INSURANCE_REQUIREMNTS'--l_api_name_full
9364 , p_application_short_name => 'PN'
9365 , p_desc_flex_name => 'PN_INSURANCE_REQUIREMNTS'
9366 , p_desc_segment1 => p_insurance_tbl(l_index).attribute1
9367 , p_desc_segment2 => p_insurance_tbl(l_index).attribute2
9368 , p_desc_segment3 => p_insurance_tbl(l_index).attribute3
9369 , p_desc_segment4 => p_insurance_tbl(l_index).attribute4
9370 , p_desc_segment5 => p_insurance_tbl(l_index).attribute5
9371 , p_desc_segment6 => p_insurance_tbl(l_index).attribute6
9372 , p_desc_segment7 => p_insurance_tbl(l_index).attribute7
9373 , p_desc_segment8 => p_insurance_tbl(l_index).attribute8
9374 , p_desc_segment9 => p_insurance_tbl(l_index).attribute9
9375 , p_desc_segment10 =>p_insurance_tbl(l_index).attribute10
9376 , p_desc_segment11 =>p_insurance_tbl(l_index).attribute11
9377 , p_desc_segment12 =>p_insurance_tbl(l_index).attribute12
9378 , p_desc_segment13 =>p_insurance_tbl(l_index).attribute13
9379 , p_desc_segment14 =>p_insurance_tbl(l_index).attribute14
9380 , p_desc_segment15 =>p_insurance_tbl(l_index).attribute15
9381 , p_desc_context => p_insurance_tbl(l_index).attribute_category
9382 , p_resp_appl_id => fnd_global.resp_appl_id
9383 , p_resp_id => fnd_global.resp_id
9384 , p_return_status => x_return_status
9385 );
9386
9387 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9388 l_tbl_flag := 0;
9389 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
9390 fnd_message.set_token ('COLUMN', 'PN_INSURANCE_REQUIREMENTS_DESC_FIELDS');
9391 fnd_message.set_token ('P_TEXT', 'PN_INSURANCE_REQUIREMENTS'|| '-'|| SQLERRM);
9392 fnd_msg_pub.ADD;
9393 RAISE fnd_api.g_exc_error;
9394 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9395 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
9396 fnd_message.set_token ('COLUMN', 'PN_INSURANCE_REQUIREMENTS_DESC_FIELDS');
9397 fnd_message.set_token ('P_TEXT', 'PN_INSURANCE_REQUIREMENTS'|| '-'|| SQLERRM);
9398 fnd_msg_pub.ADD;
9399 RAISE fnd_api.g_exc_unexpected_error;
9400 END IF;
9401 END IF;
9402 END IF;
9403 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
9404 ----------------------dbms_output.put_line('l_tbl_flag : ---'||l_tbl_flag);
9405 EXCEPTION
9406 WHEN fnd_api.g_exc_error THEN
9407 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);
9408 pvt_debug(g_pkg_name||'-VALIDATE_INSURANCE_FOR_CREATE:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
9409 WHEN OTHERS THEN
9410 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM);
9411 pvt_debug(g_pkg_name||'-VALIDATE_INSURANCE_FOR_CREATE:LOOOPING:EXCEPTION:'||SQLERRM,3);
9412 END;
9413 END LOOP;
9414 x_tbl := l_tbl;
9415 x_return_status := fnd_api.g_ret_sts_success;
9416 ----------------------dbms_output.put_line('validation for insurance creation completed');
9417 EXCEPTION
9418 WHEN fnd_api.g_exc_error THEN
9419 x_return_status := fnd_api.g_ret_sts_error;
9420 WHEN OTHERS THEN
9421 x_return_status := fnd_api.g_ret_sts_unexp_error;
9422 ----------------------dbms_output.put_line('INSURANCE VALIDATION FAILED');
9423 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
9424 pvt_debug(g_pkg_name||'-VALIDATE_INSURANCE_FOR_CREATE:Insurance Type Code'||l_lookup_code,3);
9425 -----------------------------------------------------------------------------------------------------------------------------------------------------
9426 END VALIDATE_INSURANCE_FOR_CREATE;
9427
9428
9429 PROCEDURE INSURANCE_INSERT_ROW (p_insurance_tbl IN OUT NOCOPY lease_insurance_tbl_type
9430 , p_lease_id IN PN_LEASES_ALL.lease_id%type
9431 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
9432 , x_return_status OUT NOCOPY VARCHAR2
9433 , p_tbl IN temp_tbl_type
9434 , p_commit IN VARCHAR2
9435 , p_validate IN VARCHAR2
9436 )
9437 IS
9438 l_index BINARY_INTEGER;
9439 l_row_id VARCHAR2(100) ;
9440 l_insurance_requirement_id PN_INSURANCE_REQUIREMENTS_ALL.INSURANCE_REQUIREMENT_ID%TYPE;
9441 l_return_status VARCHAR2(1);
9442 x_msg_count NUMBER;
9443 x_msg_data VARCHAR2(5000);
9444 BEGIN
9445 ----------------------dbms_output.put_line('CALLING INSURANCE INSERT ROW PROC');
9446 pvt_debug(g_pkg_name||'-Inside INSURANCE_INSERT_ROW',3);
9447 for l_index in p_insurance_tbl.FIRST..p_insurance_tbl.LAST loop
9448
9449 ----------------------dbms_output.put_line('temp flag value in insert proc: '|| p_tbl(l_index).temp_flag);
9450 IF p_tbl(l_index).temp_flag = 1 THEN
9451 l_insurance_requirement_id := NULL;
9452 pvt_debug(g_pkg_name||'-INSURANCE_INSERT_ROW:Calling PN_INSURANCE_REQUIREMENTS_PKG.INSERT_ROW',3);
9453 pn_insurance_requirements_pkg.insert_row (
9454 X_ROWID => l_row_id
9455 ,X_INSURANCE_REQUIREMENT_ID => l_insurance_requirement_id
9456 ,X_INSURANCE_TYPE_LOOKUP_CODE => p_insurance_tbl(l_index).insurance_type_lookup_code
9457 ,X_LEASE_ID => p_lease_id
9458 ,X_LEASE_CHANGE_ID => p_lease_change_id
9459 ,X_POLICY_START_DATE => trunc(p_insurance_tbl(l_index).policy_start_date)
9460 ,X_POLICY_EXPIRATION_DATE => trunc(p_insurance_tbl(l_index).policy_expiration_date)
9461 ,X_INSURER_NAME => p_insurance_tbl(l_index).insurer_name
9462 ,X_POLICY_NUMBER => p_insurance_tbl(l_index).policy_number
9463 ,X_INSURED_AMOUNT => p_insurance_tbl(l_index).insured_amount
9464 ,X_REQUIRED_AMOUNT => p_insurance_tbl(l_index).required_amount
9465 ,X_STATUS => p_insurance_tbl(l_index).status_code
9466 ,X_INSURANCE_COMMENTS => p_insurance_tbl(l_index).insurance_comments
9467 ,X_ATTRIBUTE_CATEGORY => p_insurance_tbl(l_index).attribute_category
9468 ,X_ATTRIBUTE1 => p_insurance_tbl(l_index).attribute1
9469 ,X_ATTRIBUTE2 => p_insurance_tbl(l_index).attribute2
9470 ,X_ATTRIBUTE3 => p_insurance_tbl(l_index).attribute3
9471 ,X_ATTRIBUTE4 => p_insurance_tbl(l_index).attribute4
9472 ,X_ATTRIBUTE5 => p_insurance_tbl(l_index).attribute5
9473 ,X_ATTRIBUTE6 => p_insurance_tbl(l_index).attribute6
9474 ,X_ATTRIBUTE7 => p_insurance_tbl(l_index).attribute7
9475 ,X_ATTRIBUTE8 => p_insurance_tbl(l_index).attribute8
9476 ,X_ATTRIBUTE9 => p_insurance_tbl(l_index).attribute9
9477 ,X_ATTRIBUTE10 => p_insurance_tbl(l_index).attribute10
9478 ,X_ATTRIBUTE11 => p_insurance_tbl(l_index).attribute11
9479 ,X_ATTRIBUTE12 => p_insurance_tbl(l_index).attribute12
9480 ,X_ATTRIBUTE13 => p_insurance_tbl(l_index).attribute13
9481 ,X_ATTRIBUTE14 => p_insurance_tbl(l_index).attribute14
9482 ,X_ATTRIBUTE15 => p_insurance_tbl(l_index).attribute15
9483 ,X_CREATION_DATE => sysdate
9484 ,X_CREATED_BY => fnd_global.user_id
9485 ,X_LAST_UPDATE_DATE => sysdate
9486 ,X_LAST_UPDATED_BY => fnd_global.user_id
9487 ,X_LAST_UPDATE_LOGIN => fnd_global.user_id
9488 ,x_org_id => g_org_id
9489 );
9490
9491 --SAVEPOINT A;
9492 ----------------------dbms_output.put_line ('INSURANCE ROW CREATED');--Rupak
9493 pvt_debug(g_pkg_name||'-INSURANCE_INSERT_ROW:PN_INSURANCE_REQUIREMENTS_PKG.INSERT_ROW Succesful',3);
9494 IF l_insurance_requirement_id IS NOT NULL AND p_insurance_tbl(l_index).insurance_milestone_tbl.count <> 0 THEN
9495 ----------------------dbms_output.put_line ('--------CREATE MILESTONE------');--Rupak
9496 pvt_debug(g_pkg_name||'-INSURANCE_INSERT_ROW:Calling CREATE_MILESTONE',3);
9497 CREATE_MILESTONE (
9498 p_milestone_tbl => p_insurance_tbl(l_index).insurance_milestone_tbl
9499 , p_lease_id => p_lease_id
9500 , p_lease_change_id => p_lease_change_id
9501 , p_option_id => null
9502 , p_insurance_req_id => l_insurance_requirement_id
9503 , p_payment_term_id => null
9504 , p_commit => p_commit
9505 , p_validate => p_validate
9506 , x_return_status => l_return_status
9507 -- , x_msg_count => x_msg_count
9508 -- , x_msg_data => x_msg_data
9509 );
9510
9511 ----------------------dbms_output.put_line('After MileStone');
9512 END IF;
9513
9514 END IF;
9515 END loop;
9516
9517 EXCEPTION
9518 WHEN OTHERS THEN
9519 x_return_status := fnd_api.g_ret_sts_unexp_error;
9520 ----------------------dbms_output.put_line('Insert procedure for insur creation failed') ;
9521 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
9522 pvt_debug(g_pkg_name||'-INSURANCE_INSERT_ROW:Exception'||SQLERRM,3);
9523 END INSURANCE_INSERT_ROW;
9524
9525 PROCEDURE CREATE_INSURANCE (
9526 p_lease_id IN PN_LEASES_ALL.lease_id%type
9527 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
9528 , p_commit IN VARCHAR2
9529 , p_validate IN VARCHAR2
9530 , p_insurance_tbl IN OUT NOCOPY lease_insurance_tbl_type
9531 , x_return_status OUT NOCOPY VARCHAR2
9532 -- , x_msg_count OUT NUMBER
9533 -- , x_msg_data OUT VARCHAR2
9534 )
9535 IS
9536 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success ;
9537 l_msg_count NUMBER;
9538 l_msg_data VARCHAR2(4000) ;
9539 x_out_tbl temp_tbl_type ;
9540 BEGIN
9541 ----------------------dbms_output.put_line('IN CREATE_INSURANCE');
9542 pvt_debug(g_pkg_name||'-Inside CREATE_INSURANCE',3);
9543 VALIDATE_INSURANCE_FOR_CREATE(p_insurance_tbl => p_insurance_tbl
9544 ,x_tbl => x_out_tbl
9545 ,x_return_status => x_return_status
9546 );
9547 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
9548 ----------------------dbms_output.put_line('RETURN STATUS OF VALIDATION :--'||l_return_status);
9549 ----------------------dbms_output.put_line('CALLING INSURANCE INSERT ROW PROC');
9550 INSURANCE_INSERT_ROW(p_insurance_tbl => p_insurance_tbl
9551 ,p_lease_id => p_lease_id
9552 ,p_lease_change_id => p_lease_change_id
9553 ,x_return_status => x_return_status
9554 ,p_tbl => x_out_tbl
9555 ,p_commit => p_commit
9556 ,p_validate => p_validate );
9557 ELSE
9558 RAISE fnd_api.g_exc_error;
9559 END IF;
9560 EXCEPTION
9561 WHEN fnd_api.g_exc_error THEN
9562 x_return_status:=fnd_api.g_ret_sts_error;
9563 WHEN OTHERS THEN
9564 x_return_status := fnd_api.g_ret_sts_unexp_error;
9565 END CREATE_INSURANCE;
9566 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
9567
9568
9569 PROCEDURE validate_insurance_for_update (
9570 p_insurance_tbl IN OUT NOCOPY lease_insurance_tbl_type,
9571 x_tbl OUT NOCOPY temp_tbl_type,
9572 x_return_status IN OUT NOCOPY VARCHAR2,
9573 p_lease_id IN pn_leases_all.lease_id%TYPE,
9574 p_lease_change_id IN pn_lease_changes_all.lease_change_id%TYPE
9575 )
9576 IS
9577 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
9578 l_index BINARY_INTEGER;
9579 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
9580 l_api_name VARCHAR2(30) := 'UPDATE_INSURANCE';
9581 l_cur_id NUMBER;
9582 l_tbl_index BINARY_INTEGER;
9583 l_tbl_flag NUMBER := 1;
9584 l_tbl temp_tbl_type;
9585 l_lookup_code pn_insurance_requirements_all.insurance_type_lookup_code%TYPE;
9586 CURSOR c_insur (
9587 p_insurance_req_id NUMBER
9588 )
9589 IS
9590 SELECT insurance_requirement_id,
9591 status,
9592 insurance_type_lookup_code,
9593 lease_id,
9594 lease_change_id,
9595 policy_start_date,
9596 policy_expiration_date,
9597 notification_date,
9598 insurer_name,
9599 policy_number,
9600 insured_amount,
9601 required_amount,
9602 attribute_category,
9603 attribute1,
9604 attribute2,
9605 attribute3,
9606 attribute4,
9607 attribute5,
9608 attribute6,
9609 attribute7,
9610 attribute8,
9611 attribute9,
9612 attribute10,
9613 attribute11,
9614 attribute12,
9615 attribute13,
9616 attribute14,
9617 attribute15,
9618 org_id,
9619 insurance_comments
9620 from PN_INSURANCE_REQUIREMENTS_ALL
9621 where insurance_requirement_id = l_cur_id;
9622 lcu_insur_rec c_insur%ROWTYPE;
9623 BEGIN
9624 l_return_status := fnd_api.g_ret_sts_success ;
9625 l_tbl_flag := 2;
9626
9627 pvt_debug(g_pkg_name||'-Inside VALIDATE_INSURANCE_FOR_UPDATE',3);
9628 For l_index in p_insurance_tbl.FIRST..p_insurance_tbl.LAST LOOP
9629 BEGIN
9630 --INITIALIZE_INSURANCE_REC(p_insurance_tbl(l_index),'UPDATE_INSURANCE',x_return_status);
9631 l_tbl_index := l_index;
9632 ------------------dbms_output.put_line('In Validate Insurance:2');--Rupak
9633 IF p_insurance_tbl(l_index).insurance_requirement_id IS NULL THEN
9634 l_tbl_flag := 1;
9635 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
9636 fnd_message.set_token ('API_NAME', l_api_name);
9637 fnd_message.set_token ('NULL_PARAM', 'INSURANCE_ID');
9638 fnd_msg_pub.ADD;
9639 RAISE fnd_api.g_exc_error;
9640 ELSE
9641 l_cur_id := p_insurance_tbl(l_index).insurance_requirement_id;
9642 OPEN c_insur(l_cur_id);
9643 ----------------------dbms_output.put_line('cursor opened for update');
9644 FETCH c_insur INTO lcu_insur_rec;
9645 l_tbl_flag := 2;
9646 pvt_debug(g_pkg_name||'-Inside VALIDATE_INSURANCE_FOR_UPDATE ELSE Part',3);
9647 IF(( p_insurance_tbl(l_index).policy_start_date IS NOT NULL and p_insurance_tbl(l_index).policy_start_date <> pn_lease_utils.g_pn_miss_date)
9648 OR (p_insurance_tbl(l_index).policy_expiration_date IS NOT NULL and p_insurance_tbl(l_index).policy_expiration_date <> pn_lease_utils.g_pn_miss_date)
9649 )THEN
9650 pn_lease_utils.crossval_leasedates (
9651 p_parameter_name => l_param_start_end_date
9652 , p_operation => 'UPDATE_INSURANCE'
9653 , p_lease_exec_date => NULL
9654 , p_lease_comm_date => p_insurance_tbl(l_index).policy_start_date
9655 , p_lease_term_date => p_insurance_tbl(l_index).policy_expiration_date
9656 , x_return_status => x_return_status
9657 );
9658 pvt_debug(g_pkg_name||'-Inside VALIDATE_INSURANCE_FOR_UPDATE:CROSSVAL_LEASEDATES Return Status'||x_return_status,3);
9659 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9660 fnd_message.set_name ('PN', 'PN_INVALID_TERMINATION_DT');
9661 fnd_message.set_token ('TERMINATION_DATE', get_miss_date_decode(p_insurance_tbl(l_index).policy_expiration_date));
9662 fnd_message.set_token ('COMMENCEMENT_DATE', get_miss_date_decode(p_insurance_tbl(l_index).policy_start_date));
9663 fnd_msg_pub.ADD;
9664 RAISE fnd_api.g_exc_error;
9665 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9666 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
9667 fnd_message.set_token ('COLUMN', SUBSTR(l_param_status,3));
9668 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
9669 fnd_msg_pub.ADD;
9670 RAISE fnd_api.g_exc_unexpected_error;
9671 END IF;
9672 ELSE
9673 p_insurance_tbl(l_index).policy_start_date := lcu_insur_rec.policy_start_date;
9674 p_insurance_tbl(l_index).policy_expiration_date := lcu_insur_rec.policy_expiration_date;
9675 END IF;
9676
9677 ------------------dbms_output.put_line('In Validate Insurance:5');--Rupak
9678 IF (p_insurance_tbl(l_index).insured_amount = pn_lease_utils.g_pn_miss_num) THEN
9679 p_insurance_tbl(l_index).insured_amount := lcu_insur_rec.insured_amount;
9680 ELSIF(p_insurance_tbl(l_index).insured_amount IS NULL) THEN
9681 p_insurance_tbl(l_index).insured_amount := NULL;
9682 END IF;
9683
9684 IF (p_insurance_tbl(l_index).required_amount = pn_lease_utils.g_pn_miss_num) THEN
9685 p_insurance_tbl(l_index).required_amount := lcu_insur_rec.required_amount;
9686 ELSIF(p_insurance_tbl(l_index).required_amount IS NULL) THEN
9687 p_insurance_tbl(l_index).required_amount := NULL;
9688 END IF;
9689
9690 IF (p_insurance_tbl(l_index).insurer_name = pn_lease_utils.g_pn_miss_char) THEN
9691 p_insurance_tbl(l_index).insurer_name := lcu_insur_rec.insurer_name;
9692 ELSIF(p_insurance_tbl(l_index).insurer_name IS NULL) THEN
9693 p_insurance_tbl(l_index).insurer_name := NULL;
9694 END IF;
9695
9696 IF (p_insurance_tbl(l_index).insurance_comments = pn_lease_utils.g_pn_miss_char) THEN
9697 p_insurance_tbl(l_index).insurance_comments := lcu_insur_rec.insurance_comments;
9698 ELSIF(p_insurance_tbl(l_index).insurance_comments IS NULL) THEN
9699 p_insurance_tbl(l_index).insurance_comments := NULL;
9700 END IF;
9701
9702 IF (p_insurance_tbl(l_index).policy_number = pn_lease_utils.g_pn_miss_char) THEN
9703 p_insurance_tbl(l_index).policy_number := lcu_insur_rec.policy_number;
9704 ELSIF(p_insurance_tbl(l_index).policy_number IS NULL) THEN
9705 p_insurance_tbl(l_index).policy_number := NULL;
9706 END IF;
9707
9708
9709
9710 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
9711
9712
9713 IF ((p_insurance_tbl(l_index).status IS NOT NULL AND p_insurance_tbl(l_index).status <> pn_lease_utils.g_pn_miss_char)
9714 OR ( p_insurance_tbl(l_index).status_code IS NOT NULL AND p_insurance_tbl(l_index).status_code <> pn_lease_utils.g_pn_miss_char)
9715 ) THEN
9716 --l_lookup_code := NULL;
9717 ----------------------dbms_output.put_line (' STATUS CODE AND STATUS TYPE ARE NOT NULL');
9718 pn_lease_utils.get_lookup_code(
9719 p_parameter_name => l_param_status
9720 , p_lookup_meaning => p_insurance_tbl(l_index).status
9721 , p_operation => 'UPDATE_INSURANCE'
9722 , p_lookup_type => l_pn_status
9723 , x_return_status => x_return_status
9724 , x_lookup_type_code => p_insurance_tbl(l_index).status_code
9725 );
9726 pvt_debug(g_pkg_name||'-VALIDATE_INSURANCE_FOR_UPDATE:Insurance Status:'||p_insurance_tbl(l_index).status_code,3);
9727 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9728 --l_error_flag:='Y';
9729 l_tbl_flag := 0;
9730 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
9731 fnd_message.set_token ('LOOKUP_TYPE', l_pn_status);
9732 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_insurance_tbl(l_index).status));
9733 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_insurance_tbl(l_index).status_code));
9734 fnd_msg_pub.ADD;
9735 RAISE fnd_api.g_exc_error;
9736 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9737 --l_error_flag:='Y';
9738 l_tbl_flag := 0;
9739 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
9740 fnd_message.set_token ('COLUMN', SUBSTR(l_param_status,3));
9741 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
9742 fnd_msg_pub.ADD;
9743 RAISE fnd_api.g_exc_unexpected_error;
9744 END IF;
9745 ELSIF(p_insurance_tbl(l_index).status IS NULL OR p_insurance_tbl(l_index).status_code IS NULL) THEN
9746 p_insurance_tbl(l_index).status_code := 'N';
9747 ELSE
9748 p_insurance_tbl(l_index).status_code := lcu_insur_rec.status;
9749 END IF;
9750
9751
9752 ------------------dbms_output.put_line (' INSURANCE :123-2');--Rupak
9753 IF (( p_insurance_tbl(l_index).insurance_type is not NULL AND p_insurance_tbl(l_index).insurance_type <> pn_lease_utils.g_pn_miss_char)
9754 OR ( p_insurance_tbl(l_index).insurance_type_lookup_code is not NULL AND p_insurance_tbl(l_index).insurance_type_lookup_code <> pn_lease_utils.g_pn_miss_char)
9755 ) THEN
9756 ------------------dbms_output.put_line (' INSURANCE CODE AND INSURANCE TYPE ARE NOT NULL');--Rupak
9757
9758 pn_lease_utils.get_lookup_code(
9759 p_parameter_name => l_param_insurance_type
9760 , p_lookup_meaning => p_insurance_tbl(l_index).insurance_type
9761 , p_operation => 'UPDATE_INSURANCE'
9762 , p_lookup_type => l_pn_insurance_type
9763 , x_return_status => x_return_status
9764 , x_lookup_type_code => p_insurance_tbl(l_index).insurance_type_lookup_code
9765 );
9766 ------------------dbms_output.put_line (' INSURANCE CODE AND INSURANCE TYPE :'||x_return_status||p_insurance_tbl(l_index).insurance_type_lookup_code);--Rupak
9767 pvt_debug(g_pkg_name||'-VALIDATE_INSURANCE_FOR_UPDATE:Insurance Type:'||p_insurance_tbl(l_index).insurance_type_lookup_code,3);
9768 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9769 --l_error_flag:='Y';
9770 ------------------dbms_output.put_line (' INSURANCE :HI:1');--Rupak
9771 l_tbl_flag := 0;
9772 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
9773 fnd_message.set_token ('LOOKUP_TYPE', l_pn_insurance_type);
9774 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_insurance_tbl(l_index).insurance_type));
9775 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_insurance_tbl(l_index).insurance_type_lookup_code));
9776 fnd_msg_pub.ADD;
9777 RAISE fnd_api.g_exc_error;
9778 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9779 --l_error_flag:='Y';
9780 l_tbl_flag := 0;
9781 ------------------dbms_output.put_line (' INSURANCE :HI:2');--Rupak
9782 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
9783 fnd_message.set_token ('COLUMN', SUBSTR(l_param_insurance_type,3));
9784 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
9785 fnd_msg_pub.ADD;
9786 RAISE fnd_api.g_exc_unexpected_error;
9787 END IF;
9788 ELSIF(p_insurance_tbl(l_index).insurance_type IS NULL OR p_insurance_tbl(l_index).insurance_type_lookup_code IS NULL) THEN
9789 p_insurance_tbl(l_index).insurance_type_lookup_code := NULL;
9790 ELSE
9791 p_insurance_tbl(l_index).insurance_type_lookup_code := lcu_insur_rec.insurance_type_lookup_code;
9792 END IF;
9793
9794 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
9795
9796 /* IF NOT ( (p_insurance_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char)
9797 AND (p_insurance_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char)
9798 AND (p_insurance_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char)
9799 AND (p_insurance_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char)
9800 AND (p_insurance_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char)
9801 AND (p_insurance_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char)
9802 AND (p_insurance_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char)
9803 AND (p_insurance_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char)
9804 AND (p_insurance_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char)
9805 AND (p_insurance_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char)
9806 AND (p_insurance_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char)
9807 AND (p_insurance_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char)
9808 AND (p_insurance_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char)
9809 AND (p_insurance_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char)
9810 AND (p_insurance_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char)
9811 AND (p_insurance_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char)
9812 ) THEN*/
9813 -- Dff validations
9814 IF (p_insurance_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char) THEN
9815 p_insurance_tbl(l_index).attribute_category := lcu_insur_rec.attribute_category;
9816 ELSIF(p_insurance_tbl(l_index).attribute_category IS NULL) THEN
9817 p_insurance_tbl(l_index).attribute_category := NULL;
9818 END IF;
9819 IF (p_insurance_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char) THEN
9820 p_insurance_tbl(l_index).attribute1 := lcu_insur_rec.attribute1;
9821 ELSIF(p_insurance_tbl(l_index).attribute1 IS NULL) THEN
9822 p_insurance_tbl(l_index).attribute1 := NULL;
9823 END IF;
9824
9825 IF (p_insurance_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char) THEN
9826 p_insurance_tbl(l_index).attribute2 := lcu_insur_rec.attribute2;
9827 ELSIF(p_insurance_tbl(l_index).attribute2 IS NULL) THEN
9828 p_insurance_tbl(l_index).attribute2 := NULL;
9829 END IF;
9830 IF (p_insurance_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char) THEN
9831 p_insurance_tbl(l_index).attribute3 := lcu_insur_rec.attribute3;
9832 ELSIF(p_insurance_tbl(l_index).attribute3 IS NULL) THEN
9833 p_insurance_tbl(l_index).attribute3 := NULL;
9834 END IF;
9835 IF (p_insurance_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char) THEN
9836 p_insurance_tbl(l_index).attribute4 := lcu_insur_rec.attribute4;
9837 ELSIF(p_insurance_tbl(l_index).attribute4 IS NULL) THEN
9838 p_insurance_tbl(l_index).attribute4 := NULL;
9839 END IF;
9840 IF (p_insurance_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char) THEN
9841 p_insurance_tbl(l_index).attribute5 := lcu_insur_rec.attribute5;
9842 ELSIF(p_insurance_tbl(l_index).attribute5 IS NULL) THEN
9843 p_insurance_tbl(l_index).attribute5 := NULL;
9844 END IF;
9845 IF (p_insurance_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char) THEN
9846 p_insurance_tbl(l_index).attribute6 := lcu_insur_rec.attribute6;
9847 ELSIF(p_insurance_tbl(l_index).attribute6 IS NULL) THEN
9848 p_insurance_tbl(l_index).attribute6 := NULL;
9849 END IF;
9850 IF (p_insurance_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char) THEN
9851 p_insurance_tbl(l_index).attribute7 := lcu_insur_rec.attribute7;
9852 ELSIF(p_insurance_tbl(l_index).attribute7 IS NULL) THEN
9853 p_insurance_tbl(l_index).attribute7 := NULL;
9854 END IF;
9855 IF (p_insurance_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char) THEN
9856 p_insurance_tbl(l_index).attribute8 := lcu_insur_rec.attribute8;
9857 ELSIF(p_insurance_tbl(l_index).attribute8 IS NULL) THEN
9858 p_insurance_tbl(l_index).attribute8 := NULL;
9859 END IF;
9860 IF (p_insurance_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char) THEN
9861 p_insurance_tbl(l_index).attribute9 := lcu_insur_rec.attribute9;
9862 ELSIF(p_insurance_tbl(l_index).attribute9 IS NULL) THEN
9863 p_insurance_tbl(l_index).attribute9 := NULL;
9864 END IF;
9865 IF (p_insurance_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char) THEN
9866 p_insurance_tbl(l_index).attribute10 := lcu_insur_rec.attribute10;
9867 ELSIF(p_insurance_tbl(l_index).attribute10 IS NULL) THEN
9868 p_insurance_tbl(l_index).attribute10 := NULL;
9869 END IF;
9870 IF (p_insurance_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char) THEN
9871 p_insurance_tbl(l_index).attribute11 := lcu_insur_rec.attribute11;
9872 ELSIF(p_insurance_tbl(l_index).attribute11 IS NULL) THEN
9873 p_insurance_tbl(l_index).attribute11 := NULL;
9874 END IF;
9875 IF (p_insurance_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char) THEN
9876 p_insurance_tbl(l_index).attribute12 := lcu_insur_rec.attribute12;
9877 ELSIF(p_insurance_tbl(l_index).attribute12 IS NULL) THEN
9878 p_insurance_tbl(l_index).attribute12 := NULL;
9879 END IF;
9880 IF (p_insurance_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char) THEN
9881 p_insurance_tbl(l_index).attribute13 := lcu_insur_rec.attribute13;
9882 ELSIF(p_insurance_tbl(l_index).attribute13 IS NULL) THEN
9883 p_insurance_tbl(l_index).attribute13 := NULL;
9884 END IF;
9885 IF (p_insurance_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char) THEN
9886 p_insurance_tbl(l_index).attribute14 := lcu_insur_rec.attribute14;
9887 ELSIF(p_insurance_tbl(l_index).attribute14 IS NULL) THEN
9888 p_insurance_tbl(l_index).attribute14 := NULL;
9889 END IF;
9890 IF (p_insurance_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char) THEN
9891 p_insurance_tbl(l_index).attribute15 := lcu_insur_rec.attribute15;
9892 ELSIF(p_insurance_tbl(l_index).attribute15 IS NULL) THEN
9893 p_insurance_tbl(l_index).attribute15 := NULL;
9894 END IF;
9895 pn_lease_utils.validate_desc_flex (
9896 p_api_name => 'PN_INSURANCE_REQUIREMNTS'--l_api_name_full
9897 , p_application_short_name => 'PN'
9898 , p_desc_flex_name => 'PN_INSURANCE_REQUIREMNTS'
9899 , p_desc_segment1 => p_insurance_tbl(l_index).attribute1
9900 , p_desc_segment2 => p_insurance_tbl(l_index).attribute2
9901 , p_desc_segment3 => p_insurance_tbl(l_index).attribute3
9902 , p_desc_segment4 => p_insurance_tbl(l_index).attribute4
9903 , p_desc_segment5 => p_insurance_tbl(l_index).attribute5
9904 , p_desc_segment6 => p_insurance_tbl(l_index).attribute6
9905 , p_desc_segment7 => p_insurance_tbl(l_index).attribute7
9906 , p_desc_segment8 => p_insurance_tbl(l_index).attribute8
9907 , p_desc_segment9 => p_insurance_tbl(l_index).attribute9
9908 , p_desc_segment10 =>p_insurance_tbl(l_index).attribute10
9909 , p_desc_segment11 =>p_insurance_tbl(l_index).attribute11
9910 , p_desc_segment12 =>p_insurance_tbl(l_index).attribute12
9911 , p_desc_segment13 =>p_insurance_tbl(l_index).attribute13
9912 , p_desc_segment14 =>p_insurance_tbl(l_index).attribute14
9913 , p_desc_segment15 =>p_insurance_tbl(l_index).attribute15
9914 , p_desc_context => p_insurance_tbl(l_index).attribute_category
9915 , p_resp_appl_id => fnd_global.resp_appl_id
9916 , p_resp_id => fnd_global.resp_id
9917 , p_return_status=> x_return_status
9918 );
9919 ----------------------dbms_output.put_line('dff validated');--Rupak
9920 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
9921 l_tbl_flag := 0;
9922 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
9923 fnd_message.set_token ('COLUMN', 'PN_INSURANCE_REQUIREMENTS_DESC_FIELDS');
9924 fnd_message.set_token ('P_TEXT', 'PN_INSURANCE_REQUIREMENTS'|| '-'|| SQLERRM);
9925 fnd_msg_pub.ADD;
9926 RAISE fnd_api.g_exc_error;
9927 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
9928 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
9929 fnd_message.set_token ('COLUMN', 'PN_INSURANCE_REQUIREMENTS_DESC_FIELDS');
9930 fnd_message.set_token ('P_TEXT', 'PN_INSURANCE_REQUIREMENTS'|| '-'|| SQLERRM);
9931 fnd_msg_pub.ADD;
9932 RAISE fnd_api.g_exc_unexpected_error;
9933 END IF;
9934 --END IF;
9935 CLOSE c_insur;
9936 END IF;
9937 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
9938 EXCEPTION
9939 WHEN fnd_api.g_exc_error THEN
9940 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);
9941 pvt_debug(g_pkg_name||'-VALIDATE_INSURANCE_FOR_UPDATE:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
9942 WHEN OTHERS THEN
9943 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM);
9944 pvt_debug(g_pkg_name||'-VALIDATE_INSURANCE_FOR_UPDATE:LOOOPING:EXCEPTION:'||SQLERRM,3);
9945 END;
9946 END LOOP;
9947 x_tbl := l_tbl;
9948 x_return_status := fnd_api.g_ret_sts_success;
9949 ----------------------dbms_output.put_line('VALIDATIONS FOR UPDATE OF INSURANCE COMPLETED');
9950 EXCEPTION
9951 WHEN fnd_api.g_exc_error THEN
9952 x_return_status := fnd_api.g_ret_sts_error;
9953 WHEN OTHERS THEN
9954 x_return_status := fnd_api.g_ret_sts_unexp_error;
9955 pvt_debug(g_pkg_name||'-VALIDATE_INSURANCE_FOR_UPDATE:Exception'||SQLERRM,3);
9956 ------------------dbms_output.put_line('Exception:VALIDATE_INSURANCE_FOR_UPDATE'||SQLERRM);
9957 END VALIDATE_INSURANCE_FOR_UPDATE;
9958
9959 PROCEDURE INSURANCE_UPDATE_ROW (p_insurance_tbl IN OUT NOCOPY lease_insurance_tbl_type
9960 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%type
9961 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
9962 ,x_return_status OUT NOCOPY VARCHAR2
9963 ,p_tbl IN temp_tbl_type
9964 ,p_commit IN VARCHAR2
9965 ,p_validate IN VARCHAR2
9966 )
9967 IS
9968 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
9969 l_index BINARY_INTEGER;
9970 l_insurance_requirement_id PN_INSURANCE_REQUIREMENTS_ALL.insurance_requirement_id%TYPE;
9971 x_msg_count NUMBER;
9972 x_msg_data VARCHAR2(5000);
9973
9974 BEGIN
9975 ----------------------dbms_output.put_line('In INSURANCE_UPDATE_ROW:1');--Rupak
9976 pvt_debug(g_pkg_name||'-Inside INSURANCE_UPDATE_ROW:',3);
9977 For l_index in p_insurance_tbl.FIRST..p_insurance_tbl.LAST loop
9978 ----------------------dbms_output.put_line('In INSURANCE_UPDATE_ROW:2');--Rupak
9979
9980 IF p_tbl(l_index).temp_flag = 2 THEN
9981 ----------------------dbms_output.put_line('UPDATE INSURANCE PROCEDURE FOR RECORD: '||l_index ||'STARTED');--Rupak
9982 pvt_debug(g_pkg_name||'-INSURANCE_UPDATE_ROW:'||'UPDATE INSURANCE PROCEDURE FOR RECORD: '||l_index ||'STARTED',3);
9983 BEGIN
9984 pn_insurance_requirements_pkg.Update_Row
9985 (
9986 X_INSURANCE_REQUIREMENT_ID => p_insurance_tbl(l_index).insurance_requirement_id,
9987 X_INSURANCE_TYPE_LOOKUP_CODE => p_insurance_tbl(l_index).insurance_type_lookup_code,
9988 X_LEASE_ID => p_lease_id,
9989 X_LEASE_CHANGE_ID => p_lease_change_id,
9990 X_POLICY_START_DATE => trunc(p_insurance_tbl(l_index).policy_start_date),
9991 X_POLICY_EXPIRATION_DATE => trunc(p_insurance_tbl(l_index).policy_expiration_date),
9992 X_INSURER_NAME => p_insurance_tbl(l_index).insurer_name,
9993 X_POLICY_NUMBER => p_insurance_tbl(l_index).policy_number,
9994 X_INSURED_AMOUNT => p_insurance_tbl(l_index).insured_amount,
9995 X_REQUIRED_AMOUNT => p_insurance_tbl(l_index).required_amount,
9996 X_STATUS => p_insurance_tbl(l_index).status_code,
9997 X_INSURANCE_COMMENTS => p_insurance_tbl(l_index).insurance_comments,
9998 X_ATTRIBUTE_CATEGORY => p_insurance_tbl(l_index).attribute_category,
9999 X_ATTRIBUTE1 => p_insurance_tbl(l_index).attribute1,
10000 X_ATTRIBUTE2 => p_insurance_tbl(l_index).attribute2,
10001 X_ATTRIBUTE3 => p_insurance_tbl(l_index).attribute3,
10002 X_ATTRIBUTE4 => p_insurance_tbl(l_index).attribute4,
10003 X_ATTRIBUTE5 => p_insurance_tbl(l_index).attribute5,
10004 X_ATTRIBUTE6 => p_insurance_tbl(l_index).attribute6,
10005 X_ATTRIBUTE7 => p_insurance_tbl(l_index).attribute7,
10006 X_ATTRIBUTE8 => p_insurance_tbl(l_index).attribute8,
10007 X_ATTRIBUTE9 => p_insurance_tbl(l_index).attribute9,
10008 X_ATTRIBUTE10 => p_insurance_tbl(l_index).attribute10,
10009 X_ATTRIBUTE11 => p_insurance_tbl(l_index).attribute11,
10010 X_ATTRIBUTE12 => p_insurance_tbl(l_index).attribute12,
10011 X_ATTRIBUTE13 => p_insurance_tbl(l_index).attribute13,
10012 X_ATTRIBUTE14 => p_insurance_tbl(l_index).attribute14,
10013 X_ATTRIBUTE15 => p_insurance_tbl(l_index).attribute15,
10014 X_LAST_UPDATE_DATE => sysdate,
10015 X_LAST_UPDATED_BY => fnd_global.user_id,
10016 X_LAST_UPDATE_LOGIN => fnd_global.login_id
10017 );
10018
10019 --SAVEPOINT A;
10020 ----------------------dbms_output.put_line('UPDATE PROCEDURE FOR RECORD: '||l_index ||'COMPLETED');--Rupak
10021 pvt_debug(g_pkg_name||'-INSURANCE_UPDATE_ROW:'||'UPDATE INSURANCE PROCEDURE FOR RECORD: '||l_index ||'Completed',3);
10022 l_insurance_requirement_id := p_insurance_tbl(l_index).insurance_requirement_id;
10023 EXCEPTION
10024 WHEN OTHERS THEN
10025 ----------------------dbms_output.put_line('EXCEPTION:In INSURANCE_UPDATE_ROW:3'||SQLERRM);--Rupak
10026 pvt_debug(g_pkg_name||'-INSURANCE_UPDATE_ROW:PN_INSURANCE_REQUIREMENTS_PKG.UPDATE_ROW:Exception:'||SQLERRM,3);
10027 END;
10028 IF p_insurance_tbl(l_index).insurance_milestone_tbl.count<>0 THEN
10029 ----------------------dbms_output.put_line('UPDATE MILESTONE PROCEDURE FOR RECORD: '||l_index ||'STARTED');--Rupak
10030 UPDATE_MILESTONE (
10031 p_milestone_tbl => p_insurance_tbl(l_index).insurance_milestone_tbl
10032 , p_lease_id => p_lease_id
10033 , p_lease_change_id => p_lease_change_id
10034 , p_option_id => NULL
10035 , p_insurance_req_id => l_insurance_requirement_id
10036 , p_payment_term_id => NULL
10037 , p_commit => p_commit
10038 , p_validate => 'N'
10039 , x_return_status => x_return_status
10040 -- , x_msg_count => x_msg_count
10041 -- , x_msg_data => x_msg_data
10042 );
10043 END IF;
10044 END IF;
10045 END LOOP;
10046 EXCEPTION
10047 WHEN OTHERS THEN
10048 x_return_status := fnd_api.g_ret_sts_unexp_error;
10049 pvt_debug(g_pkg_name||'-INSURANCE_UPDATE_ROW:Exception:'||SQLERRM,3);
10050 END INSURANCE_UPDATE_ROW;
10051
10052 PROCEDURE UPDATE_INSURANCE (
10053 p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
10054 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.LEASE_CHANGE_ID%TYPE
10055 , p_commit IN VARCHAR2
10056 , p_validate IN VARCHAR2
10057 , p_insurance_tbl IN OUT NOCOPY lease_insurance_tbl_type
10058 , x_return_status OUT NOCOPY VARCHAR2
10059 -- , x_msg_count OUT NUMBER
10060 -- , x_msg_data OUT VARCHAR2
10061 )
10062 IS
10063 l_return_status VARCHAR2 (1) := fnd_api.g_ret_sts_success;
10064 l_msg_count NUMBER ;
10065 l_msg_data VARCHAR2(2000) ;
10066 x_out_tbl temp_tbl_type;
10067
10068 p_insurance_tbl_create lease_insurance_tbl_type;
10069 p_insurance_tbl_update lease_insurance_tbl_type;
10070 m NUMBER;
10071 n NUMBER;
10072 l_err_insurance_cnt NUMBER:=0;
10073 BEGIN
10074 x_return_status := fnd_api.g_ret_sts_success;
10075
10076 m:=1;
10077 n:=1;
10078 FOR i IN 1..p_insurance_tbl.COUNT
10079 LOOP
10080 IF(p_insurance_tbl(i).insurance_requirement_id IS NOT NULL AND p_insurance_tbl(i).insurance_requirement_id <> pn_lease_utils.g_pn_miss_num) THEN
10081
10082 -- p_insurance_tbl(i).p_null_id := 'N';
10083 p_insurance_tbl_update(n):=p_insurance_tbl(i);
10084 n:=n+1;
10085 ELSE
10086 --p_insurance_tbl(i).p_null_id := 'Y';
10087 p_insurance_tbl_create(m):=p_insurance_tbl(i);
10088 m:=m+1;
10089 END IF;
10090 END LOOP;
10091 IF(p_insurance_tbl_update.COUNT > 0) THEN
10092 VALIDATE_INSURANCE_FOR_UPDATE(
10093 p_insurance_tbl => p_insurance_tbl_update
10094 ,p_lease_id => p_lease_id
10095 ,p_lease_change_id => p_lease_change_id
10096 ,x_tbl => x_out_tbl
10097 ,x_return_status => x_return_status
10098 );
10099 ------------------dbms_output.put_line('B4 Insurance Update'||x_return_status);--Rupak
10100 pvt_debug(g_pkg_name||'-Inside UPDATE_INSURANCE:',3);
10101 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
10102 ------------------dbms_output.put_line('B4 Insurance Update IN IF ');--Rupak
10103 INSURANCE_UPDATE_ROW(
10104 p_insurance_tbl => p_insurance_tbl_update--p_insurance_tbl
10105 , p_lease_id => p_lease_id
10106 , p_lease_change_id => p_lease_change_id
10107 , x_return_status => x_return_status
10108 , p_tbl => x_out_tbl
10109 , p_commit => p_commit
10110 , p_validate => p_validate
10111 );
10112 pvt_debug(g_pkg_name||'-UPDATE_INSURANCE:INSURANCE_UPDATE_ROW Return Status:'||x_return_status,3);
10113 ------------------dbms_output.put_line('After Insurance Update:'||x_return_status);--Rupak
10114 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10115 --x_return_status := fnd_api.g_ret_sts_unexp_error;
10116 l_err_insurance_cnt := l_err_insurance_cnt + 1;
10117 ELSE
10118 --x_return_status := fnd_api.g_ret_sts_error;
10119 l_err_insurance_cnt := l_err_insurance_cnt + 1;
10120 END IF;
10121 END IF;
10122 IF(p_insurance_tbl_create.COUNT > 0) THEN
10123 VALIDATE_INSURANCE_FOR_CREATE(p_insurance_tbl => p_insurance_tbl_create
10124 ,x_tbl => x_out_tbl
10125 ,x_return_status => x_return_status
10126 );
10127 pvt_debug(g_pkg_name||'Inside UPDATE_INSURANCE:VALIDATE_INSURANCE_FOR_CREATE Return Status'||x_return_status,3);
10128 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
10129 ----------------------dbms_output.put_line('RETURN STATUS OF VALIDATION :--'||l_return_status);
10130 ----------------------dbms_output.put_line('CALLING INSURANCE INSERT ROW PROC');
10131 INSURANCE_INSERT_ROW(p_insurance_tbl => p_insurance_tbl_create
10132 ,p_lease_id => p_lease_id
10133 ,p_lease_change_id => p_lease_change_id
10134 ,x_return_status => x_return_status
10135 ,p_tbl => x_out_tbl
10136 ,p_commit => p_commit
10137 ,p_validate => p_validate );
10138 pvt_debug(g_pkg_name||'Inside UPDATE_INSURANCE:INSURANCE_INSERT_ROW Return Status'||x_return_status,3);
10139 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
10140 --RAISE fnd_api.g_exc_error;
10141 l_err_insurance_cnt := l_err_insurance_cnt + 1;
10142 END IF;
10143 ELSE
10144 l_err_insurance_cnt := l_err_insurance_cnt + 1;
10145 END IF;
10146 END IF;
10147
10148 IF(l_err_insurance_cnt = 0) THEN
10149 x_return_status := fnd_api.g_ret_sts_success;
10150 ELSE
10151 x_return_status := fnd_api.g_ret_sts_error;
10152 END IF;
10153
10154 EXCEPTION
10155 WHEN fnd_api.g_exc_error THEN
10156 ------------------dbms_output.put_line('In Insrance:hi:Exception:'||x_return_status);
10157 x_return_status:=fnd_api.g_ret_sts_error;
10158 WHEN OTHERS THEN
10159 x_return_status := fnd_api.g_ret_sts_unexp_error;
10160 END UPDATE_INSURANCE;
10161
10162
10163 PROCEDURE VALIDATE_OPTION_FOR_CREATE ( p_option_tbl IN OUT NOCOPY lease_option_tbl_type
10164 ,x_tbl OUT NOCOPY temp_tbl_type
10165 ,x_return_status IN OUT NOCOPY VARCHAR2
10166
10167 )
10168 IS
10169 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
10170 l_index BINARY_INTEGER;
10171 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
10172 l_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE := pn_lease_utils.g_pn_miss_char;
10173 l_cur_id NUMBER;
10174 l_tbl_index BINARY_INTEGER;
10175 l_tbl_flag NUMBER := 1;
10176 l_tbl temp_tbl_type;
10177 l_api_name VARCHAR2(30) := 'CREATE OPTION';
10178 l_err_options_count NUMBER:=0;
10179 BEGIN
10180 ----------------------dbms_output.put_line('VALIDATION FOR OPTION CREATION STARTED');--Rupak
10181 pvt_debug(g_pkg_name||'-Inside VALIDATE_OPTION_FOR_CREATE:',3);
10182 FOR l_index in p_option_tbl.FIRST.. p_option_tbl.LAST
10183 LOOP
10184 BEGIN
10185 IF ( ( p_option_tbl(l_index).option_notice_reqd_type = pn_lease_utils.g_pn_miss_char) OR( p_option_tbl(l_index).option_notice_reqd = pn_lease_utils.g_pn_miss_char)
10186 ) THEN
10187 IF ( p_option_tbl(l_index).option_notice_reqd_type = pn_lease_utils.g_pn_miss_char) THEN
10188 p_option_tbl(l_index).option_notice_reqd_type := 'No';
10189 ELSIF( p_option_tbl(l_index).option_notice_reqd = pn_lease_utils.g_pn_miss_char) THEN
10190 p_option_tbl(l_index).option_notice_reqd := 'N';
10191 END IF;
10192 --NULL;
10193 END IF;
10194 INITIALIZE_OPTIONS_REC(p_option_tbl(l_index),'CREATE_OPTIONS',x_return_status);
10195 l_tbl_flag := 1;
10196 l_tbl_index := l_index;
10197
10198 IF (( p_option_tbl(l_index).option_type IS NOT NULL OR p_option_tbl(l_index).option_type_code IS NOT NULL)
10199 ) THEN
10200 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_option_type
10201 , p_lookup_meaning => p_option_tbl(l_index).option_type
10202 , p_operation => 'CREATE_OPTIONS'
10203 , p_lookup_type => l_pn_lease_option_type
10204 , x_return_status => x_return_status
10205 , x_lookup_type_code => p_option_tbl(l_index).option_type_code
10206 );
10207 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10208 --l_error_flag:='Y';
10209 l_tbl_flag := 0;
10210 --------------------dbms_output.put_line('In :1 '||x_return_status);
10211 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
10212 fnd_message.set_token ('LOOKUP_TYPE', l_pn_lease_option_type);
10213 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_option_tbl(l_index).option_type));
10214 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_option_tbl(l_index).option_type_code));
10215 fnd_msg_pub.ADD;
10216 RAISE fnd_api.g_exc_error;
10217 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10218 --l_error_flag:='Y';
10219 l_tbl_flag := 0;
10220 --------------------dbms_output.put_line('In :2 '||x_return_status);
10221 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10222 fnd_message.set_token ('COLUMN', SUBSTR(l_param_option_type,3));
10223 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
10224 fnd_msg_pub.ADD;
10225 RAISE fnd_api.g_exc_unexpected_error;
10226 END IF;
10227 ELSE
10228 l_tbl_flag := 0;
10229 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10230 fnd_message.set_token ('API_NAME', l_api_name);
10231 fnd_message.set_token ('NULL_PARAM', l_param_option_type);
10232 fnd_msg_pub.ADD;
10233 RAISE fnd_api.g_exc_error;
10234 END IF;
10235
10236 -----------------------------------------------------------------------------------------------------------------------------------------------
10237 IF (( p_option_tbl(l_index).option_status_type IS NOT NULL OR p_option_tbl(l_index).option_status_lookup_code IS NOT NULL)
10238 ) THEN
10239 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_status_type
10240 , p_lookup_meaning => p_option_tbl(l_index).option_status_type
10241 , p_operation => 'CREATE_OPTIONS'
10242 , p_lookup_type => l_pn_option_status_type
10243 , x_return_status => x_return_status
10244 , x_lookup_type_code => p_option_tbl(l_index).option_status_lookup_code
10245 );
10246 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10247 --l_error_flag:='Y';
10248 l_tbl_flag := 0;
10249 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
10250 fnd_message.set_token ('LOOKUP_TYPE', l_pn_option_status_type);
10251 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_option_tbl(l_index).option_status_type));
10252 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_option_tbl(l_index).option_status_lookup_code));
10253 fnd_msg_pub.ADD;
10254 RAISE fnd_api.g_exc_error;
10255 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10256 --l_error_flag:='Y';
10257 l_tbl_flag := 0;
10258 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10259 fnd_message.set_token ('COLUMN', SUBSTR(l_param_status_type,3));
10260 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
10261 fnd_msg_pub.ADD;
10262 RAISE fnd_api.g_exc_unexpected_error;
10263 END IF;
10264 ELSE
10265 l_tbl_flag := 0;
10266 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10267 fnd_message.set_token ('API_NAME', l_api_name);
10268 fnd_message.set_token ('NULL_PARAM', l_pn_option_status_type);
10269 fnd_msg_pub.ADD;
10270 RAISE fnd_api.g_exc_error;
10271 END IF;
10272
10273 ---------------------------------------------------------------------------------------------------------------------------------------------
10274
10275 IF (( p_option_tbl(l_index).option_notice_reqd_type IS NOT NULL OR p_option_tbl(l_index).option_notice_reqd IS NOT NULL)
10276 ) THEN
10277 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_notice_given_type
10278 , p_lookup_meaning => p_option_tbl(l_index).option_notice_reqd_type
10279 , p_operation => 'CREATE_OPTIONS'
10280 , p_lookup_type => l_pn_yes_no
10281 , x_return_status => x_return_status
10282 , x_lookup_type_code => p_option_tbl(l_index).option_notice_reqd
10283 );
10284 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10285 --l_error_flag:='Y';
10286 l_tbl_flag := 0;
10287 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
10288 fnd_message.set_token ('LOOKUP_TYPE', l_pn_yes_no);
10289 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_option_tbl(l_index).option_notice_reqd_type));
10290 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_option_tbl(l_index).option_notice_reqd));
10291 fnd_msg_pub.ADD;
10292 RAISE fnd_api.g_exc_error;
10293 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10294 --l_error_flag:='Y';
10295 l_tbl_flag := 0;
10296 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10297 fnd_message.set_token ('COLUMN', SUBSTR(l_param_notice_given_type,3));
10298 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
10299 fnd_msg_pub.ADD;
10300 RAISE fnd_api.g_exc_unexpected_error;
10301 END IF;
10302 ELSE
10303 l_tbl_flag := 0;
10304 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10305 fnd_message.set_token ('API_NAME', l_api_name);
10306 fnd_message.set_token ('NULL_PARAM', l_pn_yes_no);
10307 fnd_msg_pub.ADD;
10308 RAISE fnd_api.g_exc_error;
10309 END IF;
10310
10311 --------------------------------------------------------------------------------------------------------------------------------
10312
10313 IF (( p_option_tbl(l_index).uom_type IS NOT NULL OR p_option_tbl(l_index).uom_code IS NOT NULL)
10314 ) THEN
10315 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_uom_type
10316 , p_lookup_meaning => p_option_tbl(l_index).uom_type
10317 , p_operation => 'CREATE_OPTIONS'
10318 , p_lookup_type => l_pn_units_of_measures
10319 , x_return_status => x_return_status
10320 , x_lookup_type_code => p_option_tbl(l_index).uom_code
10321 );
10322 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10323 --l_error_flag:='Y';
10324 l_tbl_flag := 0;
10325 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
10326 fnd_message.set_token ('LOOKUP_TYPE', l_pn_units_of_measures);
10327 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_option_tbl(l_index).uom_type));
10328 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_option_tbl(l_index).uom_code));
10329 fnd_msg_pub.ADD;
10330 RAISE fnd_api.g_exc_error;
10331 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10332 --l_error_flag:='Y';
10333 l_tbl_flag := 0;
10334 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10335 fnd_message.set_token ('COLUMN', SUBSTR(l_param_uom_type,3));
10336 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
10337 fnd_msg_pub.ADD;
10338 RAISE fnd_api.g_exc_unexpected_error;
10339 END IF;
10340 END IF;
10341 /* ELSE
10342 l_tbl_flag := 0;
10343 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10344 fnd_message.set_token ('API_NAME', l_api_name);
10345 fnd_message.set_token ('NULL_PARAM', l_pn_units_of_measures);
10346 fnd_msg_pub.ADD;
10347 RAISE fnd_api.g_exc_error;
10348 END IF;*/
10349
10350 ----------------------------------------------------------------------------------------------------------------------------------------
10351 IF p_option_tbl(l_index).start_date IS NOT NULL AND p_option_tbl(l_index).expiration_date IS NOT NULL THEN
10352 pn_lease_utils.crossval_leasedates ( p_parameter_name => l_param_start_end_options_date
10353 , p_operation => 'CREATE OPTION'
10354 , p_lease_exec_date => NULL
10355 , p_lease_comm_date => p_option_tbl(l_index).start_date
10356 , p_lease_term_date => p_option_tbl(l_index).expiration_date
10357 , x_return_status => x_return_status
10358 );
10359 pvt_debug(g_pkg_name||'-VALIDATE_OPTION_FOR_CREATE:Validate Cross Lease dates Return Status'||x_return_status,3);
10360 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10361 l_tbl_flag := 0;
10362 fnd_message.set_name ('PN','PN_INVALID_TERMINATION_DT');
10363 fnd_message.set_token ('TERMINATION_DATE', get_miss_date_decode(p_option_tbl(l_index).expiration_date));
10364 fnd_message.set_token ('COMMENCEMENT_DATE', get_miss_date_decode(p_option_tbl(l_index).start_date));
10365 fnd_msg_pub.ADD;
10366 RAISE fnd_api.g_exc_error;
10367 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10368 l_tbl_flag := 0;
10369 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10370 fnd_message.set_token ('COLUMN', SUBSTR(l_param_start_end_options_date,3));
10371 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
10372 fnd_msg_pub.ADD;
10373 RAISE fnd_api.g_exc_unexpected_error;
10374 END IF;
10375 /*ELSE
10376 l_tbl_flag := 0;
10377 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10378 fnd_message.set_token ('API_NAME', l_api_name);
10379 fnd_message.set_token ('NULL_PARAM', 'Options Start And End Dates NULL');
10380 fnd_msg_pub.ADD;
10381 RAISE fnd_api.g_exc_error;*/
10382 END IF;
10383
10384
10385
10386 ---------------------------------------------------------------------------------------------------------------------------------------
10387 IF p_option_tbl(l_index).option_exer_start_date IS NOT NULL AND p_option_tbl(l_index).option_exer_end_date IS NOT NULL THEN
10388 pn_lease_utils.crossval_leasedates ( p_parameter_name => l_param_exercise_dates
10389 , p_operation => 'CREATE OPTION'
10390 , p_lease_exec_date => NULL
10391 , p_lease_comm_date => p_option_tbl(l_index).option_exer_start_date
10392 , p_lease_term_date => p_option_tbl(l_index).option_exer_end_date
10393 , x_return_status => x_return_status
10394 );
10395 pvt_debug(g_pkg_name||'-VALIDATE_OPTION_FOR_CREATE:Validate Excercise Cross Lease dates Return Status'||x_return_status,3);
10396 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10397 l_tbl_flag := 0;
10398 fnd_message.set_name ('PN','PN_INVALID_TERMINATION_DT');
10399 fnd_message.set_token ('TERMINATION_DATE', get_miss_date_decode(p_option_tbl(l_index).option_exer_end_date));
10400 fnd_message.set_token ('COMMENCEMENT_DATE', get_miss_date_decode(p_option_tbl(l_index).option_exer_start_date));
10401 fnd_msg_pub.ADD;
10402 RAISE fnd_api.g_exc_error;
10403 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10404 l_tbl_flag := 0;
10405 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10406 fnd_message.set_token ('COLUMN', SUBSTR(l_param_exercise_dates,3));
10407 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
10408 fnd_msg_pub.ADD;
10409 RAISE fnd_api.g_exc_unexpected_error;
10410 END IF;
10411 /*ELSE
10412 l_tbl_flag := 0;
10413 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10414 fnd_message.set_token ('API_NAME', l_api_name);
10415 fnd_message.set_token ('NULL_PARAM', 'Exercise Options Start And End Dates NULL');
10416 fnd_msg_pub.ADD;
10417 RAISE fnd_api.g_exc_error;*/
10418 END IF;
10419
10420 ---------------------------------------------------------------------------------------------------------------------------------------
10421 -- dff validations
10422
10423 IF (get_attribute_status('PN_OPTIONS') > 0) THEN
10424 /*get_attribute_mandatory_status('PN_OPTIONS'
10425 ,p_option_tbl(l_index).attribute1
10426 ,p_option_tbl(l_index).attribute2
10427 ,p_option_tbl(l_index).attribute3
10428 ,p_option_tbl(l_index).attribute4
10429 ,p_option_tbl(l_index).attribute5
10430 ,p_option_tbl(l_index).attribute6
10431 ,p_option_tbl(l_index).attribute7
10432 ,p_option_tbl(l_index).attribute8
10433 ,p_option_tbl(l_index).attribute9
10434 ,p_option_tbl(l_index).attribute10
10435 ,p_option_tbl(l_index).attribute11
10436 ,p_option_tbl(l_index).attribute12
10437 ,p_option_tbl(l_index).attribute13
10438 ,p_option_tbl(l_index).attribute14
10439 ,p_option_tbl(l_index).attribute15
10440 ,x_return_status
10441 );
10442 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
10443 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10444 fnd_message.set_token ('API_NAME', l_api_name);
10445 fnd_message.set_token ('NULL_PARAM','Required attribute in Options is NULL');
10446 fnd_msg_pub.ADD;
10447 RAISE fnd_api.g_exc_error;
10448 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10449 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10450 fnd_message.set_token ('API_NAME', l_api_name);
10451 fnd_message.set_token ('NULL_PARAM', 'Required attribute in Options is NULL');
10452 fnd_msg_pub.ADD;
10453 RAISE fnd_api.g_exc_unexpected_error;
10454 ELSE*/
10455 IF NOT ((p_option_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute_category IS NULL)
10456 AND (p_option_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute1 IS NULL)
10457 AND (p_option_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute2 IS NULL)
10458 AND (p_option_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute3 IS NULL)
10459 AND (p_option_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute4 IS NULL)
10460 AND (p_option_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute5 IS NULL)
10461 AND (p_option_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute6 IS NULL)
10462 AND (p_option_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute7 IS NULL)
10463 AND (p_option_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute8 IS NULL)
10464 AND (p_option_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute9 IS NULL)
10465 AND (p_option_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute10 IS NULL)
10466 AND (p_option_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute11 IS NULL)
10467 AND (p_option_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute12 IS NULL)
10468 AND (p_option_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute13 IS NULL)
10469 AND (p_option_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute14 IS NULL)
10470 AND (p_option_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).attribute15 IS NULL)
10471 ) THEN
10472 PN_LEASE_UTILS.validate_desc_flex (
10473 p_api_name => 'PN_OPTIONS'--l_api_name_full
10474 , p_application_short_name => 'PN'
10475 , p_desc_flex_name => 'PN_OPTIONS'
10476 , p_desc_segment1 => p_option_tbl(l_index).attribute1
10477 , p_desc_segment2 => p_option_tbl(l_index).attribute2
10478 , p_desc_segment3 => p_option_tbl(l_index).attribute3
10479 , p_desc_segment4 => p_option_tbl(l_index).attribute4
10480 , p_desc_segment5 => p_option_tbl(l_index).attribute5
10481 , p_desc_segment6 => p_option_tbl(l_index).attribute6
10482 , p_desc_segment7 => p_option_tbl(l_index).attribute7
10483 , p_desc_segment8 => p_option_tbl(l_index).attribute8
10484 , p_desc_segment9 => p_option_tbl(l_index).attribute9
10485 , p_desc_segment10 =>p_option_tbl(l_index).attribute10
10486 , p_desc_segment11 =>p_option_tbl(l_index).attribute11
10487 , p_desc_segment12 =>p_option_tbl(l_index).attribute12
10488 , p_desc_segment13 =>p_option_tbl(l_index).attribute13
10489 , p_desc_segment14 =>p_option_tbl(l_index).attribute14
10490 , p_desc_segment15 =>p_option_tbl(l_index).attribute15
10491 , p_desc_context => p_option_tbl(l_index).attribute_category
10492 , p_resp_appl_id => fnd_global.resp_appl_id
10493 , p_resp_id => fnd_global.resp_id
10494 , p_return_status => x_return_status
10495 );
10496 ----------------------dbms_output.put_line('DFF VALIDATED');
10497 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10498 l_tbl_flag := 0;
10499 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10500 fnd_message.set_token ('COLUMN', 'PN_OPTIONS_DESC_FIELDS');
10501 fnd_message.set_token ('P_TEXT', 'PN_OPTIONS'|| '-'|| SQLERRM);
10502 fnd_msg_pub.ADD;
10503 RAISE fnd_api.g_exc_error;
10504 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10505 l_tbl_flag := 0;
10506 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10507 fnd_message.set_token ('COLUMN', 'PN_OPTIONS_DESC_FIELDS');
10508 fnd_message.set_token ('P_TEXT', 'PN_OPTIONS'|| '-'|| SQLERRM);
10509 fnd_msg_pub.ADD;
10510 RAISE fnd_api.g_exc_unexpected_error;
10511 END IF;
10512 END IF;
10513 END IF;
10514 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
10515 EXCEPTION
10516 WHEN fnd_api.g_exc_error THEN
10517 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);
10518 l_err_options_count := l_err_options_count +1;
10519 --pvt_debug(g_pkg_name||'-VALIDATE_OPTION_FOR_CREATE:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
10520 WHEN OTHERS THEN
10521 l_err_options_count := l_err_options_count +1;
10522 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM);
10523 -- pvt_debug(g_pkg_name||'-VALIDATE_OPTION_FOR_CREATE:LOOOPING:EXCEPTION:'||SQLERRM,3);
10524 END;
10525 ----------------------dbms_output.put_line('Private Contacts:13');--Rupak
10526 END LOOP;
10527 IF (l_err_options_count = 0) THEN
10528 x_return_status := fnd_api.g_ret_sts_success;
10529 ELSE
10530 x_return_status := fnd_api.g_ret_sts_error;
10531 END IF;
10532 x_tbl := l_tbl;
10533
10534 EXCEPTION
10535 WHEN fnd_api.g_exc_unexpected_error THEN
10536 x_return_status := fnd_api.g_ret_sts_unexp_error;
10537 pvt_debug(g_pkg_name||'-VALIDATE_OPTION_FOR_CREATE:Exception:'||SQLERRM,3);
10538 END VALIDATE_OPTION_FOR_CREATE;
10539
10540
10541 PROCEDURE OPTION_INSERT_ROW(
10542 p_option_tbl IN OUT NOCOPY lease_option_tbl_type
10543 , p_lease_id IN PN_LEASES_ALL.lease_id%type
10544 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
10545 , x_return_status OUT NOCOPY VARCHAR2
10546 , p_tbl IN temp_tbl_type
10547 , p_commit IN VARCHAR2
10548 , p_validate IN VARCHAR2
10549 )
10550 IS
10551 l_index BINARY_INTEGER;
10552 t_index BINARY_INTEGER;
10553 l_row_id VARCHAR2(100) ;
10554 l_option_id PN_OPTIONS_ALL.option_id%type;
10555 l_return_status VARCHAR2 (1) := fnd_api.g_ret_sts_success;
10556 x_msg_count NUMBER ;
10557 x_msg_data VARCHAR2(2000) ;
10558 BEGIN
10559 pvt_debug(g_pkg_name||'-Inside OPTION_INSERT_ROW',3);
10560 for l_index in p_option_tbl.FIRST..p_option_tbl.LAST loop
10561 IF p_tbl(l_index).temp_flag = 1 THEN
10562 ----------------------dbms_output.put_line('Options:Insert Row'); --Rupak
10563 pvt_debug(g_pkg_name||'OPTION_INSERT_ROW:Calling pn_options_pkg.insert_row',3);
10564 l_option_id := NULL;
10565 BEGIN
10566 pn_options_pkg.insert_row (
10567 x_rowid => l_row_id
10568 , x_option_id => l_option_id
10569 , x_attribute14 => p_option_tbl(l_index).attribute14
10570 , x_attribute15 => p_option_tbl(l_index).attribute15
10571 , x_lease_id => p_lease_id
10572 , x_lease_change_id => p_lease_change_id
10573 , x_option_num => p_option_tbl(l_index).option_num
10574 , x_option_type_code => p_option_tbl(l_index).option_type_code
10575 , x_start_date => p_option_tbl(l_index).start_date
10576 , x_expiration_date => p_option_tbl(l_index).expiration_date
10577 , x_option_size => p_option_tbl(l_index).option_size
10578 , x_uom_code => p_option_tbl(l_index).uom_code
10579 , x_option_status_lookup_code=> p_option_tbl(l_index).option_status_lookup_code
10580 , x_attribute_category => p_option_tbl(l_index).attribute_category
10581 , x_attribute1 => p_option_tbl(l_index).attribute1
10582 , x_attribute2 => p_option_tbl(l_index).attribute2
10583 , x_attribute3 => p_option_tbl(l_index).attribute3
10584 , x_attribute4 => p_option_tbl(l_index).attribute4
10585 , x_attribute5 => p_option_tbl(l_index).attribute5
10586 , x_attribute6 => p_option_tbl(l_index).attribute6
10587 , x_attribute7 => p_option_tbl(l_index).attribute7
10588 , x_attribute8 => p_option_tbl(l_index).attribute8
10589 , x_attribute9 => p_option_tbl(l_index).attribute9
10590 , x_attribute10 => p_option_tbl(l_index).attribute10
10591 , x_attribute11 => p_option_tbl(l_index).attribute11
10592 , x_attribute12 => p_option_tbl(l_index).attribute12
10593 , x_attribute13 => p_option_tbl(l_index).attribute13
10594 , x_creation_date => sysdate
10595 , x_created_by => fnd_global.user_id
10596 , x_last_update_date => sysdate
10597 , x_last_updated_by => fnd_global.user_id
10598 , x_last_update_login => fnd_global.login_id
10599 , x_option_exer_start_date => p_option_tbl(l_index).option_exer_start_date
10600 , x_option_exer_end_date => p_option_tbl(l_index).option_exer_end_date
10601 , x_option_action_date => p_option_tbl(l_index).option_action_date
10602 , x_option_cost => p_option_tbl(l_index).option_cost
10603 , x_option_area_change => p_option_tbl(l_index).option_area_change
10604 , x_option_reference => p_option_tbl(l_index).option_reference
10605 , x_option_notice_reqd => p_option_tbl(l_index).option_notice_reqd
10606 , x_option_comments => p_option_tbl(l_index).comments
10607 , x_org_id => fnd_global.org_id
10608 );
10609
10610 ----------------------dbms_output.put_line('Options:AFter Insert Row');--Rupak
10611 pvt_debug(g_pkg_name||'OPTION_INSERT_ROW:Calling PN_OPTIONS_PKG.INSERT_ROW Successful',3);
10612 EXCEPTION
10613 WHEN OTHERS THEN
10614 --NULL
10615 ----------------------dbms_output.put_line('ERROR IN OPTIONS INSERTION:'||SQLERRM);
10616 pvt_debug(g_pkg_name||'OPTION_INSERT_ROW:Exception:PN_OPTIONS_PKG.INSERT_ROW',3);
10617 END;
10618 --SAVEPOINT A;
10619 IF l_option_id IS NOT NULL AND p_option_tbl(l_index).option_milestone_tbl.count <> 0 THEN
10620 ----------------------dbms_output.put_line ('--------CREATE MILESTONE------');
10621 CREATE_MILESTONE (
10622 p_milestone_tbl => p_option_tbl(l_index).option_milestone_tbl
10623 , p_lease_id => p_lease_id
10624 , p_lease_change_id => p_lease_change_id
10625 , p_option_id => l_option_id
10626 , p_insurance_req_id => null
10627 , p_payment_term_id => null
10628 , p_commit => p_commit
10629 , p_validate => p_validate
10630 , x_return_status => l_return_status
10631 -- , x_msg_count => x_msg_count
10632 -- , x_msg_data => x_msg_data
10633 );
10634 pvt_debug(g_pkg_name||'OPTION_INSERT_ROW:CREATE_MILESTONE Return Status:'||l_return_status,3);
10635 END IF;
10636
10637 ----------------------dbms_output.put_line('RECORD FOR OPTIONS CREATED WITH OPTION ID: '|| l_option_id);
10638 p_option_tbl(l_index).option_id := l_option_id;
10639 END IF;
10640 END loop;
10641
10642 x_return_status := fnd_api.g_ret_sts_success;
10643 p_option_tbl := p_option_tbl;
10644
10645
10646 EXCEPTION
10647 WHEN OTHERS THEN
10648 x_return_status := fnd_api.g_ret_sts_unexp_error;
10649 ----------------------dbms_output.put_line('INSERT PROCEDURE FAILED FOR OPTIONS CREATION') ;
10650 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
10651 pvt_debug(g_pkg_name||'OPTION_INSERT_ROW:CREATE_MILESTONE:Exception:'||SQLERRM,3);
10652 END OPTION_INSERT_ROW;
10653
10654
10655 PROCEDURE CREATE_OPTION (
10656 p_lease_id IN PN_LEASES_ALL.lease_id%type
10657 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
10658 , p_commit IN VARCHAR2
10659 , p_validate IN VARCHAR2
10660 , p_option_tbl IN OUT NOCOPY lease_option_tbl_type
10661 , x_return_status OUT NOCOPY VARCHAR2
10662 -- , x_msg_count OUT NUMBER
10663 -- , x_msg_data OUT VARCHAR2
10664 )
10665 IS
10666 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success ;
10667 l_msg_count NUMBER ;
10668 l_msg_data VARCHAR2(2000) ;
10669 x_out_tbl temp_tbl_type ;
10670 l_api_name VARCHAR2(100) := 'NOTES CREATION' ;
10671 BEGIN
10672 ----------------------dbms_output.put_line('CREATE OPTION PROCESS STARTED');
10673 VALIDATE_OPTION_FOR_CREATE(p_option_tbl => p_option_tbl
10674 ,x_tbl => x_out_tbl
10675 ,x_return_status => x_return_status
10676 );
10677 pvt_debug(g_pkg_name||'Inside CREATE_OPTION:VALIDATE_OPTION_FOR_CREATE Return Status'||x_return_status,3);
10678 --------------------dbms_output.put_line('OPTIONS:x_return_status'||x_return_status);--OOPS
10679 IF (NVL(p_validate,'F') <> 'T' AND x_return_status = fnd_api.g_ret_sts_success)THEN
10680 OPTION_INSERT_ROW( p_option_tbl => p_option_tbl
10681 ,p_lease_id => p_lease_id
10682 ,p_lease_change_id => p_lease_change_id
10683 ,x_return_status => x_return_status
10684 ,p_tbl => x_out_tbl
10685 ,p_commit => p_commit
10686 ,p_validate => p_validate
10687 );
10688 pvt_debug(g_pkg_name||'Inside CREATE_OPTION:OPTION_INSERT_ROW Return Status'||x_return_status,3);
10689 --------------------dbms_output.put_line('OPTIONS:x_return_status:OPTION_INSERT_ROW:'||x_return_status);--OOPS
10690 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
10691 RAISE fnd_api.g_exc_error;
10692 END IF;
10693 ELSE
10694 RAISE fnd_api.g_exc_error;
10695 END IF;
10696
10697 EXCEPTION
10698 WHEN fnd_api.g_exc_error THEN
10699 x_return_status := fnd_api.g_ret_sts_error;
10700 WHEN fnd_api.g_exc_unexpected_error THEN
10701 x_return_status := fnd_api.g_ret_sts_unexp_error;
10702 WHEN OTHERS THEN
10703 x_return_status := fnd_api.g_ret_sts_unexp_error;
10704 END CREATE_OPTION;
10705
10706
10707
10708 PROCEDURE VALIDATE_OPTION_FOR_UPDATE(
10709 p_option_tbl IN OUT NOCOPY lease_option_tbl_type
10710 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
10711 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.LEASE_CHANGE_ID%TYPE
10712 ,x_tbl OUT NOCOPY temp_tbl_type
10713 ,x_return_status IN OUT NOCOPY VARCHAR2
10714 ,p_commit IN VARCHAR2
10715 )
10716 IS
10717 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
10718 l_index BINARY_INTEGER;
10719 l_lookup_meaning FND_LOOKUPS.MEANING%TYPE;
10720 l_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE;
10721 l_cur_id NUMBER;
10722 l_tbl_index BINARY_INTEGER;
10723 l_tbl_flag NUMBER;
10724 l_tbl temp_tbl_type;
10725 l_api_name VARCHAR2(30):= 'UPDATE OPTIONS';
10726
10727 l_error_count_err NUMBER:=0;
10728 l_error_count_uerr NUMBER:=0;
10729
10730 CURSOR c_option (
10731 p_option_id NUMBER
10732 )
10733 IS
10734 SELECT
10735 option_id,
10736 lease_id,
10737 lease_change_id,
10738 option_num,
10739 option_type_code,
10740 option_status_lookup_code,
10741 start_date,
10742 expiration_date,
10743 option_size,
10744 uom_code,
10745 attribute_category,
10746 attribute1,
10747 attribute2,
10748 attribute3,
10749 attribute4,
10750 attribute5,
10751 attribute6,
10752 attribute7,
10753 attribute8,
10754 attribute9,
10755 attribute10,
10756 attribute11,
10757 attribute12,
10758 attribute13,
10759 attribute14,
10760 attribute15,
10761 org_id,
10762 option_exer_start_date,
10763 option_exer_end_date,
10764 option_action_date,
10765 option_cost,
10766 option_area_change,
10767 option_reference,
10768 option_notice_reqd,
10769 option_comments
10770 FROM PN_OPTIONS_ALL
10771 where option_id = p_option_id;
10772 lcu_option_rec c_option%ROWTYPE;
10773 BEGIN
10774 l_return_status := fnd_api.g_ret_sts_success ;
10775 pvt_debug(g_pkg_name||'Inside VALIDATE_OPTION_FOR_UPDATE',3);
10776 For l_index in p_option_tbl.FIRST..p_option_tbl.LAST LOOP
10777 BEGIN
10778 l_tbl_index := l_index;
10779 IF p_option_tbl(l_index).option_id IS NULL THEN
10780 l_tbl_flag := 1;
10781 pvt_debug(g_pkg_name||'VALIDATE_OPTION_FOR_UPDATE:OPTION_ID IS NULL',3);
10782 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10783 fnd_message.set_token ('API_NAME', l_api_name);
10784 fnd_message.set_token ('NULL_PARAM', 'OPTION ID: NULL');
10785 fnd_msg_pub.ADD;
10786 RAISE fnd_api.g_exc_error;
10787 ELSE
10788 l_tbl_flag := 2;
10789 l_cur_id := p_option_tbl(l_index).option_id;
10790
10791 OPEN c_option(l_cur_id);
10792 ----------------------dbms_output.put_line('cursor opened for update');--Rupak
10793 FETCH c_option INTO lcu_option_rec;
10794 IF lcu_option_rec.lease_id <> p_lease_id THEN
10795 l_tbl_flag := 0;
10796 END IF;
10797
10798 IF (p_option_tbl(l_index).option_num = pn_lease_utils.g_pn_miss_char) THEN
10799 p_option_tbl(l_index).option_num := lcu_option_rec.option_num;
10800 END IF;
10801 ----------------------dbms_output.put_line('Validate Options:0.3');--Rupak
10802 IF (p_option_tbl(l_index).option_reference = pn_lease_utils.g_pn_miss_char) THEN
10803 p_option_tbl(l_index).option_reference := lcu_option_rec.option_reference;
10804 END IF;
10805 ----------------------dbms_output.put_line('Validate Options:0.3');--Rupak
10806 IF ( p_option_tbl(l_index).comments = pn_lease_utils.g_pn_miss_char) THEN
10807 p_option_tbl(l_index).comments := lcu_option_rec.option_comments;
10808 END IF;
10809 ----------------------dbms_output.put_line('Validate Options:0.4');--Rupak
10810 IF (p_option_tbl(l_index).start_date = pn_lease_utils.g_pn_miss_date) THEN
10811 p_option_tbl(l_index).start_date := lcu_option_rec.start_date;
10812 END IF;
10813 IF (p_option_tbl(l_index).expiration_date = pn_lease_utils.g_pn_miss_date) THEN
10814 p_option_tbl(l_index).expiration_date := lcu_option_rec.expiration_date;
10815 END IF;
10816 ----------------------dbms_output.put_line('Validate Options:0.5');--Rupak
10817 IF (p_option_tbl(l_index).option_exer_start_date = pn_lease_utils.g_pn_miss_date) THEN
10818 p_option_tbl(l_index).option_exer_start_date := lcu_option_rec.option_exer_start_date;
10819 END IF;
10820 ----------------------dbms_output.put_line('Validate Options:0.6');--Rupak
10821 IF (p_option_tbl(l_index).option_action_date = pn_lease_utils.g_pn_miss_date) THEN
10822 p_option_tbl(l_index).option_action_date := lcu_option_rec.option_action_date;
10823 END IF;
10824 IF (p_option_tbl(l_index).option_cost = pn_lease_utils.g_pn_miss_char) THEN
10825 p_option_tbl(l_index).option_cost := lcu_option_rec.option_cost;
10826 END IF;
10827 ----------------------dbms_output.put_line('Validate Options:0.7');--Rupak
10828 IF ( p_option_tbl(l_index).option_area_change = pn_lease_utils.g_pn_miss_num) THEN
10829 p_option_tbl(l_index).option_area_change := lcu_option_rec.option_area_change;
10830 END IF;
10831 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
10832 ----------------------dbms_output.put_line('Validate Options:1');--Rupak
10833
10834
10835
10836 IF ( ( p_option_tbl(l_index).option_type IS NOT NULL AND p_option_tbl(l_index).option_type <> pn_lease_utils.g_pn_miss_char)
10837 OR (p_option_tbl(l_index).option_type_code IS NOT NULL AND p_option_tbl(l_index).option_type_code <> pn_lease_utils.g_pn_miss_char)
10838 ) THEN
10839 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_option_type
10840 , p_lookup_meaning => p_option_tbl(l_index).option_type
10841 , p_operation => 'CREATE_OPTIONS'
10842 , p_lookup_type => l_pn_lease_option_type
10843 , x_return_status => x_return_status
10844 , x_lookup_type_code => p_option_tbl(l_index).option_type_code
10845 );
10846
10847 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10848 --l_error_flag:='Y';
10849 l_tbl_flag := 0;
10850 ----------------------dbms_output.put_line('In :1 '||x_return_status);
10851 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
10852 fnd_message.set_token ('LOOKUP_TYPE', l_pn_lease_option_type);
10853 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_option_tbl(l_index).option_type));
10854 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_option_tbl(l_index).option_type_code));
10855 fnd_msg_pub.ADD;
10856 RAISE fnd_api.g_exc_error;
10857 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10858 --l_error_flag:='Y';
10859 l_tbl_flag := 0;
10860 --------------------dbms_output.put_line('In :2 '||x_return_status);
10861 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10862 fnd_message.set_token ('COLUMN', SUBSTR(l_param_option_type,3));
10863 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
10864 fnd_msg_pub.ADD;
10865 RAISE fnd_api.g_exc_unexpected_error;
10866 END IF;
10867 ELSIF(p_option_tbl(l_index).option_type IS NULL OR p_option_tbl(l_index).option_type_code IS NULL) THEN
10868 l_tbl_flag := 0;
10869 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10870 fnd_message.set_token ('API_NAME', l_api_name);
10871 fnd_message.set_token ('NULL_PARAM', l_param_option_type);
10872 fnd_msg_pub.ADD;
10873 RAISE fnd_api.g_exc_error;
10874 ELSE
10875 p_option_tbl(l_index).option_type_code := lcu_option_rec.option_type_code;
10876 END IF;
10877 -----------------------------------------------------------------------------------------------------------------------------------------------
10878 IF (( p_option_tbl(l_index).option_status_type IS NOT NULL AND p_option_tbl(l_index).option_status_type <> pn_lease_utils.g_pn_miss_char)
10879 OR( p_option_tbl(l_index).option_status_lookup_code IS NOT NULL AND p_option_tbl(l_index).option_status_lookup_code <> pn_lease_utils.g_pn_miss_char)
10880 ) THEN
10881 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_status_type
10882 , p_lookup_meaning => p_option_tbl(l_index).option_status_type
10883 , p_operation => 'CREATE_OPTIONS'
10884 , p_lookup_type => l_pn_option_status_type
10885 , x_return_status => x_return_status
10886 , x_lookup_type_code => p_option_tbl(l_index).option_status_lookup_code
10887 );
10888 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10889 --l_error_flag:='Y';
10890 l_tbl_flag := 0;
10891 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
10892 fnd_message.set_token ('LOOKUP_TYPE', l_pn_option_status_type);
10893 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_option_tbl(l_index).option_status_type));
10894 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_option_tbl(l_index).option_status_lookup_code));
10895 fnd_msg_pub.ADD;
10896 RAISE fnd_api.g_exc_error;
10897 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10898 --l_error_flag:='Y';
10899 l_tbl_flag := 0;
10900 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10901 fnd_message.set_token ('COLUMN', SUBSTR(l_param_status_type,3));
10902 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
10903 fnd_msg_pub.ADD;
10904 RAISE fnd_api.g_exc_unexpected_error;
10905 END IF;
10906 ELSIF(p_option_tbl(l_index).option_status_type IS NULL OR p_option_tbl(l_index).option_status_lookup_code IS NULL) THEN
10907 l_tbl_flag := 0;
10908 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
10909 fnd_message.set_token ('API_NAME', l_api_name);
10910 fnd_message.set_token ('NULL_PARAM', l_pn_option_status_type);
10911 fnd_msg_pub.ADD;
10912 RAISE fnd_api.g_exc_error;
10913 ELSE
10914 p_option_tbl(l_index).option_status_lookup_code:= lcu_option_rec.option_status_lookup_code;
10915 END IF;
10916 ---------------------------------------------------------------------------------------------------------------------------------------------
10917 IF ( p_option_tbl(l_index).option_notice_reqd_type = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).option_notice_reqd_type IS NULL) THEN
10918 p_option_tbl(l_index).option_notice_reqd_type := 'No';
10919 END IF;
10920 IF ( p_option_tbl(l_index).option_notice_reqd = pn_lease_utils.g_pn_miss_char OR p_option_tbl(l_index).option_notice_reqd IS NULL) THEN
10921 p_option_tbl(l_index).option_notice_reqd := 'N';
10922 END IF;
10923
10924 IF (( p_option_tbl(l_index).option_notice_reqd_type IS NOT NULL AND p_option_tbl(l_index).option_notice_reqd_type <> pn_lease_utils.g_pn_miss_char)
10925 OR( p_option_tbl(l_index).option_notice_reqd IS NOT NULL AND p_option_tbl(l_index).option_notice_reqd <> pn_lease_utils.g_pn_miss_char)
10926 ) THEN
10927 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_notice_given_type
10928 , p_lookup_meaning => p_option_tbl(l_index).option_notice_reqd_type
10929 , p_operation => 'CREATE_OPTIONS'
10930 , p_lookup_type => l_pn_yes_no
10931 , x_return_status => x_return_status
10932 , x_lookup_type_code => p_option_tbl(l_index).option_notice_reqd
10933 );
10934 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10935 --l_error_flag:='Y';
10936 l_tbl_flag := 0;
10937 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
10938 fnd_message.set_token ('LOOKUP_TYPE', l_pn_yes_no);
10939 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_option_tbl(l_index).option_notice_reqd_type));
10940 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_option_tbl(l_index).option_notice_reqd));
10941 fnd_msg_pub.ADD;
10942 RAISE fnd_api.g_exc_error;
10943 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10944 --l_error_flag:='Y';
10945 l_tbl_flag := 0;
10946 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10947 fnd_message.set_token ('COLUMN', SUBSTR(l_param_notice_given_type,3));
10948 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
10949 fnd_msg_pub.ADD;
10950 RAISE fnd_api.g_exc_unexpected_error;
10951 END IF;
10952 ELSIF(p_option_tbl(l_index).option_notice_reqd_type IS NULL OR p_option_tbl(l_index).option_notice_reqd IS NULL) THEN
10953 p_option_tbl(l_index).option_notice_reqd := NULL;
10954 ELSE
10955 p_option_tbl(l_index).option_notice_reqd := lcu_option_rec.option_notice_reqd;
10956 END IF;
10957 --------------------------------------------------------------------------------------------------------------------------------
10958 IF ( ( p_option_tbl(l_index).uom_type IS NOT NULL AND p_option_tbl(l_index).uom_type <> pn_lease_utils.g_pn_miss_char)
10959 OR(p_option_tbl(l_index).uom_code IS NOT NULL AND p_option_tbl(l_index).uom_code <> pn_lease_utils.g_pn_miss_char)
10960 ) THEN
10961 pn_lease_utils.get_lookup_code( p_parameter_name => l_param_uom_type
10962 , p_lookup_meaning => p_option_tbl(l_index).uom_type
10963 , p_operation => 'CREATE_OPTIONS'
10964 , p_lookup_type => l_pn_units_of_measures
10965 , x_return_status => x_return_status
10966 , x_lookup_type_code => p_option_tbl(l_index).uom_code
10967 );
10968 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
10969 --l_error_flag:='Y';
10970 l_tbl_flag := 0;
10971 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
10972 fnd_message.set_token ('LOOKUP_TYPE', l_pn_units_of_measures);
10973 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_option_tbl(l_index).uom_type));
10974 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_option_tbl(l_index).uom_code));
10975 fnd_msg_pub.ADD;
10976 RAISE fnd_api.g_exc_error;
10977 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
10978 --l_error_flag:='Y';
10979 l_tbl_flag := 0;
10980 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
10981 fnd_message.set_token ('COLUMN', SUBSTR(l_param_uom_type,3));
10982 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
10983 fnd_msg_pub.ADD;
10984 RAISE fnd_api.g_exc_unexpected_error;
10985 END IF;
10986 ELSIF( p_option_tbl(l_index).uom_type IS NULL OR p_option_tbl(l_index).uom_code IS NULL) THEN
10987 p_option_tbl(l_index).uom_code := NULL;
10988 ELSE
10989 p_option_tbl(l_index).uom_code := lcu_option_rec.uom_code;
10990 END IF;
10991 ----------------------------------------------------------------------------------------------------------------------------------------
10992
10993
10994 IF ( p_option_tbl(l_index).start_date IS NOT NULL AND p_option_tbl(l_index).start_date <> pn_lease_utils.g_pn_miss_date)
10995 OR ( p_option_tbl(l_index).expiration_date IS NOT NULL AND p_option_tbl(l_index).expiration_date <> pn_lease_utils.g_pn_miss_date)
10996 THEN
10997 pn_lease_utils.crossval_leasedates ( p_parameter_name => l_param_start_end_options_date
10998 , p_operation => 'CREATE_OPTION'
10999 , p_lease_exec_date => NULL
11000 , p_lease_comm_date => p_option_tbl(l_index).start_date
11001 , p_lease_term_date => p_option_tbl(l_index).expiration_date
11002 , x_return_status => x_return_status
11003 );
11004 pvt_debug(g_pkg_name||'-VALIDATE_OPTION_FOR_CREATE:Validate Cross Lease dates Return Status'||x_return_status,3);
11005 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
11006 l_tbl_flag := 0;
11007 fnd_message.set_name ('PN','PN_INVALID_TERMINATION_DT');
11008 fnd_message.set_token ('TERMINATION_DATE', get_miss_date_decode(p_option_tbl(l_index).expiration_date));
11009 fnd_message.set_token ('COMMENCEMENT_DATE', get_miss_date_decode(p_option_tbl(l_index).start_date));
11010 fnd_msg_pub.ADD;
11011 RAISE fnd_api.g_exc_error;
11012 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
11013 l_tbl_flag := 0;
11014 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
11015 fnd_message.set_token ('COLUMN', SUBSTR(l_param_start_end_options_date,3));
11016 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
11017 fnd_msg_pub.ADD;
11018 RAISE fnd_api.g_exc_unexpected_error;
11019 END IF;
11020 ELSIF(p_option_tbl(l_index).start_date IS NULL OR p_option_tbl(l_index).expiration_date IS NULL ) THEN
11021 p_option_tbl(l_index).start_date := NULL;
11022 p_option_tbl(l_index).expiration_date := NULL;
11023 ELSE
11024 p_option_tbl(l_index).start_date := lcu_option_rec.start_date;
11025 p_option_tbl(l_index).expiration_date := lcu_option_rec.expiration_date;
11026 END IF;
11027
11028
11029 ----------------------dbms_output.put_line('Validate Options:7');--Rupak
11030 -- Dff validations
11031 /*IF NOT ( (p_option_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char)
11032 AND (p_option_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char)
11033 AND (p_option_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char)
11034 AND (p_option_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char)
11035 AND (p_option_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char)
11036 AND (p_option_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char)
11037 AND (p_option_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char)
11038 AND (p_option_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char)
11039 AND (p_option_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char)
11040 AND (p_option_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char)
11041 AND (p_option_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char)
11042 AND (p_option_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char)
11043 AND (p_option_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char)
11044 AND (p_option_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char)
11045 AND (p_option_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char)
11046 AND (p_option_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char)
11047 ) THEN*/
11048 IF (p_option_tbl(l_index).attribute_category = pn_lease_utils.g_pn_miss_char) THEN
11049 p_option_tbl(l_index).attribute_category := lcu_option_rec.attribute_category;
11050 ELSIF(p_option_tbl(l_index).attribute_category IS NULL) THEN
11051 p_option_tbl(l_index).attribute_category := NULL;
11052 END IF;
11053 IF (p_option_tbl(l_index).attribute1 = pn_lease_utils.g_pn_miss_char) THEN
11054 p_option_tbl(l_index).attribute1 := lcu_option_rec.attribute1;
11055 ELSIF(p_option_tbl(l_index).attribute1 IS NULL) THEN
11056 p_option_tbl(l_index).attribute1 := NULL;
11057 END IF;
11058
11059 IF (p_option_tbl(l_index).attribute2 = pn_lease_utils.g_pn_miss_char) THEN
11060 p_option_tbl(l_index).attribute2 := lcu_option_rec.attribute2;
11061 ELSIF(p_option_tbl(l_index).attribute2 IS NULL) THEN
11062 p_option_tbl(l_index).attribute2 := NULL;
11063 END IF;
11064 IF (p_option_tbl(l_index).attribute3 = pn_lease_utils.g_pn_miss_char) THEN
11065 p_option_tbl(l_index).attribute3 := lcu_option_rec.attribute3;
11066 ELSIF(p_option_tbl(l_index).attribute3 IS NULL) THEN
11067 p_option_tbl(l_index).attribute3 := NULL;
11068 END IF;
11069 IF (p_option_tbl(l_index).attribute4 = pn_lease_utils.g_pn_miss_char) THEN
11070 p_option_tbl(l_index).attribute4 := lcu_option_rec.attribute4;
11071 ELSIF(p_option_tbl(l_index).attribute4 IS NULL) THEN
11072 p_option_tbl(l_index).attribute4 := NULL;
11073 END IF;
11074 IF (p_option_tbl(l_index).attribute5 = pn_lease_utils.g_pn_miss_char) THEN
11075 p_option_tbl(l_index).attribute5 := lcu_option_rec.attribute5;
11076 ELSIF(p_option_tbl(l_index).attribute5 IS NULL) THEN
11077 p_option_tbl(l_index).attribute5 := NULL;
11078 END IF;
11079 IF (p_option_tbl(l_index).attribute6 = pn_lease_utils.g_pn_miss_char) THEN
11080 p_option_tbl(l_index).attribute6 := lcu_option_rec.attribute6;
11081 ELSIF(p_option_tbl(l_index).attribute6 IS NULL) THEN
11082 p_option_tbl(l_index).attribute6 := NULL;
11083 END IF;
11084 IF (p_option_tbl(l_index).attribute7 = pn_lease_utils.g_pn_miss_char) THEN
11085 p_option_tbl(l_index).attribute7 := lcu_option_rec.attribute7;
11086 ELSIF(p_option_tbl(l_index).attribute7 IS NULL) THEN
11087 p_option_tbl(l_index).attribute7 := NULL;
11088 END IF;
11089 IF (p_option_tbl(l_index).attribute8 = pn_lease_utils.g_pn_miss_char) THEN
11090 p_option_tbl(l_index).attribute8 := lcu_option_rec.attribute8;
11091 ELSIF(p_option_tbl(l_index).attribute8 IS NULL) THEN
11092 p_option_tbl(l_index).attribute8 := NULL;
11093 END IF;
11094 IF (p_option_tbl(l_index).attribute9 = pn_lease_utils.g_pn_miss_char) THEN
11095 p_option_tbl(l_index).attribute9 := lcu_option_rec.attribute9;
11096 ELSIF(p_option_tbl(l_index).attribute9 IS NULL) THEN
11097 p_option_tbl(l_index).attribute9 := NULL;
11098 END IF;
11099 IF (p_option_tbl(l_index).attribute10 = pn_lease_utils.g_pn_miss_char) THEN
11100 p_option_tbl(l_index).attribute10 := lcu_option_rec.attribute10;
11101 ELSIF(p_option_tbl(l_index).attribute10 IS NULL) THEN
11102 p_option_tbl(l_index).attribute10 := NULL;
11103 END IF;
11104 IF (p_option_tbl(l_index).attribute11 = pn_lease_utils.g_pn_miss_char) THEN
11105 p_option_tbl(l_index).attribute11 := lcu_option_rec.attribute11;
11106 ELSIF(p_option_tbl(l_index).attribute11 IS NULL) THEN
11107 p_option_tbl(l_index).attribute11 := NULL;
11108 END IF;
11109 IF (p_option_tbl(l_index).attribute12 = pn_lease_utils.g_pn_miss_char) THEN
11110 p_option_tbl(l_index).attribute12 := lcu_option_rec.attribute12;
11111 ELSIF(p_option_tbl(l_index).attribute12 IS NULL) THEN
11112 p_option_tbl(l_index).attribute12 := NULL;
11113 END IF;
11114 IF (p_option_tbl(l_index).attribute13 = pn_lease_utils.g_pn_miss_char) THEN
11115 p_option_tbl(l_index).attribute13 := lcu_option_rec.attribute13;
11116 ELSIF(p_option_tbl(l_index).attribute13 IS NULL) THEN
11117 p_option_tbl(l_index).attribute13 := NULL;
11118 END IF;
11119 IF (p_option_tbl(l_index).attribute14 = pn_lease_utils.g_pn_miss_char) THEN
11120 p_option_tbl(l_index).attribute14 := lcu_option_rec.attribute14;
11121 ELSIF(p_option_tbl(l_index).attribute14 IS NULL) THEN
11122 p_option_tbl(l_index).attribute14 := NULL;
11123 END IF;
11124 IF (p_option_tbl(l_index).attribute15 = pn_lease_utils.g_pn_miss_char) THEN
11125 p_option_tbl(l_index).attribute15 := lcu_option_rec.attribute15;
11126 ELSIF(p_option_tbl(l_index).attribute15 IS NULL) THEN
11127 p_option_tbl(l_index).attribute15 := NULL;
11128 END IF;
11129 PN_LEASE_UTILS.validate_desc_flex (
11130 p_api_name => 'PN_OPTIONS'--l_api_name_full
11131 , p_application_short_name => 'PN'
11132 , p_desc_flex_name => 'PN_OPTIONS'
11133 , p_desc_segment1 => p_option_tbl(l_index).attribute1
11134 , p_desc_segment2 => p_option_tbl(l_index).attribute2
11135 , p_desc_segment3 => p_option_tbl(l_index).attribute3
11136 , p_desc_segment4 => p_option_tbl(l_index).attribute4
11137 , p_desc_segment5 => p_option_tbl(l_index).attribute5
11138 , p_desc_segment6 => p_option_tbl(l_index).attribute6
11139 , p_desc_segment7 => p_option_tbl(l_index).attribute7
11140 , p_desc_segment8 => p_option_tbl(l_index).attribute8
11141 , p_desc_segment9 => p_option_tbl(l_index).attribute9
11142 , p_desc_segment10 =>p_option_tbl(l_index).attribute10
11143 , p_desc_segment11 =>p_option_tbl(l_index).attribute11
11144 , p_desc_segment12 =>p_option_tbl(l_index).attribute12
11145 , p_desc_segment13 =>p_option_tbl(l_index).attribute13
11146 , p_desc_segment14 =>p_option_tbl(l_index).attribute14
11147 , p_desc_segment15 =>p_option_tbl(l_index).attribute15
11148 , p_desc_context => p_option_tbl(l_index).attribute_category
11149 , p_resp_appl_id => fnd_global.resp_appl_id
11150 , p_resp_id => fnd_global.resp_id
11151 , p_return_status => x_return_status
11152 );
11153 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
11154 l_tbl_flag := 0;
11155 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
11156 fnd_message.set_token ('COLUMN', 'PN_OPTIONS_DESC_FIELDS');
11157 fnd_message.set_token ('P_TEXT', 'PN_OPTIONS'|| '-'|| SQLERRM);
11158 fnd_msg_pub.ADD;
11159 RAISE fnd_api.g_exc_error;
11160 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
11161 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
11162 fnd_message.set_token ('COLUMN', 'PN_OPTIONS_DESC_FIELDS');
11163 fnd_message.set_token ('P_TEXT', 'PN_OPTIONS'|| '-'|| SQLERRM);
11164 fnd_msg_pub.ADD;
11165 RAISE fnd_api.g_exc_unexpected_error;
11166 END IF;
11167 -- END IF;
11168 CLOSE c_option;
11169 ----------------------dbms_output.put_line ('VALIDATIONS FOR option UPDATE COMPLETED');--Rupak
11170 END IF;
11171 l_tbl(l_tbl_index).temp_flag := l_tbl_flag;
11172 EXCEPTION
11173 WHEN fnd_api.g_exc_error THEN
11174 l_error_count_err := l_error_count_err+1;
11175 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);
11176 pvt_debug(g_pkg_name||'-VALIDATE_OPTION_FOR_UPDATE:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
11177 WHEN OTHERS THEN
11178 l_error_count_uerr := l_error_count_uerr+1;
11179 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM);
11180 pvt_debug(g_pkg_name||'-VALIDATE_OPTION_FOR_UPDATE:LOOOPING:EXCEPTION:'||SQLERRM,3);
11181 END;
11182 END LOOP;
11183 IF ( l_error_count_err <> 0 OR l_error_count_uerr <> 0) THEN
11184 x_return_status := fnd_api.g_ret_sts_error;
11185 ELSE
11186 x_return_status := fnd_api.g_ret_sts_success;
11187 END IF;
11188 x_tbl := l_tbl;
11189
11190 EXCEPTION
11191 WHEN OTHERS THEN
11192 x_return_status := fnd_api.g_ret_sts_unexp_error;
11193 ----------------------dbms_output.put_line('sqlcode: '||sqlcode||'and sqlerrm: '||sqlerrm);
11194 pvt_debug(g_pkg_name||'VALIDATE_OPTION_FOR_UPDATE:Exception:'||SQLERRM,3);
11195 END VALIDATE_OPTION_FOR_UPDATE;
11196
11197 PROCEDURE OPTION_UPDATE_ROW(
11198 p_option_tbl IN OUT NOCOPY lease_option_tbl_type
11199 ,p_lease_id IN PN_LEASES_ALL.LEASE_ID%type
11200 ,p_lease_change_id IN PN_LEASE_CHANGES_ALL.lease_change_id%type
11201 ,x_return_status OUT NOCOPY VARCHAR2
11202 ,p_tbl IN temp_tbl_type
11203 ,p_commit IN VARCHAR2
11204 ,p_validate IN VARCHAR2
11205 )
11206 IS
11207 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
11208 l_index BINARY_INTEGER;
11209 l_option_id PN_OPTIONS_ALL.OPTION_ID%type;
11210 x_msg_count NUMBER ;
11211 x_msg_data VARCHAR2(2000) ;
11212
11213 l_error_count_uerr NUMBER := 0;
11214 l_error_count_err NUMBER := 0;
11215 BEGIN
11216 For l_index in p_option_tbl.FIRST..p_option_tbl.LAST LOOP
11217 BEGIN
11218 IF p_tbl(l_index).temp_flag = 2 THEN
11219 ----------------------dbms_output.put_line ('RECORD UPDATION STARTED FOR OPTIONS');--Rupak
11220
11221
11222 pvt_debug(g_pkg_name||'OPTION_UPDATE_ROW:Calling PN_OPTIONS_PKG.UPDATE_ROW',3);
11223 pn_options_pkg.update_row (
11224 x_option_id => p_option_tbl(l_index).option_id
11225 , x_lease_id => p_lease_id
11226 , x_lease_change_id => p_lease_change_id
11227 , x_option_num => p_option_tbl(l_index).option_num
11228 , x_option_type_code => p_option_tbl(l_index).option_type_code
11229 , x_start_date => p_option_tbl(l_index).start_date
11230 , x_expiration_date => p_option_tbl(l_index).expiration_date
11231 , x_option_size => p_option_tbl(l_index).option_size
11232 , x_uom_code => p_option_tbl(l_index).uom_code
11233 , x_option_status_lookup_code => p_option_tbl(l_index).option_status_lookup_code
11234 , x_attribute_category => p_option_tbl(l_index).attribute_category
11235 , x_attribute1 => p_option_tbl(l_index).attribute1
11236 , x_attribute2 => p_option_tbl(l_index).attribute2
11237 , x_attribute3 => p_option_tbl(l_index).attribute3
11238 , x_attribute4 => p_option_tbl(l_index).attribute4
11239 , x_attribute5 => p_option_tbl(l_index).attribute5
11240 , x_attribute6 => p_option_tbl(l_index).attribute6
11241 , x_attribute7 => p_option_tbl(l_index).attribute7
11242 , x_attribute8 => p_option_tbl(l_index).attribute8
11243 , x_attribute9 => p_option_tbl(l_index).attribute9
11244 , x_attribute10 => p_option_tbl(l_index).attribute10
11245 , x_attribute11 => p_option_tbl(l_index).attribute11
11246 , x_attribute12 => p_option_tbl(l_index).attribute12
11247 , x_attribute13 => p_option_tbl(l_index).attribute13
11248 , x_attribute14 => p_option_tbl(l_index).attribute14
11249 , x_attribute15 => p_option_tbl(l_index).attribute15
11250 , x_last_update_date => sysdate
11251 , x_last_updated_by => fnd_global.user_id
11252 , x_last_update_login => fnd_global.login_id
11253 , x_option_exer_start_date => p_option_tbl(l_index).option_exer_start_date
11254 , x_option_exer_end_date => p_option_tbl(l_index).option_exer_end_date
11255 , x_option_action_date => p_option_tbl(l_index).option_action_date
11256 , x_option_cost => p_option_tbl(l_index).option_cost
11257 , x_option_area_change => p_option_tbl(l_index).option_area_change
11258 , x_option_reference => p_option_tbl(l_index).option_reference
11259 , x_option_notice_reqd => p_option_tbl(l_index).option_notice_reqd
11260 , x_option_comments => p_option_tbl(l_index).comments
11261 );
11262 ----------------------dbms_output.put_line ('RECORD UPDATION COMPLETED FOR OPTIONS');--Rupak
11263 pvt_debug(g_pkg_name||'OPTION_UPDATE_ROW:PN_OPTIONS_PKG.UPDATE_ROW Successful',3);
11264
11265 -- SAVEPOINT A;
11266 ----------------------dbms_output.put_line('UPDATE PROCEDURE FOR RECORD: '||l_index ||'COMPLETED');--Rupak
11267 pvt_debug(g_pkg_name||'OPTION_UPDATE_ROW:PN_OPTIONS_PKG.UPDATE_ROW;Exception'||SQLERRM,3);
11268 l_option_id := p_option_tbl(l_index).option_id;
11269
11270 IF p_option_tbl(l_index).option_milestone_tbl.count<>0 THEN
11271 ----------------------dbms_output.put_line('UPDATE MILESTONE PROCEDURE FOR RECORD: '||l_index ||'STARTED');
11272 pvt_debug(g_pkg_name||'OPTION_UPDATE_ROW:Calling UPDATE_MILESTONE',3);
11273 UPDATE_MILESTONE (
11274 p_milestone_tbl => p_option_tbl(l_index).option_milestone_tbl
11275 , p_lease_id => p_lease_id
11276 , p_lease_change_id => p_lease_change_id
11277 , p_option_id => l_option_id
11278 , p_insurance_req_id => NULL
11279 , p_payment_term_id => NULL
11280 , p_commit => p_commit
11281 , p_validate => 'N'
11282 , x_return_status => x_return_status
11283 -- , x_msg_count => x_msg_count
11284 -- , x_msg_data => x_msg_data
11285 );
11286 ----------------------dbms_output.put_line('UPDATE_MILESTONE:BA'||x_return_status);
11287 pvt_debug(g_pkg_name||'OPTION_UPDATE_ROW:Update Mile Stone Successful',3);
11288
11289 END IF;
11290
11291 END IF;
11292 EXCEPTION
11293 WHEN fnd_api.g_exc_error THEN
11294 l_error_count_err := l_error_count_err+1;
11295 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
11296 WHEN OTHERS THEN
11297 l_error_count_uerr := l_error_count_uerr+1;
11298 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM);
11299 pvt_debug(g_pkg_name||'-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM,3);
11300 END;
11301 END LOOP;
11302 IF ( l_error_count_err <> 0 OR l_error_count_uerr <> 0) THEN
11303 --------------------dbms_output.put_line('OPTION_UPDATE_ROW:COUNT:'||l_error_count_err||l_error_count_uerr);
11304 x_return_status := fnd_api.g_ret_sts_error;
11305 ELSE
11306 x_return_status := fnd_api.g_ret_sts_success;
11307 END IF;
11308
11309
11310 EXCEPTION
11311 WHEN OTHERS THEN
11312 x_return_status := fnd_api.g_ret_sts_unexp_error;
11313 pvt_debug(g_pkg_name||'OPTION_UPDATE_ROW:Exception:'||SQLERRM,3);
11314 END OPTION_UPDATE_ROW;
11315
11316 PROCEDURE UPDATE_OPTION (
11317 p_lease_id IN PN_LEASES_ALL.LEASE_ID%TYPE
11318 , p_lease_change_id IN PN_LEASE_CHANGES_ALL.LEASE_CHANGE_ID%TYPE
11319 , p_commit IN VARCHAR2
11320 , p_validate IN VARCHAR2
11321 , p_option_tbl IN OUT NOCOPY lease_option_tbl_type
11322 , x_return_status OUT NOCOPY VARCHAR2
11323 -- , x_msg_count OUT NUMBER
11324 -- , x_msg_data OUT VARCHAR2
11325 )
11326 IS
11327 l_return_status VARCHAR2 (1) := fnd_api.g_ret_sts_success;
11328 l_msg_count NUMBER ;
11329 l_msg_data VARCHAR2(2000) ;
11330 x_out_tbl temp_tbl_type;
11331 p_option_tbl_create lease_option_tbl_type;
11332 p_option_tbl_update lease_option_tbl_type;
11333 m NUMBER;
11334 n NUMBER;
11335 l_err_option_cnt NUMBER:=0;
11336 BEGIN
11337 x_return_status := fnd_api.g_ret_sts_success;
11338 ----------------------dbms_output.put_line('In UPDATE_OPTION:1');--Rupak
11339 m:=1;
11340 n:=1;
11341 FOR i IN 1..p_option_tbl.COUNT
11342 LOOP
11343 IF(p_option_tbl(i).option_id IS NOT NULL AND p_option_tbl(i).option_id <> pn_lease_utils.g_pn_miss_num) THEN
11344
11345 --p_option_tbl(i).p_null_id := 'N';
11346 p_option_tbl_update(n):=p_option_tbl(i);
11347 n:=n+1;
11348 ELSE
11349
11350 --p_option_tbl(i).p_null_id := 'Y';
11351 p_option_tbl_create(m):=p_option_tbl(i);
11352 m:=m+1;
11353 END IF;
11354 END LOOP;
11355 --OOPS-RHIA
11356
11357 IF(p_option_tbl_update.COUNT > 0) THEN
11358
11359 VALIDATE_OPTION_FOR_UPDATE(
11360 p_option_tbl => p_option_tbl_update--p_option_tbl
11361 ,p_lease_id => p_lease_id
11362 ,p_lease_change_id => p_lease_change_id
11363 ,x_tbl => x_out_tbl
11364 ,x_return_status => x_return_status
11365 ,p_commit => p_commit
11366 );
11367 ----------------------dbms_output.put_line('In UPDATE_OPTION:2'||x_return_status||p_validate);--Rupak
11368 IF NVL(p_validate,'F') <> 'T' and x_return_status = fnd_api.g_ret_sts_success THEN
11369
11370 ----------------------dbms_output.put_line ('CALLING UPDATE PROCEDURE OF OPTIONS');--Rupak
11371 pvt_debug(g_pkg_name||'Inside UPDATE_OPTION',3);
11372 OPTION_UPDATE_ROW(
11373 p_option_tbl => p_option_tbl_update--p_option_tbl
11374 , p_lease_id => p_lease_id
11375 , p_lease_change_id => p_lease_change_id
11376 , x_return_status => x_return_status
11377 , p_tbl => x_out_tbl
11378 , p_commit => p_commit
11379 , p_validate => p_validate
11380 );
11381 pvt_debug(g_pkg_name||'UPDATE_OPTION:OPTION_UPDATE_ROW Return Status:'||x_return_status,3);
11382 ----------------------dbms_output.put_line('In UPDATE_OPTION:3'||x_return_status);--Rupak
11383
11384 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
11385 --x_return_status := fnd_api.g_ret_sts_unexp_error;
11386 l_err_option_cnt := l_err_option_cnt + 1;
11387 ELSE
11388 --x_return_status := fnd_api.g_ret_sts_error;
11389 l_err_option_cnt := l_err_option_cnt + 1;
11390 END IF;
11391 END IF;
11392 IF(p_option_tbl_create.COUNT > 0) THEN
11393 --------dbms_output.put_line('OPTIONS:5');
11394 VALIDATE_OPTION_FOR_CREATE(p_option_tbl => p_option_tbl_create
11395 ,x_tbl => x_out_tbl
11396 ,x_return_status => x_return_status
11397 );
11398
11399 pvt_debug(g_pkg_name||'Inside UPUDATE_OPTION:VALIDATE_OPTION_FOR_CREATE Return Status'||x_return_status,3);
11400 --------------------dbms_output.put_line('OPTIONS:x_return_status'||x_return_status);--OOPS
11401 IF (NVL(p_validate,'F') <> 'T' AND x_return_status = fnd_api.g_ret_sts_success)THEN
11402 OPTION_INSERT_ROW( p_option_tbl => p_option_tbl_create
11403 ,p_lease_id => p_lease_id
11404 ,p_lease_change_id => p_lease_change_id
11405 ,x_return_status => x_return_status
11406 ,p_tbl => x_out_tbl
11407 ,p_commit => p_commit
11408 ,p_validate => p_validate
11409 );
11410 pvt_debug(g_pkg_name||'Inside UPDATE_OPTION:OPTION_INSERT_ROW Return Status'||x_return_status,3);
11411 --------------------dbms_output.put_line('OPTIONS:x_return_status:OPTION_INSERT_ROW:'||x_return_status);--OOPS
11412 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
11413 --RAISE fnd_api.g_exc_error;
11414 l_err_option_cnt := l_err_option_cnt + 1;
11415 END IF;
11416 ELSE
11417 --RAISE fnd_api.g_exc_error;
11418 l_err_option_cnt := l_err_option_cnt + 1;
11419 END IF;
11420
11421 END IF;
11422 IF(l_err_option_cnt = 0) THEN
11423 x_return_status := fnd_api.g_ret_sts_success;
11424 ELSE
11425 x_return_status := fnd_api.g_ret_sts_error;
11426 END IF;
11427 EXCEPTION
11428 WHEN OTHERS THEN
11429 x_return_status := fnd_api.g_ret_sts_unexp_error;
11430 pvt_debug(g_pkg_name||'UPDATE_OPTION:Exception:'||SQLERRM,3);
11431 ----------------------dbms_output.put_line('CREATION OF OPTION FAILED');
11432 END UPDATE_OPTION;
11433
11434 ----------------------------------------------SUNITHA END --------------------------------------------
11435
11436
11437 PROCEDURE create_lease (
11438 p_commit IN VARCHAR2
11439 , p_validate IN VARCHAR2
11440 , p_lease_rec IN OUT NOCOPY lease_rec
11441 , p_lease_exp_rev_accounts_rec IN OUT NOCOPY lease_account_rec
11442 , p_lease_accrual_account_rec IN OUT NOCOPY lease_account_rec
11443 , p_lease_liab_rcvl_account_rec IN OUT NOCOPY lease_account_rec
11444 , p_contacts_tbl IN OUT NOCOPY lease_contacts_tbl
11445 , p_tenancies_tbl IN OUT NOCOPY lease_tenancies_tbl
11446 , p_insurance_tbl IN OUT NOCOPY lease_insurance_tbl_type
11447 , p_right_tbl IN OUT NOCOPY lease_right_tbl_type
11448 , p_obligation_tbl IN OUT NOCOPY lease_obligation_tbl_type
11449 , p_option_tbl IN OUT NOCOPY lease_option_tbl_type
11450 , p_lease_payment_term_tbl IN OUT NOCOPY lease_terms_tbl --Rupak
11451 , p_note_tbl IN OUT NOCOPY lease_note_tbl_type
11452 , x_msg_count OUT NOCOPY NUMBER
11453 , x_msg_data OUT NOCOPY VARCHAR2
11454 , x_return_status OUT NOCOPY VARCHAR2
11455 , p_lease_context IN VARCHAR2
11456 ) IS
11457 p_api_version VARCHAR2(10):= '1.0';
11458 l_error_count NUMBER:=0;
11459
11460 BEGIN
11461
11462 --------------------dbms_output.put_line('In Private: Create Lease:B4 validate_lease_rec');--Rupak
11463 pvt_debug(g_pkg_name||'In CREATE_LEASE',3);
11464 validate_lease_rec (p_lease_rec => p_lease_rec
11465 , p_validate => p_validate
11466 , p_lease_exp_rev_accounts_rec => p_lease_exp_rev_accounts_rec
11467 , p_lease_accrual_account_rec => p_lease_accrual_account_rec
11468 , p_lease_liab_rcvl_account_rec => p_lease_liab_rcvl_account_rec
11469 , p_operation => l_param_create_mode_operation
11470 , p_lease_context => p_lease_context
11471 , x_return_status => x_return_status);
11472 pvt_debug(g_pkg_name||'-CREATE_LEASE:VALIDATE_LEASE_REC Return Status:'||x_return_status,3);
11473 ----------------------dbms_output.put_line('In Private: Create Lease:After validate_lease_rec'||x_return_status);--Rupak
11474 IF (x_return_status = fnd_api.g_ret_sts_error)
11475 THEN
11476 l_error_count := l_error_count+1;
11477 RAISE fnd_api.g_exc_error;
11478 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11479 THEN
11480 l_error_count := l_error_count+1;
11481 RAISE fnd_api.g_exc_unexpected_error;
11482 END IF;
11483 --g_class_code := p_lease_rec.lease_class_code;
11484 IF x_return_status=fnd_api.g_ret_sts_success
11485 AND NVL(p_validate,'F')<>'T'
11486 THEN
11487 ----------------------dbms_output.put_line('In Create lease procedure before calling LEASE_INSERT_ROW');--Rupak
11488
11489 lease_insert_row ( p_lease_rec => p_lease_rec
11490 , p_lease_exp_rev_accounts_rec => p_lease_exp_rev_accounts_rec
11491 , p_lease_accrual_account_rec => p_lease_accrual_account_rec
11492 , p_lease_liab_rcvl_account_rec => p_lease_liab_rcvl_account_rec
11493 , p_location_exist => fnd_api.g_false
11494 , p_lease_context => p_lease_context
11495 , x_return_status => x_return_status);
11496 pvt_debug(g_pkg_name||'-CREATE_LEASE:LEASE_INSERT_ROW Return Status:'||x_return_status,3);
11497 IF (x_return_status = fnd_api.g_ret_sts_error)
11498 THEN
11499 RAISE fnd_api.g_exc_error;
11500 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11501 THEN
11502 RAISE fnd_api.g_exc_unexpected_error;
11503 END IF;
11504 END IF;
11505
11506 --BEGIN
11507 --------------------dbms_output.put_line('Before calling validate_contacts_tbl');--Rupak
11508 IF p_contacts_tbl.count<>0 THEN
11509 validate_contacts_tbl (p_lease_contacts_tbl => p_contacts_tbl
11510 , p_lease_rec => p_lease_rec
11511 , p_validate => p_validate
11512 , p_lease_context => p_lease_context
11513 , p_operation => l_param_create_mode_operation
11514 , x_return_status => x_return_status
11515 );
11516 ----------------------dbms_output.put_line('After calling validate_contacts_tbl'||x_return_status);--Rupak
11517 pvt_debug(g_pkg_name||'-CREATE_LEASE:VALIDATE_CONTACTS_TBL Return Status:'||x_return_status,3);
11518
11519 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
11520 l_error_count := l_error_count+1;
11521 END IF;
11522 END IF;
11523 /*ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN--RHIA
11524 /*--------------------dbms_output.put_line('After calling validate_contacts_tbl:fnd_api.g_ret_sts_error:'||x_return_status);--Rupak
11525 fnd_msg_pub.count_and_get (p_encoded => fnd_api.g_false
11526 , p_count => x_msg_count
11527 , p_data => x_msg_data
11528 );
11529 --------------------dbms_output.put_line('123:contacts:x_msg_data:'||x_msg_data);--Rupak
11530 --------------------dbms_output.put_line('123:contacts:x_msg_count'||x_msg_count);--Rupak
11531 -- RAISE fnd_api.g_exc_error;
11532 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11533 THEN
11534 --------------------dbms_output.put_line('After calling validate_contacts_tbl:fnd_api.g_ret_sts_unexp_error:'||x_return_status);--Rupak
11535 RAISE fnd_api.g_exc_unexpected_error;
11536 END IF;*/
11537 /*EXCEPTION
11538 WHEN OTHERS THEN
11539 --------------------dbms_output.put_line('EXCEPTION:After calling validate_contacts_tbl'||SQLERRM);--Rupak
11540 pvt_debug(g_pkg_name||'-CREATE_LEASE:VALIDATE_CONTACTS_TBL :Exception:'||SQLERRM,3);
11541 END;*/
11542
11543 --------------------dbms_output.put_line('Before calling validate_tenancies_tbl');--Rupak
11544 IF p_tenancies_tbl.count<>0 THEN
11545 validate_tenancies_tbl (p_lease_tenancies_tbl => p_tenancies_tbl
11546 , p_lease_rec => p_lease_rec
11547 , p_validate => p_validate
11548 -- , p_lease_class_code => p_lease_rec.lease_class_code
11549 -- , p_lease_commencement_date => p_lease_rec.lease_commencement_date
11550 -- , p_lease_termination_date => p_lease_rec.lease_termination_date
11551 -- , p_parent_lease_id => p_lease_rec.parent_lease_id
11552 , p_lease_context => p_lease_context
11553 , p_operation => 'CREATE_TENANCIES'--l_param_create_mode_operation
11554 , x_return_status => x_return_status
11555 );
11556 pvt_debug(g_pkg_name||'-CREATE_LEASE:VALIDATE_TENANCIES_TBL Return Status:'||x_return_status,3);
11557
11558 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
11559 l_error_count := l_error_count+1;
11560 END IF;
11561 END IF;
11562 /*IF (x_return_status = fnd_api.g_ret_sts_error)
11563 THEN
11564 fnd_msg_pub.count_and_get (p_encoded => fnd_api.g_false
11565 , p_count => x_msg_count
11566 , p_data => x_msg_data
11567 );
11568 --------------------dbms_output.put_line('123:tenancies:x_msg_data:'||x_msg_data);--Rupak
11569 --------------------dbms_output.put_line('123:tenancies:x_msg_count:'||x_msg_count);--Rupak
11570 --RAISE fnd_api.g_exc_error;
11571 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
11572 THEN
11573 RAISE fnd_api.g_exc_unexpected_error;
11574 END IF;*/
11575
11576 ----------dbms_output.put_line(' B4 Calling Create Terms'||p_lease_context);--Rupak
11577 IF p_lease_payment_term_tbl.count<>0 THEN
11578 create_terms (p_api_version => p_api_version
11579 , p_init_msg_list => NULL--p_init_msg_list
11580 , p_commit => NULL--p_commit
11581 , p_validate => p_validate
11582 , p_payment_terms_tbl => p_lease_payment_term_tbl
11583 , p_lease_id => p_lease_rec.lease_id
11584 , p_lease_context => p_lease_context
11585 , x_return_status => x_return_status
11586 , x_msg_count => x_msg_count
11587 , x_msg_data => x_msg_data
11588 );
11589 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
11590 l_error_count := l_error_count+1;
11591 END IF;
11592 ----------------------dbms_output.put_line('After CallingCreate Terms;x_return_status'||x_return_status);--Rupak
11593 pvt_debug(g_pkg_name||'-CREATE_LEASE:CREATE_TERMS Return Status:'||x_return_status,3);
11594 END IF;
11595 ---------------------------------------------------SUNITA'S CODE BEGINS --------------------
11596
11597 ----------------------dbms_output.put_line('B4 Calling Create Note');--Rupak
11598 IF p_note_tbl.count<>0 THEN
11599 CREATE_NOTE (
11600 p_lease_id => p_lease_rec.lease_id
11601 , p_commit => p_commit
11602 , p_validate => p_validate
11603 , p_note_tbl => p_note_tbl
11604 , x_return_status => x_return_status
11605 -- , x_msg_count => x_msg_count
11606 -- , x_msg_data => x_msg_data
11607 );
11608 pvt_debug(g_pkg_name||'-CREATE_LEASE:CREATE_NOTE Return Status:'||x_return_status,3);
11609
11610 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
11611 l_error_count := l_error_count+1;
11612 END IF;
11613 END IF;
11614 ----------------------dbms_output.put_line('B4 Calling Create Rights:'||p_right_tbl.count);--Rupak
11615 IF p_right_tbl.count<>0 THEN
11616 CREATE_RIGHT (
11617 p_lease_id => p_lease_rec.lease_id
11618 , p_lease_change_id => p_lease_rec.lease_change_id
11619 , p_commit => p_commit
11620 , p_validate => p_validate
11621 , p_right_tbl => p_right_tbl
11622 , x_return_status => x_return_status
11623 -- , x_msg_count OUT NUMBER
11624 -- , x_msg_data OUT VARCHAR2
11625 );
11626 pvt_debug(g_pkg_name||'-CREATE_LEASE:CREATE_RIGHT Return Status:'||x_return_status,3);
11627
11628 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
11629 l_error_count := l_error_count+1;
11630 END IF;
11631 END IF;
11632 ----------------------dbms_output.put_line('B4 Calling Create Obligation:'||p_obligation_tbl.count);--Rupak
11633 IF p_obligation_tbl.count<>0 THEN
11634 ----------------------dbms_output.put_line('IN Create Obligation:');--Rupak
11635 CREATE_OBLIGATION (
11636 p_lease_id => p_lease_rec.lease_id,
11637 p_lease_change_id => p_lease_rec.lease_change_id,
11638 p_commit => p_commit,
11639 p_validate => p_validate,
11640 p_obligation_tbl => p_obligation_tbl,
11641 x_return_status => x_return_status
11642 -- x_msg_count OUT NUMBER,
11643 -- x_msg_data OUT VARCHAR2
11644 );
11645 pvt_debug(g_pkg_name||'-CREATE_LEASE:CREATE_OBLIGATION Return Status:'||x_return_status,3);
11646
11647 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
11648 l_error_count := l_error_count+1;
11649 END IF;
11650 END IF;
11651 IF p_insurance_tbl.count<>0 THEN
11652 CREATE_INSURANCE (
11653 p_lease_id => p_lease_rec.lease_id,
11654 p_lease_change_id => p_lease_rec.lease_change_id,
11655 p_commit => p_commit,
11656 p_validate => p_validate,
11657 p_insurance_tbl => p_insurance_tbl,
11658 x_return_status => x_return_status
11659 -- x_msg_count OUT NUMBER,
11660 -- x_msg_data OUT VARCHAR2
11661 );
11662 pvt_debug(g_pkg_name||'-CREATE_LEASE:CREATE_INSURANCE Return Status:'||x_return_status,3);
11663
11664
11665 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
11666 l_error_count := l_error_count+1;
11667 END IF;
11668 END IF;
11669 IF p_option_tbl.count<>0 THEN
11670 CREATE_OPTION (
11671 p_lease_id => p_lease_rec.lease_id
11672 , p_lease_change_id => p_lease_rec.lease_change_id
11673 , p_commit => p_commit
11674 , p_validate => p_validate
11675 , p_option_tbl => p_option_tbl
11676 , x_return_status => x_return_status
11677 -- , x_msg_count OUT NUMBER
11678 -- , x_msg_data OUT VARCHAR2
11679 );
11680 pvt_debug(g_pkg_name||'-CREATE_LEASE:CREATE_OPTION Return Status:'||x_return_status,3);
11681
11682 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
11683 l_error_count := l_error_count+1;
11684 END IF;
11685 END IF;
11686 ------------------dbms_output.put_line('Error Count:'||l_error_count);
11687 IF (l_error_count = 0) THEN
11688 x_return_status := fnd_api.g_ret_sts_success;
11689 ELSE
11690 x_return_status := fnd_api.g_ret_sts_error;
11691 END IF;
11692 ---------------------------------------------------SUNITA'S CODE ENDS --------------------
11693
11694
11695
11696 EXCEPTION
11697 WHEN OTHERS THEN
11698 x_return_status := fnd_api.g_ret_sts_unexp_error;
11699 pvt_debug(g_pkg_name||'-CREATE_LEASE:Exception:'||SQLERRM,3);
11700 RAISE;
11701 END create_lease;
11702
11703 --------------------------Rupak BEGIN--------------------------
11704 FUNCTION submit_program (
11705 p_api_name IN VARCHAR2
11706 , p_org_id IN NUMBER
11707 , p_lease_id IN NUMBER
11708 , p_lease_status IN VARCHAR2
11709 , p_lease_commencement_date IN DATE)
11710 RETURN NUMBER
11711 AS
11712 l_requestid NUMBER;
11713 BEGIN
11714 pn_mo_cache_utils.fnd_req_set_org_id (p_org_id);
11715 l_requestid :=
11716 fnd_request.submit_request ('PN'
11717 , 'PNSCHITM'
11718 , NULL
11719 , NULL
11720 , FALSE
11721 , p_lease_id
11722 , p_lease_status
11723 , 'MAIN'
11724 , NULL
11725 , NULL
11726 , 'N'
11727 ,fnd_date.date_to_canonical(p_lease_commencement_date) --Bug 13462759
11728 , NULL
11729 , NULL
11730 , CHR (0)
11731 , ''
11732 , ''
11733 , ''
11734 , ''
11735 , ''
11736 , ''
11737 , ''
11738 , ''
11739 , ''
11740 , ''
11741 , ''
11742 , ''
11743 , ''
11744 , ''
11745 , ''
11746 , ''
11747 , ''
11748 , ''
11749 , ''
11750 , ''
11751 , ''
11752 , ''
11753 , ''
11754 , ''
11755 , ''
11756 , ''
11757 , ''
11758 , ''
11759 , ''
11760 , ''
11761 , ''
11762 , ''
11763 , ''
11764 , ''
11765 , ''
11766 , ''
11767 , ''
11768 , ''
11769 , ''
11770 , ''
11771 , ''
11772 , ''
11773 , ''
11774 , ''
11775 , ''
11776 , ''
11777 , ''
11778 , ''
11779 , ''
11780 , ''
11781 , ''
11782 , ''
11783 , ''
11784 , ''
11785 , ''
11786 , ''
11787 , ''
11788 , ''
11789 , ''
11790 , ''
11791 , ''
11792 , ''
11793 , ''
11794 , ''
11795 , ''
11796 , ''
11797 , ''
11798 , ''
11799 , ''
11800 , ''
11801 , ''
11802 , ''
11803 , ''
11804 , ''
11805 , ''
11806 , ''
11807 , ''
11808 , ''
11809 , ''
11810 , ''
11811 , ''
11812 , ''
11813 , ''
11814 , ''
11815 , ''
11816 , ''
11817 , ''
11818 , ''
11819 , ''
11820 , '');
11821 pvt_debug(g_pkg_name||'-SUBMIT_PROGRAM:Request ID'||l_requestid,3);
11822 IF (l_requestid = 0)
11823 THEN
11824 fnd_message.set_name ('PN', 'PN_SUBSCHEDULES_ERR');
11825 fnd_message.set_token ('API_NAME', p_api_name
11826 || '-SubmitSchedulesConcProgram');
11827 fnd_msg_pub.ADD;
11828 RAISE fnd_api.g_exc_error;
11829 END IF;
11830
11831 RETURN l_requestid;
11832 END submit_program;
11833
11834 --Rupak-Update
11835 /* Update Lease API*/
11836
11837 PROCEDURE update_lease (
11838 p_api_version IN NUMBER
11839 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
11840 , p_commit IN VARCHAR2 := fnd_api.g_false
11841 , p_validate IN VARCHAR2 := fnd_api.g_false
11842 , p_lease_rec IN OUT NOCOPY lease_rec
11843 , p_lease_exp_rev_accounts_rec IN OUT NOCOPY lease_account_rec
11844 , p_lease_accrual_account_rec IN OUT NOCOPY lease_account_rec
11845 , p_lease_liab_rcvl_account_rec IN OUT NOCOPY lease_account_rec
11846 , p_lease_contacts_tbl IN OUT NOCOPY lease_contacts_tbl
11847 , p_lease_tenancies_tbl IN OUT NOCOPY lease_tenancies_tbl
11848 , p_lease_context IN VARCHAR2 := 'UPD'
11849 , p_right_tbl IN OUT NOCOPY lease_right_tbl_type
11850 , p_note_tbl IN OUT NOCOPY lease_note_tbl_type
11851 , p_obligation_tbl IN OUT NOCOPY lease_obligation_tbl_type
11852 , p_insurance_tbl IN OUT NOCOPY lease_insurance_tbl_type
11853 , p_option_tbl IN OUT NOCOPY lease_option_tbl_type
11854 , p_lease_payment_term_tbl IN OUT NOCOPY lease_terms_tbl --Rupak
11855 -- , x_lease_id OUT NOCOPY NUMBER
11856 -- , x_lease_number OUT NOCOPY VARCHAR2
11857 -- , x_lease_name OUT NOCOPY VARCHAR2
11858 , x_return_status OUT NOCOPY VARCHAR2
11859 , x_msg_count OUT NOCOPY NUMBER
11860 , x_msg_data OUT NOCOPY VARCHAR2
11861 )
11862 AS
11863 CURSOR cur_lease_header
11864 IS
11865 SELECT lease_id
11866 , last_update_date
11867 , last_updated_by
11868 , creation_date
11869 , created_by
11870 , last_update_login
11871 , NAME
11872 , lease_num
11873 , parent_lease_id
11874 , lease_type_code
11875 , payment_term_proration_rule
11876 , abstracted_by_user
11877 , comments
11878 , status
11879 , org_id
11880 , lease_class_code
11881 , lease_status
11882 , location_id
11883 , customer_id
11884 , cal_start
11885 FROM pn_leases_all
11886 WHERE lease_id = p_lease_rec.lease_id;
11887
11888 CURSOR cur_lease_details
11889 IS
11890 SELECT lease_detail_id
11891 , lease_change_id
11892 , lease_id
11893 , responsible_user
11894 , expense_account_id
11895 , lease_commencement_date
11896 , lease_termination_date
11897 , lease_execution_date
11898 , last_update_date
11899 , last_updated_by
11900 , creation_date
11901 , created_by
11902 , last_update_login
11903 , attribute_category
11904 , attribute1
11905 , attribute2
11906 , attribute3
11907 , attribute4
11908 , attribute5
11909 , attribute6
11910 , attribute7
11911 , attribute8
11912 , attribute9
11913 , attribute10
11914 , attribute11
11915 , attribute12
11916 , attribute13
11917 , attribute14
11918 , attribute15
11919 , org_id
11920 , accrual_account_id
11921 , receivable_account_id
11922 , send_entries
11923 , term_template_id
11924 , lease_extension_end_date
11925 , grouping_rule_id
11926 FROM pn_lease_details_all
11927 WHERE lease_id = p_lease_rec.lease_id;
11928
11929 l_return_status VARCHAR2 (1);
11930 l_debug_mode VARCHAR2 (1);
11931 l_debug_level1 CONSTANT NUMBER := 1;
11932 l_debug_level2 CONSTANT NUMBER := 2;
11933 l_debug_level3 CONSTANT NUMBER := 3;
11934 l_debug_level4 CONSTANT NUMBER := 4;
11935 l_debug_level5 CONSTANT NUMBER := 5;
11936 l_leasecommencementdate DATE := NULL;
11937 l_leaseterminationdate DATE := NULL;
11938 l_leaseexecutiondate DATE := NULL;
11939 l_lastupdatedate DATE := NULL;
11940 l_leaseextensionenddate DATE := NULL;
11941 l_lease_status pn_leases_all.lease_status%TYPE := NULL;
11942 l_leasechangeid pn_lease_details.lease_change_id%TYPE := NULL;
11943 l_lease_context VARCHAR2 (100) := NULL;
11944 l_abstracted_by_user pn_leases_all.abstracted_by_user%TYPE := NULL;
11945 l_payment_term_proration_rule pn_leases_all.payment_term_proration_rule%TYPE := NULL;
11946 l_requestid NUMBER := NULL;
11947 l_cross_val_flag VARCHAR2 (1) := 'N';
11948 l_proration_rule_flag VARCHAR2 (1) := 'N';
11949 --- Cursor Variable Declaration
11950 l_lease_hdr_rec cur_lease_header%ROWTYPE;
11951 l_lease_dtl_rec cur_lease_details%ROWTYPE;
11952 -- Derived Values
11953 l_lease_rec lease_rec;
11954 --l_lease_detail_attribs pn_lease_pub.lease_detail_attribs_rec_type;
11955 l_rowid VARCHAR2 (18) := NULL;
11956 l_lease_change_num pn_lease_changes_all.lease_change_number%TYPE;
11957 l_old_status_code pn_leases_all.status%TYPE := NULL;
11958 l_api_version CONSTANT NUMBER := 1.0;
11959 l_api_name CONSTANT VARCHAR2 (30) := 'UPDATE_LEASE';
11960 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name
11961 || '.'
11962 || l_api_name;
11963 l_error_count NUMBER :=0;
11964 l_msg_data VARCHAR2(4000);
11965 l_msg_count NUMBER;
11966 x_request_id NUMBER:=NULL;
11967 l_tenancy_id NUMBER:=NULL;
11968 l_status VARCHAR2(50);
11969 l_status_new VARCHAR2(50);
11970 l_lease_status_db pn_leases_all.lease_status%TYPE := NULL;
11971 l_lease_status_new pn_leases_all.lease_status%TYPE := NULL;
11972 BEGIN
11973 l_lease_context := NVL(p_lease_context,'UPD');
11974 g_lease_context := l_lease_context;
11975 -- Standard start of API savepoint
11976 SAVEPOINT update_lease_pvt;
11977
11978 -- Initialize message list if p_init_msg_list is set to TRUE
11979 IF fnd_api.to_boolean (p_init_msg_list)
11980 THEN
11981 fnd_msg_pub.initialize;
11982 END IF;
11983
11984
11985 BEGIN--Lease Check
11986
11987 OPEN cur_lease_header;
11988
11989 FETCH cur_lease_header
11990 INTO l_lease_hdr_rec;
11991
11992
11993 IF (cur_lease_header%NOTFOUND)
11994 THEN
11995 ----------------------dbms_output.put_line('In Update Private 2');--Rupak
11996 fnd_message.set_name ('PN', 'PN_INVALID_LEASE');
11997 fnd_message.set_token ('API_NAME', l_api_name_full);
11998 fnd_message.set_token ('LEASE_ID', p_lease_rec.lease_id);
11999 fnd_msg_pub.ADD;
12000 x_return_status := fnd_api.g_ret_sts_error;
12001 ELSE
12002 -- --------------------dbms_output.put_line('In Update Private 3');--Rupak
12003 l_lease_status := l_lease_hdr_rec.lease_status;
12004 l_payment_term_proration_rule := l_lease_hdr_rec.payment_term_proration_rule;
12005 l_abstracted_by_user := l_lease_hdr_rec.abstracted_by_user;
12006 l_status := l_lease_hdr_rec.status;
12007
12008
12009
12010 --Validating the Lease Name and Parent Lease ID
12011 IF ( (p_lease_rec.lease_name IS NOT NULL)
12012 AND (p_lease_rec.lease_name <> pn_lease_utils.g_pn_miss_char)
12013 )
12014 THEN
12015 l_lease_hdr_rec.NAME := p_lease_rec.lease_name;
12016 END IF;
12017 /*
12018 IF ( (p_lease_rec.lease_num IS NOT NULL)
12019 AND (p_lease_rec.lease_num <> pn_lease_utils.g_pn_miss_char)
12020 )
12021 THEN
12022 l_lease_hdr_rec.lease_num := p_lease_rec.lease_num;
12023 END IF;*/
12024
12025 ----------------------dbms_output.put_line('In Update Private 4');--Rupak
12026 --Validating the Parent Lease Name and Parent Lease ID
12027 IF ( (p_lease_rec.parent_lease_name IS NOT NULL)
12028 AND (p_lease_rec.parent_lease_name <> pn_lease_utils.g_pn_miss_char)
12029 OR (p_lease_rec.parent_lease_id IS NOT NULL)
12030 AND (p_lease_rec.parent_lease_id <> pn_lease_utils.g_pn_miss_num))
12031 THEN
12032 l_lease_hdr_rec.parent_lease_id := p_lease_rec.parent_lease_id;
12033 END IF;
12034 ----------------------dbms_output.put_line('In Update Private 5');--Rupak
12035 --Validating the Lease Type Code
12036 IF ( ( (p_lease_rec.lease_type IS NOT NULL)
12037 AND (p_lease_rec.lease_type <> pn_lease_utils.g_pn_miss_char))
12038 OR ( (p_lease_rec.lease_type_code IS NOT NULL)
12039 AND (p_lease_rec.lease_type_code <> pn_lease_utils.g_pn_miss_char)))
12040 THEN
12041 ----------------------dbms_output.put_line('In Private:p_lease_rec.lease_type'||p_lease_rec.lease_type);--Rupak
12042 ----------------------dbms_output.put_line('In Private:p_lease_rec.lease_type_code'||p_lease_rec.lease_type_code);--Rupak
12043 l_lease_hdr_rec.lease_type_code := p_lease_rec.lease_type_code;
12044 pn_lease_utils.get_lookup_code (p_parameter_name => l_param_lease_type
12045 , p_operation => 'UPDATE_LEASE'
12046 , p_lookup_meaning => p_lease_rec.lease_type
12047 , p_lookup_type => l_leasetype_lookup_type
12048 , x_lookup_type_code => p_lease_rec.lease_type_code--l_lease_hdr_rec.lease_type_code
12049 , x_return_status => x_return_status
12050 );
12051 pvt_debug(g_pkg_name||'-UPDATE_LEASE:Lease Type Code'||p_lease_rec.lease_type_code,3);
12052 l_lease_hdr_rec.lease_type_code := p_lease_rec.lease_type_code;
12053 IF (x_return_status = fnd_api.g_ret_sts_error)
12054 THEN
12055 --l_lease_hdr_rec.lease_type_code := p_lease_rec.lease_type_code;
12056 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
12057 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_leasetype_lookup_type));
12058 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_rec.lease_type));
12059 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_rec.lease_type_code));
12060 fnd_msg_pub.ADD;
12061 RAISE fnd_api.g_exc_error;
12062
12063 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12064 THEN
12065 --l_lease_hdr_rec.lease_type_code := p_lease_rec.lease_type_code;
12066 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12067 fnd_message.set_token ('COLUMN', SUBSTR(l_leasetype_lookup_type,3));
12068 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
12069 fnd_msg_pub.ADD;
12070 RAISE fnd_api.g_exc_unexpected_error;
12071 END IF;
12072 END IF;
12073
12074 --Customer Validation
12075 -- Validate Customer Id
12076 IF p_lease_rec.lease_class_code <> 'DIRECT'
12077 THEN
12078 IF ( ( p_lease_rec.customer_name IS NOT NULL AND p_lease_rec.customer_name <> pn_lease_utils.g_pn_miss_char)
12079 OR(p_lease_rec.customer_id IS NOT NULL AND p_lease_rec.customer_id <> pn_lease_utils.g_pn_miss_num)
12080 ) THEN
12081 pn_lease_utils.get_customer_id (p_parameter_name => l_param_lease_customer
12082 , p_operation => 'UPDATE_LEASE'
12083 , p_customer_name => p_lease_rec.customer_name
12084 , x_customer_id => p_lease_rec.customer_id
12085 , x_return_status => x_return_status
12086 );
12087 l_lease_hdr_rec.customer_id := p_lease_rec.customer_id;
12088 ------------------dbms_output.put_line ( 'GET_CUSTOMER_ID: '|| p_lease_rec.customer_id);--Rupak
12089 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Customer ID:'||l_lease_hdr_rec.customer_id,3);
12090 IF (x_return_status = fnd_api.g_ret_sts_error)
12091 THEN
12092 --l_error_flag:='Y';
12093 ----------------------dbms_output.put_line ('PVT:1');--Rupak
12094 fnd_message.set_name ('PN', 'PN_INVALID_CUSTOMER');
12095 fnd_message.set_token ('CUSTOMER_NAME', get_miss_char_decode(p_lease_rec.customer_name));
12096 fnd_message.set_token ('CUSTOMER_ID', get_miss_num_decode(p_lease_rec.customer_id));
12097 fnd_msg_pub.ADD;
12098 RAISE fnd_api.g_exc_error;
12099 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12100 THEN
12101 --l_error_flag:='Y';
12102 /*--------------------dbms_output.put_line ('PVT:2');--Rupak*/
12103 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12104 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_customer,3));
12105 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
12106 fnd_msg_pub.ADD;
12107 RAISE fnd_api.g_exc_unexpected_error;
12108 END IF;
12109 ELSIF(p_lease_rec.customer_name IS NULL OR p_lease_rec.customer_id IS NULL) THEN
12110 l_lease_hdr_rec.customer_id := NULL;
12111 END IF;
12112 /* ELSE
12113 p_lease_rec.customer_name := NULL;
12114 p_lease_rec.customer_id := NULL;*/
12115 END IF;
12116
12117 ----------------------dbms_output.put_line('In Update Private 5.1');--Rupak
12118 --BEGIN
12119 --Validating the Abstracted By User
12120 ----------------------dbms_output.put_line('In Private:B4 IF abstracted_by_user'||p_lease_rec.abstracted_by_user);
12121 IF ( (p_lease_rec.abstracted_by_user IS NOT NULL AND p_lease_rec.abstracted_by_user <> pn_lease_utils.g_pn_miss_char)
12122 OR (p_lease_rec.abstracted_by_user_id IS NOT NULL AND p_lease_rec.abstracted_by_user_id <> pn_lease_utils.g_pn_miss_num)
12123 )
12124 THEN
12125 ----------------------dbms_output.put_line('In Private:IN IF abstracted_by_user'||p_lease_rec.abstracted_by_user_id);--Rupak
12126 --l_lease_hdr_rec.abstracted_by_user := p_lease_rec.abstracted_by_user;
12127 pn_lease_utils.get_user_id (p_parameter_name => l_param_abstracted_by
12128 , p_operation => 'UPDATE_LEASE'
12129 , p_user_name => p_lease_rec.abstracted_by_user
12130 , x_user_id => p_lease_rec.abstracted_by_user_id--l_lease_hdr_rec.abstracted_by_user
12131 , x_return_status => x_return_status
12132 );
12133 ----------------------dbms_output.put_line('-UPDATE_LEASE:ABSTRACTED_BY_USERNAME:'||p_lease_rec.abstracted_by_user_id);--Rupak
12134 pvt_debug(g_pkg_name||'-UPDATE_LEASE:ABSTRACTED_BY_USERNAME:'||p_lease_rec.abstracted_by_user_id,3);
12135 l_lease_hdr_rec.abstracted_by_user := p_lease_rec.abstracted_by_user_id;
12136 IF (x_return_status = fnd_api.g_ret_sts_error)
12137 THEN
12138 -- --------------------dbms_output.put_line('Hi:1'||p_lease_rec.abstracted_by_user_id||x_return_status);--Rupak
12139 fnd_message.set_name ('PN', 'PN_INVALID_USER');
12140 fnd_message.set_token ('USER_NAME',get_miss_char_decode(p_lease_rec.abstracted_by_user));
12141 fnd_message.set_token ('USER_ID', get_miss_num_decode(p_lease_rec.abstracted_by_user_id));
12142 fnd_msg_pub.ADD;
12143 RAISE fnd_api.g_exc_error;
12144 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12145 THEN
12146 ----------------------dbms_output.put_line('Hi:2'||p_lease_rec.abstracted_by_user_id);--Rupak
12147 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12148 fnd_message.set_token ('COLUMN', SUBSTR('LEASE ABSTARCTED BY',3));
12149 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
12150 fnd_msg_pub.ADD;
12151 RAISE fnd_api.g_exc_unexpected_error;
12152 END IF;
12153 END IF;
12154 /* EXCEPTION
12155 WHEN OTHERS THEN
12156 --------------------dbms_output.put_line('Abstracted Bye User'||SQLERRM);
12157 END;*/
12158 ----------------------dbms_output.put_line('In Update Private 5.101'||p_lease_rec.cal_start );--Rupak
12159 -- Validate GET_CAL_START_DATE
12160 IF ( p_lease_rec.cal_start IS NOT NULL
12161 AND p_lease_rec.cal_start <> pn_lease_utils.g_pn_miss_char
12162 )
12163 THEN
12164 ----------------------dbms_output.put_line ('Before calling PN_LEASE_UTILS.GET_CAL_START_DATE ');--Rupak
12165
12166 pn_lease_utils.get_cal_start_date ( p_parameter_name => l_param_lease_cal_start
12167 , x_cal_start => p_lease_rec.cal_start
12168 , p_operation => 'UPDATE_LEASE'
12169 , x_return_status => x_return_status
12170 );
12171 l_lease_hdr_rec.cal_start := p_lease_rec.cal_start;
12172 pvt_debug(g_pkg_name||'-UPDATE_LEASE:GET_CAL_START_DATE Return Status:'||x_return_status,3);
12173 IF (x_return_status = fnd_api.g_ret_sts_error)
12174 THEN
12175 fnd_message.set_name ('PN', 'PN_CAL_INVALID_DATE');
12176 fnd_msg_pub.ADD;
12177 RAISE fnd_api.g_exc_error;
12178 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12179 THEN
12180 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12181 fnd_message.set_token ('COLUMN', SUBSTR('LEASE CAL START DATE',3));
12182 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
12183 fnd_msg_pub.ADD;
12184 RAISE fnd_api.g_exc_unexpected_error;
12185 END IF;
12186 END IF;
12187
12188 ----------------------dbms_output.put_line('In Update Private 5.2');--Rupak
12189
12190 ----------------------dbms_output.put_line('In Update Private 5.2:'||p_lease_rec.location_code);--Rupak
12191 ----------------------dbms_output.put_line('In Update Private 5.2'||p_lease_rec.location_id);--Rupak
12192 --pn_lease_pub.test_lease(2,'In Private:7');
12193
12194 ----------------------dbms_output.put_line('In Update Private 5.3');--Rupak
12195 --Validating the Proration Rule
12196 --pn_lease_pub.test_lease(2,'In Private:7');
12197 IF ( (p_lease_rec.pymt_term_pro_rule IS NOT NULL)
12198 AND (p_lease_rec.pymt_term_pro_rule <> pn_lease_utils.g_pn_miss_char)
12199 OR (p_lease_rec.pymt_term_pro_rule_id IS NOT NULL)
12200 AND (p_lease_rec.pymt_term_pro_rule_id <> pn_lease_utils.g_pn_miss_char))
12201 THEN
12202 --l_lease_hdr_rec.payment_term_proration_rule := to_number(p_lease_rec.pymt_term_pro_rule_id);
12203
12204 -- IF ( p_lease_rec.pymt_term_pro_rule IS NOT NULL
12205 -- AND p_lease_rec.pymt_term_pro_rule <> pn_lease_utils.g_pn_miss_char)
12206 --THEN
12207 --l_proration_rule_flag := 'Y';
12208 pn_lease_utils.get_lookup_code
12209 (p_parameter_name => l_param_propration_rule
12210 , p_operation => 'UPDATE_LEASE'
12211 , p_lookup_meaning => p_lease_rec.pymt_term_pro_rule
12212 , p_lookup_type => l_proration_rule_lookup_type
12213 , x_lookup_type_code => p_lease_rec.pymt_term_pro_rule_id--l_lease_hdr_rec.payment_term_proration_rule
12214 , x_return_status => x_return_status
12215 );
12216 pvt_debug(g_pkg_name||'-UPDATE_LEASE:Proration Rule ID:'||l_lease_hdr_rec.payment_term_proration_rule,3);
12217 l_lease_hdr_rec.payment_term_proration_rule := p_lease_rec.pymt_term_pro_rule_id;
12218 IF (x_return_status = fnd_api.g_ret_sts_error)
12219 THEN
12220 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
12221 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_proration_rule_lookup_type));
12222 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_rec.pymt_term_pro_rule));
12223 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_rec.pymt_term_pro_rule_id));
12224 fnd_msg_pub.ADD;
12225 RAISE fnd_api.g_exc_error;
12226 ELSIF (l_return_status = fnd_api.g_ret_sts_unexp_error)
12227 THEN
12228 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12229 fnd_message.set_token ('COLUMN', SUBSTR(l_param_propration_rule,3));
12230 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
12231 fnd_msg_pub.ADD;
12232 RAISE fnd_api.g_exc_unexpected_error;
12233 END IF;
12234 END IF;
12235
12236 ------dbms_output.put_line('l_lease_hdr_rec.status'||l_lease_hdr_rec.status||'-l_lease_context'||l_lease_context);
12237 IF (l_lease_hdr_rec.status = 'F' AND l_lease_context = 'UPD') THEN
12238 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
12239 fnd_message.set_token('ERR_MSG', 'Lease Context must be passed as ED OR AM when the lease is in finalized State');
12240 fnd_msg_pub.ADD;
12241 RAISE fnd_api.g_exc_error;
12242 END IF;
12243
12244 IF ( ( p_lease_rec.status IS NOT NULL AND p_lease_rec.status <> pn_lease_utils.g_pn_miss_char)
12245 OR (p_lease_rec.status_code IS NOT NULL AND p_lease_rec.status_code <> pn_lease_utils.g_pn_miss_char)
12246 ) THEN
12247 pn_lease_utils.get_lookup_code (p_parameter_name => l_param_status
12248 , p_operation => 'UPDATE_LEASE'
12249 , p_lookup_meaning => p_lease_rec.status
12250 , p_lookup_type => l_status_lookup_type
12251 , x_lookup_type_code => p_lease_rec.status_code
12252 , x_return_status => x_return_status
12253 );
12254
12255 IF(l_lease_hdr_rec.status = 'F' AND p_lease_rec.status_code = 'D') THEN--OOPS
12256 p_lease_rec.status_code := 'F';
12257 l_lease_hdr_rec.status :='F';
12258 p_lease_rec.status := 'Final';
12259 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Draft Lease Status upon Final cannot be honoured',3);
12260 /*fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
12261 fnd_message.set_token('ERR_MSG', 'You are trying to update an existing finalized lease by passing status as Draft. Please provide valid lease status');
12262 fnd_msg_pub.ADD;*/
12263 --RAISE fnd_api.g_exc_error;
12264 ELSE
12265 pvt_debug(g_pkg_name||'-VALIDATE_LEASE_REC:Approval Status Code:'||p_lease_rec.status_code,3);
12266 l_lease_hdr_rec.status := p_lease_rec.status_code;
12267 END IF;
12268
12269
12270 IF (x_return_status = fnd_api.g_ret_sts_error)
12271 THEN
12272 --l_error_flag:='Y';
12273 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
12274 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_status_lookup_type));
12275 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_rec.status));
12276 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_rec.status_code));
12277 fnd_msg_pub.ADD;
12278 RAISE fnd_api.g_exc_error;
12279 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12280 THEN
12281 --l_error_flag:='Y';
12282 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
12283 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_status_lookup_type));
12284 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_rec.status));
12285 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_rec.status_code));
12286 fnd_msg_pub.ADD;
12287 RAISE fnd_api.g_exc_unexpected_error;
12288 END IF;
12289 END IF;
12290 g_status:=l_lease_hdr_rec.status;
12291
12292
12293
12294 --End of Validation for header record
12295 ----------------------dbms_output.put_line('In Update Private 6');--Rupak
12296 --Opening the Details Cursor
12297 OPEN cur_lease_details;
12298
12299 FETCH cur_lease_details
12300 INTO l_lease_dtl_rec;
12301
12302 ----------------------dbms_output.put_line('In Detail Cursor:1');--Rupak
12303 IF (cur_lease_details%NOTFOUND)
12304 THEN
12305 fnd_message.set_name ('PN', 'PN_INVALID_LEASE');
12306 fnd_message.set_token ('API_NAME', l_api_name_full);
12307 fnd_message.set_token ('LEASE_ID', get_miss_num_decode(p_lease_rec.lease_id));
12308 fnd_msg_pub.ADD;
12309 x_return_status := fnd_api.g_ret_sts_error;
12310 ELSE
12311 --Validating the Location Code OR Location ID
12312 IF ( (p_lease_rec.location_code IS NOT NULL)
12313 AND (p_lease_rec.location_code <> pn_lease_utils.g_pn_miss_char)
12314 OR (p_lease_rec.location_id IS NOT NULL)
12315 AND ( p_lease_rec.location_id <> pn_lease_utils.g_pn_miss_num
12316 AND p_lease_rec.location_id <> 0))
12317 THEN
12318 ----------------------dbms_output.put_line('In Update Private 5.21');--Rupak
12319
12320 pn_lease_utils.get_location_id
12321 (p_parameter_name => l_param_lease_location
12322 , p_location_code => p_lease_rec.location_code
12323 , p_operation => 'UPDATE_LEASE'
12324 , p_org_id => l_lease_hdr_rec.org_id
12325 , p_lease_class_code => l_lease_hdr_rec.lease_class_code
12326 , p_parent_lease_id => l_lease_hdr_rec.parent_lease_id
12327 , p_lease_comm_date => l_lease_dtl_rec.lease_commencement_date
12328 , p_lease_term_date => l_lease_dtl_rec.lease_termination_date
12329 , x_return_status => x_return_status
12330 , x_location_id => p_lease_rec.location_id--l_lease_hdr_rec.location_id
12331 );
12332 pvt_debug(g_pkg_name||'-UPDATE_LEASE:PN_LEASE_UTILS.GET_LOCATION_ID Return Status:'||x_return_status,3);
12333 ----------------------dbms_output.put_line('In Update Private 5.21-hI'||p_lease_rec.location_id||x_return_status);--Rupak
12334 IF (p_lease_rec.location_id = pn_lease_utils.g_pn_miss_num) THEN
12335 p_lease_rec.location_id := NULL;
12336 END IF;
12337 l_lease_hdr_rec.location_id := p_lease_rec.location_id;
12338 IF (x_return_status = fnd_api.g_ret_sts_error)
12339 THEN
12340 ----------------------dbms_output.put_line('In Update Private 5.23');--Rupak
12341 fnd_message.set_name ('PN', 'PN_INVALID_LOCATION');
12342 fnd_message.set_token ('LOC_ID', get_miss_num_decode(p_lease_rec.location_id));
12343 fnd_message.set_token ('LOC_CODE', get_miss_char_decode(p_lease_rec.location_code));
12344 fnd_msg_pub.ADD;
12345 RAISE fnd_api.g_exc_error;
12346 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12347 THEN
12348 ----------------------dbms_output.put_line('In Update Private 5.23');--Rupak
12349 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12350 fnd_message.set_token ('COLUMN', SUBSTR('LEASE LOCATION',3));
12351 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
12352 fnd_msg_pub.ADD;
12353 RAISE fnd_api.g_exc_unexpected_error;
12354 END IF;
12355 END IF;
12356
12357 ----------------------dbms_output.put_line('In Detail Cursor:2');--Rupak
12358 IF ( l_lease_context IN ('ED', 'AM')
12359 AND (l_lease_hdr_rec.status <> 'D'))
12360 THEN
12361 IF (l_lease_context <> 'AM')
12362 THEN
12363 -- --------------------dbms_output.put_line('In Detail Cursor:3.1:l_lease_dtl_rec.lease_termination_date'||l_lease_dtl_rec.lease_termination_date);--Rupak
12364 -- --------------------dbms_output.put_line('In Detail Cursor:3.2:p_lease_rec.lease_termination_date'||p_lease_rec.lease_termination_date);--Rupak
12365 -- --------------------dbms_output.put_line('In Detail Cursor:3.3:l_lease_hdr_rec.lease_status'||l_lease_hdr_rec.lease_status );--Rupak
12366 -- --------------------dbms_output.put_line('In Detail Cursor:3.4:p_lease_rec.lease_status'||p_lease_rec.lease_status);--Rupak
12367 IF ( (l_lease_dtl_rec.lease_termination_date <> p_lease_rec.lease_termination_date)
12368 OR (l_lease_hdr_rec.lease_status <> p_lease_rec.lease_status_code))
12369 THEN
12370 -- --------------------dbms_output.put_line('In Detail Cursor:4');--Rupak
12371 fnd_message.set_name ('PN', 'PN_INVALID_LEASECON');
12372 fnd_message.set_token ('API_NAME', l_api_name_full||'-ValidateLeaseContext');
12373 fnd_msg_pub.ADD;
12374 RAISE fnd_api.g_exc_error;
12375 ELSIF (l_lease_hdr_rec.lease_status <> l_lease_status)
12376 THEN
12377 ----------------------dbms_output.put_line('In Detail Cursor:5');--Rupak
12378 fnd_message.set_name ('PN', 'PN_INVALID_LEASECON');
12379 fnd_message.set_token ('API_NAME', l_api_name_full||'-ValidateLeaseContext');
12380 fnd_msg_pub.ADD;
12381 RAISE fnd_api.g_exc_error;
12382 ELSIF ( (l_lease_hdr_rec.abstracted_by_user <> l_abstracted_by_user)
12383 OR (l_payment_term_proration_rule <>l_lease_hdr_rec.payment_term_proration_rule))
12384 THEN
12385 ----------------------dbms_output.put_line('In Detail Cursor:6');--Rupak
12386 fnd_message.set_name ('PN', 'PN_INVALID_LEASECON');
12387 fnd_message.set_token ('API_NAME', l_api_name_full|| '-ValidateLeaseContext');
12388 fnd_msg_pub.ADD;
12389 RAISE fnd_api.g_exc_error;
12390 END IF;
12391 END IF;
12392 ----------------------dbms_output.put_line('In Detail Cursor:7');--Rupak
12393 l_leaseextensionenddate := p_lease_rec.lease_extension_date;
12394 ELSE
12395 ----------------------dbms_output.put_line('In Detail Cursor:8');--Rupak
12396 l_leaseextensionenddate := NULL;
12397 END IF;
12398 ----------------------dbms_output.put_line('In Detail Cursor:9');--Rupak
12399 --End of Logic to check whether it is an amendment or Edit
12400 ----------------------dbms_output.put_line('In Update Private 7');--Rupak
12401 l_lease_status_db := l_lease_hdr_rec.lease_status;
12402 --Validating the Lease Status
12403 IF ( ( p_lease_rec.lease_status IS NOT NULL AND p_lease_rec.lease_status <> pn_lease_utils.g_pn_miss_char)
12404 OR (p_lease_rec.lease_status_code IS NOT NULL AND p_lease_rec.lease_status_code <> pn_lease_utils.g_pn_miss_char)
12405 ) THEN
12406 ----------------------dbms_output.put_line('In Update Private 7.1');--Rupak
12407 pn_lease_utils.get_lookup_code (p_parameter_name => l_param_lease_status
12408 , p_operation => 'UPDATE_LEASE'
12409 , p_lookup_meaning => p_lease_rec.lease_status
12410 , p_lookup_type => l_lease_status_lookup_type
12411 , x_lookup_type_code => p_lease_rec.lease_status_code--l_lease_hdr_rec.lease_status
12412 , x_return_status => x_return_status
12413 );
12414 ----------------------dbms_output.put_line('-UPDATE_LEASE:Lease Status:'||l_lease_hdr_rec.lease_status);
12415 pvt_debug(g_pkg_name||'-UPDATE_LEASE:Lease Status:'||p_lease_rec.lease_status,3);
12416 l_lease_hdr_rec.lease_status := p_lease_rec.lease_status_code;
12417 l_lease_status_new := p_lease_rec.lease_status_code;
12418 IF (x_return_status = fnd_api.g_ret_sts_error)
12419 THEN
12420 --l_lease_hdr_rec.lease_status:=p_lease_rec.lease_status_code;
12421 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
12422 fnd_message.set_token ('LOOKUP_TYPE', get_miss_char_decode(l_lease_status_lookup_type));
12423 fnd_message.set_token ('LOOKUP_MEANING', get_miss_char_decode(p_lease_rec.lease_status));
12424 fnd_message.set_token ('LOOKUP_CODE', get_miss_char_decode(p_lease_rec.lease_status_code ));
12425 fnd_msg_pub.ADD;
12426 RAISE fnd_api.g_exc_error;
12427 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12428 THEN
12429 --l_lease_hdr_rec.lease_status:=p_lease_rec.lease_status_code;
12430 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12431 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_status,3));
12432 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
12433 fnd_msg_pub.ADD;
12434 RAISE fnd_api.g_exc_unexpected_error;
12435 END IF;
12436 END IF;
12437
12438
12439 ----------------------dbms_output.put_line('In Update Private 8');--Rupak
12440 --Validating the Responsible User
12441 IF ( (p_lease_rec.responsible_user IS NOT NULL
12442 AND p_lease_rec.responsible_user <> pn_lease_utils.g_pn_miss_char)
12443 OR(p_lease_rec.responsible_user_id IS NOT NULL
12444 AND p_lease_rec.responsible_user_id <> pn_lease_utils.g_pn_miss_num)
12445 )
12446 THEN
12447 --l_lease_dtl_rec.responsible_user := p_lease_rec.responsible_user;
12448 pn_lease_utils.get_user_id (p_parameter_name => l_param_reponsible_user
12449 , p_user_name => p_lease_rec.responsible_user--NULL
12450 , p_operation => 'UPDATE_LEASE'
12451 , x_return_status => x_return_status
12452 , x_user_id => p_lease_rec.responsible_user_id--l_lease_dtl_rec.responsible_user
12453 );
12454 pvt_debug(g_pkg_name||'-UPDATE_LEASE:RESPONSIBLE_USER:'||p_lease_rec.responsible_user_id,3);
12455 l_lease_dtl_rec.responsible_user := p_lease_rec.responsible_user_id;
12456 IF (x_return_status = fnd_api.g_ret_sts_error)
12457 THEN
12458 fnd_message.set_name ('PN', 'PN_INVALID_USER');
12459 fnd_message.set_token ('USER_NAME',get_miss_char_decode(p_lease_rec.responsible_user));
12460 fnd_message.set_token ('USER_ID', get_miss_num_decode(p_lease_rec.responsible_user_id));
12461 fnd_msg_pub.ADD;
12462 RAISE fnd_api.g_exc_error;
12463 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12464 THEN
12465 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12466 fnd_message.set_token ('COLUMN', SUBSTR(l_param_reponsible_user,3));
12467 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
12468 fnd_msg_pub.ADD;
12469 RAISE fnd_api.g_exc_unexpected_error;
12470 END IF;
12471 END IF;
12472 ----------------------dbms_output.put_line('In Update Private 9');--Rupak
12473 --Commencement,Termination,Execution Date
12474 IF ( p_lease_rec.lease_commencement_date IS NOT NULL
12475 AND p_lease_rec.lease_commencement_date <> pn_lease_utils.g_pn_miss_date)
12476 THEN
12477 IF (l_lease_hdr_rec.status = 'F' AND l_lease_context = 'UPD') THEN
12478 l_lease_dtl_rec.lease_commencement_date := p_lease_rec.lease_commencement_date;
12479 END IF;
12480 END IF;
12481
12482 IF ( p_lease_rec.lease_termination_date IS NOT NULL
12483 AND p_lease_rec.lease_termination_date <> pn_lease_utils.g_pn_miss_date)
12484 THEN
12485 l_lease_dtl_rec.lease_termination_date := p_lease_rec.lease_termination_date;
12486 END IF;
12487
12488 IF ( p_lease_rec.lease_execution_date IS NOT NULL
12489 AND p_lease_rec.lease_execution_date <> pn_lease_utils.g_pn_miss_date)
12490 THEN
12491 l_lease_dtl_rec.lease_execution_date := p_lease_rec.lease_execution_date;
12492 END IF;
12493 ----------------------dbms_output.put_line('In Update Private 10');--Rupak
12494 ----------------------dbms_output.put_line('lease_commencement_date'||l_lease_dtl_rec.lease_commencement_date);--Rupak
12495 ----------------------dbms_output.put_line('lease_termination_date'||l_lease_dtl_rec.lease_termination_date);--Rupak
12496 ----------------------dbms_output.put_line('lease_execution_date'||l_lease_dtl_rec.lease_execution_date);--Rupak
12497 IF ( ( l_lease_dtl_rec.lease_commencement_date IS NOT NULL
12498 AND l_lease_dtl_rec.lease_commencement_date <> pn_lease_utils.g_pn_miss_date)
12499 AND ( l_lease_dtl_rec.lease_termination_date IS NOT NULL
12500 AND l_lease_dtl_rec.lease_termination_date <> pn_lease_utils.g_pn_miss_date)
12501 AND ( l_lease_dtl_rec.lease_execution_date IS NOT NULL
12502 AND l_lease_dtl_rec.lease_execution_date <> pn_lease_utils.g_pn_miss_date))
12503 THEN
12504 --l_cross_val_flag := 'Y';
12505 ----------------------dbms_output.put_line('Inside IF Condition:Dates');--Rupak
12506 pn_lease_utils.crossval_leasedates
12507 (p_parameter_name => l_param_lease_dates
12508 , p_operation => 'UPDATE_LEASE'
12509 , p_lease_exec_date => l_lease_dtl_rec.lease_execution_date
12510 , p_lease_comm_date => l_lease_dtl_rec.lease_commencement_date
12511 , p_lease_term_date => l_lease_dtl_rec.lease_termination_date
12512 , x_return_status => x_return_status
12513 );
12514 pvt_debug(g_pkg_name||'-UPDATE_LEASE:PN_LEASE_UTILS.CROSSVAL_LEASEDATES Return Status:'||x_return_status,3);
12515 IF (x_return_status = fnd_api.g_ret_sts_error)
12516 THEN
12517 fnd_message.set_name ('PN', 'PN_INVALID_TERMINATION_DT');
12518 fnd_message.set_token ('TERMINATION_DATE', get_miss_date_decode(p_lease_rec.lease_termination_date));
12519 fnd_message.set_token ('COMMENCEMENT_DATE', get_miss_date_decode(p_lease_rec.lease_commencement_date));
12520 fnd_msg_pub.ADD;
12521 RAISE fnd_api.g_exc_error;
12522 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
12523 THEN
12524 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12525 fnd_message.set_token ('COLUMN', SUBSTR(l_param_reponsible_user,3));
12526 fnd_message.set_token ('P_TEXT', l_api_name|| '-'||SQLERRM);
12527 fnd_msg_pub.ADD;
12528 RAISE fnd_api.g_exc_unexpected_error;
12529 END IF;
12530 /*ELSE
12531 ----------------------dbms_output.put_line('Inside ELSE Condition:Dates');--Rupak
12532 pn_lease_utils.add_null_parameter_msg
12533 (p_token_apiname => l_api_name_full
12534 , p_token_nullparam => 'p_lease_exec_date - p_lease_comm_date - p_lease_term_date');
12535 RAISE fnd_api.g_exc_error;*/
12536 END IF;
12537 ----------------------dbms_output.put_line('In Update Private 11');--Rupak
12538 --------Validation of Key Flex Fields-----------Begin-----------
12539 IF ( ( p_lease_exp_rev_accounts_rec.account_id IS NOT NULL
12540 AND p_lease_exp_rev_accounts_rec.account_id <> pn_lease_utils.g_pn_miss_num)
12541 OR ( p_lease_exp_rev_accounts_rec.account_conc_segs IS NOT NULL
12542 AND p_lease_exp_rev_accounts_rec.account_conc_segs <>
12543 pn_lease_utils.g_pn_miss_char)
12544 OR ( ( (p_lease_exp_rev_accounts_rec.account_segment1 IS NOT NULL)
12545 AND (p_lease_exp_rev_accounts_rec.account_segment1 <>
12546 pn_lease_utils.g_pn_miss_char))
12547 OR ( (p_lease_exp_rev_accounts_rec.account_segment2 IS NOT NULL)
12548 AND (p_lease_exp_rev_accounts_rec.account_segment2 <>
12549 pn_lease_utils.g_pn_miss_char))
12550 OR ( (p_lease_exp_rev_accounts_rec.account_segment3 IS NOT NULL)
12551 AND (p_lease_exp_rev_accounts_rec.account_segment3 <>
12552 pn_lease_utils.g_pn_miss_char))
12553 OR ( (p_lease_exp_rev_accounts_rec.account_segment4 IS NOT NULL)
12554 AND (p_lease_exp_rev_accounts_rec.account_segment4 <>
12555 pn_lease_utils.g_pn_miss_char))
12556 OR ( (p_lease_exp_rev_accounts_rec.account_segment5 IS NOT NULL)
12557 AND (p_lease_exp_rev_accounts_rec.account_segment5 <>
12558 pn_lease_utils.g_pn_miss_char))
12559 OR ( (p_lease_exp_rev_accounts_rec.account_segment6 IS NOT NULL)
12560 AND (p_lease_exp_rev_accounts_rec.account_segment6 <>
12561 pn_lease_utils.g_pn_miss_char))
12562 OR ( (p_lease_exp_rev_accounts_rec.account_segment7 IS NOT NULL)
12563 AND (p_lease_exp_rev_accounts_rec.account_segment7 <>
12564 pn_lease_utils.g_pn_miss_char))
12565 OR ( (p_lease_exp_rev_accounts_rec.account_segment8 IS NOT NULL)
12566 AND (p_lease_exp_rev_accounts_rec.account_segment8 <>
12567 pn_lease_utils.g_pn_miss_char))
12568 OR ( (p_lease_exp_rev_accounts_rec.account_segment9 IS NOT NULL)
12569 AND (p_lease_exp_rev_accounts_rec.account_segment9 <>
12570 pn_lease_utils.g_pn_miss_char))
12571 OR ( (p_lease_exp_rev_accounts_rec.account_segment10 IS NOT NULL)
12572 AND (p_lease_exp_rev_accounts_rec.account_segment10 <>
12573 pn_lease_utils.g_pn_miss_char))
12574 OR ( (p_lease_exp_rev_accounts_rec.account_segment11 IS NOT NULL)
12575 AND (p_lease_exp_rev_accounts_rec.account_segment11 <>
12576 pn_lease_utils.g_pn_miss_char))
12577 OR ( (p_lease_exp_rev_accounts_rec.account_segment12 IS NOT NULL)
12578 AND (p_lease_exp_rev_accounts_rec.account_segment12 <>
12579 pn_lease_utils.g_pn_miss_char))
12580 OR ( (p_lease_exp_rev_accounts_rec.account_segment13 IS NOT NULL)
12581 AND (p_lease_exp_rev_accounts_rec.account_segment13 <>
12582 pn_lease_utils.g_pn_miss_char))
12583 OR ( (p_lease_exp_rev_accounts_rec.account_segment14 IS NOT NULL)
12584 AND (p_lease_exp_rev_accounts_rec.account_segment14 <>
12585 pn_lease_utils.g_pn_miss_char))
12586 OR ( (p_lease_exp_rev_accounts_rec.account_segment15 IS NOT NULL)
12587 AND (p_lease_exp_rev_accounts_rec.account_segment15 <>
12588 pn_lease_utils.g_pn_miss_char))
12589 OR ( (p_lease_exp_rev_accounts_rec.account_segment16 IS NOT NULL)
12590 AND (p_lease_exp_rev_accounts_rec.account_segment16 <>
12591 pn_lease_utils.g_pn_miss_char))
12592 OR ( (p_lease_exp_rev_accounts_rec.account_segment17 IS NOT NULL)
12593 AND (p_lease_exp_rev_accounts_rec.account_segment17 <>
12594 pn_lease_utils.g_pn_miss_char))
12595 OR ( (p_lease_exp_rev_accounts_rec.account_segment18 IS NOT NULL)
12596 AND (p_lease_exp_rev_accounts_rec.account_segment18 <>
12597 pn_lease_utils.g_pn_miss_char))
12598 OR ( (p_lease_exp_rev_accounts_rec.account_segment19 IS NOT NULL)
12599 AND (p_lease_exp_rev_accounts_rec.account_segment19 <>
12600 pn_lease_utils.g_pn_miss_char))
12601 OR ( (p_lease_exp_rev_accounts_rec.account_segment20 IS NOT NULL)
12602 AND (p_lease_exp_rev_accounts_rec.account_segment20 <>
12603 pn_lease_utils.g_pn_miss_char))))
12604 THEN
12605 pn_lease_utils.get_account_id
12606 (p_parameter_name => l_param_exp_rev_acct
12607 , p_operation => 'UPDATE_LEASE'
12608 , p_account_id => p_lease_exp_rev_accounts_rec.account_id
12609 , p_account_conc_segs => p_lease_exp_rev_accounts_rec.account_conc_segs
12610 , p_account_segment1 => p_lease_exp_rev_accounts_rec.account_segment1
12611 , p_account_segment2 => p_lease_exp_rev_accounts_rec.account_segment2
12612 , p_account_segment3 => p_lease_exp_rev_accounts_rec.account_segment3
12613 , p_account_segment4 => p_lease_exp_rev_accounts_rec.account_segment4
12614 , p_account_segment5 => p_lease_exp_rev_accounts_rec.account_segment5
12615 , p_account_segment6 => p_lease_exp_rev_accounts_rec.account_segment6
12616 , p_account_segment7 => p_lease_exp_rev_accounts_rec.account_segment7
12617 , p_account_segment8 => p_lease_exp_rev_accounts_rec.account_segment8
12618 , p_account_segment9 => p_lease_exp_rev_accounts_rec.account_segment9
12619 , p_account_segment10 => p_lease_exp_rev_accounts_rec.account_segment10
12620 , p_account_segment11 => p_lease_exp_rev_accounts_rec.account_segment11
12621 , p_account_segment12 => p_lease_exp_rev_accounts_rec.account_segment12
12622 , p_account_segment13 => p_lease_exp_rev_accounts_rec.account_segment13
12623 , p_account_segment14 => p_lease_exp_rev_accounts_rec.account_segment14
12624 , p_account_segment15 => p_lease_exp_rev_accounts_rec.account_segment15
12625 , p_account_segment16 => p_lease_exp_rev_accounts_rec.account_segment16
12626 , p_account_segment17 => p_lease_exp_rev_accounts_rec.account_segment17
12627 , p_account_segment18 => p_lease_exp_rev_accounts_rec.account_segment18
12628 , p_account_segment19 => p_lease_exp_rev_accounts_rec.account_segment19
12629 , p_account_segment20 => p_lease_exp_rev_accounts_rec.account_segment20
12630 , x_return_status => x_return_status);
12631 l_lease_dtl_rec.expense_account_id := p_lease_exp_rev_accounts_rec.account_id;
12632
12633 ------------------------dbms_output.put_line('UPDATE_GET_EXP_REC_ACCOUNT_ID: '|| p_lease_exp_rev_accounts_rec.account_id );
12634 ------------------------dbms_output.put_line('x_return_status: '|| x_return_status);
12635 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
12636 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
12637 fnd_message.set_token ('ACCOUNT_ID',get_miss_num_decode(p_lease_exp_rev_accounts_rec.account_id));
12638 fnd_msg_pub.ADD;
12639 RAISE fnd_api.g_exc_error;
12640 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
12641 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12642 fnd_message.set_token ('COLUMN', SUBSTR(l_param_exp_rev_acct,3));
12643 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
12644 fnd_msg_pub.ADD;
12645 RAISE fnd_api.g_exc_unexpected_error;
12646 END IF;
12647 END IF;
12648
12649 IF ( ( p_lease_accrual_account_rec.account_id IS NOT NULL
12650 AND p_lease_accrual_account_rec.account_id <> pn_lease_utils.g_pn_miss_num)
12651 OR ( p_lease_accrual_account_rec.account_conc_segs IS NOT NULL
12652 AND p_lease_accrual_account_rec.account_conc_segs <>
12653 pn_lease_utils.g_pn_miss_char)
12654 OR ( ( (p_lease_accrual_account_rec.account_segment1 IS NOT NULL)
12655 AND (p_lease_accrual_account_rec.account_segment1 <>
12656 pn_lease_utils.g_pn_miss_char))
12657 OR ( (p_lease_accrual_account_rec.account_segment2 IS NOT NULL)
12658 AND (p_lease_accrual_account_rec.account_segment2 <>
12659 pn_lease_utils.g_pn_miss_char))
12660 OR ( (p_lease_accrual_account_rec.account_segment3 IS NOT NULL)
12661 AND (p_lease_accrual_account_rec.account_segment3 <>
12662 pn_lease_utils.g_pn_miss_char))
12663 OR ( (p_lease_accrual_account_rec.account_segment4 IS NOT NULL)
12664 AND (p_lease_accrual_account_rec.account_segment4 <>
12665 pn_lease_utils.g_pn_miss_char))
12666 OR ( (p_lease_accrual_account_rec.account_segment5 IS NOT NULL)
12667 AND (p_lease_accrual_account_rec.account_segment5 <>
12668 pn_lease_utils.g_pn_miss_char))
12669 OR ( (p_lease_accrual_account_rec.account_segment6 IS NOT NULL)
12670 AND (p_lease_accrual_account_rec.account_segment6 <>
12671 pn_lease_utils.g_pn_miss_char))
12672 OR ( (p_lease_accrual_account_rec.account_segment7 IS NOT NULL)
12673 AND (p_lease_accrual_account_rec.account_segment7 <>
12674 pn_lease_utils.g_pn_miss_char))
12675 OR ( (p_lease_accrual_account_rec.account_segment8 IS NOT NULL)
12676 AND (p_lease_accrual_account_rec.account_segment8 <>
12677 pn_lease_utils.g_pn_miss_char))
12678 OR ( (p_lease_accrual_account_rec.account_segment9 IS NOT NULL)
12679 AND (p_lease_accrual_account_rec.account_segment9 <>
12680 pn_lease_utils.g_pn_miss_char))
12681 OR ( (p_lease_accrual_account_rec.account_segment10 IS NOT NULL)
12682 AND (p_lease_accrual_account_rec.account_segment10 <>
12683 pn_lease_utils.g_pn_miss_char))
12684 OR ( (p_lease_accrual_account_rec.account_segment11 IS NOT NULL)
12685 AND (p_lease_accrual_account_rec.account_segment11 <>
12686 pn_lease_utils.g_pn_miss_char))
12687 OR ( (p_lease_accrual_account_rec.account_segment12 IS NOT NULL)
12688 AND (p_lease_accrual_account_rec.account_segment12 <>
12689 pn_lease_utils.g_pn_miss_char))
12690 OR ( (p_lease_accrual_account_rec.account_segment13 IS NOT NULL)
12691 AND (p_lease_accrual_account_rec.account_segment13 <>
12692 pn_lease_utils.g_pn_miss_char))
12693 OR ( (p_lease_accrual_account_rec.account_segment14 IS NOT NULL)
12694 AND (p_lease_accrual_account_rec.account_segment14 <>
12695 pn_lease_utils.g_pn_miss_char))
12696 OR ( (p_lease_accrual_account_rec.account_segment15 IS NOT NULL)
12697 AND (p_lease_accrual_account_rec.account_segment15 <>
12698 pn_lease_utils.g_pn_miss_char))
12699 OR ( (p_lease_accrual_account_rec.account_segment16 IS NOT NULL)
12700 AND (p_lease_accrual_account_rec.account_segment16 <>
12701 pn_lease_utils.g_pn_miss_char))
12702 OR ( (p_lease_accrual_account_rec.account_segment17 IS NOT NULL)
12703 AND (p_lease_accrual_account_rec.account_segment17 <>
12704 pn_lease_utils.g_pn_miss_char))
12705 OR ( (p_lease_accrual_account_rec.account_segment18 IS NOT NULL)
12706 AND (p_lease_accrual_account_rec.account_segment18 <>
12707 pn_lease_utils.g_pn_miss_char))
12708 OR ( (p_lease_accrual_account_rec.account_segment19 IS NOT NULL)
12709 AND (p_lease_accrual_account_rec.account_segment19 <>
12710 pn_lease_utils.g_pn_miss_char))
12711 OR ( (p_lease_accrual_account_rec.account_segment20 IS NOT NULL)
12712 AND (p_lease_accrual_account_rec.account_segment20 <>
12713 pn_lease_utils.g_pn_miss_char))))
12714 THEN
12715 pn_lease_utils.get_account_id
12716 (p_parameter_name => l_param_accrual_acct
12717 , p_operation => 'UPDATE_LEASE'
12718 , p_account_id => p_lease_accrual_account_rec.account_id
12719 , p_account_conc_segs => p_lease_accrual_account_rec.account_conc_segs
12720 , p_account_segment1 => p_lease_accrual_account_rec.account_segment1
12721 , p_account_segment2 => p_lease_accrual_account_rec.account_segment2
12722 , p_account_segment3 => p_lease_accrual_account_rec.account_segment3
12723 , p_account_segment4 => p_lease_accrual_account_rec.account_segment4
12724 , p_account_segment5 => p_lease_accrual_account_rec.account_segment5
12725 , p_account_segment6 => p_lease_accrual_account_rec.account_segment6
12726 , p_account_segment7 => p_lease_accrual_account_rec.account_segment7
12727 , p_account_segment8 => p_lease_accrual_account_rec.account_segment8
12728 , p_account_segment9 => p_lease_accrual_account_rec.account_segment9
12729 , p_account_segment10 => p_lease_accrual_account_rec.account_segment10
12730 , p_account_segment11 => p_lease_accrual_account_rec.account_segment11
12731 , p_account_segment12 => p_lease_accrual_account_rec.account_segment12
12732 , p_account_segment13 => p_lease_accrual_account_rec.account_segment13
12733 , p_account_segment14 => p_lease_accrual_account_rec.account_segment14
12734 , p_account_segment15 => p_lease_accrual_account_rec.account_segment15
12735 , p_account_segment16 => p_lease_accrual_account_rec.account_segment16
12736 , p_account_segment17 => p_lease_accrual_account_rec.account_segment17
12737 , p_account_segment18 => p_lease_accrual_account_rec.account_segment18
12738 , p_account_segment19 => p_lease_accrual_account_rec.account_segment19
12739 , p_account_segment20 => p_lease_accrual_account_rec.account_segment20
12740 , x_return_status => x_return_status);
12741 l_lease_dtl_rec.accrual_account_id := p_lease_accrual_account_rec.account_id;
12742
12743 ------------------------dbms_output.put_line('ACCRUAL_GET_ACCRLC_ACCOUNT_ID: '|| p_lease_accrual_account_rec.account_id );
12744 ------------------------dbms_output.put_line('x_return_status: '|| x_return_status);
12745 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
12746 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
12747 fnd_message.set_token ('ACCOUNT_ID',get_miss_num_decode( p_lease_accrual_account_rec.account_id));
12748 fnd_msg_pub.ADD;
12749 RAISE fnd_api.g_exc_error;
12750 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
12751 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12752 fnd_message.set_token ('COLUMN', SUBSTR(l_param_accrual_acct,3));
12753 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
12754 fnd_msg_pub.ADD;
12755 RAISE fnd_api.g_exc_unexpected_error;
12756 END IF;
12757 END IF;
12758
12759 IF ( ( p_lease_liab_rcvl_account_rec.account_id IS NOT NULL
12760 AND p_lease_liab_rcvl_account_rec.account_id <> pn_lease_utils.g_pn_miss_num)
12761 OR ( p_lease_liab_rcvl_account_rec.account_conc_segs IS NOT NULL
12762 AND p_lease_liab_rcvl_account_rec.account_conc_segs <>
12763 pn_lease_utils.g_pn_miss_char)
12764 OR ( ( (p_lease_liab_rcvl_account_rec.account_segment1 IS NOT NULL)
12765 AND (p_lease_liab_rcvl_account_rec.account_segment1 <>
12766 pn_lease_utils.g_pn_miss_char))
12767 OR ( (p_lease_liab_rcvl_account_rec.account_segment2 IS NOT NULL)
12768 AND (p_lease_liab_rcvl_account_rec.account_segment2 <>
12769 pn_lease_utils.g_pn_miss_char))
12770 OR ( (p_lease_liab_rcvl_account_rec.account_segment3 IS NOT NULL)
12771 AND (p_lease_liab_rcvl_account_rec.account_segment3 <>
12772 pn_lease_utils.g_pn_miss_char))
12773 OR ( (p_lease_liab_rcvl_account_rec.account_segment4 IS NOT NULL)
12774 AND (p_lease_liab_rcvl_account_rec.account_segment4 <>
12775 pn_lease_utils.g_pn_miss_char))
12776 OR ( (p_lease_liab_rcvl_account_rec.account_segment5 IS NOT NULL)
12777 AND (p_lease_liab_rcvl_account_rec.account_segment5 <>
12778 pn_lease_utils.g_pn_miss_char))
12779 OR ( (p_lease_liab_rcvl_account_rec.account_segment6 IS NOT NULL)
12780 AND (p_lease_liab_rcvl_account_rec.account_segment6 <>
12781 pn_lease_utils.g_pn_miss_char))
12782 OR ( (p_lease_liab_rcvl_account_rec.account_segment7 IS NOT NULL)
12783 AND (p_lease_liab_rcvl_account_rec.account_segment7 <>
12784 pn_lease_utils.g_pn_miss_char))
12785 OR ( (p_lease_liab_rcvl_account_rec.account_segment8 IS NOT NULL)
12786 AND (p_lease_liab_rcvl_account_rec.account_segment8 <>
12787 pn_lease_utils.g_pn_miss_char))
12788 OR ( (p_lease_liab_rcvl_account_rec.account_segment9 IS NOT NULL)
12789 AND (p_lease_liab_rcvl_account_rec.account_segment9 <>
12790 pn_lease_utils.g_pn_miss_char))
12791 OR ( (p_lease_liab_rcvl_account_rec.account_segment10 IS NOT NULL)
12792 AND (p_lease_liab_rcvl_account_rec.account_segment10 <>
12793 pn_lease_utils.g_pn_miss_char))
12794 OR ( (p_lease_liab_rcvl_account_rec.account_segment11 IS NOT NULL)
12795 AND (p_lease_liab_rcvl_account_rec.account_segment11 <>
12796 pn_lease_utils.g_pn_miss_char))
12797 OR ( (p_lease_liab_rcvl_account_rec.account_segment12 IS NOT NULL)
12798 AND (p_lease_liab_rcvl_account_rec.account_segment12 <>
12799 pn_lease_utils.g_pn_miss_char))
12800 OR ( (p_lease_liab_rcvl_account_rec.account_segment13 IS NOT NULL)
12801 AND (p_lease_liab_rcvl_account_rec.account_segment13 <>
12802 pn_lease_utils.g_pn_miss_char))
12803 OR ( (p_lease_liab_rcvl_account_rec.account_segment14 IS NOT NULL)
12804 AND (p_lease_liab_rcvl_account_rec.account_segment14 <>
12805 pn_lease_utils.g_pn_miss_char))
12806 OR ( (p_lease_liab_rcvl_account_rec.account_segment15 IS NOT NULL)
12807 AND (p_lease_liab_rcvl_account_rec.account_segment15 <>
12808 pn_lease_utils.g_pn_miss_char))
12809 OR ( (p_lease_liab_rcvl_account_rec.account_segment16 IS NOT NULL)
12810 AND (p_lease_liab_rcvl_account_rec.account_segment16 <>
12811 pn_lease_utils.g_pn_miss_char))
12812 OR ( (p_lease_liab_rcvl_account_rec.account_segment17 IS NOT NULL)
12813 AND (p_lease_liab_rcvl_account_rec.account_segment17 <>
12814 pn_lease_utils.g_pn_miss_char))
12815 OR ( (p_lease_liab_rcvl_account_rec.account_segment18 IS NOT NULL)
12816 AND (p_lease_liab_rcvl_account_rec.account_segment18 <>
12817 pn_lease_utils.g_pn_miss_char))
12818 OR ( (p_lease_liab_rcvl_account_rec.account_segment19 IS NOT NULL)
12819 AND (p_lease_liab_rcvl_account_rec.account_segment19 <>
12820 pn_lease_utils.g_pn_miss_char))
12821 OR ( (p_lease_liab_rcvl_account_rec.account_segment20 IS NOT NULL)
12822 AND (p_lease_liab_rcvl_account_rec.account_segment20 <>
12823 pn_lease_utils.g_pn_miss_char))))
12824 THEN
12825 pn_lease_utils.get_account_id
12826 (p_parameter_name => l_param_liab_rvbl_acct
12827 , p_operation => 'UPDATE_LEASE'
12828 , p_account_id => p_lease_liab_rcvl_account_rec.account_id
12829 , p_account_conc_segs => p_lease_liab_rcvl_account_rec.account_conc_segs
12830 , p_account_segment1 => p_lease_liab_rcvl_account_rec.account_segment1
12831 , p_account_segment2 => p_lease_liab_rcvl_account_rec.account_segment2
12832 , p_account_segment3 => p_lease_liab_rcvl_account_rec.account_segment3
12833 , p_account_segment4 => p_lease_liab_rcvl_account_rec.account_segment4
12834 , p_account_segment5 => p_lease_liab_rcvl_account_rec.account_segment5
12835 , p_account_segment6 => p_lease_liab_rcvl_account_rec.account_segment6
12836 , p_account_segment7 => p_lease_liab_rcvl_account_rec.account_segment7
12837 , p_account_segment8 => p_lease_liab_rcvl_account_rec.account_segment8
12838 , p_account_segment9 => p_lease_liab_rcvl_account_rec.account_segment9
12839 , p_account_segment10 => p_lease_liab_rcvl_account_rec.account_segment10
12840 , p_account_segment11 => p_lease_liab_rcvl_account_rec.account_segment11
12841 , p_account_segment12 => p_lease_liab_rcvl_account_rec.account_segment12
12842 , p_account_segment13 => p_lease_liab_rcvl_account_rec.account_segment13
12843 , p_account_segment14 => p_lease_liab_rcvl_account_rec.account_segment14
12844 , p_account_segment15 => p_lease_liab_rcvl_account_rec.account_segment15
12845 , p_account_segment16 => p_lease_liab_rcvl_account_rec.account_segment16
12846 , p_account_segment17 => p_lease_liab_rcvl_account_rec.account_segment17
12847 , p_account_segment18 => p_lease_liab_rcvl_account_rec.account_segment18
12848 , p_account_segment19 => p_lease_liab_rcvl_account_rec.account_segment19
12849 , p_account_segment20 => p_lease_liab_rcvl_account_rec.account_segment20
12850 , x_return_status => x_return_status);
12851 l_lease_dtl_rec.receivable_account_id := p_lease_liab_rcvl_account_rec.account_id;
12852
12853 ------------------------dbms_output.put_line('UPDATE_GET_LIAB_RVCL_ACCOUNT_ID: '|| p_lease_liab_rcvl_account_rec.account_id );
12854 ------------------------dbms_output.put_line('x_return_status: '|| x_return_status);
12855 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
12856 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
12857 fnd_message.set_token ('ACCOUNT_ID',get_miss_num_decode( p_lease_accrual_account_rec.account_id));
12858 fnd_msg_pub.ADD;
12859 RAISE fnd_api.g_exc_error;
12860 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
12861 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
12862 fnd_message.set_token ('COLUMN', SUBSTR(l_param_liab_rvbl_acct,3));
12863 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
12864 fnd_msg_pub.ADD;
12865 RAISE fnd_api.g_exc_unexpected_error;
12866 END IF;
12867 END IF;
12868
12869 ----------------------------------------------------------------
12870 --End of Validation for Details
12871 ------------------------dbms_output.put_line('p_lease_rec.attribute_category'||p_lease_rec.attribute_category);
12872 ------------------------dbms_output.put_line('p_lease_rec.attribute1'||p_lease_rec.attribute1);
12873 ------------------------dbms_output.put_line('p_lease_rec.attribute2'||p_lease_rec.attribute2);
12874 ------------------------dbms_output.put_line('p_lease_rec.attribute3'||p_lease_rec.attribute3);
12875 ------------------------dbms_output.put_line('p_lease_rec.attribute4'||p_lease_rec.attribute4);
12876 ------------------------dbms_output.put_line('p_lease_rec.attribute5'||p_lease_rec.attribute5);
12877
12878 -- Validate the descriptive flexfields
12879 --
12880 IF NOT ( (p_lease_rec.attribute_category = pn_lease_utils.g_pn_miss_char)
12881 AND (p_lease_rec.attribute1 = pn_lease_utils.g_pn_miss_char)
12882 AND (p_lease_rec.attribute2 = pn_lease_utils.g_pn_miss_char)
12883 AND (p_lease_rec.attribute3 = pn_lease_utils.g_pn_miss_char)
12884 AND (p_lease_rec.attribute4 = pn_lease_utils.g_pn_miss_char)
12885 AND (p_lease_rec.attribute5 = pn_lease_utils.g_pn_miss_char)
12886 AND (p_lease_rec.attribute6 = pn_lease_utils.g_pn_miss_char)
12887 AND (p_lease_rec.attribute7 = pn_lease_utils.g_pn_miss_char)
12888 AND (p_lease_rec.attribute8 = pn_lease_utils.g_pn_miss_char)
12889 AND (p_lease_rec.attribute9 = pn_lease_utils.g_pn_miss_char)
12890 AND (p_lease_rec.attribute10 = pn_lease_utils.g_pn_miss_char)
12891 AND (p_lease_rec.attribute11 = pn_lease_utils.g_pn_miss_char)
12892 AND (p_lease_rec.attribute12 = pn_lease_utils.g_pn_miss_char)
12893 AND (p_lease_rec.attribute13 = pn_lease_utils.g_pn_miss_char)
12894 AND (p_lease_rec.attribute14 = pn_lease_utils.g_pn_miss_char)
12895 AND (p_lease_rec.attribute15 = pn_lease_utils.g_pn_miss_char))
12896 THEN
12897 --------------------dbms_output.put_line ('IN ATTRIBUTES');--Rupak
12898
12899 IF (p_lease_rec.attribute_category = pn_lease_utils.g_pn_miss_char)
12900 THEN
12901 l_lease_rec.attribute_category := NULL;
12902 ELSE
12903 l_lease_rec.attribute_category := p_lease_rec.attribute_category;
12904 END IF;
12905
12906 IF (p_lease_rec.attribute1 = pn_lease_utils.g_pn_miss_char)
12907 THEN
12908 l_lease_rec.attribute1 := NULL;
12909 ELSE
12910 l_lease_rec.attribute1 := p_lease_rec.attribute1;
12911 END IF;
12912
12913 IF (p_lease_rec.attribute2 = pn_lease_utils.g_pn_miss_char)
12914 THEN
12915 l_lease_rec.attribute2 := NULL;
12916 ELSE
12917 l_lease_rec.attribute2 := p_lease_rec.attribute2;
12918 END IF;
12919
12920 IF (p_lease_rec.attribute3 = pn_lease_utils.g_pn_miss_char)
12921 THEN
12922 l_lease_rec.attribute3 := NULL;
12923 ELSE
12924 l_lease_rec.attribute3 := p_lease_rec.attribute3;
12925 END IF;
12926
12927 IF (p_lease_rec.attribute4 = pn_lease_utils.g_pn_miss_char)
12928 THEN
12929 l_lease_rec.attribute4 := NULL;
12930 ELSE
12931 l_lease_rec.attribute4 := p_lease_rec.attribute4;
12932 END IF;
12933
12934 IF (p_lease_rec.attribute5 = pn_lease_utils.g_pn_miss_char)
12935 THEN
12936 l_lease_rec.attribute5 := NULL;
12937 ELSE
12938 l_lease_rec.attribute5 := p_lease_rec.attribute5;
12939 END IF;
12940
12941 IF (p_lease_rec.attribute6 = pn_lease_utils.g_pn_miss_char)
12942 THEN
12943 l_lease_rec.attribute6 := NULL;
12944 ELSE
12945 l_lease_rec.attribute6 := p_lease_rec.attribute6;
12946 END IF;
12947
12948 IF (p_lease_rec.attribute7 = pn_lease_utils.g_pn_miss_char)
12949 THEN
12950 l_lease_rec.attribute7 := NULL;
12951 ELSE
12952 l_lease_rec.attribute7 := p_lease_rec.attribute7;
12953 END IF;
12954
12955 IF (p_lease_rec.attribute8 = pn_lease_utils.g_pn_miss_char)
12956 THEN
12957 l_lease_rec.attribute8 := NULL;
12958 ELSE
12959 l_lease_rec.attribute8 := p_lease_rec.attribute8;
12960 END IF;
12961
12962 IF (p_lease_rec.attribute9 = pn_lease_utils.g_pn_miss_char)
12963 THEN
12964 l_lease_rec.attribute9 := NULL;
12965 ELSE
12966 l_lease_rec.attribute9 := p_lease_rec.attribute9;
12967 END IF;
12968
12969 IF (p_lease_rec.attribute10 = pn_lease_utils.g_pn_miss_char)
12970 THEN
12971 l_lease_rec.attribute10 := NULL;
12972 ELSE
12973 l_lease_rec.attribute10 := p_lease_rec.attribute10;
12974 END IF;
12975
12976 IF (p_lease_rec.attribute11 = pn_lease_utils.g_pn_miss_char)
12977 THEN
12978 l_lease_rec.attribute11 := NULL;
12979 ELSE
12980 l_lease_rec.attribute11 := p_lease_rec.attribute11;
12981 END IF;
12982
12983 IF (p_lease_rec.attribute12 = pn_lease_utils.g_pn_miss_char)
12984 THEN
12985 l_lease_rec.attribute12 := NULL;
12986 ELSE
12987 l_lease_rec.attribute12 := p_lease_rec.attribute12;
12988 END IF;
12989
12990 IF (p_lease_rec.attribute13 = pn_lease_utils.g_pn_miss_char)
12991 THEN
12992 l_lease_rec.attribute13 := NULL;
12993 ELSE
12994 l_lease_rec.attribute13 := p_lease_rec.attribute13;
12995 END IF;
12996
12997 IF (p_lease_rec.attribute14 = pn_lease_utils.g_pn_miss_char)
12998 THEN
12999 l_lease_rec.attribute14 := NULL;
13000 ELSE
13001 l_lease_rec.attribute14 := p_lease_rec.attribute14;
13002 END IF;
13003
13004 IF (p_lease_rec.attribute15 = pn_lease_utils.g_pn_miss_char)
13005 THEN
13006 l_lease_rec.attribute15 := NULL;
13007 ELSE
13008 l_lease_rec.attribute15 := p_lease_rec.attribute15;
13009 END IF;
13010 ----------------------dbms_output.put_line('AFTER ATRR SETTING:1');--Rupak
13011 pn_lease_utils.validate_desc_flex (p_api_name => l_api_name_full
13012 , p_application_short_name => 'PN'
13013 , p_desc_flex_name => 'PN_LEASE_DETAILS'
13014 , p_desc_segment1 => l_lease_rec.attribute1
13015 , p_desc_segment2 => l_lease_rec.attribute2
13016 , p_desc_segment3 => l_lease_rec.attribute3
13017 , p_desc_segment4 => l_lease_rec.attribute4
13018 , p_desc_segment5 => l_lease_rec.attribute5
13019 , p_desc_segment6 => l_lease_rec.attribute6
13020 , p_desc_segment7 => l_lease_rec.attribute7
13021 , p_desc_segment8 => l_lease_rec.attribute8
13022 , p_desc_segment9 => l_lease_rec.attribute9
13023 , p_desc_segment10 => l_lease_rec.attribute10
13024 , p_desc_segment11 => l_lease_rec.attribute11
13025 , p_desc_segment12 => l_lease_rec.attribute12
13026 , p_desc_segment13 => l_lease_rec.attribute13
13027 , p_desc_segment14 => l_lease_rec.attribute14
13028 , p_desc_segment15 => l_lease_rec.attribute15
13029 , p_desc_context => l_lease_rec.attribute_category
13030 , p_resp_appl_id => fnd_global.resp_appl_id
13031 --pn_lease_pub.g_resp_appl_id
13032 , p_resp_id => fnd_global.resp_id
13033 --pn_lease_pub.g_resp_id
13034 , p_return_status => x_return_status
13035 );
13036 pvt_debug(g_pkg_name||'UPDATE_LEASE:ATTRIBUTES: Return Status:'||x_return_status,3);
13037
13038 ----------------------dbms_output.put_line('AFTER ATRR SETTING:2');--Rupak
13039 IF (x_return_status = fnd_api.g_ret_sts_error)
13040 THEN
13041 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
13042 fnd_message.set_token ('COLUMN', 'PN_LEASE_DETAILS_DESC_FIELDS');
13043 fnd_message.set_token ('P_TEXT', 'PN_LEASE_DETAILS'|| '-'|| SQLERRM);
13044 fnd_msg_pub.ADD;
13045 RAISE fnd_api.g_exc_error;
13046 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
13047 THEN
13048 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
13049 fnd_message.set_token ('COLUMN', 'PN_LEASE_DETAILS_DESC_FIELDS');
13050 fnd_message.set_token ('P_TEXT', 'PN_LEASE_DETAILS'|| '-'|| SQLERRM);
13051 fnd_msg_pub.ADD;
13052 RAISE fnd_api.g_exc_unexpected_error;
13053 END IF;
13054 -- pn_lease_pub.test_lease(2,'In Private:9');
13055 END IF;
13056 END IF;
13057
13058 ----------------------dbms_output.put_line('B4 closing:cur_lease_details');--Rupak
13059 CLOSE cur_lease_details;
13060 ----------------------dbms_output.put_line('B4 closing:cur_lease_header');--Rupak
13061 --pn_lease_pub.test_lease(2,'In Private:10');
13062 CLOSE cur_lease_header;
13063 --End of assigning values to the cursor variable and validation
13064 END IF;
13065 ----------------------dbms_output.put_line('after closing:cur_lease_header');--Rupak
13066 --pn_lease_pub.test_lease(2,'In Private:11');
13067 l_lastupdatedate := SYSDATE;
13068 ----------------------dbms_output.put_line('B4 INIT_LEASE_REC');--Rupak
13069 --Making these values to NULL
13070 BEGIN
13071 INIT_LEASE_REC( p_lease_rec => p_lease_rec
13072 , p_lease_context => p_lease_context
13073 , x_return_status => x_return_status
13074 );
13075 l_lease_rec.attribute_category := p_lease_rec.attribute_category;
13076 l_lease_rec.attribute1 := p_lease_rec.attribute1;
13077 l_lease_rec.attribute2 := p_lease_rec.attribute2;
13078 l_lease_rec.attribute3 := p_lease_rec.attribute3;
13079 l_lease_rec.attribute4 := p_lease_rec.attribute4;
13080 l_lease_rec.attribute5 := p_lease_rec.attribute5;
13081 l_lease_rec.attribute6 := p_lease_rec.attribute6;
13082 l_lease_rec.attribute7 := p_lease_rec.attribute7;
13083 l_lease_rec.attribute8 := p_lease_rec.attribute8;
13084 l_lease_rec.attribute9 := p_lease_rec.attribute9;
13085 l_lease_rec.attribute10 := p_lease_rec.attribute10;
13086 l_lease_rec.attribute11 := p_lease_rec.attribute11;
13087 l_lease_rec.attribute12 := p_lease_rec.attribute12;
13088 l_lease_rec.attribute13 := p_lease_rec.attribute13;
13089 l_lease_rec.attribute14 := p_lease_rec.attribute14;
13090 l_lease_rec.attribute15 := p_lease_rec.attribute15;
13091
13092 pvt_debug(g_pkg_name||'UPDATE_LEASE:INIT_LEASE_REC: Return Status:'||x_return_status,3);
13093 ------------dbms_output.put_line('INIT_LEASE_REC : x_return_status'||x_return_status);--Rupak
13094 EXCEPTION
13095 WHEN OTHERS THEN
13096 ----------------------dbms_output.put_line('In EXCEPTION INIT_LEASE_REC'||SQLERRM);
13097 pvt_debug(g_pkg_name||'UPDATE_LEASE:INIT_LEASE_REC: Exception:'||SQLERRM,3);
13098 --NULL;
13099 END;
13100 ----------dbms_output.put_line('B4 Edit Lease:l_lease_context'||l_lease_context||l_lease_hdr_rec.status);--Rupak
13101 ----------dbms_output.put_line('In Edit Lease:l_lease_hdr_rec.status '||l_lease_hdr_rec.status );--Rupak
13102 IF ( l_lease_context = 'ED'
13103 AND l_lease_hdr_rec.status <> 'D')
13104 THEN
13105 ----------------------dbms_output.put_line('In Edit Lease');--Rupak
13106 --Call Edit lease PVT API
13107 pvt_debug(g_pkg_name||'UPDATE_LEASE:Calling Edit Lease',3);
13108 edit_lease (p_init_msg_list => fnd_api.g_false
13109 , p_commit => fnd_api.g_false
13110 , x_return_status => x_return_status
13111 , x_msg_count => x_msg_count
13112 , x_msg_data => x_msg_data
13113 , p_lease_id => l_lease_hdr_rec.lease_id
13114 , p_creation_date => SYSDATE
13115 , p_org_id => g_org_id
13116 , p_last_update_date => SYSDATE
13117 , x_lease_change_id => l_leasechangeid
13118 , x_lease_change_num => l_lease_change_num);
13119 pvt_debug(g_pkg_name||'UPDATE_LEASE:Edit Lease Return Status'||l_return_status,3);
13120 ELSIF ( l_lease_context = 'AM' AND l_lease_hdr_rec.status <> 'D') THEN
13121 --Call Amend lease PVT API
13122 ----------------------dbms_output.put_line('In Amend Lease');--Rupak
13123
13124 --Checking for the Amend Lease name is null
13125
13126 IF (p_lease_rec.amend_lease_name IS NULL OR p_lease_rec.amend_lease_name = pn_lease_utils.g_pn_miss_char) THEN
13127 p_lease_rec.amend_lease_name := p_lease_rec.lease_name;
13128 END IF;
13129 pvt_debug(g_pkg_name||'UPDATE_LEASE:Calling Amend Lease',3);
13130 amend_lease (p_init_msg_list => fnd_api.g_false
13131 , p_commit => fnd_api.g_false
13132 , x_return_status => x_return_status
13133 , x_msg_count => x_msg_count
13134 , x_msg_data => x_msg_data
13135 , p_lease_name => p_lease_rec.amend_lease_name
13136 , p_lease_id => l_lease_hdr_rec.lease_id
13137 , p_creation_date => SYSDATE
13138 , p_org_id => g_org_id
13139 , p_lease_commencement_date => p_lease_rec.amend_comm_date
13140 , p_lease_termination_date => l_lease_dtl_rec.lease_termination_date
13141 , p_lease_execution_date => p_lease_rec.amend_exec_date
13142 , p_responsible_user => l_lease_dtl_rec.responsible_user
13143 , p_abstracted_by_user => l_lease_hdr_rec.abstracted_by_user
13144 , p_attribute_category => l_lease_rec.attribute_category
13145 , p_attribute1 => l_lease_rec.attribute1
13146 , p_attribute2 => l_lease_rec.attribute2
13147 , p_attribute3 => l_lease_rec.attribute3
13148 , p_attribute4 => l_lease_rec.attribute4
13149 , p_attribute5 => l_lease_rec.attribute5
13150 , p_attribute6 => l_lease_rec.attribute6
13151 , p_attribute7 => l_lease_rec.attribute7
13152 , p_attribute8 => l_lease_rec.attribute8
13153 , p_attribute9 => l_lease_rec.attribute9
13154 , p_attribute10 => l_lease_rec.attribute10
13155 , p_attribute11 => l_lease_rec.attribute11
13156 , p_attribute12 => l_lease_rec.attribute12
13157 , p_attribute13 => l_lease_rec.attribute13
13158 , p_attribute14 => l_lease_rec.attribute14
13159 , p_attribute15 => l_lease_rec.attribute15
13160 , p_last_update_date => SYSDATE
13161 , p_user_id => g_user_id
13162 , x_lease_change_id => l_leasechangeid
13163 , x_lease_change_num => l_lease_change_num);
13164 pvt_debug(g_pkg_name||'UPDATE_LEASE:Amend Lease Return Status'||l_return_status,3);
13165 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
13166 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
13167 fnd_message.set_token('ERR_MSG', 'Return Status from the Amend Lease Procedure is E');
13168 fnd_msg_pub.ADD;
13169 RAISE fnd_api.g_exc_error;
13170 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
13171 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
13172 fnd_message.set_token('ERR_MSG', 'Return Status from the Amend Lease Procedure is U');
13173 fnd_msg_pub.ADD;
13174 RAISE fnd_api.g_exc_unexpected_error;
13175 ELSIF(x_return_status = fnd_api.g_ret_sts_success) THEN
13176 IF( l_lease_status_new <> l_lease_status_db) THEN
13177 BEGIN
13178 pvt_debug(g_pkg_name||'UPDATE_LEASE:Raising the Business Event in Amend Mode',3);
13179 pn_am_wf.raise_business_event( p_transaction_id => p_lease_rec.lease_id
13180 , p_event_name => 'oracle.apps.pn.lease.leasestatus'
13181 , p_lease_id => p_lease_rec.lease_id
13182 -- , p_old_approval_status => l_approval_status_old -- Commented on 22NOV2010
13183 -- , p_new_approval_status => p_new_approval_status_code -- Commented on 22NOV2010
13184 , p_old_lease_status => l_lease_status_db
13185 , p_new_lease_status => l_lease_status_new
13186 );
13187 pvt_debug(g_pkg_name||'UPDATE_LEASE:Business Event Successful',3);
13188 EXCEPTION
13189 WHEN OTHERS THEN
13190 pvt_debug(g_pkg_name||'UPDATE_LEASE:Business Event Exception in Amend Mode'||SQLERRM,3);
13191 END;
13192 END IF;
13193 END IF;
13194 ELSE
13195 l_leasechangeid := l_lease_dtl_rec.lease_change_id;
13196 END IF;
13197 ----------dbms_output.put_line('l_leasechangeid'||l_leasechangeid);
13198 IF l_leasechangeid IS NOT NULL
13199 THEN
13200 -- fnd_file.put_line (fnd_file.LOG, 'Before Calling Update lease'|| l_leasechangeid);
13201 --fnd_file.put_line (fnd_file.LOG, 'Before Calling Lease Status'|| l_lease_hdr_rec.status);
13202 ----------------------dbms_output.put_line('In Update Private 9'||l_lease_hdr_rec.cal_start);--Rupak
13203
13204 BEGIN
13205 SELECT tenancy_id
13206 INTO l_tenancy_id
13207 FROM pn_tenancies_all
13208 WHERE lease_id = l_lease_hdr_rec.lease_id
13209 AND org_id = g_org_id;
13210
13211 ----------dbms_output.put_line('l_tenancy_id'||l_tenancy_id||x_return_status);
13212 EXCEPTION
13213 WHEN OTHERS THEN
13214 l_tenancy_id := NULL;
13215 pvt_debug(g_pkg_name||'UPDATE_LEASE:After Direct Update Lease tenancy_id:'||l_tenancy_id||'-'||x_return_status||'-'||l_lease_hdr_rec.status||'-'||l_status,3);
13216 END;
13217
13218 IF(l_lease_hdr_rec.status = 'F' AND l_status = 'D') THEN
13219 IF (l_tenancy_id IS NULL) THEN
13220 l_status_new := l_status;
13221 ELSE
13222 IF (NVL(fnd_profile.VALUE ('PN_LEASE_APPROVAL_WORKFLOW'),'N') ='Y') THEN
13223 l_status_new := 'S';--l_lease_hdr_rec.status;
13224 ELSE
13225 l_status_new := l_lease_hdr_rec.status;
13226 END IF;
13227
13228 END IF;
13229 ELSE
13230 l_status_new := l_lease_hdr_rec.status;
13231 END IF;
13232
13233 pvt_debug(g_pkg_name||'UPDATE_LEASE:Calling Direct Update Lease:Status'||l_status_new||'-'||l_lease_hdr_rec.status,3);
13234 direct_update_lease
13235 (p_init_msg_list => p_init_msg_list
13236 , p_commit => p_commit
13237 , x_return_status => x_return_status
13238 , x_msg_count => x_msg_count
13239 , x_msg_data => x_msg_data
13240 , p_lease_id => p_lease_rec.lease_id
13241 , p_lease_detail_id => l_lease_dtl_rec.lease_detail_id
13242 , p_lease_change_id => l_leasechangeid
13243 , p_name => l_lease_hdr_rec.NAME
13244 , p_lease_num => l_lease_hdr_rec.lease_num
13245 , p_parent_lease_id => l_lease_hdr_rec.parent_lease_id
13246 , p_lease_type_code => l_lease_hdr_rec.lease_type_code
13247 , p_lease_class_code => l_lease_hdr_rec.lease_class_code
13248 , p_payment_term_proration_rule => l_lease_hdr_rec.payment_term_proration_rule
13249 , p_abstracted_by_user => l_lease_hdr_rec.abstracted_by_user
13250 , p_status => l_status_new--l_lease_hdr_rec.status
13251 , p_lease_status => l_lease_hdr_rec.lease_status
13252 , p_last_update_date => l_lastupdatedate
13253 , p_last_updated_by => g_user_id
13254 , p_last_update_login => g_login_id
13255 , p_responsible_user => l_lease_dtl_rec.responsible_user
13256 , p_expense_account_id => l_lease_dtl_rec.expense_account_id
13257 , p_accrual_account_id => l_lease_dtl_rec.accrual_account_id
13258 , p_receivable_account_id => l_lease_dtl_rec.receivable_account_id
13259 , p_term_template_id => l_lease_dtl_rec.term_template_id
13260 , p_lease_commencement_date => l_lease_dtl_rec.lease_commencement_date
13261 , p_lease_termination_date => l_lease_dtl_rec.lease_termination_date
13262 , p_lease_execution_date => l_lease_dtl_rec.lease_execution_date
13263 , p_lease_extension_end_date => l_leaseextensionenddate
13264 , p_cal_start => l_lease_hdr_rec.cal_start
13265 , p_attribute_category => l_lease_rec.attribute_category
13266 , p_attribute1 => l_lease_rec.attribute1
13267 , p_attribute2 => l_lease_rec.attribute2
13268 , p_attribute3 => l_lease_rec.attribute3
13269 , p_attribute4 => l_lease_rec.attribute4
13270 , p_attribute5 => l_lease_rec.attribute5
13271 , p_attribute6 => l_lease_rec.attribute6
13272 , p_attribute7 => l_lease_rec.attribute7
13273 , p_attribute8 => l_lease_rec.attribute8
13274 , p_attribute9 => l_lease_rec.attribute9
13275 , p_attribute10 => l_lease_rec.attribute10
13276 , p_attribute11 => l_lease_rec.attribute11
13277 , p_attribute12 => l_lease_rec.attribute12
13278 , p_attribute13 => l_lease_rec.attribute13
13279 , p_attribute14 => l_lease_rec.attribute14
13280 , p_attribute15 => l_lease_rec.attribute15
13281 , p_location_id => l_lease_hdr_rec.location_id
13282 , p_customer_id => l_lease_hdr_rec.customer_id
13283 , p_grouping_rule_id => l_lease_dtl_rec.grouping_rule_id);
13284 pvt_debug(g_pkg_name||'UPDATE_LEASE:Direct Update Lease Return Status'||x_return_status,3);
13285 --------------------dbms_output.put_line('In Update Private 10');--Rupak
13286 --End of insert logic
13287 g_lease_change_id := l_leasechangeid;
13288
13289
13290 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
13291 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
13292 fnd_message.set_token('ERR_MSG', 'Return Status from the Lease Procedure is E');
13293 fnd_msg_pub.ADD;
13294 RAISE fnd_api.g_exc_error;
13295 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
13296 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
13297 fnd_message.set_token('ERR_MSG', 'Return Status from the Lease Procedure is U');
13298 fnd_msg_pub.ADD;
13299 RAISE fnd_api.g_exc_unexpected_error;
13300 ELSIF(x_return_status = fnd_api.g_ret_sts_success) THEN
13301 IF( l_lease_status_new <> l_lease_status_db) THEN
13302 BEGIN
13303 pvt_debug(g_pkg_name||'UPDATE_LEASE:Raising the Business Event',3);
13304 --dbms_output.put_line('UPDATE_LEASE:Raising the Business Event');
13305 pn_am_wf.raise_business_event( p_transaction_id => p_lease_rec.lease_id
13306 , p_event_name => 'oracle.apps.pn.lease.leasestatus'
13307 , p_lease_id => p_lease_rec.lease_id
13308 -- , p_old_approval_status => l_approval_status_old -- Commented on 22NOV2010
13309 -- , p_new_approval_status => p_new_approval_status_code -- Commented on 22NOV2010
13310 , p_old_lease_status => l_lease_status_db
13311 , p_new_lease_status => l_lease_status_new
13312 );
13313 pvt_debug(g_pkg_name||'UPDATE_LEASE:Business Event Successful',3);
13314 --dbms_output.put_line('UPDATE_LEASE:Business Event Successful');
13315 EXCEPTION
13316 WHEN OTHERS THEN
13317 pvt_debug(g_pkg_name||'UPDATE_LEASE:Business Event Exception'||SQLERRM,3);
13318 END;
13319 END IF;
13320 --Check either to call the Work Flow or submit the program directly.
13321 IF( l_status_new = 'S') THEN
13322 pvt_debug(g_pkg_name||'UPDATE_LEASE:Approval Work Flow Initiated',3);
13323 --dbms_output.put_line('UPDATE_LEASE:Approval Work Flow Initiated');
13324 pn_am_wf.call_lease_approval_wf( p_transaction_id => p_lease_rec.lease_id
13325 ,p_lease_id => p_lease_rec.lease_id
13326 );
13327 pvt_debug(g_pkg_name||'UPDATE_LEASE:Approval Work Flow Success',3);
13328 --dbms_output.put_line('UPDATE_LEASE:Approval Work Flow Success');
13329 ELSIF(l_lease_hdr_rec.lease_status = 'SGN' OR (l_lease_hdr_rec.status = 'F' AND l_status = 'D')) THEN
13330 IF (l_tenancy_id IS NOT NULL) THEN
13331 FINALIZE_RECORD ( p_lease_rec.lease_id,l_lease_dtl_rec.lease_commencement_date,p_lease_context,g_org_id,l_api_name_full,'U',x_request_id);
13332 --dbms_output.put_line('UPDATE_LEASE:FINALIZE_RECORD called');
13333 IF (x_request_id = 0) THEN
13334 fnd_message.set_name ('PN', 'PN_SUBSCHEDULES_ERR');
13335 fnd_message.set_token ('API_NAME', l_api_name_full|| '-SubmitSchedulesConcProgram');
13336 fnd_msg_pub.ADD;
13337 RAISE fnd_api.g_exc_error;
13338 END IF;
13339 ELSE
13340 pvt_debug(g_pkg_name||'UPDATE_LEASE:Tenancies are needed to make the lease Final',3);
13341 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
13342 fnd_message.set_token('ERR_MSG', 'Please provide the tenancies to finalize the lease');
13343 fnd_msg_pub.ADD;
13344 RAISE fnd_api.g_exc_error;
13345 END IF;
13346 END IF;
13347 END IF;
13348 ELSE
13349 fnd_message.set_name ('PN', 'PN_INVALID_CHANGEID');
13350 fnd_message.set_token ('API_NAME', l_api_name_full|| '-ValidateLeaseCHangeId');
13351 fnd_msg_pub.ADD;
13352 RAISE fnd_api.g_exc_error;
13353 END IF;
13354
13355 -- Standard check of p_commit
13356 ----------------------dbms_output.put_line('In Update Private 11');--Rupak
13357
13358 fnd_msg_pub.count_and_get (p_encoded => fnd_api.g_false
13359 , p_count => x_msg_count
13360 , p_data => x_msg_data
13361 );
13362
13363
13364 EXCEPTION
13365 WHEN fnd_api.g_exc_error THEN
13366 fnd_msg_pub.count_and_get (p_encoded => fnd_api.g_false
13367 , p_count => x_msg_count
13368 , p_data => x_msg_data
13369 );
13370 pvt_debug(g_pkg_name||'-CREATE_LEASE:Exception:g_exc_error:'||SQLERRM,3);
13371 l_error_count := l_error_count + 1;
13372 x_return_status := fnd_api.g_ret_sts_error;
13373 WHEN OTHERS THEN
13374 fnd_msg_pub.count_and_get (p_encoded => fnd_api.g_false
13375 , p_count => x_msg_count
13376 , p_data => x_msg_data
13377 );
13378 l_error_count := l_error_count + 1;
13379 x_return_status := fnd_api.g_ret_sts_unexp_error;
13380 pvt_debug(g_pkg_name||'-CREATE_LEASE:Exception:'||SQLERRM,3);
13381
13382 END;
13383
13384
13385 ------dbms_output.put_line('HELLO:LEASE_CHANGE_ID:'||l_leasechangeid);--OOPS
13386 -- ------------------dbms_output.put_line('After Update_lease:x_msg_data:'||x_msg_data);--OOPS
13387
13388 -------------------------Calling Update Contacts-------
13389 ----------------------dbms_output.put_line( 'Before Calling Update Contacts In Update Lease Procedure:p_lease_rec.lease_id'|| p_lease_rec.lease_id);
13390 IF (p_lease_contacts_tbl.COUNT <>0) THEN
13391
13392 update_contacts (p_api_version => p_api_version
13393 , p_init_msg_list => p_init_msg_list
13394 , p_commit => p_commit
13395 , p_validate => p_validate
13396 , p_lease_contacts_tbl => p_lease_contacts_tbl
13397 , p_lease_id => p_lease_rec.lease_id
13398 , p_lease_change_id => l_leasechangeid
13399 , p_lease_context => l_lease_context
13400 , x_return_status => x_return_status
13401 , x_msg_count => x_msg_count
13402 , x_msg_data => x_msg_data
13403 );
13404 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
13405 l_error_count := l_error_count + 1;
13406 END IF;
13407 END IF;
13408 pvt_debug(g_pkg_name||'UPDATE_LEASE: UPDATE_CONTACTS Return Status'||x_return_status,3);
13409 -------------------------Calling Update Tenancies-------
13410 ----------------------dbms_output.put_line( 'Before Calling Update Tenancies In Update Lease Procedure:p_lease_rec.lease_id'|| p_lease_rec.lease_id);--Rupak
13411 IF (p_lease_tenancies_tbl.count<>0) THEN
13412 update_tenancies (p_api_version => p_api_version
13413 , p_init_msg_list => p_init_msg_list
13414 , p_commit => p_commit
13415 , p_validate => p_validate
13416 , p_lease_tenancies_tbl => p_lease_tenancies_tbl
13417 , p_lease_id => p_lease_rec.lease_id
13418 , p_lease_change_id => l_leasechangeid
13419 , p_lease_context => l_lease_context
13420 , x_return_status => x_return_status
13421 -- , x_msg_count => x_msg_count
13422 -- , x_msg_data => x_msg_data
13423 );
13424 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
13425 l_error_count := l_error_count + 1;
13426 END IF;
13427 END IF;
13428 --------------------dbms_output.put_line('After Update_lease:1:x_msg_count:'||x_msg_count);--OOPS
13429 --------------------dbms_output.put_line('After Update_lease:1:x_msg_data:'||x_msg_data);--OOPS
13430 pvt_debug(g_pkg_name||'UPDATE_LEASE: UPDATE_TENANCIES Return Status:'||x_return_status,3);
13431 ----------------------dbms_output.put_line( 'Before Calling Update Payments In Update Lease Procedure:p_lease_rec.lease_id'|| p_lease_rec.lease_id);--Rupak
13432 ------Calling Update Terms-------
13433 IF (p_lease_payment_term_tbl.count<>0) THEN
13434 update_terms (p_api_version => p_api_version
13435 , p_init_msg_list => NULL
13436 , p_commit => NULL
13437 , p_validate => p_validate
13438 , p_payment_terms_tbl => p_lease_payment_term_tbl
13439 , p_lease_id => p_lease_rec.lease_id
13440 , p_lease_context => l_lease_context
13441 , x_return_status => x_return_status
13442 , x_msg_count => x_msg_count
13443 , x_msg_data => x_msg_data
13444 );
13445 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
13446 l_error_count := l_error_count + 1;
13447 END IF;
13448 END IF;
13449 pvt_debug(g_pkg_name||'UPDATE_LEASE: UPDATE_terms Return Status:'||x_return_status,3);
13450
13451 ------------------------- Sunitha Begin ------------------------------------------
13452 IF p_note_tbl.count<>0 THEN
13453 UPDATE_NOTE (
13454 p_lease_id => p_lease_rec.lease_id
13455 , p_commit => p_commit
13456 , p_validate => p_validate
13457 , p_note_tbl => p_note_tbl
13458 , x_return_status => x_return_status
13459 -- , x_msg_count => x_msg_count
13460 -- , x_msg_data => x_msg_data
13461 );
13462 pvt_debug(g_pkg_name||'UPDATE_LEASE: UPDATE_NOTE Return Status'||x_return_status,3);
13463 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
13464 l_error_count := l_error_count + 1;
13465 END IF;
13466 END IF;
13467 ------------------dbms_output.put_line('UPDATE_LEASE:UPDATE_NOTE:Return Status:'||x_return_status);
13468
13469 IF p_right_tbl.count<>0 THEN
13470 UPDATE_RIGHT (
13471 p_lease_id => nvl(p_lease_rec.lease_id,l_lease_hdr_rec.lease_id)
13472 , p_lease_change_id => nvl(p_lease_rec.lease_change_id,l_lease_dtl_rec.lease_change_id)
13473 , p_commit => p_commit
13474 , p_validate => p_validate
13475 , p_right_tbl => p_right_tbl
13476 , x_return_status => x_return_status
13477 -- , x_msg_count => x_msg_count
13478 -- , x_msg_data => x_msg_data
13479 );
13480 pvt_debug(g_pkg_name||'UPDATE_LEASE: UPDATE_RIGHT Return Status'||x_return_status,3);
13481 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
13482 l_error_count := l_error_count + 1;
13483 END IF;
13484 END IF;
13485 ------------------dbms_output.put_line('UPDATE_LEASE:UPDATE_RIGHT:Return Status:'||x_return_status);
13486
13487 IF p_obligation_tbl.count<>0 THEN
13488 UPDATE_OBLIGATION (
13489 p_lease_id => nvl(p_lease_rec.lease_id,l_lease_hdr_rec.lease_id)
13490 , p_lease_change_id => nvl(p_lease_rec.lease_change_id,l_lease_dtl_rec.lease_change_id)
13491 , p_commit => p_commit
13492 , p_validate => p_validate
13493 , p_obligation_tbl => p_obligation_tbl
13494 , x_return_status => x_return_status
13495 -- , x_msg_count => x_msg_count
13496 -- , x_msg_data => x_msg_data
13497 );
13498 pvt_debug(g_pkg_name||'UPDATE_LEASE: UPDATE_OBLIGATION Return Status'||x_return_status,3);
13499 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
13500 l_error_count := l_error_count + 1;
13501 END IF;
13502 END IF;
13503 ------------------dbms_output.put_line('UPDATE_LEASE:UPDATE_OBLIATIONS:Return Status:'||x_return_status);
13504
13505 IF p_insurance_tbl.count<>0 THEN
13506 UPDATE_INSURANCE (
13507 p_lease_id => nvl(p_lease_rec.lease_id,l_lease_hdr_rec.lease_id),
13508 p_lease_change_id => nvl(p_lease_rec.lease_change_id,l_lease_dtl_rec.lease_change_id),
13509 p_commit => p_commit,
13510 p_validate => p_validate,
13511 p_insurance_tbl => p_insurance_tbl,
13512 x_return_status => x_return_status
13513 -- x_msg_count => x_msg_count,
13514 -- x_msg_data => x_msg_data
13515 );
13516 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
13517 l_error_count := l_error_count + 1;
13518 END IF;
13519 pvt_debug(g_pkg_name||'UPDATE_LEASE: UPDATE_INSURANCE Return Status:'||x_return_status,3);
13520 END IF;
13521
13522 IF p_option_tbl.count<>0 THEN
13523 UPDATE_OPTION (
13524 p_lease_id => nvl(p_lease_rec.lease_id,l_lease_hdr_rec.lease_id)
13525 , p_lease_change_id => nvl(p_lease_rec.lease_change_id,l_lease_dtl_rec.lease_change_id)
13526 , p_commit => p_commit
13527 , p_validate => p_validate
13528 , p_option_tbl => p_option_tbl
13529 , x_return_status => x_return_status
13530 -- , x_msg_count => x_msg_count
13531 -- , x_msg_data => x_msg_data
13532 );
13533 IF (x_return_status <> fnd_api.g_ret_sts_success) THEN
13534 l_error_count := l_error_count + 1;
13535 END IF;
13536 pvt_debug(g_pkg_name||'UPDATE_LEASE: UPDATE_OPTION Return Status:'||x_return_status,3);
13537 END IF;
13538 ----------------------- Sunitha end ------------------------------------------
13539
13540 IF (l_error_count = 0) THEN
13541 x_return_status := fnd_api.g_ret_sts_success;
13542 ELSE
13543 x_return_status := fnd_api.g_ret_sts_error;
13544 END IF;
13545 ------------------dbms_output.put_line('Error Count:Update_lease:'||l_error_count);
13546 EXCEPTION
13547 WHEN OTHERS THEN
13548 x_return_status := fnd_api.g_ret_sts_unexp_error;
13549 pvt_debug(g_pkg_name||'-UPDATE_LEASE:Exception:'||SQLERRM,3);
13550 --RAISE;
13551 END update_lease;
13552 ------------------------------------------------------------Terms Begin---------------------------------------------------------------------------
13553 --Bug14176705
13554 PROCEDURE ADD_DIST_ACCOUNT ( p_lease_terms_rec lease_terms_rec
13555 , p_terms_exp_rev_accounts_tbl terms_exp_rev_accounts_tbl
13556 , l_change_account_count NUMBER DEFAULT NULL
13557 , p_mode VARCHAR2
13558 )
13559 AS
13560
13561 CURSOR cur_dist_details(l_term_id NUMBER,l_acc_code VARCHAR2)
13562 IS
13563 SELECT rowid row_id,rownum row_num,pda.*
13564 FROM pn_distributions_all pda
13565 WHERE pda.payment_term_id = l_term_id
13566 AND pda.account_class = l_acc_code
13567 AND pda.org_id = g_org_id
13568 AND rownum = 1;
13569
13570 l_max_rownum NUMBER;
13571 l_record_count NUMBER;
13572 l_count NUMBER;
13573
13574 l_acc_code VARCHAR2(30);
13575 l_term_id NUMBER;
13576 x_rowid VARCHAR2(18);
13577
13578 x_distribution_id NUMBER;
13579
13580 l_term_template_id NUMBER;
13581 l_payment_term_id NUMBER;
13582
13583 BEGIN
13584
13585 l_term_id := p_lease_terms_rec.payment_term_id;
13586 IF (p_terms_exp_rev_accounts_tbl.count<>0) THEN
13587 l_acc_code := p_terms_exp_rev_accounts_tbl(1).account_code;
13588 END IF;
13589
13590
13591 --------dbms_output.put_line('IN Validate Payment terms'||l_term_id);
13592 --------dbms_output.put_line('IN Validate Payment terms'||l_acc_code);
13593 --------dbms_output.put_line('p_lease_terms_rec.payment_term_id'||p_lease_terms_rec.payment_term_id||'-'||p_lease_terms_rec.term_template_id);
13594
13595 IF (p_mode = 'U') THEN
13596
13597 BEGIN
13598 SELECT max(rownum)
13599 INTO l_max_rownum
13600 FROM pn_distributions_all pda
13601 WHERE pda.payment_term_id = l_term_id;
13602 --AND pda.org_id = g_org_id;
13603 EXCEPTION
13604 WHEN OTHERS THEN
13605 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:MAX ROWNUM:Exception:'||SQLERRM,3);
13606 NULL;
13607 --------dbms_output.put_line('Exception:In getting the max rownum');
13608 END;
13609
13610
13611 begin
13612 SELECT count(1)
13613 INTO l_record_count
13614 FROM pn_distributions_all
13615 WHERE payment_term_id = l_term_id
13616 AND account_class = l_acc_code
13617 AND org_id = g_org_id;
13618 EXCEPTION
13619 WHEN NO_DATA_FOUND THEN
13620 l_record_count :=0;
13621 end;
13622 pvt_debug(g_pkg_name||':ADD_DIST_ACCOUNT:payment_term_id:'||l_term_id,3);
13623 pvt_debug(g_pkg_name||':ADD_DIST_ACCOUNT:l_acc_code:'||l_acc_code,3);
13624 pvt_debug(g_pkg_name||':ADD_DIST_ACCOUNT:g_org_id:'||g_org_id,3);
13625
13626 --------dbms_output.put_line('record count '||l_record_count);
13627
13628 l_count := 1;
13629
13630
13631 FOR r_dist_details in cur_dist_details(l_term_id,l_acc_code)
13632 LOOP
13633
13634 FOR i in p_terms_exp_rev_accounts_tbl.FIRST..p_terms_exp_rev_accounts_tbl.LAST
13635 LOOP
13636 IF (l_count <= l_record_count) THEN
13637 BEGIN
13638 pn_distributions_pkg.update_row( x_rowid => r_dist_details.row_id
13639 , x_distribution_id => r_dist_details.distribution_id
13640 , x_account_id => NVL(p_terms_exp_rev_accounts_tbl(i).account_id,r_dist_details.account_id)
13641 ,x_payment_term_id => r_dist_details.payment_term_id
13642 ,x_term_template_id => r_dist_details.term_template_id
13643 ,x_account_class => p_terms_exp_rev_accounts_tbl(i).account_code
13644 ,x_percentage => p_terms_exp_rev_accounts_tbl(i).account_percentage
13645 ,x_line_number => r_dist_details.line_number
13646 ,x_last_update_date => SYSDATE
13647 ,x_last_updated_by => fnd_global.user_id
13648 ,x_last_update_login => fnd_global.login_id
13649 ,x_attribute_category => r_dist_details.attribute_category
13650 ,x_attribute1 => r_dist_details.attribute1
13651 ,x_attribute2 => r_dist_details.attribute2
13652 ,x_attribute3 => r_dist_details.attribute3
13653 ,x_attribute4 => r_dist_details.attribute4
13654 ,x_attribute5 => r_dist_details.attribute5
13655 ,x_attribute6 => r_dist_details.attribute6
13656 ,x_attribute7 => r_dist_details.attribute7
13657 ,x_attribute8 => r_dist_details.attribute8
13658 ,x_attribute9 => r_dist_details.attribute9
13659 ,x_attribute10 => r_dist_details.attribute10
13660 ,x_attribute11 => r_dist_details.attribute11
13661 ,x_attribute12 => r_dist_details.attribute12
13662 ,x_attribute13 => r_dist_details.attribute13
13663 ,x_attribute14 => r_dist_details.attribute14
13664 ,x_attribute15 => r_dist_details.attribute15
13665 ,x_lease_change_id => p_lease_terms_rec.lease_change_id
13666 );
13667 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.UPDATE_ROW Successful',3);
13668 commit;
13669 l_count := l_count + 1;
13670 --------dbms_output.put_line('IN IF:UPDATE ROW');
13671 EXCEPTION
13672 WHEN OTHERS THEN
13673 NULL;
13674 --------dbms_output.put_line('In Exception:In Update'||SQLERRM);
13675 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.UPDATE_ROW:Exception:'||SQLERRM,3);
13676 END;
13677 ELSE
13678 BEGIN
13679
13680 pn_distributions_pkg.insert_row (x_rowid => x_rowid
13681 ,x_distribution_id => x_distribution_id--r_dist_details.distribution_id
13682 ,x_account_id => NVL(p_terms_exp_rev_accounts_tbl(i).account_id,r_dist_details.account_id)
13683 ,x_payment_term_id => r_dist_details.payment_term_id
13684 ,x_term_template_id => r_dist_details.term_template_id
13685 ,x_account_class => p_terms_exp_rev_accounts_tbl(i).account_code
13686 ,x_percentage => p_terms_exp_rev_accounts_tbl(i).account_percentage
13687 ,x_line_number => l_max_rownum
13688 ,x_last_update_date => SYSDATE
13689 ,x_last_updated_by => fnd_global.user_id
13690 ,x_creation_date => SYSDATE
13691 ,x_created_by => fnd_global.user_id
13692 ,x_last_update_login => fnd_global.login_id
13693 ,x_attribute_category => NULL
13694 ,x_attribute1 => NULL
13695 ,x_attribute2 => NULL
13696 ,x_attribute3 => NULL
13697 ,x_attribute4 => NULL
13698 ,x_attribute5 => NULL
13699 ,x_attribute6 => NULL
13700 ,x_attribute7 => NULL
13701 ,x_attribute8 => NULL
13702 ,x_attribute9 => NULL
13703 ,x_attribute10 => NULL
13704 ,x_attribute11 => NULL
13705 ,x_attribute12 => NULL
13706 ,x_attribute13 => NULL
13707 ,x_attribute14 => NULL
13708 ,x_attribute15 => NULL
13709 ,x_org_id => fnd_global.org_id
13710 );
13711 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.INSERT_ROW Successful',3);
13712 commit;
13713 --------dbms_output.put_line('IN ELSE:INSERT ROW');
13714 EXCEPTION
13715 WHEN OTHERS THEN
13716 NULL;
13717 --------dbms_output.put_line('In Exception:In ELSE: INSERT'||SQLERRM);
13718 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM,3);
13719 END;
13720 END IF;
13721 END LOOP;
13722 END LOOP;
13723 ELSE
13724
13725 FOR i in p_terms_exp_rev_accounts_tbl.FIRST..p_terms_exp_rev_accounts_tbl.LAST
13726 LOOP
13727 x_distribution_id := NULL;
13728 l_max_rownum := NULL;
13729 BEGIN
13730 pn_distributions_pkg.insert_row (x_rowid => x_rowid
13731 ,x_distribution_id => x_distribution_id--r_dist_details.distribution_id
13732 ,x_account_id => p_terms_exp_rev_accounts_tbl(i).account_id
13733 ,x_payment_term_id => p_lease_terms_rec.payment_term_id
13734 ,x_term_template_id => p_lease_terms_rec.term_template_id
13735 ,x_account_class => p_terms_exp_rev_accounts_tbl(i).account_code
13736 ,x_percentage => p_terms_exp_rev_accounts_tbl(i).account_percentage
13737 ,x_line_number => l_max_rownum
13738 ,x_last_update_date => SYSDATE
13739 ,x_last_updated_by => fnd_global.user_id
13740 ,x_creation_date => SYSDATE
13741 ,x_created_by => fnd_global.user_id
13742 ,x_last_update_login => fnd_global.login_id
13743 ,x_attribute_category => NULL
13744 ,x_attribute1 => NULL
13745 ,x_attribute2 => NULL
13746 ,x_attribute3 => NULL
13747 ,x_attribute4 => NULL
13748 ,x_attribute5 => NULL
13749 ,x_attribute6 => NULL
13750 ,x_attribute7 => NULL
13751 ,x_attribute8 => NULL
13752 ,x_attribute9 => NULL
13753 ,x_attribute10 => NULL
13754 ,x_attribute11 => NULL
13755 ,x_attribute12 => NULL
13756 ,x_attribute13 => NULL
13757 ,x_attribute14 => NULL
13758 ,x_attribute15 => NULL
13759 ,x_org_id => fnd_global.org_id
13760 );
13761 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.INSERT_ROW Successful',3);
13762 COMMIT;
13763 --------dbms_output.put_line('IN ELSE : ELSE:INSERT ROW');
13764 --l_max_row_num := l_max_row_num + 1;
13765 EXCEPTION
13766 WHEN OTHERS THEN
13767 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM,3);
13768 NULL;
13769 --------dbms_output.put_line('In Exception:In ELSE:ELSE: INSERT'||SQLERRM);
13770 END;
13771 END LOOP;
13772 END IF;
13773 END ADD_DIST_ACCOUNT;
13774
13775 PROCEDURE FINALIZE_RECORD( p_lease_id NUMBER
13776 ,p_lease_commencement_date DATE
13777 ,p_lease_context VARCHAR2
13778 ,p_org_id NUMBER
13779 ,p_api_name_full VARCHAR2
13780 ,p_mode VARCHAR2
13781 ,x_request_id OUT NOCOPY NUMBER
13782 )
13783 AS
13784 l_schedule_context VARCHAR2(20);
13785 l_request_id NUMBER;
13786 BEGIN
13787 ----------------------dbms_output.put_line('In FINALIZE_RECORD:B4 IF');
13788 l_schedule_context := 'ABS';
13789 IF (p_mode = 'C') THEN
13790 IF p_lease_context = 'ED' THEN
13791 l_schedule_context := 'ADDEDT';
13792 ELSIF p_lease_context = 'AM' THEN
13793 l_schedule_context := 'ADDAMD';
13794 END IF;
13795 ELSIF(p_mode = 'U') THEN
13796 IF p_lease_context = 'ED' THEN
13797 l_schedule_context := 'CONTERM';
13798 ELSIF p_lease_context = 'AM' THEN
13799 l_schedule_context := 'CONTERM';
13800 END IF;
13801 END IF;
13802 ----------dbms_output.put_line('In FINALIZE_RECORD:1');
13803 commit; --Bug# 12692579 Added commit so that all changes are saved before invoking the concurrent program.
13804 pn_mo_cache_utils.fnd_req_set_org_id(p_org_id);
13805 ----------dbms_output.put_line('In FINALIZE_RECORD:2');
13806 x_request_id := fnd_request.submit_request ( 'PN',
13807 'PNSCHITM',
13808 NULL,
13809 NULL,
13810 FALSE,
13811 p_lease_id ,l_schedule_context,'MAIN',
13812 null, null, 'N',fnd_date.date_to_canonical(p_lease_commencement_date),null,null,chr(0), -- Bug 13462759
13813 '', '', '', '',
13814 '', '', '', '', '', '', '', '', '', '',
13815 '', '', '', '', '', '', '', '', '', '',
13816 '', '', '', '', '', '', '', '', '', '',
13817 '', '', '', '', '', '', '', '', '', '',
13818 '', '', '', '', '', '', '', '', '', '',
13819 '', '', '', '', '', '', '', '', '', '',
13820 '', '', '', '', '', '', '', '', '', '',
13821 '', '', '', '', '', '', '', '', '', '',
13822 '', '', '', '', '', ''
13823 );
13824 pvt_debug(g_pkg_name||'FINALIZE_RECORD:Submit Request Successful',3);
13825
13826 ----------------------dbms_output.put_line('Submit Request Success');
13827
13828 EXCEPTION
13829 WHEN OTHERS THEN
13830 pvt_debug(g_pkg_name||'FINALIZE_RECORD:Submit Request Failed:'||SQLERRM,3);
13831 END FINALIZE_RECORD;
13832
13833 PROCEDURE GET_TEMPLATE_DEFAULTS ( p_lease_terms_rec IN OUT NOCOPY lease_terms_rec)
13834 AS
13835 CURSOR cur_term_template (p_term_temp_id NUMBER)
13836 IS
13837 SELECT term_template_id
13838 , NAME
13839 , set_of_books_id
13840 , currency_code
13841 , normalize
13842 , schedule_day
13843 , payment_purpose_code
13844 , payment_term_type_code
13845 , accrual_account_id
13846 , project_id
13847 , task_id
13848 , organization_id
13849 , expenditure_type
13850 , expenditure_item_date
13851 , vendor_id
13852 , vendor_site_id
13853 , customer_id
13854 , customer_site_use_id
13855 , cust_ship_site_id
13856 , ap_ar_term_id
13857 , cust_trx_type_id
13858 , tax_group_id
13859 , tax_code_id
13860 , distribution_set_id
13861 , inv_rule_id
13862 , account_rule_id
13863 , salesrep_id
13864 , tax_included
13865 , po_header_id
13866 , cust_po_number
13867 , receipt_method_id
13868 , active
13869 , description
13870 , attribute_category
13871 , attribute1
13872 , attribute2
13873 , attribute3
13874 , attribute4
13875 , attribute5
13876 , attribute6
13877 , attribute7
13878 , attribute8
13879 , attribute9
13880 , attribute10
13881 , attribute11
13882 , attribute12
13883 , attribute13
13884 , attribute14
13885 , attribute15
13886 , org_id
13887 , location_id
13888 , term_template_type
13889 , tax_classification_code
13890 , include_in_var_rent
13891 FROM pn_term_templates_all
13892 WHERE term_template_id = p_term_temp_id
13893 AND active = 'Y';
13894
13895 l_term_defaults cur_term_template%ROWTYPE;
13896
13897 BEGIN
13898
13899 OPEN cur_term_template (p_lease_terms_rec.term_template_id);
13900 LOOP
13901 FETCH cur_term_template
13902 INTO l_term_defaults;
13903
13904 EXIT WHEN cur_term_template%NOTFOUND;
13905 END LOOP;
13906 CLOSE cur_term_template;
13907 pvt_debug(g_pkg_name||'GET_TEMPLATE_DEFAULTS:Assigning the default values',3);
13908 ----------------------dbms_output.put_line('In GET_TEMPLATE_DEFAULTS:l_term_defaults.payment_purpose_code'||l_term_defaults.payment_purpose_code||'-'||p_lease_terms_rec.payment_purpose_code);
13909 --Default Values
13910 p_lease_terms_rec.payment_purpose_code := NVL (p_lease_terms_rec.payment_purpose_code, l_term_defaults.payment_purpose_code);
13911 p_lease_terms_rec.currency_code := NVL (p_lease_terms_rec.currency_code, l_term_defaults.currency_code);
13912 p_lease_terms_rec.normalize := NVL (p_lease_terms_rec.normalize, l_term_defaults.normalize);
13913 p_lease_terms_rec.schedule_day := NVL (p_lease_terms_rec.schedule_day, l_term_defaults.schedule_day);
13914 p_lease_terms_rec.payment_term_type_code:= NVL (p_lease_terms_rec.payment_term_type_code, l_term_defaults.payment_term_type_code);
13915 p_lease_terms_rec.ap_ar_term_id := NVL (p_lease_terms_rec.ap_ar_term_id, l_term_defaults.ap_ar_term_id);
13916 p_lease_terms_rec.normalize := NVL (p_lease_terms_rec.normalize, l_term_defaults.normalize);
13917 p_lease_terms_rec.vendor_id := NVL (p_lease_terms_rec.vendor_id, l_term_defaults.vendor_id);
13918 p_lease_terms_rec.vendor_site_id := NVL (p_lease_terms_rec.vendor_site_id, l_term_defaults.vendor_site_id);
13919 p_lease_terms_rec.customer_id := NVL (p_lease_terms_rec.customer_id, l_term_defaults.customer_id);
13920 p_lease_terms_rec.customer_site_use_id := NVL (p_lease_terms_rec.customer_site_use_id, l_term_defaults.customer_site_use_id);
13921 p_lease_terms_rec.cust_ship_site_id := NVL (p_lease_terms_rec.cust_ship_site_id, l_term_defaults.cust_ship_site_id);
13922 p_lease_terms_rec.cust_trx_type_id := NVL (p_lease_terms_rec.cust_trx_type_id, l_term_defaults.cust_trx_type_id);
13923 p_lease_terms_rec.tax_included := NVL (p_lease_terms_rec.tax_included, l_term_defaults.tax_included);
13924 p_lease_terms_rec.location_id := NVL (p_lease_terms_rec.location_id, l_term_defaults.location_id);
13925 p_lease_terms_rec.project_id := NVL (p_lease_terms_rec.project_id, l_term_defaults.project_id);
13926 p_lease_terms_rec.task_id := NVL (p_lease_terms_rec.task_id, l_term_defaults.task_id);
13927 p_lease_terms_rec.organization_id := NVL (p_lease_terms_rec.organization_id, l_term_defaults.organization_id);
13928 p_lease_terms_rec.expenditure_type := NVL (p_lease_terms_rec.expenditure_type, l_term_defaults.expenditure_type);
13929 p_lease_terms_rec.expenditure_item_date := NVL (p_lease_terms_rec.expenditure_item_date, l_term_defaults.expenditure_item_date);
13930 p_lease_terms_rec.set_of_books_id := NVL (p_lease_terms_rec.set_of_books_id, l_term_defaults.set_of_books_id);
13931 ----------------------dbms_output.put_line('In GET_TEMPLATE_DEFAULTS:After Default Assignment');
13932 EXCEPTION
13933 WHEN OTHERS THEN
13934 NULL;
13935 ----------------------dbms_output.put_line('In GET_TEMPLATE_DEFAULTS;EXCEPTION'||SQLERRM);
13936 pvt_debug(g_pkg_name||'GET_TEMPLATE_DEFAULTS:Assigning the default values:Exception:'||SQLERRM,3);
13937 END GET_TEMPLATE_DEFAULTS;
13938
13939
13940 PROCEDURE insert_payment_terms_row (
13941 p_lease_terms_rec IN OUT NOCOPY lease_terms_rec
13942 , p_lease_id IN NUMBER
13943 , p_change_lease_id IN NUMBER
13944 , p_lease_context IN VARCHAR2
13945 , x_return_status OUT NOCOPY VARCHAR2
13946 )
13947 IS
13948 x_rowid VARCHAR2(18);
13949 BEGIN
13950 ----------------------dbms_output.put_line('IN INSERT '); --Rupak
13951
13952
13953
13954 pvt_debug(g_pkg_name||'INSERT_PAYMENT_TERMS_ROW:Calling PNT_PAYMENT_TERMS_PKG.INSERT_ROW',3);
13955 pnt_payment_terms_pkg.insert_row( x_rowid => x_rowid
13956 , x_payment_term_id => p_lease_terms_rec.payment_term_id
13957 , x_payment_purpose_code => p_lease_terms_rec.payment_purpose_code
13958 , x_payment_term_type_code => p_lease_terms_rec.payment_term_type_code
13959 , x_frequency_code => p_lease_terms_rec.frequency_code
13960 , x_lease_id => p_lease_id--p_lease_terms_rec.lease_id
13961 , x_lease_change_id => p_change_lease_id--p_lease_terms_rec.lease_change_id
13962 , x_start_date => trunc(p_lease_terms_rec.start_date)
13963 , x_end_date => trunc(p_lease_terms_rec.end_date)
13964 , x_vendor_id => p_lease_terms_rec.vendor_id
13965 , x_vendor_site_id => p_lease_terms_rec.vendor_site_id
13966 , x_customer_id => p_lease_terms_rec.customer_id
13967 , x_customer_site_use_id => p_lease_terms_rec.customer_site_use_id
13968 , x_target_date => trunc(p_lease_terms_rec.target_date)
13969 , x_actual_amount => p_lease_terms_rec.actual_amount
13970 , x_estimated_amount => p_lease_terms_rec.estimated_amount
13971 , x_set_of_books_id => pn_mo_cache_utils.get_profile_value('PN_SET_OF_BOOKS_ID',g_org_id)--p_lease_terms_rec.set_of_books_id
13972 , x_currency_code => p_lease_terms_rec.currency_code
13973 , x_rate => p_lease_terms_rec.rate
13974 , x_normalize => p_lease_terms_rec.normalize
13975 , x_location_id => p_lease_terms_rec.location_id
13976 , x_schedule_day => p_lease_terms_rec.schedule_day
13977 , x_cust_ship_site_id => p_lease_terms_rec.cust_ship_site_id
13978 , x_ap_ar_term_id => p_lease_terms_rec.ap_ar_term_id
13979 , x_cust_trx_type_id => p_lease_terms_rec.cust_trx_type_id
13980 , x_project_id => p_lease_terms_rec.project_id
13981 , x_task_id => p_lease_terms_rec.task_id
13982 , x_organization_id => p_lease_terms_rec.organization_id
13983 , x_expenditure_type => p_lease_terms_rec.expenditure_type
13984 , x_expenditure_item_date => trunc(p_lease_terms_rec.expenditure_item_date)
13985 , x_tax_group_id => p_lease_terms_rec.tax_group_id
13986 , x_tax_code_id => p_lease_terms_rec.tax_code_id
13987 , x_tax_classification_code => p_lease_terms_rec.tax_classification_code
13988 , x_tax_included => p_lease_terms_rec.tax_included
13989 , x_distribution_set_id => p_lease_terms_rec.distribution_set_id
13990 , x_inv_rule_id => p_lease_terms_rec.inv_rule_id
13991 , x_account_rule_id => p_lease_terms_rec.account_rule_id
13992 , x_salesrep_id => p_lease_terms_rec.salesrep_id
13993 , x_approved_by => p_lease_terms_rec.approved_by
13994 , x_status => p_lease_terms_rec.status
13995 , x_index_period_id => p_lease_terms_rec.index_period_id
13996 , x_index_term_indicator => p_lease_terms_rec.index_term_indicator
13997 , x_po_header_id => p_lease_terms_rec.po_header_id
13998 , x_cust_po_number => p_lease_terms_rec.cust_po_number
13999 , x_receipt_method_id => p_lease_terms_rec.receipt_method_id
14000 , x_var_rent_inv_id => p_lease_terms_rec.var_rent_inv_id
14001 , x_var_rent_type => p_lease_terms_rec.var_rent_type
14002 , x_period_billrec_id => p_lease_terms_rec.period_billrec_id
14003 , x_rec_agr_line_id => p_lease_terms_rec.rec_agr_line_id
14004 , x_amount_type => p_lease_terms_rec.amount_type
14005 , x_changed_flag => p_lease_terms_rec.changed_flag
14006 , x_term_template_id => p_lease_terms_rec.term_template_id
14007 , x_attribute_category => p_lease_terms_rec.attribute_category
14008 , x_attribute1 => p_lease_terms_rec.attribute1
14009 , x_attribute2 => p_lease_terms_rec.attribute2
14010 , x_attribute3 => p_lease_terms_rec.attribute3
14011 , x_attribute4 => p_lease_terms_rec.attribute4
14012 , x_attribute5 => p_lease_terms_rec.attribute5
14013 , x_attribute6 => p_lease_terms_rec.attribute6
14014 , x_attribute7 => p_lease_terms_rec.attribute7
14015 , x_attribute8 => p_lease_terms_rec.attribute8
14016 , x_attribute9 => p_lease_terms_rec.attribute9
14017 , x_attribute10 => p_lease_terms_rec.attribute10
14018 , x_attribute11 => p_lease_terms_rec.attribute11
14019 , x_attribute12 => p_lease_terms_rec.attribute12
14020 , x_attribute13 => p_lease_terms_rec.attribute13
14021 , x_attribute14 => p_lease_terms_rec.attribute14
14022 , x_attribute15 => p_lease_terms_rec.attribute15
14023 , x_project_attribute_category => p_lease_terms_rec.project_attribute_category
14024 , x_project_attribute1 => p_lease_terms_rec.attribute1
14025 , x_project_attribute2 => p_lease_terms_rec.attribute2
14026 , x_project_attribute3 => p_lease_terms_rec.attribute3
14027 , x_project_attribute4 => p_lease_terms_rec.attribute4
14028 , x_project_attribute5 => p_lease_terms_rec.attribute5
14029 , x_project_attribute6 => p_lease_terms_rec.attribute6
14030 , x_project_attribute7 => p_lease_terms_rec.attribute7
14031 , x_project_attribute8 => p_lease_terms_rec.attribute8
14032 , x_project_attribute9 => p_lease_terms_rec.attribute9
14033 , x_project_attribute10 => p_lease_terms_rec.attribute10
14034 , x_project_attribute11 => p_lease_terms_rec.attribute11
14035 , x_project_attribute12 => p_lease_terms_rec.attribute12
14036 , x_project_attribute13 => p_lease_terms_rec.attribute13
14037 , x_project_attribute14 => p_lease_terms_rec.attribute14
14038 , x_project_attribute15 => p_lease_terms_rec.attribute15
14039 , x_creation_date => SYSDATE--p_lease_terms_rec.creation_date
14040 , x_created_by => fnd_global.user_id--p_lease_terms_rec.
14041 , x_last_update_date => SYSDATE --p_lease_terms_rec.
14042 , x_last_updated_by => fnd_global.user_id--p_lease_terms_rec.
14043 , x_last_update_login => fnd_global.login_id--p_lease_terms_rec.
14044 , x_calling_form => NULL
14045 , x_org_id => g_org_id--p_lease_terms_rec.org_id--OOPS
14046 , x_lease_status => p_lease_terms_rec.lease_status
14047 , x_recoverable_flag => p_lease_terms_rec.recoverable_flag
14048 , x_area_type_code => p_lease_terms_rec.area_type_code
14049 , x_area => p_lease_terms_rec.area
14050 , x_grouping_rule_id => p_lease_terms_rec.grouping_rule_id
14051 , x_term_altered_flag => p_lease_terms_rec.term_altered_flag
14052 , x_source_code => p_lease_terms_rec.source_code
14053 , x_term_comments => p_lease_terms_rec.term_comments
14054 , x_norm_start_date => p_lease_terms_rec.norm_start_date
14055 , x_parent_term_id => p_lease_terms_rec.parent_term_id
14056 , x_index_norm_flag => p_lease_terms_rec.index_norm_flag
14057 , x_include_in_var_rent => p_lease_terms_rec.include_in_var_rent
14058 , x_recur_bb_calc_date => p_lease_terms_rec.recur_bb_calc_date
14059 , x_opex_agr_id => p_lease_terms_rec.opex_agr_id
14060 , x_opex_recon_id => p_lease_terms_rec.opex_recon_id
14061 , x_opex_type => p_lease_terms_rec.opex_type
14062 );
14063 pvt_debug(g_pkg_name||'INSERT_PAYMENT_TERMS_ROW:Calling PNT_PAYMENT_TERMS_PKG.INSERT_ROW Succesful',3);
14064
14065 x_return_status := fnd_api.g_ret_sts_success;
14066 EXCEPTION
14067 WHEN OTHERS THEN
14068 ----------------------dbms_output.put_line('Exception:In Insert:'||SQLERRM);--Rupak
14069 pvt_debug(g_pkg_name||'INSERT_PAYMENT_TERMS_ROW:Exception:'||SQLERRM,3);
14070 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14071 fnd_message.set_token ('P_TEXT', 'pn_lease_pvt:create_payment' || SQLERRM);
14072 fnd_msg_pub.ADD;
14073 x_return_status := fnd_api.g_ret_sts_unexp_error;
14074
14075 END insert_payment_terms_row;
14076
14077 PROCEDURE update_payment_terms_row (
14078 p_lease_terms_rec IN OUT NOCOPY lease_terms_rec
14079 , p_lease_id IN NUMBER
14080 , p_change_lease_id IN NUMBER
14081 , p_lease_context IN VARCHAR2
14082 , x_return_status OUT NOCOPY VARCHAR2
14083 )
14084 IS
14085 BEGIN
14086 ----------------------dbms_output.put_line('IN UPDATE : p_lease_terms_rec.payment_term_id'||p_lease_terms_rec.payment_term_id);--Rupak
14087 x_return_status := fnd_api.g_ret_sts_success;
14088 pnt_payment_terms_pkg.update_row (x_payment_term_id => p_lease_terms_rec.payment_term_id
14089 , x_payment_purpose_code => p_lease_terms_rec.payment_purpose_code
14090 , x_payment_term_type_code => p_lease_terms_rec.payment_term_type_code
14091 , x_frequency_code => p_lease_terms_rec.frequency_code
14092 , x_lease_id => p_lease_terms_rec.lease_id
14093 , x_lease_change_id => p_lease_terms_rec.lease_change_id
14094 , x_start_date => trunc(p_lease_terms_rec.start_date)
14095 , x_end_date => trunc(p_lease_terms_rec.end_date)
14096 , x_vendor_id => p_lease_terms_rec.vendor_id
14097 , x_vendor_site_id => p_lease_terms_rec.vendor_site_id
14098 , x_customer_id => p_lease_terms_rec.customer_id
14099 , x_customer_site_use_id => p_lease_terms_rec.customer_site_use_id
14100 , x_target_date => trunc(p_lease_terms_rec.target_date)
14101 , x_actual_amount => p_lease_terms_rec.actual_amount
14102 , x_estimated_amount => p_lease_terms_rec.estimated_amount
14103 , x_set_of_books_id => p_lease_terms_rec.set_of_books_id
14104 , x_currency_code => p_lease_terms_rec.currency_code
14105 , x_rate => p_lease_terms_rec.rate
14106 , x_normalize => p_lease_terms_rec.normalize
14107 , x_location_id => p_lease_terms_rec.location_id
14108 , x_schedule_day => p_lease_terms_rec.schedule_day
14109 , x_cust_ship_site_id => p_lease_terms_rec.cust_ship_site_id
14110 , x_ap_ar_term_id => p_lease_terms_rec.ap_ar_term_id
14111 , x_cust_trx_type_id => p_lease_terms_rec.cust_trx_type_id
14112 , x_project_id => p_lease_terms_rec.project_id
14113 , x_task_id => p_lease_terms_rec.task_id
14114 , x_organization_id => p_lease_terms_rec.organization_id
14115 , x_expenditure_type => p_lease_terms_rec.expenditure_type
14116 , x_expenditure_item_date => trunc(p_lease_terms_rec.expenditure_item_date)
14117 , x_tax_group_id => p_lease_terms_rec.tax_group_id
14118 , x_tax_code_id => p_lease_terms_rec.tax_code_id
14119 , x_tax_classification_code => p_lease_terms_rec.tax_classification_code
14120 , x_tax_included => p_lease_terms_rec.tax_included
14121 , x_distribution_set_id => p_lease_terms_rec.distribution_set_id
14122 , x_inv_rule_id => p_lease_terms_rec.inv_rule_id
14123 , x_account_rule_id => p_lease_terms_rec.account_rule_id
14124 , x_salesrep_id => p_lease_terms_rec.salesrep_id
14125 , x_approved_by => p_lease_terms_rec.approved_by
14126 , x_status => p_lease_terms_rec.status
14127 , x_index_period_id => p_lease_terms_rec.index_period_id
14128 , x_index_term_indicator => p_lease_terms_rec.index_term_indicator
14129 , x_po_header_id => p_lease_terms_rec.po_header_id
14130 , x_cust_po_number => p_lease_terms_rec.cust_po_number
14131 , x_receipt_method_id => p_lease_terms_rec.receipt_method_id
14132 , x_var_rent_inv_id => p_lease_terms_rec.var_rent_inv_id
14133 , x_var_rent_type => p_lease_terms_rec.var_rent_type
14134 , x_changed_flag => p_lease_terms_rec.changed_flag
14135 , x_attribute_category => p_lease_terms_rec.attribute_category
14136 , x_attribute1 => p_lease_terms_rec.attribute1
14137 , x_attribute2 => p_lease_terms_rec.attribute2
14138 , x_attribute3 => p_lease_terms_rec.attribute3
14139 , x_attribute4 => p_lease_terms_rec.attribute4
14140 , x_attribute5 => p_lease_terms_rec.attribute5
14141 , x_attribute6 => p_lease_terms_rec.attribute6
14142 , x_attribute7 => p_lease_terms_rec.attribute7
14143 , x_attribute8 => p_lease_terms_rec.attribute8
14144 , x_attribute9 => p_lease_terms_rec.attribute9
14145 , x_attribute10 => p_lease_terms_rec.attribute10
14146 , x_attribute11 => p_lease_terms_rec.attribute11
14147 , x_attribute12 => p_lease_terms_rec.attribute12
14148 , x_attribute13 => p_lease_terms_rec.attribute13
14149 , x_attribute14 => p_lease_terms_rec.attribute14
14150 , x_attribute15 => p_lease_terms_rec.attribute15
14151 , x_project_attribute_category => p_lease_terms_rec.project_attribute_category
14152 , x_project_attribute1 => p_lease_terms_rec.project_attribute1
14153 , x_project_attribute2 => p_lease_terms_rec.project_attribute2
14154 , x_project_attribute3 => p_lease_terms_rec.project_attribute3
14155 , x_project_attribute4 => p_lease_terms_rec.project_attribute4
14156 , x_project_attribute5 => p_lease_terms_rec.project_attribute5
14157 , x_project_attribute6 => p_lease_terms_rec.project_attribute6
14158 , x_project_attribute7 => p_lease_terms_rec.project_attribute7
14159 , x_project_attribute8 => p_lease_terms_rec.project_attribute8
14160 , x_project_attribute9 => p_lease_terms_rec.project_attribute9
14161 , x_project_attribute10 => p_lease_terms_rec.project_attribute10
14162 , x_project_attribute11 => p_lease_terms_rec.project_attribute11
14163 , x_project_attribute12 => p_lease_terms_rec.project_attribute12
14164 , x_project_attribute13 => p_lease_terms_rec.project_attribute13
14165 , x_project_attribute14 => p_lease_terms_rec.project_attribute14
14166 , x_project_attribute15 => p_lease_terms_rec.project_attribute15
14167 , x_last_update_date => SYSDATE
14168 , x_last_updated_by => p_lease_terms_rec.last_updated_by
14169 , x_last_update_login => p_lease_terms_rec.last_update_login
14170 , x_recoverable_flag => p_lease_terms_rec.recoverable_flag
14171 , x_area_type_code => p_lease_terms_rec.area_type_code
14172 , x_area => p_lease_terms_rec.area
14173 , x_grouping_rule_id => p_lease_terms_rec.grouping_rule_id
14174 , x_term_altered_flag => p_lease_terms_rec.term_altered_flag
14175 , x_source_code => p_lease_terms_rec.source_code
14176 , x_term_comments => p_lease_terms_rec.term_comments
14177 , x_include_in_var_rent => p_lease_terms_rec.include_in_var_rent
14178 , x_opex_agr_id => p_lease_terms_rec.opex_agr_id
14179 , x_opex_recon_id => p_lease_terms_rec.opex_recon_id
14180 , x_opex_type => p_lease_terms_rec.opex_type
14181 , x_term_template_id => p_lease_terms_rec.term_template_id
14182 );
14183
14184 ----------------------dbms_output.put_line('After Update Row:Payment');--Rupak
14185 pvt_debug(g_pkg_name||'UPDATE_PAYMENT_TERMS_ROW:PNT_PAYMENT_TERMS_PKG.UPDATE_ROW Sucessful',3);
14186 EXCEPTION
14187 WHEN OTHERS THEN
14188 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14189 fnd_message.set_token ('P_TEXT', 'pn_lease_pvt.update_payment' || SQLERRM);
14190 fnd_msg_pub.ADD;
14191 x_return_status := fnd_api.g_ret_sts_unexp_error;
14192 pvt_debug(g_pkg_name||'UPDATE_PAYMENT_TERMS_ROW:PNT_PAYMENT_TERMS_PKG.UPDATE_ROW:Exception'||SQLERRM,3);
14193 END update_payment_terms_row;
14194
14195 PROCEDURE validate_payment_terms_tbl
14196 ( p_api_name_full IN VARCHAR2
14197 , p_payment_terms_tbl IN OUT NOCOPY lease_terms_tbl
14198 , p_lease_id IN NUMBER
14199 , p_lease_class_code IN VARCHAR2
14200 , p_lease_commencement_date IN DATE
14201 , p_lease_termination_date IN DATE
14202 , p_termtemp_type IN VARCHAR2
14203 , p_parent_lease_id IN NUMBER
14204 , p_lease_change_id IN NUMBER
14205 , p_lease_status IN VARCHAR2
14206 , p_lease_context IN VARCHAR2
14207 , p_operation IN VARCHAR2
14208 , x_return_status OUT NOCOPY VARCHAR2
14209 )
14210 IS
14211 l_terms_record_cnt NUMBER := PN_LEASE_UTILS.G_PN_MISS_NUM;
14212 l_lease_terms_rec lease_terms_rec;
14213 l_return_status VARCHAR2(30) := NULL;
14214 l_default_flag VARCHAR2(1);
14215 l_error_flag VARCHAR2(1);
14216
14217 l_err_payment_count NUMBER :=0;
14218
14219 l_api_name CONSTANT VARCHAR2 (30) := p_operation;
14220 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name|| '.'|| l_api_name;
14221
14222 l_exp_rev VARCHAR2(240);
14223 l_lia_rec VARCHAR2(240);
14224 l_accrued VARCHAR2(240);
14225
14226 j NUMBER:=0;
14227 k NUMBER:=0;
14228 m NUMBER:=0;
14229
14230 l_expense_account_id NUMBER:= NULL;
14231 l_receivable_account_id NUMBER:= NULL;
14232 l_accrual_account_id NUMBER:= NULL;
14233
14234 l_terms_exp_rev_cnt NUMBER:= NULL;
14235 l_terms_accrual_cnt NUMBER:= NULL;
14236 l_terms_liab_rcvl_cnt NUMBER:= NULL;
14237
14238 l_tcc_status VARCHAR2(30);
14239
14240 x_table terms_exp_rev_accounts_tbl;
14241
14242 x_distribution_id NUMBER;
14243 x_rowid VARCHAR2(18);
14244
14245
14246 l_max_rownum NUMBER;
14247 l_record_count NUMBER;
14248 l_count NUMBER := 0;
14249
14250 CURSOR cur_dist_details(l_term_id NUMBER,l_acc_code VARCHAR2)
14251 IS
14252 SELECT rowid row_id,rownum row_num,pda.*
14253 FROM pn_distributions_all pda
14254 WHERE pda.payment_term_id = l_term_id
14255 AND pda.account_class = l_acc_code
14256 AND pda.org_id = g_org_id
14257 AND rownum = 1;
14258
14259 l_record_count_exp_rev NUMBER := 0;
14260 l_record_count_liab_rcvl NUMBER := 0;
14261 l_record_count_accrual NUMBER := 0;
14262
14263 l_acc_code VARCHAR2(100);
14264
14265 l_payment_term_type_code pn_payment_terms_all.payment_term_type_code %TYPE := NULL;
14266 l_p_ar_term_id pn_payment_terms_all.ap_ar_term_id%TYPE := NULL;
14267 l_cust_trx_type_id pn_payment_terms_all.cust_trx_type_id %TYPE := NULL;
14268 l_payment_purpose_code pn_payment_terms_all.payment_purpose_code%TYPE := NULL;
14269 l_schedule_day pn_payment_terms_all.schedule_day%TYPE := NULL;
14270 l_currency_code pn_payment_terms_all.currency_code%TYPE := NULL;
14271 l_vendor_id pn_payment_terms_all.vendor_id%TYPE := NULL;
14272 l_vendor_site_id pn_payment_terms_all.vendor_site_id%TYPE := NULL;
14273 l_customer_id NUMBER := NULL;
14274 l_customer_site_use_id pn_payment_terms_all.customer_site_use_id%TYPE := NULL;
14275
14276 l_count_template NUMBER := NULL;
14277 l_acc_exist_count NUMBER := NULL;
14278 l_lia_exist_count NUMBER := NULL;
14279
14280 l_project_info VARCHAR2(1):='N';
14281 l_check VARCHAR2(1) := NULL;
14282 l_check_date DATE;
14283
14284 l_term_project_id pn_payment_terms_all.project_id%TYPE := NULL;
14285 l_term_task_id pn_payment_terms_all.task_id%TYPE := NULL;
14286 l_term_expenditure_type pn_payment_terms_all.expenditure_type%TYPE := NULL;
14287 l_term_expenditure_item_date pn_payment_terms_all.expenditure_item_date%TYPE := NULL;
14288 l_term_organization_id pn_payment_terms_all.organization_id%TYPE := NULL;
14289
14290 CURSOR exp_rev_account_cur(l_term_template_id NUMBER,l_account_class VARCHAR2)
14291 is
14292 select account_id,percentage
14293 from pn_distributions_all
14294 where term_template_id = l_term_template_id
14295 and account_class = l_account_class
14296 and payment_term_id is null; --Bug 16423198
14297
14298 l_account_code pn_distributions_all.account_class%TYPE; --Bug16423198
14299 l_act_count number;--Bug16423198
14300
14301
14302 BEGIN
14303 --.put_line('In validate_payment_terms_tbl:1');--Rupak
14304 -- Standard start of API savepoint
14305 SAVEPOINT validate_payment_terms_tbl;
14306 -- Initialize the return status.
14307 x_return_status := FND_API.G_RET_STS_SUCCESS;--OOPS(RHIA)
14308
14309 l_terms_record_cnt := p_payment_terms_tbl.COUNT;
14310 ----------------------dbms_output.put_line('In validate_payment_terms_tbl:2;l_terms_record_cnt'||l_terms_record_cnt);--Rupak
14311
14312
14313 FOR i in 1..l_terms_record_cnt
14314 LOOP
14315 BEGIN
14316 l_payment_term_type_code := NULL;
14317 l_p_ar_term_id := NULL;
14318 l_cust_trx_type_id := NULL;
14319 l_payment_purpose_code := NULL;
14320 l_schedule_day := NULL;
14321 l_currency_code := NULL;
14322 l_vendor_id := NULL;
14323 l_vendor_site_id := NULL;
14324 l_customer_id := NULL;
14325 l_customer_site_use_id := NULL;
14326
14327 l_terms_exp_rev_cnt :=0;
14328 l_terms_liab_rcvl_cnt :=0;
14329 l_terms_accrual_cnt :=0;
14330
14331 l_exp_rev :=NULL;
14332 l_lia_rec :=NULL;
14333 l_accrued :=NULL;
14334
14335 -- --------------------dbms_output.put_line('Hi: I'||i);--Rupak
14336 l_default_flag := 'N';
14337 p_payment_terms_tbl(i).error_flag := 'N';
14338 k:=0; --100% for different Payment Records
14339 -----------------------------
14340
14341 IF ( p_payment_terms_tbl(i).term_template_id IS NOT NULL OR p_payment_terms_tbl(i).term_template_name IS NOT NULL)
14342 THEN
14343 pn_lease_utils.get_term_template_id (p_parameter_name => l_param_lease_template
14344 , p_termtemp_name => p_payment_terms_tbl(i).term_template_name
14345 , p_operation => p_operation
14346 , p_termtemp_type => p_termtemp_type
14347 , p_org_id => g_org_id
14348 , x_return_status => x_return_status
14349 , x_termtemp_id => p_payment_terms_tbl(i).term_template_id
14350 );
14351
14352 ----------------------dbms_output.put_line ('GET_TERM_TEMPLATE_ID: '||p_lease_rec.term_template_id);--Rupak
14353 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Deriving Template ID:'||p_payment_terms_tbl(i).term_template_id,3);
14354 ------------------------dbms_output.put_line('x_return_status: '|| x_return_status);
14355 IF (x_return_status = fnd_api.g_ret_sts_error)
14356 THEN
14357 --l_error_flag:='Y';
14358 fnd_message.set_name ('PN', 'PN_INVALID_TERM_TEMPLATE');
14359 fnd_message.set_token ('TERM_TEMPLATE_ID', get_miss_num_decode(p_payment_terms_tbl(i).term_template_id));
14360 fnd_message.set_token ('TERM_TEMPLATE', get_miss_char_decode(p_payment_terms_tbl(i).term_template_name));
14361 fnd_msg_pub.ADD;
14362 RAISE fnd_api.g_exc_error;
14363 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14364 THEN
14365 --l_error_flag:='Y';
14366 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14367 fnd_message.set_token ('COLUMN', SUBSTR(l_param_lease_template,3));
14368 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14369 RAISE fnd_api.g_exc_unexpected_error;
14370 END IF;
14371
14372 IF x_return_status = fnd_api.g_ret_sts_success
14373 THEN
14374 IF pn_r12_util_pkg.is_r12
14375 THEN
14376
14377 l_tcc_status := pn_r12_util_pkg.check_tax_upgrade (p_payment_terms_tbl(i).term_template_id);
14378 IF l_tcc_status = 'PN_NO_TCC_FOUND' THEN
14379 fnd_message.set_name('PN','PN_NO_TCC_FOUND');
14380 fnd_message.set_token ('API_NAME', l_api_name_full);
14381 fnd_message.set_token ('R12_FLAG', p_payment_terms_tbl(i).term_template_id);
14382 fnd_msg_pub.ADD;
14383
14384 l_error_flag:='Y';
14385 RAISE fnd_api.g_exc_error;
14386 ELSIF l_tcc_status = 'PN_UPG_TCC' THEN
14387 fnd_message.set_name('PN','PN_UPG_TCC_FOUND');
14388 fnd_message.set_token ('API_NAME', l_api_name_full);
14389 fnd_message.set_token ('R12_FLAG', p_payment_terms_tbl(i).term_template_id);
14390 fnd_msg_pub.ADD;
14391 END IF;
14392
14393 END IF;
14394
14395 END IF;
14396
14397 END IF;
14398 ------dbms_output.put_line('TermTemplate:HELLO:'||p_payment_terms_tbl(i).term_template_id);
14399 IF p_payment_terms_tbl(i).term_template_id IS NOT NULL THEN
14400 IF(trim(p_operation) = ('CREATE_TERMS')) THEN
14401 BEGIN
14402 ------dbms_output.put_line('TermTemplate:HELLO:2'||p_operation);
14403 SELECT payment_term_type_code
14404 , ap_ar_term_id
14405 , cust_trx_type_id
14406 , payment_purpose_code
14407 , schedule_day
14408 , currency_code
14409 , vendor_id
14410 , vendor_site_id
14411 , customer_id
14412 , customer_site_use_id
14413 INTO l_payment_term_type_code
14414 ,l_p_ar_term_id
14415 ,l_cust_trx_type_id
14416 ,l_payment_purpose_code
14417 ,l_schedule_day
14418 ,l_currency_code
14419 ,l_vendor_id
14420 ,l_vendor_site_id
14421 ,l_customer_id
14422 ,l_customer_site_use_id
14423 FROM pn_term_templates_all
14424 WHERE term_template_id = p_payment_terms_tbl(i).term_template_id;
14425
14426 EXCEPTION
14427 WHEN OTHERS THEN
14428 p_payment_terms_tbl(i).error_flag := 'Y';
14429 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14430 fnd_message.set_token ('COLUMN', 'INVALID TEMPLATE ID');
14431 fnd_msg_pub.ADD;
14432 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14433 RAISE fnd_api.g_exc_unexpected_error;
14434 END;
14435 ELSE
14436 ------dbms_output.put_line('TermTemplate:HELLO:3'||p_operation);
14437 SELECT COUNT(1)
14438 INTO l_count_template
14439 FROM pn_payment_terms_all
14440 WHERE payment_term_id = p_payment_terms_tbl(i).payment_term_id
14441 AND term_template_id = p_payment_terms_tbl(i).term_template_id
14442 AND org_id = g_org_id;
14443 IF(l_count_template=1) THEN
14444 pvt_debug(g_pkg_name||'VALIDATE_TERMS_TBL:Template Passed is same as the Created Template',3);
14445 ELSIF(l_count_template=0) THEN
14446 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
14447 fnd_message.set_token('ERR_MSG', 'Template Name/ID is non-updatable in Update Mode');
14448 fnd_msg_pub.ADD;
14449 RAISE fnd_api.g_exc_error;
14450 END IF;
14451
14452 END IF;
14453 END IF;
14454
14455 ------------------------------
14456 IF trim(p_operation) = trim('CREATE_TERMS') THEN--AND p_payment_terms_tbl(i).term_template_name IS NULL THEN
14457 ----------------------dbms_output.put_line('Hello:1');
14458 IF (p_payment_terms_tbl(i).payment_term_type_code IS NULL AND p_payment_terms_tbl(i).payment_term_type IS NULL) THEN
14459 IF (l_payment_term_type_code IS NULL) THEN
14460 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14461 fnd_message.set_token ('API_NAME', p_api_name_full);
14462 fnd_message.set_token ('NULL_PARAM', 'PAYMENT_TERM_TYPE');
14463 fnd_msg_pub.ADD;
14464 RAISE fnd_api.g_exc_error;
14465 ELSE
14466 p_payment_terms_tbl(i).payment_term_type_code := l_payment_term_type_code;
14467 END IF;
14468 END IF;
14469
14470 IF (p_payment_terms_tbl(i).ap_ar_term_id IS NULL AND p_termtemp_type <> 'PAYMENT') THEN
14471 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'PAYMENT_TERM');
14472 IF (l_p_ar_term_id IS NULL) THEN
14473 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14474 fnd_message.set_token ('API_NAME', p_api_name_full);
14475 fnd_message.set_token ('NULL_PARAM', 'PAYMENT_TERM');
14476 fnd_msg_pub.ADD;
14477 RAISE fnd_api.g_exc_error;
14478 ELSE
14479 p_payment_terms_tbl(i).ap_ar_term_id:= l_p_ar_term_id;
14480 END IF;
14481 END IF;
14482
14483 IF (p_payment_terms_tbl(i).cust_trx_type_id IS NULL AND p_termtemp_type <> 'PAYMENT') THEN
14484 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'TRANSACTION_TYPE');
14485 IF(l_cust_trx_type_id IS NULL) THEN
14486 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14487 fnd_message.set_token ('API_NAME', p_api_name_full);
14488 fnd_message.set_token ('NULL_PARAM', 'TRANSACTION_TYPE');
14489 fnd_msg_pub.ADD;
14490 RAISE fnd_api.g_exc_error;
14491 ELSE
14492 p_payment_terms_tbl(i).cust_trx_type_id := l_cust_trx_type_id;
14493 END IF;
14494 END IF;
14495
14496 IF (p_payment_terms_tbl(i).start_date IS NULL) THEN
14497 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'START_DATE');
14498 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14499 fnd_message.set_token ('API_NAME', p_api_name_full);
14500 fnd_message.set_token ('NULL_PARAM', 'START_DATE');
14501 fnd_msg_pub.ADD;
14502 RAISE fnd_api.g_exc_error;
14503 END IF;
14504
14505 IF (p_payment_terms_tbl(i).end_date IS NULL)
14506 THEN
14507 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'END_DATE');
14508 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14509 fnd_message.set_token ('API_NAME', p_api_name_full);
14510 fnd_message.set_token ('NULL_PARAM', 'END_DATE');
14511 fnd_msg_pub.ADD;
14512 RAISE fnd_api.g_exc_error;
14513 END IF;
14514
14515 IF (p_payment_terms_tbl(i).payment_purpose_code IS NULL AND p_payment_terms_tbl(i).payment_purpose IS NULL) THEN
14516 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'PAYMENT_PURPOSE');
14517 IF(l_payment_purpose_code IS NULL) THEN
14518 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14519 fnd_message.set_token ('API_NAME', p_api_name_full);
14520 fnd_message.set_token ('NULL_PARAM', 'PAYMENT_PURPOSE');
14521 fnd_msg_pub.ADD;
14522 RAISE fnd_api.g_exc_error;
14523 ELSE
14524 p_payment_terms_tbl(i).payment_purpose_code := l_payment_purpose_code;
14525 END IF;
14526 END IF;
14527 -----------------------dbms_output.put_line('Hello:3');--Rupak
14528 IF (p_payment_terms_tbl(i).frequency_code IS NULL AND p_payment_terms_tbl(i).frequency IS NULL) THEN
14529 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'PAYMENT_FREQUENCY');
14530 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14531 fnd_message.set_token ('API_NAME', p_api_name_full);
14532 fnd_message.set_token ('NULL_PARAM', 'PAYMENT_FREQUENCY');
14533 fnd_msg_pub.ADD;
14534 RAISE fnd_api.g_exc_error;
14535 END IF;
14536 ----------------------dbms_output.put_line('Hello:4');--Rupak
14537 IF (p_payment_terms_tbl(i).schedule_day IS NULL) THEN
14538 -- PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'SCHEDULE_DAY');
14539 IF(l_schedule_day IS NULL) THEN
14540 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14541 fnd_message.set_token ('API_NAME', p_api_name_full);
14542 fnd_message.set_token ('NULL_PARAM', 'SCHEDULE_DAY');
14543 fnd_msg_pub.ADD;
14544 RAISE fnd_api.g_exc_error;
14545 ELSE
14546 p_payment_terms_tbl(i).schedule_day := l_schedule_day;
14547 END IF;
14548 END IF;
14549 ----------------------dbms_output.put_line('Hello:5');--Rupak
14550 IF (p_payment_terms_tbl(i).currency_code IS NULL) THEN
14551 IF(l_currency_code IS NULL) THEN
14552 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'CURRENCY_CODE');
14553 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14554 fnd_message.set_token ('API_NAME', p_api_name_full);
14555 fnd_message.set_token ('NULL_PARAM', 'CURRENCY_CODE');
14556 fnd_msg_pub.ADD;
14557 RAISE fnd_api.g_exc_error;
14558 ELSE
14559 p_payment_terms_tbl(i).currency_code := l_currency_code;
14560 END IF;
14561 END IF;
14562 ----------------------dbms_output.put_line('Hello:6');--Rupak
14563 IF (p_payment_terms_tbl(i).vendor_name IS NULL AND p_payment_terms_tbl(i).vendor_id IS NULL AND p_termtemp_type = 'PAYMENT') THEN
14564 IF(l_vendor_id IS NULL) THEN
14565 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'SUPPLIER_NAME');
14566 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14567 fnd_message.set_token ('API_NAME', p_api_name_full);
14568 fnd_message.set_token ('NULL_PARAM', 'SUPPLIER_NAME');
14569 fnd_msg_pub.ADD;
14570 RAISE fnd_api.g_exc_error;
14571 ELSE
14572 p_payment_terms_tbl(i).vendor_id := l_vendor_id;
14573 END IF;
14574 END IF;
14575 ----------------------dbms_output.put_line('Hello:7');--Rupak
14576 IF (p_payment_terms_tbl(i).vendor_site_code IS NULL AND p_payment_terms_tbl(i).vendor_site_id IS NULL AND p_termtemp_type = 'PAYMENT') THEN
14577 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'SUPPLIER_SITE');
14578 IF(l_vendor_site_id IS NULL) THEN
14579 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14580 fnd_message.set_token ('API_NAME', p_api_name_full);
14581 fnd_message.set_token ('NULL_PARAM', 'SUPPLIER_SITE');
14582 fnd_msg_pub.ADD;
14583 RAISE fnd_api.g_exc_error;
14584 ELSE
14585 p_payment_terms_tbl(i).vendor_site_id := l_vendor_site_id;
14586 END IF;
14587 END IF;
14588
14589 --Customer
14590 IF (p_payment_terms_tbl(i).customer_name IS NULL AND p_payment_terms_tbl(i).customer_id IS NULL AND p_termtemp_type <> 'PAYMENT') THEN
14591 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'CUSTOMER_NAME');
14592 IF( l_customer_id IS NULL) THEN
14593 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14594 fnd_message.set_token ('API_NAME', p_api_name_full);
14595 fnd_message.set_token ('NULL_PARAM', 'CUSTOMER_NAME');
14596 fnd_msg_pub.ADD;
14597 RAISE fnd_api.g_exc_error;
14598 ELSE
14599 p_payment_terms_tbl(i).customer_id := l_customer_id;
14600 END IF;
14601 END IF;
14602 ----------------------dbms_output.put_line('Hello:8');--Rupak
14603 IF (p_payment_terms_tbl(i).customer_site_code IS NULL AND p_payment_terms_tbl(i).customer_site_use_id IS NULL AND p_termtemp_type <> 'PAYMENT') THEN
14604 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'CUSTOMER_SITE');
14605 IF( l_customer_site_use_id IS NULL) THEN
14606 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14607 fnd_message.set_token ('API_NAME', p_api_name_full);
14608 fnd_message.set_token ('NULL_PARAM', 'CUSTOMER_SITE');
14609 fnd_msg_pub.ADD;
14610 RAISE fnd_api.g_exc_error;
14611 ELSE
14612 p_payment_terms_tbl(i).customer_site_use_id := l_customer_site_use_id;
14613 END IF;
14614 END IF;
14615
14616 IF (p_payment_terms_tbl(i).actual_amount IS NULL AND p_payment_terms_tbl(i).estimated_amount IS NULL)
14617 THEN
14618 --PN_LEASE_UTILS.add_null_parameter_msg (p_token_apiname => p_api_name_full, p_token_nullparam => 'AMOUNT');
14619 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
14620 fnd_message.set_token ('API_NAME', p_api_name_full);
14621 fnd_message.set_token ('NULL_PARAM', 'AMOUNT');
14622 fnd_msg_pub.ADD;
14623 RAISE fnd_api.g_exc_error;
14624 END IF;
14625 ----------------------dbms_output.put_line('Hello:9');--Rupak
14626 END IF;
14627
14628 ---------------------------------------------
14629 -- --------------------dbms_output.put_line('Hello:9.2');--Rupak
14630 -- Validate the Payment Term Type
14631 IF ( ( p_payment_terms_tbl (i).payment_term_type_code IS NOT NULL)
14632 --AND p_payment_terms_tbl (i).payment_term_type_code <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14633 OR ( p_payment_terms_tbl (i).payment_term_type IS NOT NULL)
14634 --AND p_payment_terms_tbl (i).payment_term_type <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14635 )
14636 THEN
14637 -- --------------------dbms_output.put_line('Hello:10');--Rupak
14638 PN_LEASE_UTILS.GET_LOOKUP_CODE( p_parameter_name => l_param_payment_type
14639 , p_operation => p_operation
14640 , p_lookup_meaning => p_payment_terms_tbl(i).payment_term_type
14641 , p_lookup_type => l_pn_payment_term_type --'PN_PAYMENT_TERM_TYPE'
14642 , x_lookup_type_code => p_payment_terms_tbl(i).payment_term_type_code
14643 , x_return_status => x_return_status
14644 );
14645 pvt_debug(g_pkg_name||'VALIDATE_PAYMENT_TERMS_TBL:PAYMENT_TYPE CODE:'||p_payment_terms_tbl(i).payment_term_type_code,3);
14646 IF (x_return_status = fnd_api.g_ret_sts_error)
14647 THEN
14648 p_payment_terms_tbl(i).error_flag := 'Y';
14649 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
14650 fnd_message.set_token ('LOOKUP_TYPE', l_pn_payment_term_type);
14651 fnd_message.set_token ('LOOKUP_MEANING',get_miss_char_decode(p_payment_terms_tbl(i).payment_term_type));
14652 fnd_message.set_token ('LOOKUP_CODE',get_miss_char_decode(p_payment_terms_tbl(i).payment_term_type_code));
14653 fnd_msg_pub.ADD;
14654 RAISE FND_API.G_EXC_ERROR;
14655 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14656 THEN
14657 p_payment_terms_tbl(i).error_flag := 'Y';
14658 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14659 fnd_message.set_token ('COLUMN', SUBSTR(l_param_payment_type,3));
14660 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14661 fnd_msg_pub.ADD;
14662 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
14663 END IF;
14664 END IF;
14665 --.put_line('In validate_payment_terms_tbl:3');--Rupak
14666 -- Validate the Payment Purpose
14667 IF ( ( p_payment_terms_tbl (i).payment_purpose_code IS NOT NULL)
14668 --AND p_payment_terms_tbl (i).payment_purpose_code <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14669 OR ( p_payment_terms_tbl (i).payment_purpose IS NOT NULL)
14670 --AND p_payment_terms_tbl (i).payment_purpose <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14671 )
14672 THEN
14673 ----------------------dbms_output.put_line('Hello:12');--Rupak
14674 PN_LEASE_UTILS.GET_LOOKUP_CODE( p_parameter_name => l_param_payment_purpose
14675 , p_operation => p_operation
14676 , p_lookup_meaning => p_payment_terms_tbl(i).payment_purpose
14677 , p_lookup_type => l_pn_payment_purpose_type --'PN_PAYMENT_PURPOSE_TYPE'
14678 , x_lookup_type_code => p_payment_terms_tbl(i).payment_purpose_code
14679 , x_return_status => x_return_status
14680 );
14681 pvt_debug(g_pkg_name||'VALIDATE_PAYMENT_TERMS_TBL:PAYMENT_PURPOSE CODE:'||p_payment_terms_tbl(i).payment_purpose_code,3);
14682
14683 IF (x_return_status = fnd_api.g_ret_sts_error)
14684 THEN
14685 p_payment_terms_tbl(i).error_flag := 'Y';
14686 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
14687 fnd_message.set_token ('LOOKUP_TYPE', l_pn_payment_purpose_type);
14688 fnd_message.set_token ('LOOKUP_MEANING',get_miss_char_decode(p_payment_terms_tbl(i).payment_purpose));
14689 fnd_message.set_token ('LOOKUP_CODE',get_miss_char_decode(p_payment_terms_tbl(i).payment_purpose_code));
14690 fnd_msg_pub.ADD;
14691 RAISE FND_API.G_EXC_ERROR;
14692 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14693 THEN
14694 p_payment_terms_tbl(i).error_flag := 'Y';
14695 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14696 fnd_message.set_token ('COLUMN', SUBSTR(l_param_payment_purpose,3));
14697 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14698 fnd_msg_pub.ADD;
14699 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
14700 END IF;
14701 END IF;
14702 ----------------------dbms_output.put_line('In validate_payment_terms_tbl:4');--Rupak
14703 -- Validate the Payment Frequency
14704 IF ( ( p_payment_terms_tbl (i).frequency_code IS NOT NULL)
14705 --AND p_payment_terms_tbl (i).frequency_code <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14706 OR ( p_payment_terms_tbl (i).frequency IS NOT NULL)
14707 --AND p_payment_terms_tbl (i).frequency <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14708 )
14709 THEN
14710 ----------------------dbms_output.put_line('Hello:13');--Rupak
14711 PN_LEASE_UTILS.GET_LOOKUP_CODE( p_parameter_name => l_param_payment_frequency
14712 , p_operation => p_operation
14713 , p_lookup_meaning => p_payment_terms_tbl(i).frequency
14714 , p_lookup_type => l_pn_payment_frequency_type
14715 , x_lookup_type_code => p_payment_terms_tbl(i).frequency_code
14716 , x_return_status => x_return_status
14717 );
14718 pvt_debug(g_pkg_name||'VALIDATE_PAYMENT_TERMS_TBL:PAYMENT_FREQUENCY CODE:'||p_payment_terms_tbl(i).frequency_code,3);
14719 IF (x_return_status = fnd_api.g_ret_sts_error)
14720 THEN
14721 p_payment_terms_tbl(i).error_flag := 'Y';
14722 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
14723 fnd_message.set_token ('LOOKUP_TYPE', l_pn_payment_frequency_type);
14724 fnd_message.set_token ('LOOKUP_MEANING',get_miss_char_decode(p_payment_terms_tbl(i).frequency));
14725 fnd_message.set_token ('LOOKUP_CODE',get_miss_char_decode(p_payment_terms_tbl(i).frequency_code));
14726 fnd_msg_pub.ADD;
14727 RAISE FND_API.G_EXC_ERROR;
14728 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14729 THEN
14730 p_payment_terms_tbl(i).error_flag := 'Y';
14731 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14732 fnd_message.set_token ('COLUMN', SUBSTR(l_param_payment_frequency,3));
14733 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14734 fnd_msg_pub.ADD;
14735 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
14736 END IF;
14737 END IF;
14738 --.put_line('In validate_payment_terms_tbl:5');--Rupak
14739 -- Validate the Payment Source
14740 IF ( ( p_payment_terms_tbl (i).source_code IS NOT NULL AND p_termtemp_type <> 'PAYMENT')
14741 -- AND p_payment_terms_tbl (i).source_code <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14742 OR ( p_payment_terms_tbl (i).source_name IS NOT NULL AND p_termtemp_type <> 'PAYMENT')
14743 -- AND p_payment_terms_tbl (i).source_name <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14744 )
14745 THEN
14746 ----------------------dbms_output.put_line('Hello:14');--Rupak
14747 PN_LEASE_UTILS.GET_LOOKUP_CODE( p_parameter_name => l_param_payment_source
14748 , p_operation => p_operation
14749 , p_lookup_meaning => p_payment_terms_tbl(i).source_name
14750 , p_lookup_type => l_pn_term_source_module
14751 , x_lookup_type_code => p_payment_terms_tbl(i).source_code
14752 , x_return_status => x_return_status
14753 );
14754 pvt_debug(g_pkg_name||'VALIDATE_PAYMENT_TERMS_TBL:PAYMENT_SOURCE CODE:'||p_payment_terms_tbl(i).source_code,3);
14755
14756 IF (x_return_status = fnd_api.g_ret_sts_error)
14757 THEN
14758 p_payment_terms_tbl(i).error_flag := 'Y';
14759 fnd_message.set_name ('PN', 'PN_INVALID_LOOKUP_VALUES');
14760 fnd_message.set_token ('LOOKUP_TYPE', l_pn_term_source_module);
14761 fnd_message.set_token ('LOOKUP_MEANING',get_miss_char_decode(p_payment_terms_tbl(i).source_name));
14762 fnd_message.set_token ('LOOKUP_CODE',get_miss_char_decode(p_payment_terms_tbl(i).source_code));
14763 fnd_msg_pub.ADD;
14764 RAISE FND_API.G_EXC_ERROR;
14765 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14766 THEN
14767 p_payment_terms_tbl(i).error_flag := 'Y';
14768 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14769 fnd_message.set_token ('COLUMN', SUBSTR(l_param_payment_source,3));
14770 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14771 fnd_msg_pub.ADD;
14772 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
14773 END IF;
14774 END IF;
14775 ----------------------dbms_output.put_line('In validate_payment_terms_tbl:6');--Rupak
14776 --Customer Payment Terms and Invoice Transaction Type
14777 -- ----------------------dbms_output.put_line('In validate_payment_terms_tbl:6:p_payment_terms_tbl(i).ap_ar_term_id'||p_payment_terms_tbl(i).ap_ar_term_id);
14778 -- ----------------------dbms_output.put_line('In validate_payment_terms_tbl:6;p_payment_terms_tbl(i).cust_trx_type_id'||p_payment_terms_tbl(i).cust_trx_type_id);
14779 -- ----------------------dbms_output.put_line('In validate_payment_terms_tbl:6:p_lease_class_code'||p_lease_class_code);
14780
14781 /*--review comments (Kranti)
14782 IF ( (p_payment_terms_tbl(i).ap_ar_term_id IS NULL)-- OR p_payment_terms_tbl(i).ap_ar_term_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
14783 AND (p_payment_terms_tbl(i).cust_trx_type_id IS NULL )-- OR p_payment_terms_tbl(i).cust_trx_type_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
14784 AND (p_lease_class_code = 'THIRD_PARTY')
14785 )
14786 THEN
14787 ----------------------dbms_output.put_line('Hello:15');
14788 fnd_message.set_name ('PN', 'PN_INVALID_TERMS');
14789 fnd_message.set_token ('API_NAME', p_api_name_full || '-Validate_Term_Transaction');
14790 fnd_msg_pub.ADD;
14791 -- ----------------------dbms_output.put_line('In validate_payment_terms_tbl::Customer Payment Terms and Invoice Transaction Type-2'||p_lease_class_code);
14792 RAISE fnd_api.g_exc_error;
14793 END IF;*/--review comments (Kranti) End
14794
14795 --Payment Schedule Day
14796 IF ( p_payment_terms_tbl(i).schedule_day < 1
14797 OR p_payment_terms_tbl(i).schedule_day > 28)
14798 THEN
14799 fnd_message.set_name ('PN', 'PN_INVALID_SCHEDULEDAY');
14800 fnd_message.set_token ('API_NAME', l_api_name_full || '-ValidateScheduleDay');
14801 fnd_msg_pub.ADD;
14802 RAISE fnd_api.g_exc_error;
14803 END IF;
14804 ----------------------dbms_output.put_line('In validate_payment_terms_tbl:7');--Rupak
14805
14806 --Payment Dates
14807 IF ( p_payment_terms_tbl(i).start_date IS NOT NULL AND p_payment_terms_tbl(i).end_date IS NOT NULL) THEN
14808 PN_LEASE_UTILS.VALIDATE_PAYMENT_DATES (p_parameter_name => l_param_payment_dates
14809 , p_operation => p_operation
14810 , p_start_date => p_payment_terms_tbl(i).start_date
14811 , p_end_date => p_payment_terms_tbl(i).end_date
14812 , p_lease_comm_date => p_lease_commencement_date
14813 , p_lease_term_date => p_lease_termination_date
14814 , x_return_status => x_return_status
14815 );
14816 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:PN_LEASE_UTILS.VALIDATE_PAYMENT_DATES Return Status:'||x_return_status,3);
14817 IF (x_return_status = 'W') THEN
14818 p_payment_terms_tbl(i).error_flag := 'Y';
14819 fnd_message.set_name ('PN', 'PN_INVALID_PAYSTART_DATE');
14820 fnd_message.set_token ('START_DATE', get_miss_date_decode(p_payment_terms_tbl(i).start_date));
14821 fnd_message.set_token ('COMM_DATE', get_miss_date_decode(p_lease_commencement_date));
14822 fnd_message.set_token ('TERM_DATE', get_miss_date_decode(p_lease_termination_date));
14823 fnd_msg_pub.ADD;
14824 RAISE fnd_api.g_exc_error;
14825 ELSIF(x_return_status = 'Y') THEN
14826 p_payment_terms_tbl(i).error_flag := 'Y';
14827 fnd_message.set_name ('PN', 'PN_INVALID_PAYEND_DATE');
14828 fnd_message.set_token ('END_DATE', get_miss_date_decode(p_payment_terms_tbl(i).end_date));
14829 fnd_message.set_token ('COMM_DATE', p_lease_commencement_date);
14830 fnd_message.set_token ('TERM_DATE', p_lease_termination_date);
14831 fnd_msg_pub.ADD;
14832 RAISE fnd_api.g_exc_error;
14833 ELSIF (x_return_status = fnd_api.g_ret_sts_error) THEN
14834 p_payment_terms_tbl(i).error_flag := 'Y';
14835 fnd_message.set_name ('PN', 'PN_INVALID_PAYMENT_DATES');
14836 fnd_message.set_token ('START_DATE', get_miss_date_decode(p_payment_terms_tbl(i).start_date));
14837 fnd_message.set_token ('END_DATE', get_miss_date_decode(p_payment_terms_tbl(i).end_date));
14838 fnd_msg_pub.ADD;
14839 RAISE fnd_api.g_exc_error;
14840 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
14841 p_payment_terms_tbl(i).error_flag := 'Y';
14842 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14843 fnd_message.set_token ('COLUMN', SUBSTR(l_param_payment_dates,3));
14844 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14845 fnd_msg_pub.ADD;
14846 RAISE fnd_api.g_exc_unexpected_error;
14847 END IF;
14848 ----------------------dbms_output.put_line('In validate_payment_terms_tbl:8');--Rupak
14849 END IF;
14850 IF ( ( p_payment_terms_tbl(i).vendor_name IS NOT NULL AND p_termtemp_type = 'PAYMENT')
14851 -- AND p_payment_terms_tbl(i).vendor_name <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14852 OR ( p_payment_terms_tbl(i).vendor_id IS NOT NULL AND p_termtemp_type = 'PAYMENT')
14853 -- AND p_payment_terms_tbl(i).vendor_id <> PN_LEASE_UTILS.G_PN_MISS_NUM)
14854 )
14855 THEN
14856 ----------------------dbms_output.put_line('Hello:18');--Rupak
14857 PN_LEASE_UTILS.GET_VENDOR_ID (p_parameter_name => l_param_vendor_name
14858 , p_vendor_name => p_payment_terms_tbl(i).vendor_name
14859 , p_operation => p_operation
14860 , p_org_id => g_org_id
14861 , x_return_status => x_return_status
14862 , x_vendor_id => p_payment_terms_tbl(i).vendor_id
14863 );
14864 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:PN_LEASE_UTILS.GET_VENDOR_ID:'||p_payment_terms_tbl(i).vendor_id,3);
14865 IF (x_return_status = fnd_api.g_ret_sts_error)
14866 THEN
14867 p_payment_terms_tbl(i).error_flag := 'Y';
14868 fnd_message.set_name ('PN', 'PN_INVALID_VENDOR');
14869 fnd_message.set_token ('VENDOR_NAME', get_miss_char_decode(p_payment_terms_tbl(i).vendor_name));
14870 fnd_message.set_token ('VENDOR_ID', get_miss_num_decode(p_payment_terms_tbl(i).vendor_id));
14871 fnd_msg_pub.ADD;
14872 RAISE fnd_api.g_exc_error;
14873 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14874 THEN
14875 p_payment_terms_tbl(i).error_flag := 'Y';
14876 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14877 fnd_message.set_token ('COLUMN', SUBSTR(l_param_vendor_name,3));
14878 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14879 fnd_msg_pub.ADD;
14880 RAISE fnd_api.g_exc_unexpected_error;
14881 END IF;
14882 END IF;
14883 ----------------------dbms_output.put_line('In validate_payment_terms_tbl:9');--Rupak
14884 IF ( ( p_payment_terms_tbl(i).vendor_name IS NOT NULL AND p_payment_terms_tbl(i).vendor_site_code IS NOT NULL AND p_termtemp_type = 'PAYMENT')
14885 --AND p_payment_terms_tbl(i).vendor_name <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14886 OR ( p_payment_terms_tbl(i).vendor_id IS NOT NULL AND p_payment_terms_tbl(i).vendor_site_id IS NOT NULL AND p_termtemp_type = 'PAYMENT')
14887 -- AND p_payment_terms_tbl(i).vendor_id <> PN_LEASE_UTILS.G_PN_MISS_NUM)
14888 )
14889 THEN
14890 ----------------------dbms_output.put_line('Hello:19');--Rupak
14891 PN_LEASE_UTILS.GET_VENDOR_SITE_ID (p_parameter_name => l_param_vendor_site
14892 , p_vendor_id => p_payment_terms_tbl(i).vendor_id
14893 , p_vendor_site => p_payment_terms_tbl(i).vendor_site_code
14894 , p_operation => p_operation
14895 , p_org_id => g_org_id
14896 , x_return_status => x_return_status
14897 , x_vendor_site_id => p_payment_terms_tbl(i).vendor_site_id
14898 );
14899 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:PN_LEASE_UTILS.GET_VENDOR_SITE_ID:'||p_payment_terms_tbl(i).vendor_site_id,3);
14900 IF (x_return_status = fnd_api.g_ret_sts_error)
14901 THEN
14902 p_payment_terms_tbl(i).error_flag := 'Y';
14903 fnd_message.set_name ('PN', 'PN_INVALID_VENDOR_SITE');
14904 fnd_message.set_token ('VENDOR_SITE_NAME', get_miss_char_decode(p_payment_terms_tbl(i).vendor_site_code));
14905 fnd_message.set_token ('VENDOR_SITE_ID', get_miss_num_decode(p_payment_terms_tbl(i).vendor_site_id));
14906 fnd_msg_pub.ADD;
14907 RAISE fnd_api.g_exc_error;
14908 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14909 THEN
14910 p_payment_terms_tbl(i).error_flag := 'Y';
14911 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14912 fnd_message.set_token ('COLUMN', SUBSTR(l_param_vendor_site,3));
14913 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14914 fnd_msg_pub.ADD;
14915 RAISE fnd_api.g_exc_unexpected_error;
14916 END IF;
14917 END IF;
14918 ----------------------dbms_output.put_line('In validate_payment_terms_tbl:10');--Rupak
14919 --Payment Customer
14920 IF ( ( p_payment_terms_tbl(i).customer_name IS NOT NULL AND p_termtemp_type <> 'PAYMENT')
14921 -- AND p_payment_terms_tbl(i).customer_name <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14922 OR ( p_payment_terms_tbl(i).customer_id IS NOT NULL AND p_termtemp_type <> 'PAYMENT')
14923 -- AND p_payment_terms_tbl(i).customer_id <> PN_LEASE_UTILS.G_PN_MISS_NUM)
14924 )
14925 THEN
14926 ----------------------dbms_output.put_line('Hello:20');
14927 PN_LEASE_UTILS.GET_PAY_CUSTOMER_ID (p_parameter_name => l_param_customer_name
14928 , p_customer_name => p_payment_terms_tbl(i).customer_name
14929 , p_operation => p_operation--'CREATE'
14930 , p_org_id => g_org_id
14931 , x_return_status => x_return_status
14932 , x_customer_id => p_payment_terms_tbl(i).customer_id
14933 );
14934 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:PN_LEASE_UTILS.GET_PAY_CUSTOMER_ID:'||p_payment_terms_tbl(i).customer_id,3);
14935 IF (x_return_status = fnd_api.g_ret_sts_error)
14936 THEN
14937 p_payment_terms_tbl(i).error_flag := 'Y';
14938 fnd_message.set_name ('PN', 'PN_INVALID_CUSTOMER');
14939 fnd_message.set_token ('CUSTOMER_NAME', get_miss_char_decode(p_payment_terms_tbl(i).customer_name));
14940 fnd_message.set_token ('CUSTOMER_ID', get_miss_num_decode(p_payment_terms_tbl(i).customer_id));
14941 fnd_msg_pub.ADD;
14942 RAISE fnd_api.g_exc_error;
14943 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14944 THEN
14945 p_payment_terms_tbl(i).error_flag := 'Y';
14946 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14947 fnd_message.set_token ('COLUMN', SUBSTR(l_param_customer_name,3));
14948 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14949 fnd_msg_pub.ADD;
14950 RAISE fnd_api.g_exc_unexpected_error;
14951 END IF;
14952 END IF;
14953 ----------------------dbms_output.put_line('In validate_payment_terms_tbl:11');--Rupak
14954 --Payment Customer Site
14955 IF ( ( p_payment_terms_tbl(i).customer_site_code IS NOT NULL AND p_payment_terms_tbl(i).customer_name IS NOT NULL AND p_termtemp_type <> 'PAYMENT')
14956 -- AND p_payment_terms_tbl(i).customer_site_code <> PN_LEASE_UTILS.G_PN_MISS_CHAR)
14957 OR ( p_payment_terms_tbl(i).customer_site_use_id IS NOT NULL AND p_payment_terms_tbl(i).customer_id IS NOT NULL AND p_termtemp_type <> 'PAYMENT')
14958 -- AND p_payment_terms_tbl(i).customer_site_use_id <> PN_LEASE_UTILS.G_PN_MISS_NUM)
14959 )
14960 THEN
14961 ----------------------dbms_output.put_line('Hello:21');--Rupak
14962 PN_LEASE_UTILS.GET_PAY_CUSTOMER_SITE_ID (p_parameter_name => l_param_customer_site
14963 , p_customer_site => p_payment_terms_tbl(i).customer_site_code
14964 , p_customer_id => p_payment_terms_tbl(i).customer_id
14965 , p_operation => p_operation
14966 , p_org_id => g_org_id
14967 , x_return_status => x_return_status
14968 , x_customer_site_id => p_payment_terms_tbl(i).customer_site_use_id
14969 );
14970 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:PN_LEASE_UTILS.GET_PAY_CUSTOMER_SITE_ID:'||p_payment_terms_tbl(i).customer_site_use_id,3);
14971 IF (x_return_status = fnd_api.g_ret_sts_error)
14972 THEN
14973 p_payment_terms_tbl(i).error_flag := 'Y';
14974 fnd_message.set_name ('PN', 'PN_INVALID_CUSTOMER_SITE');
14975 fnd_message.set_token ('CUSTOMER_SITE', get_miss_char_decode(p_payment_terms_tbl(i).customer_site_code));
14976 fnd_message.set_token ('CUSTOMER_SITE_ID',get_miss_num_decode(p_payment_terms_tbl(i).customer_site_use_id));
14977 fnd_msg_pub.ADD;
14978 RAISE fnd_api.g_exc_error;
14979 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
14980 THEN
14981 p_payment_terms_tbl(i).error_flag := 'Y';
14982 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
14983 fnd_message.set_token ('COLUMN', SUBSTR(l_param_customer_site,3));
14984 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
14985 fnd_msg_pub.ADD;
14986 RAISE fnd_api.g_exc_unexpected_error;
14987 END IF;
14988 END IF;
14989
14990 --Validating Term Template
14991 IF ( p_payment_terms_tbl(i).term_template_id IS NOT NULL
14992 OR p_payment_terms_tbl(i).term_template_name IS NOT NULL) AND ( TRIM(p_operation) = TRIM('CREATE_TERMS'))
14993 THEN
14994 -- BEGIN
14995 ----------------------dbms_output.put_line('Hello:22');--Rupak
14996 PN_LEASE_UTILS.GET_TERM_TEMPLATE_ID (p_parameter_name => l_param_term_template
14997 , p_termtemp_name => p_payment_terms_tbl(i).term_template_name
14998 , p_operation => p_operation
14999 , p_termtemp_type => p_termtemp_type
15000 , p_org_id => g_org_id
15001 , x_return_status => x_return_status
15002 , x_termtemp_id => p_payment_terms_tbl(i).term_template_id
15003 );
15004 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:PN_LEASE_UTILS.GET_TERM_TEMPLATE_ID:'||p_payment_terms_tbl(i).term_template_id,3);
15005
15006 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
15007 p_payment_terms_tbl(i).error_flag := 'Y';
15008 fnd_message.set_name ('PN', 'PN_INVALID_TERM_TEMPLATE');
15009 fnd_message.set_token ('TERM_TEMPLATE_ID', get_miss_num_decode(p_payment_terms_tbl(i).term_template_id));
15010 fnd_message.set_token ('TERM_TEMPLATE', get_miss_char_decode(p_payment_terms_tbl(i).term_template_name));
15011 fnd_msg_pub.ADD;
15012 RAISE fnd_api.g_exc_error;
15013 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
15014 p_payment_terms_tbl(i).error_flag := 'Y';
15015 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
15016 fnd_message.set_token ('COLUMN', SUBSTR(l_param_term_template,3));
15017 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
15018 fnd_msg_pub.ADD;
15019 RAISE fnd_api.g_exc_unexpected_error;
15020 ELSIF (x_return_status = fnd_api.g_ret_sts_success) THEN
15021 ----------------------dbms_output.put_line('Hello:GET_TERM_TEMPLATE_ID:SUCCESS'||p_payment_terms_tbl(i).term_template_id);--Rupak
15022 GET_TEMPLATE_DEFAULTS ( p_payment_terms_tbl(i));
15023 l_default_flag := 'Y';
15024 END IF;
15025 -- EXCEPTION
15026 /* WHEN OTHERS THEN
15027 NULL;
15028 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Exception:'||SQLERRM,3);
15029 ----------------------dbms_output.put_line('EXCEPTION:GET_TERM_TEMPLATE_ID'||SQLERRM);--Rupak
15030 END;*/
15031 END IF;
15032
15033 --Validating the Descriptive Flex Fields.
15034 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENTS_TBL:Check for the Payments Atributes',3);
15035 -- Validate the descriptive flexfields IN CREATE_TERMS(Normal Attributes)
15036 /* IF NOT ((p_payment_terms_tbl (i).attribute_category = pn_lease_utils.g_pn_miss_char)
15037 AND (p_payment_terms_tbl (i).attribute1 = pn_lease_utils.g_pn_miss_char)
15038 AND (p_payment_terms_tbl (i).attribute2 = pn_lease_utils.g_pn_miss_char)
15039 AND (p_payment_terms_tbl (i).attribute3 = pn_lease_utils.g_pn_miss_char)
15040 AND (p_payment_terms_tbl (i).attribute4 = pn_lease_utils.g_pn_miss_char)
15041 AND (p_payment_terms_tbl (i).attribute5 = pn_lease_utils.g_pn_miss_char)
15042 AND (p_payment_terms_tbl (i).attribute6 = pn_lease_utils.g_pn_miss_char)
15043 AND (p_payment_terms_tbl (i).attribute7 = pn_lease_utils.g_pn_miss_char)
15044 AND (p_payment_terms_tbl (i).attribute8 = pn_lease_utils.g_pn_miss_char)
15045 AND (p_payment_terms_tbl (i).attribute9 = pn_lease_utils.g_pn_miss_char)
15046 AND (p_payment_terms_tbl (i).attribute10 = pn_lease_utils.g_pn_miss_char)
15047 AND (p_payment_terms_tbl (i).attribute11 = pn_lease_utils.g_pn_miss_char)
15048 AND (p_payment_terms_tbl (i).attribute12 = pn_lease_utils.g_pn_miss_char)
15049 AND (p_payment_terms_tbl (i).attribute13 = pn_lease_utils.g_pn_miss_char)
15050 AND (p_payment_terms_tbl (i).attribute14 = pn_lease_utils.g_pn_miss_char)
15051 AND (p_payment_terms_tbl (i).attribute15 = pn_lease_utils.g_pn_miss_char)
15052 )
15053 THEN*/
15054 ----------------------dbms_output.put_line('IN TENANCY ATTRIBUTES');--Rupak
15055 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENTS_TBL:Inside Payment Attributes',3);
15056 IF (p_payment_terms_tbl(i).attribute_category = pn_lease_utils.g_pn_miss_char)
15057 THEN
15058 p_payment_terms_tbl(i).attribute_category := NULL;
15059 END IF;
15060
15061 IF (p_payment_terms_tbl(i).attribute1 = pn_lease_utils.g_pn_miss_char)
15062 THEN
15063 p_payment_terms_tbl(i).attribute1 := NULL;
15064 END IF;
15065
15066 IF (p_payment_terms_tbl(i).attribute2 = pn_lease_utils.g_pn_miss_char)
15067 THEN
15068 p_payment_terms_tbl(i).attribute2 := NULL;
15069 END IF;
15070 IF (p_payment_terms_tbl(i).attribute3 = pn_lease_utils.g_pn_miss_char)
15071 THEN
15072 p_payment_terms_tbl(i).attribute3 := NULL;
15073 END IF;
15074 IF (p_payment_terms_tbl(i).attribute4 = pn_lease_utils.g_pn_miss_char)
15075 THEN
15076 p_payment_terms_tbl(i).attribute4 := NULL;
15077 END IF;
15078 IF (p_payment_terms_tbl(i).attribute5 = pn_lease_utils.g_pn_miss_char)
15079 THEN
15080 p_payment_terms_tbl(i).attribute5 := NULL;
15081 END IF;
15082 IF (p_payment_terms_tbl(i).attribute6 = pn_lease_utils.g_pn_miss_char)
15083 THEN
15084 p_payment_terms_tbl(i).attribute6 := NULL;
15085 END IF;
15086 IF (p_payment_terms_tbl(i).attribute7 = pn_lease_utils.g_pn_miss_char)
15087 THEN
15088 p_payment_terms_tbl(i).attribute7 := NULL;
15089 END IF;
15090 IF (p_payment_terms_tbl(i).attribute8 = pn_lease_utils.g_pn_miss_char)
15091 THEN
15092 p_payment_terms_tbl(i).attribute8 := NULL;
15093 END IF;
15094 IF (p_payment_terms_tbl(i).attribute9 = pn_lease_utils.g_pn_miss_char)
15095 THEN
15096 p_payment_terms_tbl(i).attribute9 := NULL;
15097 END IF;
15098 IF (p_payment_terms_tbl(i).attribute10 = pn_lease_utils.g_pn_miss_char)
15099 THEN
15100 p_payment_terms_tbl(i).attribute10 := NULL;
15101 END IF;
15102 IF (p_payment_terms_tbl(i).attribute11 = pn_lease_utils.g_pn_miss_char)
15103 THEN
15104 p_payment_terms_tbl(i).attribute11 := NULL;
15105 END IF;
15106 IF (p_payment_terms_tbl(i).attribute12= pn_lease_utils.g_pn_miss_char)
15107 THEN
15108 p_payment_terms_tbl(i).attribute12 := NULL;
15109 END IF;
15110 IF (p_payment_terms_tbl(i).attribute13 = pn_lease_utils.g_pn_miss_char)
15111 THEN
15112 p_payment_terms_tbl(i).attribute13 := NULL;
15113 END IF;
15114 IF (p_payment_terms_tbl(i).attribute14 = pn_lease_utils.g_pn_miss_char)
15115 THEN
15116 p_payment_terms_tbl(i).attribute14 := NULL;
15117 END IF;
15118 IF (p_payment_terms_tbl(i).attribute15= pn_lease_utils.g_pn_miss_char)
15119 THEN
15120 p_payment_terms_tbl(i).attribute15 := NULL;
15121 END IF;
15122
15123 IF (get_attribute_status('PN_PAYMENT_TERMS') > 0) THEN
15124 /*get_attribute_mandatory_status('PN_PAYMENT_TERMS'
15125 ,p_payment_terms_tbl(i).attribute1
15126 ,p_payment_terms_tbl(i).attribute2
15127 ,p_payment_terms_tbl(i).attribute3
15128 ,p_payment_terms_tbl(i).attribute4
15129 ,p_payment_terms_tbl(i).attribute5
15130 ,p_payment_terms_tbl(i).attribute6
15131 ,p_payment_terms_tbl(i).attribute7
15132 ,p_payment_terms_tbl(i).attribute8
15133 ,p_payment_terms_tbl(i).attribute9
15134 ,p_payment_terms_tbl(i).attribute10
15135 ,p_payment_terms_tbl(i).attribute11
15136 ,p_payment_terms_tbl(i).attribute12
15137 ,p_payment_terms_tbl(i).attribute13
15138 ,p_payment_terms_tbl(i).attribute14
15139 ,p_payment_terms_tbl(i).attribute15
15140 ,x_return_status
15141 );
15142 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
15143 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
15144 fnd_message.set_token ('API_NAME', l_api_name_full);
15145 fnd_message.set_token ('NULL_PARAM','Required attribute in Payments is NULL');
15146 fnd_msg_pub.ADD;
15147 RAISE fnd_api.g_exc_error;
15148 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
15149 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
15150 fnd_message.set_token ('API_NAME', l_api_name_full);
15151 fnd_message.set_token ('NULL_PARAM', 'Required attribute in Payments is NULL');
15152 fnd_msg_pub.ADD;
15153 RAISE fnd_api.g_exc_unexpected_error;
15154 ELSE*/
15155 IF NOT ((p_payment_terms_tbl(i).attribute_category = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute_category IS NULL)
15156 AND (p_payment_terms_tbl(i).attribute1 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute1 IS NULL)
15157 AND (p_payment_terms_tbl(i).attribute2 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute2 IS NULL)
15158 AND (p_payment_terms_tbl(i).attribute3 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute3 IS NULL)
15159 AND (p_payment_terms_tbl(i).attribute4 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute4 IS NULL)
15160 AND (p_payment_terms_tbl(i).attribute5 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute5 IS NULL)
15161 AND (p_payment_terms_tbl(i).attribute6 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute6 IS NULL)
15162 AND (p_payment_terms_tbl(i).attribute7 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute7 IS NULL)
15163 AND (p_payment_terms_tbl(i).attribute8 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute8 IS NULL)
15164 AND (p_payment_terms_tbl(i).attribute9 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute9 IS NULL)
15165 AND (p_payment_terms_tbl(i).attribute10 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute10 IS NULL)
15166 AND (p_payment_terms_tbl(i).attribute11 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute11 IS NULL)
15167 AND (p_payment_terms_tbl(i).attribute12 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute12 IS NULL)
15168 AND (p_payment_terms_tbl(i).attribute13 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute13 IS NULL)
15169 AND (p_payment_terms_tbl(i).attribute14 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute14 IS NULL)
15170 AND (p_payment_terms_tbl(i).attribute15 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).attribute15 IS NULL)
15171 ) THEN
15172 pn_lease_utils.validate_desc_flex
15173 (p_api_name => 'PN_LEASE_PVT'|| '.'|| 'CREATE_TERMS'
15174 , p_application_short_name => 'PN'
15175 , p_desc_flex_name => 'PN_PAYMENT_TERMS'
15176 , p_desc_segment1 => p_payment_terms_tbl(i).attribute1
15177 , p_desc_segment2 => p_payment_terms_tbl(i).attribute2
15178 , p_desc_segment3 => p_payment_terms_tbl(i).attribute3
15179 , p_desc_segment4 => p_payment_terms_tbl(i).attribute4
15180 , p_desc_segment5 => p_payment_terms_tbl(i).attribute5
15181 , p_desc_segment6 => p_payment_terms_tbl(i).attribute6
15182 , p_desc_segment7 => p_payment_terms_tbl(i).attribute7
15183 , p_desc_segment8 => p_payment_terms_tbl(i).attribute8
15184 , p_desc_segment9 => p_payment_terms_tbl(i).attribute9
15185 , p_desc_segment10 => p_payment_terms_tbl(i).attribute10
15186 , p_desc_segment11 => p_payment_terms_tbl(i).attribute11
15187 , p_desc_segment12 => p_payment_terms_tbl(i).attribute12
15188 , p_desc_segment13 => p_payment_terms_tbl(i).attribute13
15189 , p_desc_segment14 => p_payment_terms_tbl(i).attribute14
15190 , p_desc_segment15 => p_payment_terms_tbl(i).attribute15
15191 , p_desc_context => p_payment_terms_tbl(i).attribute_category
15192 , p_resp_appl_id => fnd_global.resp_appl_id
15193 , p_resp_id => fnd_global.resp_id
15194 , p_return_status => x_return_status
15195 );
15196
15197 IF (x_return_status = fnd_api.g_ret_sts_error)
15198 THEN
15199 p_payment_terms_tbl(i).error_flag:='Y';
15200 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
15201 fnd_message.set_token ('COLUMN', 'PAYMENT_DESC_FIELDS');
15202 fnd_message.set_token ('P_TEXT', 'PN_PAYMENT_TERMS'|| '-'||SQLERRM);
15203 fnd_msg_pub.ADD;
15204 RAISE fnd_api.g_exc_error;
15205 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
15206 THEN
15207 p_payment_terms_tbl(i).error_flag:='Y';
15208 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
15209 fnd_message.set_token ('COLUMN', 'PAYMENT_DESC_FIELDS');
15210 fnd_message.set_token ('P_TEXT', 'PN_PAYMENT_TERMS'|| '-'||SQLERRM);
15211 fnd_msg_pub.ADD;
15212 RAISE fnd_api.g_exc_unexpected_error;
15213 END IF;
15214 END IF; -- End of attributes valitions in create_terms
15215 END IF;
15216
15217 --Validating the Project Descriptive Flex Fields.
15218 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENTS_TBL:Check for the Payment Project Atributes',3);
15219 -- Validate the descriptive flexfields IN CREATE_TERMS(Project Attributes)
15220 /* IF NOT ((p_payment_terms_tbl (i).project_attribute_category = pn_lease_utils.g_pn_miss_char)
15221 AND (p_payment_terms_tbl (i).project_attribute1 = pn_lease_utils.g_pn_miss_char)
15222 AND (p_payment_terms_tbl (i).project_attribute2 = pn_lease_utils.g_pn_miss_char)
15223 AND (p_payment_terms_tbl (i).project_attribute3 = pn_lease_utils.g_pn_miss_char)
15224 AND (p_payment_terms_tbl (i).project_attribute4 = pn_lease_utils.g_pn_miss_char)
15225 AND (p_payment_terms_tbl (i).project_attribute5 = pn_lease_utils.g_pn_miss_char)
15226 AND (p_payment_terms_tbl (i).project_attribute6 = pn_lease_utils.g_pn_miss_char)
15227 AND (p_payment_terms_tbl (i).project_attribute7 = pn_lease_utils.g_pn_miss_char)
15228 AND (p_payment_terms_tbl (i).project_attribute8 = pn_lease_utils.g_pn_miss_char)
15229 AND (p_payment_terms_tbl (i).project_attribute9 = pn_lease_utils.g_pn_miss_char)
15230 AND (p_payment_terms_tbl (i).project_attribute10 = pn_lease_utils.g_pn_miss_char)
15231 AND (p_payment_terms_tbl (i).project_attribute11 = pn_lease_utils.g_pn_miss_char)
15232 AND (p_payment_terms_tbl (i).project_attribute12 = pn_lease_utils.g_pn_miss_char)
15233 AND (p_payment_terms_tbl (i).project_attribute13 = pn_lease_utils.g_pn_miss_char)
15234 AND (p_payment_terms_tbl (i).project_attribute14 = pn_lease_utils.g_pn_miss_char)
15235 AND (p_payment_terms_tbl (i).project_attribute15 = pn_lease_utils.g_pn_miss_char)
15236 )
15237 THEN*/
15238 ----------------------dbms_output.put_line('IN TENANCY project_attributeS');--Rupak
15239 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENTS_TBL:Inside Payment project_attributes',3);
15240 IF (p_payment_terms_tbl(i).project_attribute_category = pn_lease_utils.g_pn_miss_char)
15241 THEN
15242 p_payment_terms_tbl(i).project_attribute_category := NULL;
15243 END IF;
15244
15245 IF (p_payment_terms_tbl(i).project_attribute1 = pn_lease_utils.g_pn_miss_char)
15246 THEN
15247 p_payment_terms_tbl(i).project_attribute1 := NULL;
15248 END IF;
15249
15250 IF (p_payment_terms_tbl(i).project_attribute2 = pn_lease_utils.g_pn_miss_char)
15251 THEN
15252 p_payment_terms_tbl(i).project_attribute2 := NULL;
15253 END IF;
15254 IF (p_payment_terms_tbl(i).project_attribute3 = pn_lease_utils.g_pn_miss_char)
15255 THEN
15256 p_payment_terms_tbl(i).project_attribute3 := NULL;
15257 END IF;
15258 IF (p_payment_terms_tbl(i).project_attribute4 = pn_lease_utils.g_pn_miss_char)
15259 THEN
15260 p_payment_terms_tbl(i).project_attribute4 := NULL;
15261 END IF;
15262 IF (p_payment_terms_tbl(i).project_attribute5 = pn_lease_utils.g_pn_miss_char)
15263 THEN
15264 p_payment_terms_tbl(i).project_attribute5 := NULL;
15265 END IF;
15266 IF (p_payment_terms_tbl(i).project_attribute6 = pn_lease_utils.g_pn_miss_char)
15267 THEN
15268 p_payment_terms_tbl(i).project_attribute6 := NULL;
15269 END IF;
15270 IF (p_payment_terms_tbl(i).project_attribute7 = pn_lease_utils.g_pn_miss_char)
15271 THEN
15272 p_payment_terms_tbl(i).project_attribute7 := NULL;
15273 END IF;
15274 IF (p_payment_terms_tbl(i).project_attribute8 = pn_lease_utils.g_pn_miss_char)
15275 THEN
15276 p_payment_terms_tbl(i).project_attribute8 := NULL;
15277 END IF;
15278 IF (p_payment_terms_tbl(i).project_attribute9 = pn_lease_utils.g_pn_miss_char)
15279 THEN
15280 p_payment_terms_tbl(i).project_attribute9 := NULL;
15281 END IF;
15282 IF (p_payment_terms_tbl(i).project_attribute10 = pn_lease_utils.g_pn_miss_char)
15283 THEN
15284 p_payment_terms_tbl(i).project_attribute10 := NULL;
15285 END IF;
15286 IF (p_payment_terms_tbl(i).project_attribute11 = pn_lease_utils.g_pn_miss_char)
15287 THEN
15288 p_payment_terms_tbl(i).project_attribute11 := NULL;
15289 END IF;
15290 IF (p_payment_terms_tbl(i).project_attribute12= pn_lease_utils.g_pn_miss_char)
15291 THEN
15292 p_payment_terms_tbl(i).project_attribute12 := NULL;
15293 END IF;
15294 IF (p_payment_terms_tbl(i).project_attribute13 = pn_lease_utils.g_pn_miss_char)
15295 THEN
15296 p_payment_terms_tbl(i).project_attribute13 := NULL;
15297 END IF;
15298 IF (p_payment_terms_tbl(i).project_attribute14 = pn_lease_utils.g_pn_miss_char)
15299 THEN
15300 p_payment_terms_tbl(i).project_attribute14 := NULL;
15301 END IF;
15302 IF (p_payment_terms_tbl(i).project_attribute15= pn_lease_utils.g_pn_miss_char)
15303 THEN
15304 p_payment_terms_tbl(i).project_attribute15 := NULL;
15305 END IF;
15306
15307 IF (get_attribute_status('PN_PAYMENT_TERMS') > 0) THEN
15308 /*get_attribute_mandatory_status('PN_PAYMENT_TERMS'
15309 ,p_payment_terms_tbl(i).project_attribute1
15310 ,p_payment_terms_tbl(i).project_attribute2
15311 ,p_payment_terms_tbl(i).project_attribute3
15312 ,p_payment_terms_tbl(i).project_attribute4
15313 ,p_payment_terms_tbl(i).project_attribute5
15314 ,p_payment_terms_tbl(i).project_attribute6
15315 ,p_payment_terms_tbl(i).project_attribute7
15316 ,p_payment_terms_tbl(i).project_attribute8
15317 ,p_payment_terms_tbl(i).project_attribute9
15318 ,p_payment_terms_tbl(i).project_attribute10
15319 ,p_payment_terms_tbl(i).project_attribute11
15320 ,p_payment_terms_tbl(i).project_attribute12
15321 ,p_payment_terms_tbl(i).project_attribute13
15322 ,p_payment_terms_tbl(i).project_attribute14
15323 ,p_payment_terms_tbl(i).project_attribute15
15324 ,x_return_status
15325 );
15326 IF(x_return_status = fnd_api.g_ret_sts_error) THEN
15327 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
15328 fnd_message.set_token ('API_NAME', l_api_name_full);
15329 fnd_message.set_token ('NULL_PARAM','Required attribute in Project Payments is NULL');
15330 fnd_msg_pub.ADD;
15331 RAISE fnd_api.g_exc_error;
15332 ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
15333 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
15334 fnd_message.set_token ('API_NAME', l_api_name_full);
15335 fnd_message.set_token ('NULL_PARAM', 'Required attribute in Project Payments is NULL');
15336 fnd_msg_pub.ADD;
15337 RAISE fnd_api.g_exc_unexpected_error;
15338 ELSE*/
15339 IF NOT ((p_payment_terms_tbl(i).project_attribute_category = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute_category IS NULL)
15340 AND (p_payment_terms_tbl(i).project_attribute1 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute1 IS NULL)
15341 AND (p_payment_terms_tbl(i).project_attribute2 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute2 IS NULL)
15342 AND (p_payment_terms_tbl(i).project_attribute3 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute3 IS NULL)
15343 AND (p_payment_terms_tbl(i).project_attribute4 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute4 IS NULL)
15344 AND (p_payment_terms_tbl(i).project_attribute5 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute5 IS NULL)
15345 AND (p_payment_terms_tbl(i).project_attribute6 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute6 IS NULL)
15346 AND (p_payment_terms_tbl(i).project_attribute7 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute7 IS NULL)
15347 AND (p_payment_terms_tbl(i).project_attribute8 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute8 IS NULL)
15348 AND (p_payment_terms_tbl(i).project_attribute9 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute9 IS NULL)
15349 AND (p_payment_terms_tbl(i).project_attribute10 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute10 IS NULL)
15350 AND (p_payment_terms_tbl(i).project_attribute11 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute11 IS NULL)
15351 AND (p_payment_terms_tbl(i).project_attribute12 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute12 IS NULL)
15352 AND (p_payment_terms_tbl(i).project_attribute13 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute13 IS NULL)
15353 AND (p_payment_terms_tbl(i).project_attribute14 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute14 IS NULL)
15354 AND (p_payment_terms_tbl(i).project_attribute15 = pn_lease_utils.g_pn_miss_char OR p_payment_terms_tbl(i).project_attribute15 IS NULL)
15355 ) THEN
15356 pn_lease_utils.validate_desc_flex
15357 (p_api_name => 'PN_LEASE_PUB'|| '.'|| 'CREATE_TERMS'
15358 , p_application_short_name => 'PN'
15359 , p_desc_flex_name => 'PN_PAYMENT_TERMS'
15360 , p_desc_segment1 => p_payment_terms_tbl(i).project_attribute1
15361 , p_desc_segment2 => p_payment_terms_tbl(i).project_attribute2
15362 , p_desc_segment3 => p_payment_terms_tbl(i).project_attribute3
15363 , p_desc_segment4 => p_payment_terms_tbl(i).project_attribute4
15364 , p_desc_segment5 => p_payment_terms_tbl(i).project_attribute5
15365 , p_desc_segment6 => p_payment_terms_tbl(i).project_attribute6
15366 , p_desc_segment7 => p_payment_terms_tbl(i).project_attribute7
15367 , p_desc_segment8 => p_payment_terms_tbl(i).project_attribute8
15368 , p_desc_segment9 => p_payment_terms_tbl(i).project_attribute9
15369 , p_desc_segment10 => p_payment_terms_tbl(i).project_attribute10
15370 , p_desc_segment11 => p_payment_terms_tbl(i).project_attribute11
15371 , p_desc_segment12 => p_payment_terms_tbl(i).project_attribute12
15372 , p_desc_segment13 => p_payment_terms_tbl(i).project_attribute13
15373 , p_desc_segment14 => p_payment_terms_tbl(i).project_attribute14
15374 , p_desc_segment15 => p_payment_terms_tbl(i).project_attribute15
15375 , p_desc_context => p_payment_terms_tbl(i).project_attribute_category
15376 , p_resp_appl_id => fnd_global.resp_appl_id
15377 , p_resp_id => fnd_global.resp_id
15378 , p_return_status => x_return_status
15379 );
15380
15381 IF (x_return_status = fnd_api.g_ret_sts_error)
15382 THEN
15383 p_payment_terms_tbl(i).error_flag:='Y';
15384 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
15385 fnd_message.set_token ('COLUMN', 'PAYMENT_DESC_FIELDS');
15386 fnd_message.set_token ('P_TEXT', 'PN_PAYMENT_TERMS'|| '-'||SQLERRM);
15387 fnd_msg_pub.ADD;
15388 RAISE fnd_api.g_exc_error;
15389 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
15390 THEN
15391 p_payment_terms_tbl(i).error_flag:='Y';
15392 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
15393 fnd_message.set_token ('COLUMN', 'PAYMENT_DESC_FIELDS');
15394 fnd_message.set_token ('P_TEXT', 'PN_PAYMENT_TERMS'|| '-'||SQLERRM);
15395 fnd_msg_pub.ADD;
15396 RAISE fnd_api.g_exc_unexpected_error;
15397 END IF;
15398 END IF; -- End of project_attributes valitions in create_terms
15399 END IF;
15400 ---------------------------------------
15401 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Before PN_LEASE_UTILS.GET_LOCATION_ID',3);
15402 --Validation 2: Location Code
15403 --Terms Location
15404 IF ( ( p_payment_terms_tbl(i).location_code IS NOT NULL AND p_termtemp_type = 'PAYMENT')
15405 --AND p_payment_terms_tbl(i).location_code <> pn_lease_utils.g_pn_miss_char)
15406 OR ( p_payment_terms_tbl(i).location_id IS NOT NULL AND p_termtemp_type = 'PAYMENT' )
15407 )
15408 THEN
15409
15410 pn_lease_utils.get_location_id(p_parameter_name => l_param_location_code
15411 , p_location_code => p_payment_terms_tbl(i).location_code
15412 , p_operation => p_operation
15413 , p_org_id => g_org_id--p_payment_terms_tbl(i).org_id
15414 , p_lease_class_code => p_lease_class_code
15415 , p_parent_lease_id => p_parent_lease_id
15416 , p_lease_comm_date => p_lease_commencement_date
15417 , p_lease_term_date => p_lease_termination_date
15418 , x_return_status => x_return_status
15419 , x_location_id => p_payment_terms_tbl(i).location_id
15420 );
15421 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:PN_LEASE_UTILS.GET_LOCATION_ID:'||p_payment_terms_tbl(i).location_id,3);
15422 ----------------------dbms_output.put_line('Terms LOCATION_ID:' ||p_payment_terms_tbl(i).location_id);--Rupak
15423 IF (x_return_status = fnd_api.g_ret_sts_error)
15424 THEN
15425 p_payment_terms_tbl(i).error_flag := 'Y';
15426 l_error_flag:='Y';
15427 fnd_message.set_name ('PN', 'PN_INVALID_LOCATION');
15428 fnd_message.set_token ('LOC_ID', get_miss_num_decode(p_payment_terms_tbl(i).location_id));
15429 fnd_message.set_token ('LOC_CODE', get_miss_char_decode(p_payment_terms_tbl(i).location_code));
15430 fnd_msg_pub.ADD;
15431 RAISE fnd_api.g_exc_error;
15432 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error)
15433 THEN
15434 p_payment_terms_tbl(i).error_flag := 'Y';
15435 l_error_flag:='Y';
15436 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
15437 fnd_message.set_token ('COLUMN', SUBSTR(l_param_location_code,3));
15438 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
15439 fnd_msg_pub.ADD;
15440 RAISE fnd_api.g_exc_unexpected_error;
15441 END IF;
15442 END IF;
15443 l_expense_account_id := NULL;
15444 l_receivable_account_id := NULL;
15445 l_accrual_account_id := NULL;
15446 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Lease Account Check',3);
15447 BEGIN
15448 SELECT pld.expense_account_id,pld.receivable_account_id,pld.accrual_account_id
15449 INTO l_expense_account_id,l_receivable_account_id,l_accrual_account_id
15450 FROM pn_leases_all pla,pn_lease_details pld
15451 WHERE pla.lease_id = pld.lease_id
15452 AND pla.lease_id = p_lease_id;
15453 EXCEPTION
15454 WHEN NO_DATA_FOUND THEN
15455 l_expense_account_id := NULL;
15456 l_receivable_account_id := NULL;
15457 l_accrual_account_id := NULL;
15458 END;
15459
15460
15461
15462 IF (p_lease_class_code ='DIRECT') THEN
15463 l_exp_rev := 'Expense';
15464 l_lia_rec := 'Liability';
15465 l_accrued := 'Accrued Liability';
15466 ELSE
15467 l_exp_rev := 'Revenue';
15468 l_lia_rec := 'Receivable';
15469 l_accrued := 'Accrued Asset';
15470 END IF;
15471
15472
15473 IF(trim(p_operation) = trim('CREATE_TERMS')) THEN
15474 IF (l_default_flag = 'N') THEN
15475 BEGIN
15476 SELECT chart_of_accounts_id
15477 INTO p_payment_terms_tbl(i).set_of_books_id
15478 FROM gl_sets_of_books
15479 WHERE set_of_books_id = fnd_profile.VALUE ('GL_SET_OF_BKS_ID');
15480 EXCEPTION
15481 WHEN OTHERS THEN
15482 NULL;
15483 ----------------------dbms_output.put_line('Exception:SET_OF_BOOKS_ID'||SQLERRM);
15484 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Exception:CHART_OF_ACCOUNTS_ID:'||SQLERRM,3);
15485 END;
15486 END IF;
15487 END IF;
15488
15489 ---Checking the Accounts Info BEGIN
15490 l_terms_exp_rev_cnt := p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl.COUNT;
15491 l_terms_accrual_cnt := p_payment_terms_tbl(i).p_terms_accrual_account_tbl.COUNT;
15492 l_terms_liab_rcvl_cnt := p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl.COUNT;
15493 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Before Account Check',3);
15494
15495 l_project_info := 'N';
15496 l_check := NULL;
15497 l_check_date := NULL;
15498
15499 --Project Information Check----
15500 IF( l_exp_rev = 'Expense' AND l_terms_exp_rev_cnt = 0 AND p_payment_terms_tbl(i).term_template_id IS NULL) THEN
15501 l_project_info := 'Y';
15502 IF(trim(p_operation) = 'UPDATE_TERMS') THEN
15503 BEGIN
15504 SELECT project_id
15505 , task_id
15506 , expenditure_type
15507 , expenditure_item_date
15508 , organization_id
15509 INTO l_term_project_id--p_payment_terms_tbl(i).project_id
15510 , l_term_task_id--p_payment_terms_tbl(i).task_id
15511 , l_term_expenditure_type--p_payment_terms_tbl(i).expenditure_type
15512 , l_term_expenditure_item_date--p_payment_terms_tbl(i).expenditure_item_date
15513 , l_term_organization_id--p_payment_terms_tbl(i).organization_id
15514 FROM pn_payment_terms_all
15515 WHERE payment_term_id = p_payment_terms_tbl(i).payment_term_id
15516 AND org_id = g_org_id;
15517 EXCEPTION
15518 WHEN OTHERS THEN
15519 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
15520 fnd_message.set_token('ERR_MSG', 'Exception in Retrieving the Project Information');
15521 fnd_msg_pub.ADD;
15522 RAISE fnd_api.g_exc_error;
15523 END;
15524 IF ( p_payment_terms_tbl(i).project_id IS NULL) THEN
15525 p_payment_terms_tbl(i).project_id := l_term_project_id;
15526 END IF;
15527 IF ( p_payment_terms_tbl(i).task_id IS NULL) THEN
15528 p_payment_terms_tbl(i).task_id := l_term_task_id;
15529 END IF;
15530 IF ( p_payment_terms_tbl(i).expenditure_type IS NULL) THEN
15531 p_payment_terms_tbl(i).expenditure_type := l_term_expenditure_type;
15532 END IF;
15533 IF ( p_payment_terms_tbl(i).expenditure_item_date IS NULL) THEN
15534 p_payment_terms_tbl(i).expenditure_item_date := l_term_expenditure_item_date;
15535 END IF;
15536 IF ( p_payment_terms_tbl(i).organization_id IS NULL) THEN
15537 p_payment_terms_tbl(i).organization_id := l_term_organization_id;
15538 END IF;
15539 END IF;
15540 IF(p_payment_terms_tbl(i).project_id IS NULL) THEN
15541 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
15542 fnd_message.set_token('ERR_MSG', 'Account Information not Passed.Please Pass the Account Related Information');
15543 fnd_msg_pub.ADD;
15544 RAISE fnd_api.g_exc_error;
15545 /*fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
15546 fnd_message.set_token ('API_NAME', p_api_name_full);
15547 fnd_message.set_token ('NULL_PARAM', 'PROJECT_ID');
15548 fnd_msg_pub.ADD;
15549 RAISE fnd_api.g_exc_error;*/
15550 ELSE
15551 IF(p_payment_terms_tbl(i).task_id IS NULL) THEN
15552 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
15553 fnd_message.set_token ('API_NAME', p_api_name_full);
15554 fnd_message.set_token ('NULL_PARAM', 'TASK_ID');
15555 fnd_msg_pub.ADD;
15556 RAISE fnd_api.g_exc_error;
15557 ELSE
15558 IF(p_payment_terms_tbl(i).organization_id IS NULL) THEN
15559 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
15560 fnd_message.set_token ('API_NAME', p_api_name_full);
15561 fnd_message.set_token ('NULL_PARAM', 'EXPENDITURE_ORGANIZATION_ID');
15562 fnd_msg_pub.ADD;
15563 RAISE fnd_api.g_exc_error;
15564 ELSE
15565 IF(p_payment_terms_tbl(i).expenditure_type IS NULL) THEN
15566 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
15567 fnd_message.set_token ('API_NAME', p_api_name_full);
15568 fnd_message.set_token ('NULL_PARAM', 'EXPENDITURE_TYPE');
15569 fnd_msg_pub.ADD;
15570 RAISE fnd_api.g_exc_error;
15571 ELSE
15572 IF(p_payment_terms_tbl(i).expenditure_item_date IS NULL) THEN
15573 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
15574 fnd_message.set_token ('API_NAME', p_api_name_full);
15575 fnd_message.set_token ('NULL_PARAM', 'EXPENDITURE_ITEM_DATE');
15576 fnd_msg_pub.ADD;
15577 RAISE fnd_api.g_exc_error;
15578 ELSE
15579 BEGIN
15580 SELECT 'x'
15581 INTO l_check
15582 FROM pa_projects_all p,
15583 pa_project_types_all pt
15584 WHERE p.project_type = pt.project_type
15585 AND NVL(p.template_flag,'N') <>'Y'
15586 AND pt.org_id = g_org_id
15587 AND project_id = p_payment_terms_tbl(i).project_id;
15588 EXCEPTION
15589 WHEN OTHERS THEN
15590 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
15591 fnd_message.set_token('ERR_MSG', 'Invalid Project ID for the Payment ID:'||p_payment_terms_tbl(i).payment_term_id);
15592 fnd_msg_pub.ADD;
15593 RAISE fnd_api.g_exc_error;
15594 END;
15595 BEGIN
15596 SELECT 'x'
15597 INTO l_check
15598 FROM pa_tasks_expend_v
15599 WHERE project_id = p_payment_terms_tbl(i).project_id
15600 AND task_id = p_payment_terms_tbl(i).task_id
15601 AND org_id = g_org_id;
15602 EXCEPTION
15603 WHEN OTHERS THEN
15604 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
15605 fnd_message.set_token('ERR_MSG', 'Invalid Task ID for the Payment ID:'||p_payment_terms_tbl(i).payment_term_id);
15606 fnd_msg_pub.ADD;
15607 RAISE fnd_api.g_exc_error;
15608 END;
15609 BEGIN
15610 SELECT 'x'
15611 INTO l_check
15612 FROM pa_expenditure_types_expend_v
15613 WHERE system_linkage_function='VI'
15614 AND (sysdate between expnd_typ_start_date_active and nvl(expnd_typ_end_date_active, sysdate))
15615 AND (sysdate between sys_link_start_date_active and nvl(sys_link_end_date_active,sysdate))
15616 AND trim(expenditure_type) = trim(p_payment_terms_tbl(i).expenditure_type);
15617 EXCEPTION
15618 WHEN OTHERS THEN
15619 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
15620 fnd_message.set_token('ERR_MSG', 'Invalid Expenditure Type for the Payment ID:'||p_payment_terms_tbl(i).payment_term_id);
15621 fnd_msg_pub.ADD;
15622 RAISE fnd_api.g_exc_error;
15623 END;
15624 BEGIN
15625 SELECT p_payment_terms_tbl(i).expenditure_item_date
15626 INTO l_check_date
15627 FROM dual;
15628 EXCEPTION
15629 WHEN OTHERS THEN
15630 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
15631 fnd_message.set_token('ERR_MSG', 'Invalid Expenditure Date for the Payment ID:'||p_payment_terms_tbl(i).payment_term_id);
15632 fnd_msg_pub.ADD;
15633 RAISE fnd_api.g_exc_error;
15634 END;
15635 BEGIN
15636 SELECT 'x'
15637 INTO l_check
15638 FROM pa_organizations_expend_v a
15639 WHERE active_flag='Y'
15640 AND org_id = g_org_id
15641 AND p_payment_terms_tbl(i).expenditure_item_date between date_from and nvl(date_to,pn_lease_utils.g_pn_miss_date)
15642 AND organization_id = p_payment_terms_tbl(i).organization_id;
15643 EXCEPTION
15644 WHEN OTHERS THEN
15645 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
15646 fnd_message.set_token('ERR_MSG', 'Invalid Organization ID for the Payment ID:'||p_payment_terms_tbl(i).payment_term_id);
15647 fnd_msg_pub.ADD;
15648 RAISE fnd_api.g_exc_error;
15649 END;
15650 END IF;
15651
15652 END IF;
15653 END IF;
15654 END IF;
15655 END IF;
15656 END IF;
15657
15658
15659 --------------------------
15660 IF(l_project_info = 'N') THEN
15661 IF(NVL(p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl.COUNT,0) <> 0) THEN
15662
15663 FOR j in 1..p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl.COUNT
15664 LOOP
15665
15666 IF ( (p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_percentage IS NOT NULL)
15667 OR (p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_percentage <> pn_lease_utils.g_pn_miss_num)
15668 ) THEN
15669 k:= k + p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_percentage;
15670 ELSE
15671 pvt_debug(g_pkg_name||'Please Specify the Account Percentage',3);
15672 fnd_message.set_name ('PN', 'PN_DIST_PRCNT_TTL_MSG');
15673 fnd_msg_pub.ADD;
15674 RAISE fnd_api.g_exc_error;
15675 END IF;
15676 END LOOP;
15677
15678 IF (k <> 100) THEN
15679 ------------------dbms_output.put_line('Total Account is not 100%');--Rupak
15680 pvt_debug(g_pkg_name||'VALIDATE_PAYMENTS:Total Account is not 100%',3);
15681 fnd_message.set_name ('PN', 'PN_DIST_PRCNT_TTL_MSG');
15682 fnd_msg_pub.ADD;
15683 RAISE fnd_api.g_exc_error;
15684 ELSE
15685
15686 FOR j in 1..p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl.COUNT
15687 LOOP
15688 IF (p_lease_class_code ='DIRECT') THEN
15689 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_code := 'EXP';
15690 ELSE
15691 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_code := 'REV';
15692 END IF;
15693 PN_LEASE_UTILS.GET_ACCOUNT_ID (p_parameter_name => 'P_ACCOUNTS'
15694 , p_operation => 'CREATE_TERMS'
15695 , p_account_id => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_id
15696 , p_account_conc_segs => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_conc_segs
15697 , p_account_segment1 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment1
15698 , p_account_segment2 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment2
15699 , p_account_segment3 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment3
15700 , p_account_segment4 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment4
15701 , p_account_segment5 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment5
15702 , p_account_segment6 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment6
15703 , p_account_segment7 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment7
15704 , p_account_segment8 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment8
15705 , p_account_segment9 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment9
15706 , p_account_segment10 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment10
15707 , p_account_segment11 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment11
15708 , p_account_segment12 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment12
15709 , p_account_segment13 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment13
15710 , p_account_segment14 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment14
15711 , p_account_segment15 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment15
15712 , p_account_segment16 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment16
15713 , p_account_segment17 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment17
15714 , p_account_segment18 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment18
15715 , p_account_segment19 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment19
15716 , p_account_segment20 => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_segment20
15717 , x_return_status => x_return_status
15718 );
15719
15720 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
15721 IF ((p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_conc_segs IS NOT NULL) AND (p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_conc_segs <> pn_lease_utils.g_pn_miss_char)) THEN
15722 fnd_message.set_name ('PN', 'PN_ACCOUNT_CONC_SEGS');
15723 fnd_message.set_token ('ACCOUNT_CONC_SEGS','Expense or Revenue'||p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_conc_segs);
15724 fnd_msg_pub.ADD;
15725 RAISE fnd_api.g_exc_error;
15726 ELSIF((p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_id IS NOT NULL) AND (p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_id <> pn_lease_utils.g_pn_miss_num)) THEN
15727 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
15728 fnd_message.set_token ('ACCOUNT_ID','Expense or Revenue'||p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_id);
15729 fnd_msg_pub.ADD;
15730 RAISE fnd_api.g_exc_error;
15731 ELSE
15732 fnd_message.set_name ('PN', 'PN_ACCOUNT_SEGMENTS');
15733 fnd_message.set_token ('ACCOUNT_SEGMENTS','Expense or Revenue'||p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(j).account_conc_segs);
15734 fnd_msg_pub.ADD;
15735 RAISE fnd_api.g_exc_error;
15736 END IF;
15737
15738 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
15739 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
15740 fnd_message.set_token ('COLUMN', SUBSTR(l_exp_rev||'ACCOUNT INFORMATION',3));
15741 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
15742 fnd_msg_pub.ADD;
15743 END IF;
15744 END LOOP;
15745 END IF;
15746 ELSE
15747 /*--Bug16423198
15748 IF(trim(p_operation) = trim('CREATE_TERMS')) THEN
15749 IF ((l_expense_account_id IS NOT NULL) AND (l_expense_account_id <> pn_lease_utils.g_pn_miss_num)) THEN
15750 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_id:= l_expense_account_id;
15751 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_percentage := 100;
15752 IF (p_lease_class_code ='DIRECT') THEN
15753 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_code := 'EXP';
15754 ELSE
15755 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_code := 'REV';
15756 END IF;
15757 ELSIF( p_payment_terms_tbl(i).term_template_id IS NOT NULL AND p_payment_terms_tbl(i).term_template_id <> pn_lease_utils.g_pn_miss_num) THEN
15758 IF (p_lease_class_code ='DIRECT') THEN
15759 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_code := 'EXP';
15760 ELSE
15761 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_code := 'REV';
15762 END IF;
15763
15764 BEGIN
15765 SELECT account_id,percentage
15766 INTO p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_id,p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_percentage
15767 FROM pn_distributions_all
15768 WHERE term_template_id = p_payment_terms_tbl(i).term_template_id
15769 AND account_class = p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_code
15770 AND payment_term_id IS NULL;
15771
15772 EXCEPTION
15773 WHEN OTHERS THEN
15774 pvt_debug(g_pkg_name||'Revenue/Expense Account ID NULL:'||SQLERRM,3);
15775 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
15776 fnd_message.set_token ('ACCOUNT_ID', l_exp_rev||' ACCOUNT ID IS NULL');
15777 fnd_msg_pub.ADD;
15778 RAISE fnd_api.g_exc_error;
15779 END;
15780 ELSE
15781 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
15782 fnd_message.set_token ('ACCOUNT_ID', l_exp_rev||' ACCOUNT ID IS NULL');
15783 fnd_msg_pub.ADD;
15784 RAISE fnd_api.g_exc_error;
15785 END IF;
15786 ELSE
15787 NULL;
15788 END IF;
15789 END IF;
15790 */--Bug16423198
15791
15792 IF(trim(p_operation) = trim('CREATE_TERMS')) THEN
15793
15794 IF (p_lease_class_code ='DIRECT') THEN
15795 l_account_code := 'EXP';
15796 ELSE
15797 l_account_code := 'REV';
15798 END IF;
15799
15800 IF ((l_expense_account_id IS NOT NULL) AND (l_expense_account_id <> pn_lease_utils.g_pn_miss_num)) THEN
15801 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_id := l_expense_account_id;
15802 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_percentage := 100;
15803 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_code := l_account_code;
15804
15805
15806 ELSIF( p_payment_terms_tbl(i).term_template_id IS NOT NULL AND p_payment_terms_tbl(i).term_template_id <> pn_lease_utils.g_pn_miss_num) THEN
15807 l_act_count :=1;
15808
15809 FOR act_cur in exp_rev_account_cur(p_payment_terms_tbl(i).term_template_id,l_account_code)
15810 loop
15811 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(l_act_count).account_code := l_account_code;
15812 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(l_act_count).account_percentage := act_cur.percentage;
15813 p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(l_act_count).account_id := act_cur.account_id;
15814 l_act_count := l_act_count + 1;
15815 end loop;
15816
15817 ELSE
15818 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
15819 fnd_message.set_token ('ACCOUNT_ID', l_exp_rev||' ACCOUNT ID IS NULL');
15820 fnd_msg_pub.ADD;
15821 RAISE fnd_api.g_exc_error;
15822 END IF;
15823 ELSE
15824 NULL;
15825 END IF;
15826 END IF;
15827
15828
15829 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Before Receivable Liability Account Check',3);
15830
15831 IF (NVL(p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl.COUNT,0) <> 0 ) THEN
15832 IF( p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl.COUNT = 1
15833 AND (p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_percentage=100 OR p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_id IS NOT NULL)
15834 ) THEN
15835 IF (p_lease_class_code ='DIRECT') THEN
15836 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_code := 'LIA';
15837 ELSE
15838 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_code := 'REC';
15839 END IF;
15840 PN_LEASE_UTILS.GET_ACCOUNT_ID (p_parameter_name => 'P_ACCOUNTS'
15841 , p_operation => p_operation
15842 , p_account_id => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_id
15843 , p_account_conc_segs => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_conc_segs
15844 , p_account_segment1 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment1
15845 , p_account_segment2 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment2
15846 , p_account_segment3 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment3
15847 , p_account_segment4 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment4
15848 , p_account_segment5 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment5
15849 , p_account_segment6 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment6
15850 , p_account_segment7 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment7
15851 , p_account_segment8 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment8
15852 , p_account_segment9 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment9
15853 , p_account_segment10 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment10
15854 , p_account_segment11 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment11
15855 , p_account_segment12 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment12
15856 , p_account_segment13 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment13
15857 , p_account_segment14 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment14
15858 , p_account_segment15 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment15
15859 , p_account_segment16 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment16
15860 , p_account_segment17 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment17
15861 , p_account_segment18 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment18
15862 , p_account_segment19 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment19
15863 , p_account_segment20 => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_segment20
15864 , x_return_status => x_return_status
15865 );
15866 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
15867 IF ((p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_conc_segs IS NOT NULL) AND (p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_conc_segs <> pn_lease_utils.g_pn_miss_char)) THEN
15868 fnd_message.set_name ('PN', 'PN_ACCOUNT_CONC_SEGS');
15869 fnd_message.set_token ('ACCOUNT_CONC_SEGS', p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_conc_segs);
15870 fnd_msg_pub.ADD;
15871 RAISE fnd_api.g_exc_error;
15872 ELSIF((p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_id IS NOT NULL) AND (p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_id <> pn_lease_utils.g_pn_miss_num)) THEN
15873 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
15874 fnd_message.set_token ('ACCOUNT_ID', 'Receivable or Liability Account:'||p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_id);
15875 fnd_msg_pub.ADD;
15876 RAISE fnd_api.g_exc_error;
15877 ELSE
15878 fnd_message.set_name ('PN', 'PN_ACCOUNT_SEGMENTS');
15879 fnd_message.set_token ('ACCOUNT_SEGMENTS','Receivable or Liability Account:'||p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_conc_segs);
15880 fnd_msg_pub.ADD;
15881 RAISE fnd_api.g_exc_error;
15882 END IF;
15883 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
15884 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
15885 fnd_message.set_token ('COLUMN', SUBSTR(l_lia_rec||'ACCOUNT INFORMATION',3));
15886 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
15887 fnd_msg_pub.ADD;
15888 END IF;
15889
15890 ELSE
15891 IF(p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_id IS NOT NULL) THEN
15892 fnd_message.set_name ('PN', 'PN_DUP_ACCOUNT_IN_DIST');
15893 fnd_message.set_token ('ACCOUNT_CLASS',l_lia_rec);
15894 fnd_message.set_token ('ACCOUNT_CLASS_A',l_lia_rec);
15895 fnd_msg_pub.ADD;
15896 RAISE fnd_api.g_exc_error;
15897 ELSE
15898 IF (p_lease_class_code ='DIRECT') THEN
15899 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_code := 'LIA';
15900 ELSE
15901 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_code := 'REC';
15902 END IF;
15903 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Receivables/Liability Account ID IS about to make NULL',3);
15904 END IF;
15905 END IF;
15906
15907 ELSE--Getting from the lease
15908 IF(trim(p_operation) = trim('CREATE_TERMS')) THEN
15909 IF ((l_receivable_account_id IS NOT NULL) AND (l_receivable_account_id <> pn_lease_utils.g_pn_miss_num)) THEN
15910 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_id:= l_receivable_account_id;
15911 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_percentage := 100;
15912 IF (p_lease_class_code ='DIRECT') THEN
15913 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_code := 'LIA';
15914 ELSE
15915 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_code := 'REC';
15916 END IF;
15917 ELSIF( p_payment_terms_tbl(i).term_template_id IS NOT NULL AND p_payment_terms_tbl(i).term_template_id <> pn_lease_utils.g_pn_miss_num) THEN
15918 IF (p_lease_class_code ='DIRECT') THEN
15919 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_code := 'LIA';
15920 ELSE
15921 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_code := 'REC';
15922 END IF;
15923 BEGIN
15924 SELECT account_id,percentage
15925 INTO p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_id,p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_percentage
15926 FROM pn_distributions_all
15927 WHERE term_template_id = p_payment_terms_tbl(i).term_template_id
15928 AND account_class = p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_code
15929 AND payment_term_id IS NULL;
15930
15931 EXCEPTION
15932 WHEN OTHERS THEN
15933 IF( p_lease_class_code <> 'DIRECT') THEN
15934 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
15935 fnd_message.set_token ('ACCOUNT_ID', l_lia_rec||' ACCOUNT ID IS NULL');
15936 fnd_msg_pub.ADD;
15937 RAISE fnd_api.g_exc_error;
15938 ELSE
15939 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_id := NULL;
15940 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_percentage := NULL;
15941 END IF;
15942 END;
15943 ELSE
15944 IF( p_lease_class_code <> 'DIRECT') THEN
15945 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
15946 fnd_message.set_token ('ACCOUNT_ID', l_lia_rec||' ACCOUNT ID IS NULL');
15947 fnd_msg_pub.ADD;
15948 RAISE fnd_api.g_exc_error;
15949 ELSE
15950 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_id := NULL;
15951 p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_percentage := NULL;
15952 END IF;
15953 END IF;
15954 ELSE
15955 NULL;
15956 END IF;
15957 END IF;
15958
15959 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Before Accrual Account Check',3);
15960
15961 IF (NVL(p_payment_terms_tbl(i).p_terms_accrual_account_tbl.COUNT,0) <> 0 ) THEN
15962 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Deriving Account ID:'||p_payment_terms_tbl(i).p_terms_accrual_account_tbl.COUNT||
15963 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id||
15964 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_percentage,3);
15965 IF( (p_payment_terms_tbl(i).p_terms_accrual_account_tbl.COUNT = 1)
15966 AND (p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_percentage=100
15967 OR p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id IS NOT NULL)
15968 ) THEN
15969 IF (p_lease_class_code ='DIRECT') THEN
15970 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_code := 'ACC';
15971 ELSE
15972 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_code := 'UNEARN';
15973 END IF;
15974 --dbms_output.put_line('HELLO:ACCOUNTID');
15975 PN_LEASE_UTILS.GET_ACCOUNT_ID (p_parameter_name => 'P_ACCOUNTS'
15976 , p_operation => p_operation
15977 , p_account_id => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id
15978 , p_account_conc_segs => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_conc_segs
15979 , p_account_segment1 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment1
15980 , p_account_segment2 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment2
15981 , p_account_segment3 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment3
15982 , p_account_segment4 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment4
15983 , p_account_segment5 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment5
15984 , p_account_segment6 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment6
15985 , p_account_segment7 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment7
15986 , p_account_segment8 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment8
15987 , p_account_segment9 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment9
15988 , p_account_segment10 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment10
15989 , p_account_segment11 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment11
15990 , p_account_segment12 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment12
15991 , p_account_segment13 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment13
15992 , p_account_segment14 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment14
15993 , p_account_segment15 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment15
15994 , p_account_segment16 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment16
15995 , p_account_segment17 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment17
15996 , p_account_segment18 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment18
15997 , p_account_segment19 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment19
15998 , p_account_segment20 => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_segment20
15999 , x_return_status => x_return_status
16000 );
16001 --dbms_output.put_line('HELLO:GETTING ACCOUNTID'||p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id);
16002 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
16003 IF ((p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_conc_segs IS NOT NULL) AND (p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_conc_segs <> pn_lease_utils.g_pn_miss_char)) THEN
16004 fnd_message.set_name ('PN', 'PN_ACCOUNT_CONC_SEGS');
16005 fnd_message.set_token ('ACCOUNT_CONC_SEGS','Accrued Account:'|| p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_conc_segs);
16006 fnd_msg_pub.ADD;
16007 RAISE fnd_api.g_exc_error;
16008 ELSIF((p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id IS NOT NULL) AND (p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id <> pn_lease_utils.g_pn_miss_num)) THEN
16009 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
16010 fnd_message.set_token ('ACCOUNT_ID', 'Accrued Account:'||p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id);
16011 fnd_msg_pub.ADD;
16012 RAISE fnd_api.g_exc_error;
16013 ELSE
16014 fnd_message.set_name ('PN', 'PN_ACCOUNT_SEGMENTS');
16015 fnd_message.set_token ('ACCOUNT_SEGMENTS', 'Accrued Account:'||p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_conc_segs);
16016 fnd_msg_pub.ADD;
16017 RAISE fnd_api.g_exc_error;
16018 END IF;
16019 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
16020 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
16021 fnd_message.set_token ('COLUMN', SUBSTR(l_accrued||'ACCOUNT INFORMATION',3));
16022 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
16023 fnd_msg_pub.ADD;
16024 END IF;
16025
16026 ELSE
16027 IF(p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id IS NOT NULL) THEN
16028 fnd_message.set_name ('PN', 'PN_DUP_ACCOUNT_IN_DIST');
16029 fnd_message.set_token ('ACCOUNT_CLASS',l_accrued);
16030 fnd_message.set_token ('ACCOUNT_CLASS_A',l_accrued);
16031 fnd_msg_pub.ADD;
16032 RAISE fnd_api.g_exc_error;
16033 ELSE
16034 IF (p_lease_class_code ='DIRECT') THEN
16035 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_code := 'ACC';
16036 ELSE
16037 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_code := 'UNEARN';
16038 END IF;
16039 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Accrued Account ID IS about to make NULL',3);
16040 END IF;
16041 END IF;
16042 ELSE--Getting from the lease
16043 IF(trim(p_operation) = trim('CREATE_TERMS')) THEN
16044 IF ((l_accrual_account_id IS NOT NULL) AND (l_accrual_account_id <> pn_lease_utils.g_pn_miss_num)) THEN
16045 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id:= l_accrual_account_id;
16046 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_percentage :=100;
16047 IF (p_lease_class_code ='DIRECT') THEN
16048 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_code := 'ACC';
16049 ELSE
16050 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_code := 'UNEARN';
16051 END IF;
16052 ELSIF( p_payment_terms_tbl(i).term_template_id IS NOT NULL AND p_payment_terms_tbl(i).term_template_id <> pn_lease_utils.g_pn_miss_num) THEN
16053 IF (p_lease_class_code ='DIRECT') THEN
16054 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_code := 'ACC';
16055 ELSE
16056 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_code := 'UNEARN';
16057 END IF;
16058 BEGIN
16059 SELECT account_id,percentage
16060 INTO p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id,p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_percentage
16061 FROM pn_distributions_all
16062 WHERE term_template_id = p_payment_terms_tbl(i).term_template_id
16063 AND account_class = p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_code
16064 AND payment_term_id IS NULL;
16065 EXCEPTION
16066 WHEN OTHERS THEN
16067 /*IF(p_lease_class_code <> 'THIRD_PARTY') THEN
16068 fnd_message.set_name ('PN', 'PN_ACCOUNT_ID');
16069 fnd_message.set_token ('ACCOUNT_ID', l_accrued||' ACCOUNT ID IS NULL');
16070 fnd_msg_pub.ADD;
16071 RAISE fnd_api.g_exc_error;
16072 ELSE
16073 NULL;
16074 END IF;*/
16075 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_id := NULL;
16076 p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_percentage := NULL;
16077 END;
16078 ELSE
16079 NULL;
16080 END IF;
16081 ELSE
16082 NULL;
16083 END IF;
16084 END IF;
16085
16086 END IF;-- l_project_info Check(Y/N)
16087
16088 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Before Account Insert Account Check',3);
16089 --END---Validate Account
16090 IF (trim(p_operation) = trim('CREATE_TERMS')) THEN
16091 -- BEGIN
16092 --Calling the Insert Procedure
16093 ----------------------dbms_output.put_line('Hello:23');--Rupak
16094 insert_payment_terms_row (p_lease_terms_rec => p_payment_terms_tbl(i)
16095 , p_lease_id => p_lease_id
16096 , p_change_lease_id => p_lease_change_id
16097 , p_lease_context => p_lease_context
16098 , x_return_status => x_return_status
16099 );
16100 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:INSERT_PAYMENT_TERMS_ROW Return Status:'||x_return_status,3);
16101 ------------------dbms_output.put_line('Create Success:'||x_return_status||i);--Rupak
16102 IF (x_return_status = fnd_api.g_ret_sts_success) THEN
16103 IF(l_project_info = 'N') THEN
16104 FOR m in 1..p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl.COUNT
16105 LOOP
16106 x_distribution_id := NULL;
16107 l_max_rownum := NULL;
16108 x_rowid := NULL;
16109 BEGIN
16110 pn_distributions_pkg.insert_row (x_rowid => x_rowid
16111 ,x_distribution_id => x_distribution_id--r_dist_details.distribution_id
16112 ,x_account_id => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(m).account_id
16113 ,x_payment_term_id => p_payment_terms_tbl(i).payment_term_id
16114 ,x_term_template_id => NULL--p_payment_terms_tbl(i).term_template_id
16115 ,x_account_class => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(m).account_code
16116 ,x_percentage => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(m).account_percentage
16117 ,x_line_number => l_max_rownum
16118 ,x_last_update_date => SYSDATE
16119 ,x_last_updated_by => fnd_global.user_id
16120 ,x_creation_date => SYSDATE
16121 ,x_created_by => fnd_global.user_id
16122 ,x_last_update_login => fnd_global.login_id
16123 ,x_attribute_category => NULL
16124 ,x_attribute1 => NULL
16125 ,x_attribute2 => NULL
16126 ,x_attribute3 => NULL
16127 ,x_attribute4 => NULL
16128 ,x_attribute5 => NULL
16129 ,x_attribute6 => NULL
16130 ,x_attribute7 => NULL
16131 ,x_attribute8 => NULL
16132 ,x_attribute9 => NULL
16133 ,x_attribute10 => NULL
16134 ,x_attribute11 => NULL
16135 ,x_attribute12 => NULL
16136 ,x_attribute13 => NULL
16137 ,x_attribute14 => NULL
16138 ,x_attribute15 => NULL
16139 ,x_org_id => g_org_id
16140 );
16141
16142 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.INSERT_ROW Successful',3);
16143 ----------------dbms_output.put_line('IN ELSE : ELSE:INSERT ROW'||x_distribution_id);
16144
16145 ----------------------dbms_output.put_line('IN ELSE : ELSE:INSERT ROW');
16146 --l_max_row_num := l_max_row_num + 1;
16147 EXCEPTION
16148 WHEN OTHERS THEN
16149 ----------------dbms_output.put_line('ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM);
16150 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM,3);
16151 END;
16152 END LOOP;
16153
16154 ---------------------------------
16155
16156 FOR m in 1..p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl.COUNT
16157 LOOP
16158 x_distribution_id := NULL;
16159 l_max_rownum := NULL;
16160 x_rowid := NULL;
16161 BEGIN
16162
16163 pn_distributions_pkg.insert_row (x_rowid => x_rowid
16164 ,x_distribution_id => x_distribution_id--r_dist_details.distribution_id
16165 ,x_account_id => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(m).account_id
16166 ,x_payment_term_id => p_payment_terms_tbl(i).payment_term_id
16167 ,x_term_template_id => NULL--p_payment_terms_tbl(i).term_template_id
16168 ,x_account_class => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(m).account_code
16169 ,x_percentage => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(m).account_percentage
16170 ,x_line_number => l_max_rownum
16171 ,x_last_update_date => SYSDATE
16172 ,x_last_updated_by => fnd_global.user_id
16173 ,x_creation_date => SYSDATE
16174 ,x_created_by => fnd_global.user_id
16175 ,x_last_update_login => fnd_global.login_id
16176 ,x_attribute_category => NULL
16177 ,x_attribute1 => NULL
16178 ,x_attribute2 => NULL
16179 ,x_attribute3 => NULL
16180 ,x_attribute4 => NULL
16181 ,x_attribute5 => NULL
16182 ,x_attribute6 => NULL
16183 ,x_attribute7 => NULL
16184 ,x_attribute8 => NULL
16185 ,x_attribute9 => NULL
16186 ,x_attribute10 => NULL
16187 ,x_attribute11 => NULL
16188 ,x_attribute12 => NULL
16189 ,x_attribute13 => NULL
16190 ,x_attribute14 => NULL
16191 ,x_attribute15 => NULL
16192 ,x_org_id => g_org_id
16193 );
16194
16195 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.INSERT_ROW Successful',3);
16196 ----------------dbms_output.put_line('IN ELSE : ELSE:p_terms_liab_rcvl_account_tbl ROW'||x_distribution_id);
16197
16198 ----------------------dbms_output.put_line('IN ELSE : ELSE:INSERT ROW');
16199 --l_max_row_num := l_max_row_num + 1;
16200 EXCEPTION
16201 WHEN OTHERS THEN
16202 ----------------dbms_output.put_line('p_terms_liab_rcvl_account_tbl:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM);
16203 pvt_debug(g_pkg_name||'p_terms_liab_rcvl_account_tbl:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM,3);
16204 END;
16205 END LOOP;
16206
16207 ----------------------------------
16208 FOR m in 1..p_payment_terms_tbl(i).p_terms_accrual_account_tbl.COUNT
16209 LOOP
16210 x_distribution_id := NULL;
16211 l_max_rownum := NULL;
16212 x_rowid := NULL;
16213 BEGIN
16214 pn_distributions_pkg.insert_row (x_rowid => x_rowid
16215 ,x_distribution_id => x_distribution_id--r_dist_details.distribution_id
16216 ,x_account_id => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(m).account_id
16217 ,x_payment_term_id => p_payment_terms_tbl(i).payment_term_id
16218 ,x_term_template_id => NULL--p_payment_terms_tbl(i).term_template_id
16219 ,x_account_class => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(m).account_code
16220 ,x_percentage => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(m).account_percentage
16221 ,x_line_number => l_max_rownum
16222 ,x_last_update_date => SYSDATE
16223 ,x_last_updated_by => fnd_global.user_id
16224 ,x_creation_date => SYSDATE
16225 ,x_created_by => fnd_global.user_id
16226 ,x_last_update_login => fnd_global.login_id
16227 ,x_attribute_category => NULL
16228 ,x_attribute1 => NULL
16229 ,x_attribute2 => NULL
16230 ,x_attribute3 => NULL
16231 ,x_attribute4 => NULL
16232 ,x_attribute5 => NULL
16233 ,x_attribute6 => NULL
16234 ,x_attribute7 => NULL
16235 ,x_attribute8 => NULL
16236 ,x_attribute9 => NULL
16237 ,x_attribute10 => NULL
16238 ,x_attribute11 => NULL
16239 ,x_attribute12 => NULL
16240 ,x_attribute13 => NULL
16241 ,x_attribute14 => NULL
16242 ,x_attribute15 => NULL
16243 ,x_org_id => g_org_id
16244 );
16245
16246 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.INSERT_ROW Successful',3);
16247 ----------------dbms_output.put_line('IN ELSE : ELSE:p_terms_accrual_account_tbl ROW'||x_distribution_id);
16248
16249 ----------------------dbms_output.put_line('IN ELSE : ELSE:INSERT ROW');
16250 --l_max_row_num := l_max_row_num + 1;
16251 EXCEPTION
16252 WHEN OTHERS THEN
16253 ----------------dbms_output.put_line('p_terms_accrual_account_tbl:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM);
16254 pvt_debug(g_pkg_name||'p_terms_accrual_account_tbl:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM,3);
16255 END;
16256 END LOOP;
16257 -------------------------------------
16258 END IF;--Success Status
16259
16260 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
16261 l_error_flag:='Y';
16262 RAISE fnd_api.g_exc_error;
16263 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
16264 l_error_flag:='Y';
16265 RAISE fnd_api.g_exc_unexpected_error;
16266 END IF;
16267
16268
16269
16270 ELSIF(trim(p_operation) = trim('UPDATE_TERMS')) THEN --UPDATE Version of the Check Starts
16271 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Before Account Update Account Check',3);
16272 BEGIN
16273 SELECT max(rownum)
16274 INTO l_max_rownum
16275 FROM pn_distributions_all pda
16276 WHERE pda.payment_term_id = p_payment_terms_tbl(i).payment_term_id
16277 AND pda.org_id = g_org_id;
16278 EXCEPTION
16279 WHEN OTHERS THEN
16280 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:MAX ROWNUM:Exception:'||SQLERRM,3);
16281 NULL;
16282 END;
16283 IF( p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl.EXISTS(1)) THEN
16284 l_acc_code := p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(1).account_code;
16285
16286
16287 BEGIN
16288 SELECT count(1)
16289 INTO l_record_count_exp_rev
16290 FROM pn_distributions_all
16291 WHERE payment_term_id = p_payment_terms_tbl(i).payment_term_id
16292 AND account_class = l_acc_code
16293 AND org_id = g_org_id;
16294 EXCEPTION
16295 WHEN NO_DATA_FOUND THEN
16296 l_record_count_exp_rev :=0;
16297 END;
16298
16299
16300 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Before Updating Expense Account',3);
16301 l_count := 1;
16302
16303 FOR r_dist_details in cur_dist_details(p_payment_terms_tbl(i).payment_term_id,l_acc_code)
16304 LOOP
16305
16306 FOR p in 1..p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl.COUNT
16307 LOOP
16308 IF (l_count <= l_record_count_exp_rev) THEN
16309 BEGIN
16310 pn_distributions_pkg.update_row( x_rowid => r_dist_details.row_id
16311 , x_distribution_id => r_dist_details.distribution_id
16312 , x_account_id => NVL(p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(p).account_id,r_dist_details.account_id)
16313 ,x_payment_term_id => r_dist_details.payment_term_id
16314 ,x_term_template_id => NULL--r_dist_details.term_template_id
16315 ,x_account_class => l_acc_code
16316 ,x_percentage => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(p).account_percentage
16317 ,x_line_number => r_dist_details.line_number
16318 ,x_last_update_date => SYSDATE
16319 ,x_last_updated_by => fnd_global.user_id
16320 ,x_last_update_login => fnd_global.login_id
16321 ,x_attribute_category => r_dist_details.attribute_category
16322 ,x_attribute1 => r_dist_details.attribute1
16323 ,x_attribute2 => r_dist_details.attribute2
16324 ,x_attribute3 => r_dist_details.attribute3
16325 ,x_attribute4 => r_dist_details.attribute4
16326 ,x_attribute5 => r_dist_details.attribute5
16327 ,x_attribute6 => r_dist_details.attribute6
16328 ,x_attribute7 => r_dist_details.attribute7
16329 ,x_attribute8 => r_dist_details.attribute8
16330 ,x_attribute9 => r_dist_details.attribute9
16331 ,x_attribute10 => r_dist_details.attribute10
16332 ,x_attribute11 => r_dist_details.attribute11
16333 ,x_attribute12 => r_dist_details.attribute12
16334 ,x_attribute13 => r_dist_details.attribute13
16335 ,x_attribute14 => r_dist_details.attribute14
16336 ,x_attribute15 => r_dist_details.attribute15
16337 ,x_lease_change_id => g_lease_change_id
16338 );
16339 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.UPDATE_ROW Successful',3);
16340
16341 l_count := l_count + 1;
16342 ----------------------dbms_output.put_line('IN IF:UPDATE ROW');
16343 EXCEPTION
16344 WHEN OTHERS THEN
16345 NULL;
16346 ----------------------dbms_output.put_line('In Exception:In Update'||SQLERRM);
16347 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:PN_DISTRIBUTIONS_PKG.UPDATE_ROW:Exception:'||SQLERRM,3);
16348 END;
16349 ELSE
16350 BEGIN
16351 pn_distributions_pkg.insert_row (x_rowid => x_rowid
16352 ,x_distribution_id => x_distribution_id--r_dist_details.distribution_id
16353 ,x_account_id => NVL(p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(p).account_id,r_dist_details.account_id)
16354 ,x_payment_term_id => r_dist_details.payment_term_id
16355 ,x_term_template_id => NULL--r_dist_details.term_template_id
16356 ,x_account_class => l_acc_code
16357 ,x_percentage => p_payment_terms_tbl(i).p_terms_exp_rev_accounts_tbl(p).account_percentage
16358 ,x_line_number => l_max_rownum
16359 ,x_last_update_date => SYSDATE
16360 ,x_last_updated_by => fnd_global.user_id
16361 ,x_creation_date => SYSDATE
16362 ,x_created_by => fnd_global.user_id
16363 ,x_last_update_login => fnd_global.login_id
16364 ,x_attribute_category => NULL
16365 ,x_attribute1 => NULL
16366 ,x_attribute2 => NULL
16367 ,x_attribute3 => NULL
16368 ,x_attribute4 => NULL
16369 ,x_attribute5 => NULL
16370 ,x_attribute6 => NULL
16371 ,x_attribute7 => NULL
16372 ,x_attribute8 => NULL
16373 ,x_attribute9 => NULL
16374 ,x_attribute10 => NULL
16375 ,x_attribute11 => NULL
16376 ,x_attribute12 => NULL
16377 ,x_attribute13 => NULL
16378 ,x_attribute14 => NULL
16379 ,x_attribute15 => NULL
16380 ,x_org_id => g_org_id--fnd_global.org_id
16381 );
16382 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.INSERT_ROW for Expense Revenue Successful',3);
16383
16384 EXCEPTION
16385 WHEN OTHERS THEN
16386 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.INSERT_ROW for Expense Revenue :Exception:'||SQLERRM,3);
16387 END;
16388 END IF;
16389 END LOOP;
16390 END LOOP;
16391 END IF;
16392 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Before Updating Receiavable-Liability Account',3);
16393 l_lia_exist_count := NULL;
16394 ----Receivable And Liability
16395 IF( p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl.EXISTS(1)) THEN
16396 l_acc_code := p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(1).account_code;
16397 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Receiavable-Liability Account:'||l_acc_code||'-'||p_payment_terms_tbl(i).payment_term_id||'-'||g_org_id,3);
16398 BEGIN
16399 SELECT COUNT(1)
16400 INTO l_lia_exist_count
16401 FROM pn_distributions_all
16402 WHERE account_class = l_acc_code
16403 AND payment_term_id = p_payment_terms_tbl(i).payment_term_id
16404 AND org_id = g_org_id;
16405 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Receivable/Liability Account Class Count:'||l_lia_exist_count,3);
16406 EXCEPTION
16407 WHEN OTHERS THEN
16408 l_lia_exist_count := 0;
16409 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Receivable/Liability Distribution:'||l_acc_code||' doesnt exist',3);
16410 END;
16411 IF(l_lia_exist_count > 0) THEN
16412 FOR r_dist_details in cur_dist_details(p_payment_terms_tbl(i).payment_term_id,l_acc_code)
16413 LOOP
16414 FOR p in 1..p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl.COUNT
16415 LOOP
16416 IF(p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(p).account_id IS NOT NULL) THEN
16417 BEGIN
16418 pn_distributions_pkg.update_row( x_rowid => r_dist_details.row_id
16419 , x_distribution_id => r_dist_details.distribution_id
16420 , x_account_id => NVL(p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(p).account_id,r_dist_details.account_id)
16421 ,x_payment_term_id => r_dist_details.payment_term_id
16422 ,x_term_template_id => NULL--r_dist_details.term_template_id
16423 ,x_account_class => l_acc_code
16424 ,x_percentage => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(p).account_percentage
16425 ,x_line_number => r_dist_details.line_number
16426 ,x_last_update_date => SYSDATE
16427 ,x_last_updated_by => fnd_global.user_id
16428 ,x_last_update_login => fnd_global.login_id
16429 ,x_attribute_category => r_dist_details.attribute_category
16430 ,x_attribute1 => r_dist_details.attribute1
16431 ,x_attribute2 => r_dist_details.attribute2
16432 ,x_attribute3 => r_dist_details.attribute3
16433 ,x_attribute4 => r_dist_details.attribute4
16434 ,x_attribute5 => r_dist_details.attribute5
16435 ,x_attribute6 => r_dist_details.attribute6
16436 ,x_attribute7 => r_dist_details.attribute7
16437 ,x_attribute8 => r_dist_details.attribute8
16438 ,x_attribute9 => r_dist_details.attribute9
16439 ,x_attribute10 => r_dist_details.attribute10
16440 ,x_attribute11 => r_dist_details.attribute11
16441 ,x_attribute12 => r_dist_details.attribute12
16442 ,x_attribute13 => r_dist_details.attribute13
16443 ,x_attribute14 => r_dist_details.attribute14
16444 ,x_attribute15 => r_dist_details.attribute15
16445 ,x_lease_change_id => g_lease_change_id
16446 );
16447 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.UPDATE_ROW for Liability and Receivable Successful',3);
16448
16449 l_count := l_count + 1;
16450 ----------------------dbms_output.put_line('IN IF:UPDATE ROW');
16451 EXCEPTION
16452 WHEN OTHERS THEN
16453 ----------------------dbms_output.put_line('In Exception:In Update'||SQLERRM);
16454 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.UPDATE_ROW for Liability and Receivable:Exception:'||SQLERRM,3);
16455 END;
16456 ELSE
16457 IF(p_lease_class_code = 'DIRECT') THEN
16458 BEGIN
16459 DELETE FROM pn_distributions_all
16460 WHERE account_class = l_acc_code
16461 AND payment_term_id = p_payment_terms_tbl(i).payment_term_id
16462 AND org_id = g_org_id;
16463 COMMIT;
16464 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.Liability and Receivable DELETE ROW',3);
16465 EXCEPTION
16466 WHEN OTHERS THEN
16467 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.Liability and Receivable DELETE ROW Successful',3);
16468 END;
16469 ELSE
16470 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.Cannot delete the Liability and Receivable for Revenue/Sublease',3);
16471 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16472 fnd_message.set_token('ERR_MSG', 'Cannot make the Liability/Receivable ID to NULL');
16473 fnd_msg_pub.ADD;
16474 RAISE fnd_api.g_exc_error;
16475 END IF;
16476 END IF;
16477 END LOOP;
16478 END LOOP;
16479 ELSE
16480 FOR p in 1..p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl.COUNT
16481 LOOP
16482 x_distribution_id := NULL;
16483 l_max_rownum := NULL;
16484 x_rowid := NULL;
16485 BEGIN
16486
16487 pn_distributions_pkg.insert_row (x_rowid => x_rowid
16488 ,x_distribution_id => x_distribution_id--r_dist_details.distribution_id
16489 ,x_account_id => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(p).account_id
16490 ,x_payment_term_id => p_payment_terms_tbl(i).payment_term_id
16491 ,x_term_template_id => NULL--p_payment_terms_tbl(i).term_template_id
16492 ,x_account_class => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(p).account_code
16493 ,x_percentage => p_payment_terms_tbl(i).p_terms_liab_rcvl_account_tbl(p).account_percentage
16494 ,x_line_number => l_max_rownum
16495 ,x_last_update_date => SYSDATE
16496 ,x_last_updated_by => fnd_global.user_id
16497 ,x_creation_date => SYSDATE
16498 ,x_created_by => fnd_global.user_id
16499 ,x_last_update_login => fnd_global.login_id
16500 ,x_attribute_category => NULL
16501 ,x_attribute1 => NULL
16502 ,x_attribute2 => NULL
16503 ,x_attribute3 => NULL
16504 ,x_attribute4 => NULL
16505 ,x_attribute5 => NULL
16506 ,x_attribute6 => NULL
16507 ,x_attribute7 => NULL
16508 ,x_attribute8 => NULL
16509 ,x_attribute9 => NULL
16510 ,x_attribute10 => NULL
16511 ,x_attribute11 => NULL
16512 ,x_attribute12 => NULL
16513 ,x_attribute13 => NULL
16514 ,x_attribute14 => NULL
16515 ,x_attribute15 => NULL
16516 ,x_org_id => g_org_id
16517 );
16518
16519 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:UPDATE_TERMS:RECEIVABLES?LIABILITY:PN_DISTRIBUTIONS_PKG.INSERT_ROW Successful',3);
16520 ----------------dbms_output.put_line('IN ELSE : ELSE:p_terms_liab_rcvl_account_tbl ROW'||x_distribution_id);
16521
16522 ----------------------dbms_output.put_line('IN ELSE : ELSE:INSERT ROW');
16523 --l_max_row_num := l_max_row_num + 1;
16524 EXCEPTION
16525 WHEN OTHERS THEN
16526 ----------------dbms_output.put_line('p_terms_liab_rcvl_account_tbl:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM);
16527 pvt_debug(g_pkg_name||'p_terms_liab_rcvl_account_tbl:UPDATE_TERMS:RECEIVABLES?LIABILITY:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM,3);
16528 END;
16529 END LOOP;
16530 END IF; -- (COUNT > 0)
16531 END IF; --
16532 ----Accrual
16533
16534 l_acc_exist_count := NULL;
16535 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Before Updating Accrual Account'||p_payment_terms_tbl(i).p_terms_accrual_account_tbl.COUNT,3);
16536
16537 IF( p_payment_terms_tbl(i).p_terms_accrual_account_tbl.EXISTS(1)) THEN
16538 l_acc_code := p_payment_terms_tbl(i).p_terms_accrual_account_tbl(1).account_code;
16539 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Accrual Account Class'||l_acc_code||'-'||p_payment_terms_tbl(i).payment_term_id||'-'||g_org_id,3);
16540 BEGIN
16541 SELECT COUNT(1)
16542 INTO l_acc_exist_count
16543 FROM pn_distributions_all
16544 WHERE account_class = l_acc_code
16545 AND payment_term_id = p_payment_terms_tbl(i).payment_term_id
16546 AND org_id = g_org_id;
16547 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Accrual Account Class Count:'||l_acc_exist_count,3);
16548 EXCEPTION
16549 WHEN OTHERS THEN
16550 l_acc_exist_count := 0;
16551 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Distribution:'||l_acc_code||' doesnt exist',3);
16552 END;
16553 IF(l_acc_exist_count > 0) THEN
16554
16555 FOR r_dist_details in cur_dist_details(p_payment_terms_tbl(i).payment_term_id,l_acc_code)
16556 LOOP
16557 FOR p in 1..p_payment_terms_tbl(i).p_terms_accrual_account_tbl.COUNT
16558 LOOP
16559 IF(p_payment_terms_tbl(i).p_terms_accrual_account_tbl(p).account_id IS NOT NULL) THEN
16560 BEGIN
16561 pn_distributions_pkg.update_row( x_rowid => r_dist_details.row_id
16562 , x_distribution_id => r_dist_details.distribution_id
16563 , x_account_id => NVL(p_payment_terms_tbl(i).p_terms_accrual_account_tbl(p).account_id,r_dist_details.account_id)
16564 ,x_payment_term_id => r_dist_details.payment_term_id
16565 ,x_term_template_id => NULL--r_dist_details.term_template_id
16566 ,x_account_class => l_acc_code
16567 ,x_percentage => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(p).account_percentage
16568 ,x_line_number => r_dist_details.line_number
16569 ,x_last_update_date => SYSDATE
16570 ,x_last_updated_by => fnd_global.user_id
16571 ,x_last_update_login => fnd_global.login_id
16572 ,x_attribute_category => r_dist_details.attribute_category
16573 ,x_attribute1 => r_dist_details.attribute1
16574 ,x_attribute2 => r_dist_details.attribute2
16575 ,x_attribute3 => r_dist_details.attribute3
16576 ,x_attribute4 => r_dist_details.attribute4
16577 ,x_attribute5 => r_dist_details.attribute5
16578 ,x_attribute6 => r_dist_details.attribute6
16579 ,x_attribute7 => r_dist_details.attribute7
16580 ,x_attribute8 => r_dist_details.attribute8
16581 ,x_attribute9 => r_dist_details.attribute9
16582 ,x_attribute10 => r_dist_details.attribute10
16583 ,x_attribute11 => r_dist_details.attribute11
16584 ,x_attribute12 => r_dist_details.attribute12
16585 ,x_attribute13 => r_dist_details.attribute13
16586 ,x_attribute14 => r_dist_details.attribute14
16587 ,x_attribute15 => r_dist_details.attribute15
16588 ,x_lease_change_id => g_lease_change_id
16589 );
16590 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.UPDATE_ROW for Accrual Successful',3);
16591
16592 l_count := l_count + 1;
16593 ----------------------dbms_output.put_line('IN IF:UPDATE ROW');
16594 EXCEPTION
16595 WHEN OTHERS THEN
16596 ----------------------dbms_output.put_line('In Exception:In Update'||SQLERRM);
16597 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.UPDATE_ROW for Accrual:Exception:'||SQLERRM,3);
16598 END;
16599 ELSE
16600 BEGIN
16601 DELETE FROM pn_distributions_all
16602 WHERE account_class = l_acc_code
16603 AND payment_term_id = p_payment_terms_tbl(i).payment_term_id
16604 AND org_id = g_org_id;
16605
16606 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.DELETE ROW for Accrual',3);
16607 EXCEPTION
16608 WHEN OTHERS THEN
16609 pvt_debug(g_pkg_name||'PN_DISTRIBUTIONS_PKG.DELETE ROW for Accrual Successful',3);
16610 END;
16611 END IF;
16612 END LOOP;
16613 END LOOP;
16614 ELSE
16615 FOR p in 1..p_payment_terms_tbl(i).p_terms_accrual_account_tbl.COUNT
16616 LOOP
16617 x_distribution_id := NULL;
16618 l_max_rownum := NULL;
16619 x_rowid := NULL;
16620 BEGIN
16621 pn_distributions_pkg.insert_row (x_rowid => x_rowid
16622 ,x_distribution_id => x_distribution_id--r_dist_details.distribution_id
16623 ,x_account_id => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(p).account_id
16624 ,x_payment_term_id => p_payment_terms_tbl(i).payment_term_id
16625 ,x_term_template_id => NULL--p_payment_terms_tbl(i).term_template_id
16626 ,x_account_class => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(p).account_code
16627 ,x_percentage => p_payment_terms_tbl(i).p_terms_accrual_account_tbl(p).account_percentage
16628 ,x_line_number => l_max_rownum
16629 ,x_last_update_date => SYSDATE
16630 ,x_last_updated_by => fnd_global.user_id
16631 ,x_creation_date => SYSDATE
16632 ,x_created_by => fnd_global.user_id
16633 ,x_last_update_login => fnd_global.login_id
16634 ,x_attribute_category => NULL
16635 ,x_attribute1 => NULL
16636 ,x_attribute2 => NULL
16637 ,x_attribute3 => NULL
16638 ,x_attribute4 => NULL
16639 ,x_attribute5 => NULL
16640 ,x_attribute6 => NULL
16641 ,x_attribute7 => NULL
16642 ,x_attribute8 => NULL
16643 ,x_attribute9 => NULL
16644 ,x_attribute10 => NULL
16645 ,x_attribute11 => NULL
16646 ,x_attribute12 => NULL
16647 ,x_attribute13 => NULL
16648 ,x_attribute14 => NULL
16649 ,x_attribute15 => NULL
16650 ,x_org_id => g_org_id
16651 );
16652
16653 pvt_debug(g_pkg_name||'ADD_DIST_ACCOUNT:UPDATE_TERMS:PN_DISTRIBUTIONS_PKG.INSERT_ROW Successful',3);
16654 --------------dbms_output.put_line('IN ELSE : ELSE:p_terms_accrual_account_tbl ROW'||x_distribution_id);
16655
16656 --------------------dbms_output.put_line('IN ELSE : ELSE:INSERT ROW');
16657 --l_max_row_num := l_max_row_num + 1;
16658 EXCEPTION
16659 WHEN OTHERS THEN
16660 --------------dbms_output.put_line('p_terms_accrual_account_tbl:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM);
16661 pvt_debug(g_pkg_name||'p_terms_accrual_account_tbl:UPDATE_TERMS:PN_DISTRIBUTIONS_PKG.INSERT_ROW:Exception:'||SQLERRM,3);
16662 END;
16663 END LOOP;
16664 END IF; --(COUNT > 0)
16665 END IF;
16666 END IF;--CREATE_TERMS-UPDATE_TERMS Check
16667 END IF; --l_project_info Check
16668 --OOPS-1
16669 EXCEPTION
16670 WHEN fnd_api.g_exc_error THEN
16671 l_err_payment_count := l_err_payment_count + 1;
16672 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM);
16673 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENTS_TBL:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
16674 WHEN OTHERS THEN
16675 l_err_payment_count := l_err_payment_count + 1;
16676 ----------------------dbms_output.put_line('-VALIDATE_CONTACTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM);
16677 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENTS_TBL:LOOOPING:EXCEPTION:'||SQLERRM,3);
16678 END;
16679 END LOOP;
16680
16681 IF ( l_err_payment_count = 0) THEN
16682 x_return_status := fnd_api.g_ret_sts_success;
16683 ELSE
16684 x_return_status := fnd_api.g_ret_sts_error;
16685 END IF;
16686
16687 EXCEPTION
16688 WHEN OTHERS THEN
16689 x_return_status := fnd_api.g_ret_sts_unexp_error;
16690 pvt_debug(g_pkg_name||'-VALIDATE_PAYMENT_TERMS_TBL:Exception:'||SQLERRM,3);
16691
16692 END validate_payment_terms_tbl;
16693
16694 PROCEDURE update_terms (
16695 p_api_version IN NUMBER
16696 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
16697 , p_commit IN VARCHAR2 := FND_API.G_FALSE
16698 , p_validate IN VARCHAR2 := FND_API.G_FALSE
16699 , p_payment_terms_tbl IN OUT NOCOPY lease_terms_tbl
16700 , p_lease_id IN NUMBER
16701 , p_lease_context IN VARCHAR2
16702 , x_return_status OUT NOCOPY VARCHAR2
16703 , x_msg_count OUT NOCOPY NUMBER
16704 , x_msg_data OUT NOCOPY VARCHAR2
16705 )
16706 AS
16707 l_api_version CONSTANT NUMBER := 1.0;
16708 l_api_name CONSTANT VARCHAR2 (30) := 'Update_Payment';
16709 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name || '.' || l_api_name;
16710 l_return_status VARCHAR2 (1);
16711 l_lease_class_code VARCHAR2 (30);
16712 l_lease_commencement_date DATE;
16713 l_lease_termination_date DATE;
16714 l_parent_lease_id NUMBER;
16715 --l_pterm_rec payments_rec_type := p_pterm_rec;
16716 --l_payterm_rec pn_payment_terms_all%ROWTYPE;
16717 l_termtemp_type pn_term_templates_all.payment_term_type_code%TYPE;
16718 l_schedule_context VARCHAR2(10) := NULL;
16719 l_requestid NUMBER := NULL;
16720
16721 l_assign_flag VARCHAR2(1):= 'N';
16722 l_lease_id NUMBER;
16723 l_terms_record_cnt NUMBER;
16724 l_terms_acc_cnt NUMBER;
16725 e_exit_current_term EXCEPTION;
16726
16727 l_lease_change_id NUMBER;
16728
16729 CURSOR cur_payment_terms(p_payment_term_id NUMBER)
16730 IS
16731 SELECT *
16732 FROM pn_payment_terms_all
16733 WHERE payment_term_id = p_payment_term_id;
16734
16735 CURSOR cur_dist_details(p_payment_term_id NUMBER)
16736 IS
16737 SELECT *
16738 FROM pn_distributions_all
16739 WHERE payment_term_id = p_payment_term_id;
16740
16741
16742 -- l_payterm_details cur_payment_terms%ROWTYPE;
16743 l_lease_status pn_leases_all.status%TYPE;
16744 l_lease_context VARCHAR2(20);
16745 e_invalid_mode EXCEPTION;
16746
16747 k NUMBER;
16748 l_change_account_count NUMBER;
16749
16750 p_terms_exp_rev_accounts_tbl terms_exp_rev_accounts_tbl;
16751 p_terms_accrual_account_tbl terms_exp_rev_accounts_tbl;
16752 p_terms_liab_rcvl_account_tbl terms_exp_rev_accounts_tbl;
16753
16754 l_error_count_err NUMBER:=0;
16755
16756 p_payment_terms_tbl_tmp lease_terms_tbl;
16757 p NUMBER:=NULL;
16758
16759 p_payment_terms_tbl_update lease_terms_tbl;
16760 q NUMBER :=NULL;
16761 BEGIN
16762 ----------------------dbms_output.put_line (' IN Private :In Procedure:update_lease FIRST');--Rupak
16763 x_return_status := fnd_api.g_ret_sts_success;
16764 pvt_debug(g_pkg_name||'-Inside UPDATE_TERMS:',3);
16765 -- Standard start of API savepoint
16766 SAVEPOINT update_payment_pvt;
16767
16768 -- Initialize message list if p_init_msg_list is set to TRUE
16769 IF fnd_api.to_boolean (p_init_msg_list)
16770 THEN
16771 fnd_msg_pub.initialize;
16772 END IF;
16773
16774 -- Standard call to check for call compatibility
16775 IF NOT fnd_api.compatible_api_call (l_api_version
16776 , p_api_version
16777 , l_api_name
16778 , g_pkg_name
16779 )
16780 THEN
16781 RAISE fnd_api.g_exc_error;
16782 END IF;
16783
16784 -- Initialize the return status.
16785 x_return_status := fnd_api.g_ret_sts_success;
16786
16787 IF p_lease_id IS NULL THEN
16788 fnd_message.set_name ('PN', 'PN_API_ALL_NULL_PARAMETER');
16789 fnd_message.set_token ('API_NAME', l_api_name_full);
16790 fnd_message.set_token ('NULL_PARAM', 'LEASE_ID');
16791 fnd_msg_pub.ADD;
16792 RAISE fnd_api.g_exc_error;
16793 ELSE
16794 BEGIN
16795 l_lease_context := PN_LEASE_UTILS.get_lease_context(p_lease_id,g_org_id);
16796 SELECT pla.lease_class_code
16797 , pld.lease_commencement_date
16798 , pld.lease_termination_date
16799 , pla.parent_lease_id
16800 , DECODE (pla.lease_class_code
16801 , 'DIRECT', 'PAYMENT'
16802 , 'THIRD_PARTY', 'BILLING'
16803 )
16804 , PN_LEASE_UTILS.get_lease_change_id(p_lease_id,g_org_id)
16805 , pla.status
16806 INTO l_lease_class_code
16807 , l_lease_commencement_date
16808 , l_lease_termination_date
16809 , l_parent_lease_id
16810 , l_termtemp_type
16811 , l_lease_change_id
16812 , l_lease_status
16813 FROM pn_leases_all pla, pn_lease_details_all pld
16814 WHERE pla.lease_id = p_lease_id
16815 AND pla.lease_id = pld.lease_id
16816 AND pld.org_id = pla.org_id
16817 AND pla.org_id = g_org_id;
16818
16819 /* IF ((l_lease_status = 'D' and (l_lease_context IN ('EDIT','AMEND')))
16820 OR (l_lease_status = 'F' and (l_lease_context NOT IN ('EDIT','AMEND')))) THEN
16821 fnd_message.set_name ('PN', 'PN_INV_LEASECONT');
16822 fnd_message.set_token ('API_NAME', l_api_name_full);
16823 fnd_message.set_token ('LEASE_ID', p_lease_id);
16824 fnd_msg_pub.ADD;
16825 RAISE fnd_api.g_exc_error;
16826 END IF;*/
16827
16828 EXCEPTION
16829 WHEN OTHERS THEN
16830 fnd_message.set_name ('PN', 'PN_API_UNKNOWN_ERROR');
16831 fnd_message.set_token ('COLUMN', 'Unable to derive the Lease Information');
16832 fnd_message.set_token ('P_TEXT', l_api_name_full|| '-'|| SQLERRM);
16833 fnd_msg_pub.ADD;
16834 RAISE fnd_api.g_exc_unexpected_error;
16835 END;
16836 END IF;
16837
16838
16839 /*Validation to check for Not null values*/
16840 ------------------------dbms_output.put_line (' IN Private 1');
16841 -- -------------------------------------------
16842 -- Make sure the Lease Number or Lease Id is not null
16843 -- --------------------------------------------------
16844 ----Not yet Created..Rupak
16845 --BEGIN
16846
16847 q:=1;
16848 FOR i IN 1..p_payment_terms_tbl.COUNT
16849 LOOP
16850 IF(p_payment_terms_tbl (i).payment_term_id IS NOT NULL OR p_payment_terms_tbl (i).payment_term_id <> pn_lease_utils.g_pn_miss_num) THEN
16851 pvt_debug(g_pkg_name||'-update_terms:Assigning the term table values to other table',3);
16852 p_payment_terms_tbl_update(q) := p_payment_terms_tbl(i);
16853 q:= q+1;
16854 END IF;
16855 END LOOP;
16856 IF(p_payment_terms_tbl_update.COUNT > 0 ) THEN
16857 validate_payment_terms_tbl( p_api_name_full => l_api_name_full
16858 , p_payment_terms_tbl => p_payment_terms_tbl_update
16859 , p_lease_id => p_lease_id
16860 , p_lease_class_code => l_lease_class_code
16861 , p_lease_commencement_date => l_lease_commencement_date
16862 , p_lease_termination_date => l_lease_termination_date
16863 , p_termtemp_type => l_termtemp_type
16864 , p_parent_lease_id => l_parent_lease_id
16865 , p_lease_change_id => l_parent_lease_id
16866 , p_lease_status => l_lease_status
16867 , p_lease_context => p_lease_context
16868 , p_operation => 'UPDATE_TERMS'
16869 , x_return_status => x_return_status
16870 );
16871 pvt_debug(g_pkg_name||'-UPDATE_TERMS:VALIDATE_PAYMENT_TERMS_TBL Return Status'||x_return_status,3);
16872 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
16873 ----------------------dbms_output.put_line('Private 2 After validate_payment_terms_tbl');--Rupak
16874 RAISE FND_API.G_EXC_ERROR;
16875 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
16876 ----------------------dbms_output.put_line('Private 3 After validate_payment_terms_tbl');--Rupak
16877 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
16878 END IF;
16879 /*EXCEPTION
16880 WHEN fnd_api.g_exc_error THEN
16881 pvt_debug(g_pkg_name||'-UPDATE_TERMS:validate_payment_terms_tbl:Exception:'||SQLERRM,3);
16882 WHEN OTHERS THEN
16883 pvt_debug(g_pkg_name||'-UPDATE_TERMS:validate_payment_terms_tbl:Unexpected Exception:'||SQLERRM,3);
16884 ----------------------dbms_output.put_line('Private 4'||SQLERRM);
16885 END;*/
16886 -- --------------------dbms_output.put_line('Private 5 AFTER VALIDATE PAYMENT');--Rupak
16887 -------------------------------------------------------
16888
16889 pvt_debug(g_pkg_name||'-UPDATE_TERMS:About to Update Payments',3);
16890 l_terms_record_cnt := p_payment_terms_tbl_update.COUNT;
16891
16892 FOR i in p_payment_terms_tbl_update.FIRST..p_payment_terms_tbl_update.LAST
16893 LOOP
16894 --------dbms_output.put_line('123:HELLO');--Rupak
16895 IF(p_payment_terms_tbl_update (i).payment_term_id IS NOT NULL OR p_payment_terms_tbl_update (i).payment_term_id <> pn_lease_utils.g_pn_miss_num) THEN
16896 --------dbms_output.put_line('123:HELLO-1');--Rupak
16897 IF (trim(p_payment_terms_tbl_update(i).error_flag) <> 'Y') THEN
16898 BEGIN
16899 l_assign_flag := 'N';
16900 --------dbms_output.put_line('123:HELLO-2');--Rupak
16901 pvt_debug(g_pkg_name||'-UPDATE_TERMS:Inside IF Condition of the Payment Table'||p_payment_terms_tbl_update(i).payment_term_id,3);
16902 FOR r_payment_terms in cur_payment_terms(p_payment_terms_tbl_update(i).payment_term_id)
16903 LOOP
16904 BEGIN
16905 --------dbms_output.put_line('Inside The IF Y and Loop:2'||p_payment_terms_tbl_update(i).payment_term_id||l_assign_flag);--Rupak
16906 IF ((r_payment_terms.payment_term_id = p_payment_terms_tbl_update(i).payment_term_id ) AND (l_assign_flag = 'N')) THEN
16907 pvt_debug(g_pkg_name||'-UPDATE_TERMS:Deep Inside IF Condition of the Payment Table PaymentID:'||p_payment_terms_tbl_update(i).payment_term_id,3);
16908 IF (p_lease_context IN ('ED','AM') AND g_status <>'D') THEN
16909 -- --------------------dbms_output.put_line('Inside The IF Y and Loop:4');--Rupak
16910
16911 IF (p_payment_terms_tbl_update(i).payment_purpose_code IS NOT NULL AND p_payment_terms_tbl_update(i).payment_purpose_code <> r_payment_terms.payment_purpose_code) THEN
16912 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:payment_purpose_code',3);
16913 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16914 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:payment_purpose_code was being updated');
16915 fnd_msg_pub.ADD;
16916 RAISE fnd_api.g_exc_error;--e_invalid_mode;
16917 END IF;
16918 IF(p_payment_terms_tbl_update(i).payment_term_type_code IS NOT NULL AND p_payment_terms_tbl_update(i).payment_term_type_code <> r_payment_terms.payment_term_type_code) THEN
16919 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:payment_term_type_code',3);
16920 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16921 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:payment_term_type_code was being updated');
16922 fnd_msg_pub.ADD;
16923 RAISE fnd_api.g_exc_error;
16924 END IF;
16925 IF(p_payment_terms_tbl_update(i).frequency_code IS NOT NULL AND p_payment_terms_tbl_update(i).frequency_code <> r_payment_terms.frequency_code) THEN
16926 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:frequency_code',3);
16927 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16928 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:frequency_code was being updated');
16929 fnd_msg_pub.ADD;
16930 RAISE fnd_api.g_exc_error;
16931 END IF;
16932 IF(p_payment_terms_tbl_update(i).lease_id IS NOT NULL AND p_payment_terms_tbl_update(i).lease_id <> r_payment_terms.lease_id) THEN
16933 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:lease_id',3);
16934 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16935 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:lease_id was being updated');
16936 fnd_msg_pub.ADD;
16937 RAISE fnd_api.g_exc_error;
16938 END IF;
16939 IF(p_payment_terms_tbl_update(i).start_date IS NOT NULL AND p_payment_terms_tbl_update(i).start_date <> r_payment_terms.start_date) THEN
16940 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:start_date',3);
16941 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16942 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:start_date was being updated');
16943 fnd_msg_pub.ADD;
16944 RAISE fnd_api.g_exc_error;
16945 END IF;
16946 IF(p_payment_terms_tbl_update(i).code_combination_id IS NOT NULL AND p_payment_terms_tbl_update(i).code_combination_id <> r_payment_terms.code_combination_id) THEN
16947 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:code_combination_id',3);
16948 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16949 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:code_combination_id was being updated');
16950 fnd_msg_pub.ADD;
16951 RAISE fnd_api.g_exc_error;
16952 END IF;
16953 IF(p_payment_terms_tbl_update(i).vendor_site_id IS NOT NULL AND p_payment_terms_tbl_update(i).vendor_site_id <> r_payment_terms.vendor_site_id) THEN
16954 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:vendor_site_id',3);
16955 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16956 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:vendor_site_id was being updated');
16957 fnd_msg_pub.ADD;
16958 RAISE fnd_api.g_exc_error;
16959 END IF;
16960 IF(p_payment_terms_tbl_update(i).target_date IS NOT NULL AND p_payment_terms_tbl_update(i).target_date <> r_payment_terms.target_date) THEN
16961 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:target_date',3);
16962 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16963 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:target_date was being updated');
16964 fnd_msg_pub.ADD;
16965 RAISE fnd_api.g_exc_error;
16966 END IF;
16967 IF(p_payment_terms_tbl_update(i).actual_amount IS NOT NULL AND p_payment_terms_tbl_update(i).actual_amount <> r_payment_terms.actual_amount) THEN
16968 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:actual_amount',3);
16969 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16970 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:actual_amount was being updated');
16971 fnd_msg_pub.ADD;
16972 RAISE fnd_api.g_exc_error;
16973 END IF;
16974 IF(p_payment_terms_tbl_update(i).estimated_amount IS NOT NULL AND p_payment_terms_tbl_update(i).estimated_amount <> r_payment_terms.estimated_amount) THEN
16975 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:estimated_amount',3);
16976 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16977 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:estimated_amount was being updated');
16978 fnd_msg_pub.ADD;
16979 RAISE fnd_api.g_exc_error;
16980 END IF;
16981 IF(p_payment_terms_tbl_update(i).set_of_books_id IS NOT NULL AND p_payment_terms_tbl_update(i).set_of_books_id <> r_payment_terms.set_of_books_id) THEN
16982 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:set_of_books_id',3);
16983 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16984 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:set_of_books_id was being updated');
16985 fnd_msg_pub.ADD;
16986 RAISE fnd_api.g_exc_error;
16987 END IF;
16988 IF(p_payment_terms_tbl_update(i).currency_code IS NOT NULL AND p_payment_terms_tbl_update(i).currency_code <> r_payment_terms.currency_code) THEN
16989 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:currency_code',3);
16990 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16991 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:currency_code was being updated');
16992 fnd_msg_pub.ADD;
16993 RAISE fnd_api.g_exc_error;
16994 END IF;
16995 IF(p_payment_terms_tbl_update(i).rate IS NOT NULL AND p_payment_terms_tbl_update(i).rate <> r_payment_terms.rate) THEN
16996 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:rate',3);
16997 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
16998 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:rate was being updated');
16999 fnd_msg_pub.ADD;
17000 RAISE fnd_api.g_exc_error;
17001 END IF;
17002 IF(p_payment_terms_tbl_update(i).normalize IS NOT NULL AND p_payment_terms_tbl_update(i).normalize <> r_payment_terms.normalize) THEN
17003 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:normalize',3);
17004 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17005 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:normalize was being updated');
17006 fnd_msg_pub.ADD;
17007 RAISE fnd_api.g_exc_error;
17008 END IF;
17009
17010 IF(p_payment_terms_tbl_update(i).schedule_day IS NOT NULL AND p_payment_terms_tbl_update(i).schedule_day <> r_payment_terms.schedule_day) THEN
17011 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:schedule_day',3);
17012 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17013 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:schedule_day was being updated');
17014 fnd_msg_pub.ADD;
17015 RAISE fnd_api.g_exc_error;
17016 END IF;
17017
17018 IF(p_payment_terms_tbl_update(i).project_id IS NOT NULL AND p_payment_terms_tbl_update(i).project_id <> r_payment_terms.project_id) THEN
17019 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:project_id',3);
17020 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17021 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:project_id was being updated');
17022 fnd_msg_pub.ADD;
17023 RAISE fnd_api.g_exc_error;
17024 END IF;
17025 IF(p_payment_terms_tbl_update(i).task_id IS NOT NULL AND p_payment_terms_tbl_update(i).task_id <> r_payment_terms.task_id) THEN
17026 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:task_id',3);
17027 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17028 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:task_id was being updated');
17029 fnd_msg_pub.ADD;
17030 RAISE fnd_api.g_exc_error;
17031 END IF;
17032 IF(p_payment_terms_tbl_update(i).organization_id IS NOT NULL AND p_payment_terms_tbl_update(i).organization_id <> r_payment_terms.organization_id) THEN
17033 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:organization_id',3);
17034 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17035 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:organization_id was being updated');
17036 fnd_msg_pub.ADD;
17037 RAISE fnd_api.g_exc_error;
17038 END IF;
17039 IF(p_payment_terms_tbl_update(i).expenditure_type IS NOT NULL AND p_payment_terms_tbl_update(i).expenditure_type <> r_payment_terms.expenditure_type) THEN
17040 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:expenditure_type',3);
17041 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17042 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:expenditure_type was being updated');
17043 fnd_msg_pub.ADD;
17044 RAISE fnd_api.g_exc_error;
17045 END IF;
17046 IF(p_payment_terms_tbl_update(i).expenditure_item_date IS NOT NULL AND p_payment_terms_tbl_update(i).expenditure_item_date <> r_payment_terms.expenditure_item_date) THEN
17047 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:expenditure_item_date',3);
17048 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17049 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:expenditure_item_date was being updated');
17050 fnd_msg_pub.ADD;
17051 RAISE fnd_api.g_exc_error;
17052 END IF;
17053 IF(p_payment_terms_tbl_update(i).tax_group_id IS NOT NULL AND p_payment_terms_tbl_update(i).tax_group_id <> r_payment_terms.tax_group_id) THEN
17054 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:tax_group_id',3);
17055 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17056 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:tax_group_id was being updated');
17057 fnd_msg_pub.ADD;
17058 RAISE fnd_api.g_exc_error;
17059 END IF;
17060 IF(p_payment_terms_tbl_update(i).tax_code_id IS NOT NULL AND p_payment_terms_tbl_update(i).tax_code_id <> r_payment_terms.tax_code_id) THEN
17061 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:tax_code_id',3);
17062 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17063 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:tax_code_id was being updated');
17064 fnd_msg_pub.ADD;
17065 RAISE fnd_api.g_exc_error;
17066 END IF;
17067 IF(p_payment_terms_tbl_update(i).tax_included IS NOT NULL AND p_payment_terms_tbl_update(i).tax_included <> r_payment_terms.tax_included) THEN
17068 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:tax_included',3);
17069 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17070 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:tax_included was being updated');
17071 fnd_msg_pub.ADD;
17072 RAISE fnd_api.g_exc_error;
17073 END IF;
17074 IF(p_payment_terms_tbl_update(i).distribution_set_id IS NOT NULL AND p_payment_terms_tbl_update(i).distribution_set_id <> r_payment_terms.distribution_set_id) THEN
17075 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:distribution_set_id',3);
17076 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17077 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:distribution_set_id was being updated');
17078 fnd_msg_pub.ADD;
17079 RAISE fnd_api.g_exc_error;
17080 END IF;
17081 IF(p_payment_terms_tbl_update(i).inv_rule_id IS NOT NULL AND p_payment_terms_tbl_update(i).inv_rule_id <> r_payment_terms.inv_rule_id) THEN
17082 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:inv_rule_id',3);
17083 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17084 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:inv_rule_id was being updated');
17085 fnd_msg_pub.ADD;
17086 RAISE fnd_api.g_exc_error;
17087 END IF;
17088 IF(p_payment_terms_tbl_update(i).account_rule_id IS NOT NULL AND p_payment_terms_tbl_update(i).account_rule_id <> r_payment_terms.account_rule_id) THEN
17089 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:account_rule_id',3);
17090 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17091 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:account_rule_id was being updated');
17092 fnd_msg_pub.ADD;
17093 RAISE fnd_api.g_exc_error;
17094 END IF;
17095 IF(p_payment_terms_tbl_update(i).salesrep_id IS NOT NULL AND p_payment_terms_tbl_update(i).salesrep_id <> r_payment_terms.salesrep_id) THEN
17096 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:salesrep_id',3);
17097 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17098 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:salesrep_id was being updated');
17099 fnd_msg_pub.ADD;
17100 RAISE fnd_api.g_exc_error;
17101 END IF;
17102 IF(p_payment_terms_tbl_update(i).approved_by IS NOT NULL AND p_payment_terms_tbl_update(i).approved_by <> r_payment_terms.approved_by) THEN
17103 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:approved_by',3);
17104 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17105 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:approved_by was being updated');
17106 fnd_msg_pub.ADD;
17107 RAISE fnd_api.g_exc_error;
17108 END IF;
17109 IF(p_payment_terms_tbl_update(i).status IS NOT NULL AND p_payment_terms_tbl_update(i).status <> r_payment_terms.status) THEN
17110 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:status',3);
17111 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17112 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:status was being updated');
17113 fnd_msg_pub.ADD;
17114 RAISE fnd_api.g_exc_error;
17115 END IF;
17116 IF(p_payment_terms_tbl_update(i).index_period_id IS NOT NULL AND p_payment_terms_tbl_update(i).index_period_id <> r_payment_terms.index_period_id) THEN
17117 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:index_period_id',3);
17118 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17119 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:index_period_id was being updated');
17120 fnd_msg_pub.ADD;
17121 RAISE fnd_api.g_exc_error;
17122 END IF;
17123 IF(p_payment_terms_tbl_update(i).index_term_indicator IS NOT NULL AND p_payment_terms_tbl_update(i).index_term_indicator <> r_payment_terms.index_term_indicator) THEN
17124 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:index_term_indicator',3);
17125 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17126 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:index_term_indicator was being updated');
17127 fnd_msg_pub.ADD;
17128 RAISE fnd_api.g_exc_error;
17129 END IF;
17130 IF(p_payment_terms_tbl_update(i).cust_po_number IS NOT NULL AND p_payment_terms_tbl_update(i).cust_po_number <> r_payment_terms.cust_po_number) THEN
17131 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:index_term_indicator',3);
17132 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17133 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:index_term_indicator was being updated');
17134 fnd_msg_pub.ADD;
17135 RAISE fnd_api.g_exc_error;
17136 END IF;
17137 IF(p_payment_terms_tbl_update(i).po_header_id IS NOT NULL AND p_payment_terms_tbl_update(i).po_header_id <> r_payment_terms.po_header_id) THEN
17138 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:po_header_id',3);
17139 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17140 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:po_header_id was being updated');
17141 fnd_msg_pub.ADD;
17142 RAISE fnd_api.g_exc_error;
17143 END IF;
17144 IF(p_payment_terms_tbl_update(i).receipt_method_id IS NOT NULL AND p_payment_terms_tbl_update(i).receipt_method_id <> r_payment_terms.receipt_method_id) THEN
17145 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:receipt_method_id',3);
17146 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17147 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:receipt_method_id was being updated');
17148 fnd_msg_pub.ADD;
17149 RAISE fnd_api.g_exc_error;
17150 END IF;
17151 IF(p_payment_terms_tbl_update(i).var_rent_inv_id IS NOT NULL AND p_payment_terms_tbl_update(i).var_rent_inv_id <> r_payment_terms.var_rent_inv_id) THEN
17152 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:var_rent_inv_id',3);
17153 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17154 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:var_rent_inv_id was being updated');
17155 fnd_msg_pub.ADD;
17156 RAISE fnd_api.g_exc_error;
17157 END IF;
17158 IF(p_payment_terms_tbl_update(i).var_rent_type IS NOT NULL AND p_payment_terms_tbl_update(i).var_rent_type <> r_payment_terms.var_rent_type) THEN
17159 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:var_rent_type',3);
17160 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17161 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:var_rent_type was being updated');
17162 fnd_msg_pub.ADD;
17163 RAISE fnd_api.g_exc_error;
17164 END IF;
17165 IF(p_payment_terms_tbl_update(i).norm_start_date IS NOT NULL AND p_payment_terms_tbl_update(i).norm_start_date <> r_payment_terms.norm_start_date) THEN
17166 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:norm_start_date',3);
17167 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17168 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:norm_start_date was being updated');
17169 fnd_msg_pub.ADD;
17170 RAISE fnd_api.g_exc_error;
17171 END IF;
17172 IF(p_payment_terms_tbl_update(i).term_template_id IS NOT NULL AND p_payment_terms_tbl_update(i).term_template_id <> r_payment_terms.term_template_id) THEN
17173 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:term_template_id',3);
17174 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17175 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:term_template_id was being updated');
17176 fnd_msg_pub.ADD;
17177 RAISE fnd_api.g_exc_error;
17178 END IF;
17179 IF(p_payment_terms_tbl_update(i).event_type_code IS NOT NULL AND p_payment_terms_tbl_update(i).event_type_code <> r_payment_terms.event_type_code) THEN
17180 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:event_type_code',3);
17181 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17182 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:event_type_code was being updated');
17183 fnd_msg_pub.ADD;
17184 RAISE fnd_api.g_exc_error;
17185 END IF;
17186 IF(p_payment_terms_tbl_update(i).lease_status IS NOT NULL AND p_payment_terms_tbl_update(i).lease_status <> r_payment_terms.lease_status) THEN
17187 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:lease_status',3);
17188 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17189 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:lease_status was being updated');
17190 fnd_msg_pub.ADD;
17191 RAISE fnd_api.g_exc_error;
17192 END IF;
17193 IF(p_payment_terms_tbl_update(i).norm_end_date IS NOT NULL AND p_payment_terms_tbl_update(i).norm_end_date <> r_payment_terms.norm_end_date) THEN
17194 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:norm_end_date',3);
17195 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17196 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:norm_end_date was being updated');
17197 fnd_msg_pub.ADD;
17198 RAISE fnd_api.g_exc_error;
17199 END IF;
17200 IF(p_payment_terms_tbl_update(i).recoverable_flag IS NOT NULL AND p_payment_terms_tbl_update(i).recoverable_flag <> r_payment_terms.recoverable_flag) THEN
17201 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:recoverable_flag',3);
17202 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17203 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:recoverable_flag was being updated');
17204 fnd_msg_pub.ADD;
17205 RAISE fnd_api.g_exc_error;
17206 END IF;
17207 IF(p_payment_terms_tbl_update(i).period_billrec_id IS NOT NULL AND p_payment_terms_tbl_update(i).period_billrec_id <> r_payment_terms.period_billrec_id) THEN
17208 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:period_billrec_id',3);
17209 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17210 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:period_billrec_id was being updated');
17211 fnd_msg_pub.ADD;
17212 RAISE fnd_api.g_exc_error;
17213 END IF;
17214 IF(p_payment_terms_tbl_update(i).amount_type IS NOT NULL AND p_payment_terms_tbl_update(i).amount_type <> r_payment_terms.amount_type) THEN
17215 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:amount_type',3);
17216 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17217 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:amount_type was being updated');
17218 fnd_msg_pub.ADD;
17219 RAISE fnd_api.g_exc_error;
17220 END IF;
17221 IF(p_payment_terms_tbl_update(i).rec_agr_line_id IS NOT NULL AND p_payment_terms_tbl_update(i).rec_agr_line_id <> r_payment_terms.rec_agr_line_id) THEN
17222 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:rec_agr_line_id',3);
17223 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17224 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:rec_agr_line_id was being updated');
17225 fnd_msg_pub.ADD;
17226 RAISE fnd_api.g_exc_error;
17227 END IF;
17228 IF(p_payment_terms_tbl_update(i).grouping_rule_id IS NOT NULL AND p_payment_terms_tbl_update(i).grouping_rule_id <> r_payment_terms.grouping_rule_id) THEN
17229 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:grouping_rule_id',3);
17230 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17231 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:grouping_rule_id was being updated');
17232 fnd_msg_pub.ADD;
17233 RAISE fnd_api.g_exc_error;
17234 END IF;
17235 IF(p_payment_terms_tbl_update(i).area_type_code IS NOT NULL AND p_payment_terms_tbl_update(i).area_type_code <> r_payment_terms.area_type_code) THEN
17236 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:area_type_code',3);
17237 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17238 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:area_type_code was being updated');
17239 fnd_msg_pub.ADD;
17240 RAISE fnd_api.g_exc_error;
17241 END IF;
17242 IF(p_payment_terms_tbl_update(i).area IS NOT NULL AND p_payment_terms_tbl_update(i).area <> r_payment_terms.area) THEN
17243 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:area',3);
17244 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17245 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:area was being updated');
17246 fnd_msg_pub.ADD;
17247 RAISE fnd_api.g_exc_error;
17248 END IF;
17249 IF(p_payment_terms_tbl_update(i).term_altered_flag IS NOT NULL AND p_payment_terms_tbl_update(i).term_altered_flag <> r_payment_terms.term_altered_flag) THEN
17250 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:term_altered_flag',3);
17251 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17252 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:term_altered_flag was being updated');
17253 fnd_msg_pub.ADD;
17254 RAISE fnd_api.g_exc_error;
17255 END IF;
17256 IF(p_payment_terms_tbl_update(i).source_code IS NOT NULL AND p_payment_terms_tbl_update(i).source_code <> r_payment_terms.source_code) THEN
17257 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:source_code',3);
17258 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17259 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:source_code was being updated');
17260 fnd_msg_pub.ADD;
17261 RAISE fnd_api.g_exc_error;
17262 END IF;
17263 IF(p_payment_terms_tbl_update(i).term_comments IS NOT NULL AND p_payment_terms_tbl_update(i).term_comments <> r_payment_terms.term_comments) THEN
17264 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:term_comments',3);
17265 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17266 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:term_comments was being updated');
17267 fnd_msg_pub.ADD;
17268 RAISE fnd_api.g_exc_error;
17269 END IF;
17270 IF(p_payment_terms_tbl_update(i).legal_entity_id IS NOT NULL AND p_payment_terms_tbl_update(i).legal_entity_id <> r_payment_terms.legal_entity_id) THEN
17271 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:legal_entity_id',3);
17272 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17273 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:legal_entity_id was being updated');
17274 fnd_msg_pub.ADD;
17275 RAISE fnd_api.g_exc_error;
17276 END IF;
17277 IF(p_payment_terms_tbl_update(i).tax_classification_code IS NOT NULL AND p_payment_terms_tbl_update(i).tax_classification_code <> r_payment_terms.tax_classification_code) THEN
17278 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:tax_classification_code',3);
17279 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17280 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:tax_classification_code was being updated');
17281 fnd_msg_pub.ADD;
17282 RAISE fnd_api.g_exc_error;
17283 END IF;
17284 IF(p_payment_terms_tbl_update(i).index_norm_flag IS NOT NULL AND p_payment_terms_tbl_update(i).index_norm_flag <> r_payment_terms.index_norm_flag) THEN
17285 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:index_norm_flag',3);
17286 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17287 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:index_norm_flag was being updated');
17288 fnd_msg_pub.ADD;
17289 RAISE fnd_api.g_exc_error;
17290 END IF;
17291 IF(p_payment_terms_tbl_update(i).parent_term_id IS NOT NULL AND p_payment_terms_tbl_update(i).parent_term_id <> r_payment_terms.parent_term_id) THEN
17292 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:parent_term_id',3);
17293 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17294 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:parent_term_id was being updated');
17295 fnd_msg_pub.ADD;
17296 RAISE fnd_api.g_exc_error;
17297 END IF;
17298 IF(p_payment_terms_tbl_update(i).include_in_var_rent IS NOT NULL AND p_payment_terms_tbl_update(i).include_in_var_rent <> r_payment_terms.include_in_var_rent) THEN
17299 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:include_in_var_rent',3);
17300 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17301 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:include_in_var_rent was being updated');
17302 fnd_msg_pub.ADD;
17303 RAISE fnd_api.g_exc_error;
17304 END IF;
17305 IF(p_payment_terms_tbl_update(i).update_nbp_flag IS NOT NULL AND p_payment_terms_tbl_update(i).update_nbp_flag <> r_payment_terms.update_nbp_flag) THEN
17306 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:update_nbp_flag',3);
17307 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17308 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:update_nbp_flag was being updated');
17309 fnd_msg_pub.ADD;
17310 RAISE fnd_api.g_exc_error;
17311 END IF;
17312 IF(p_payment_terms_tbl_update(i).recur_bb_calc_date IS NOT NULL AND p_payment_terms_tbl_update(i).recur_bb_calc_date <> r_payment_terms.recur_bb_calc_date) THEN
17313 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:recur_bb_calc_date',3);
17314 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17315 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:recur_bb_calc_date was being updated');
17316 fnd_msg_pub.ADD;
17317 RAISE fnd_api.g_exc_error;
17318 END IF;
17319 IF(p_payment_terms_tbl_update(i).opex_type IS NOT NULL AND p_payment_terms_tbl_update(i).opex_type <> r_payment_terms.opex_type) THEN
17320 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:opex_type',3);
17321 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17322 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:opex_type was being updated');
17323 fnd_msg_pub.ADD;
17324 RAISE fnd_api.g_exc_error;
17325 END IF;
17326 IF(p_payment_terms_tbl_update(i).opex_agr_id IS NOT NULL AND p_payment_terms_tbl_update(i).opex_agr_id <> r_payment_terms.opex_agr_id) THEN
17327 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:opex_agr_id',3);
17328 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17329 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:opex_agr_id was being updated');
17330 fnd_msg_pub.ADD;
17331 RAISE fnd_api.g_exc_error;
17332 END IF;
17333 IF(p_payment_terms_tbl_update(i).opex_recon_id IS NOT NULL AND p_payment_terms_tbl_update(i).opex_recon_id <> r_payment_terms.opex_recon_id) THEN
17334 pvt_debug(g_pkg_name||'-UPDATE_TERMS:In Edit OR AMEND Final Mode.Cant Update the field:opex_recon_id',3);
17335 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17336 fnd_message.set_token('ERR_MSG', 'In Edit OR AMEND Final Mode.Non-Updatable field:opex_recon_id was being updated');
17337 fnd_msg_pub.ADD;
17338 RAISE fnd_api.g_exc_error;
17339 END IF;
17340
17341 END IF;
17342
17343 -- --------------------dbms_output.put_line('In Edit OR AMEND Mode.:1');--Rupak
17344 IF ( p_payment_terms_tbl_update(i).payment_purpose_code IS NULL )
17345 THEN
17346 p_payment_terms_tbl_update(i).payment_purpose_code := r_payment_terms.payment_purpose_code;
17347 END IF;
17348 IF ( p_payment_terms_tbl_update(i).payment_term_type_code IS NULL )--OR p_payment_terms_tbl_update(i).payment_term_type_code = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17349 THEN
17350 p_payment_terms_tbl_update(i).payment_term_type_code := r_payment_terms.payment_term_type_code;
17351 END IF;
17352 IF ( p_payment_terms_tbl_update(i).frequency_code IS NULL )--OR p_payment_terms_tbl_update(i).frequency_code = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17353 THEN
17354 p_payment_terms_tbl_update(i).frequency_code := r_payment_terms.frequency_code;
17355 END IF;
17356 IF ( p_payment_terms_tbl_update(i).lease_id IS NULL )--OR p_payment_terms_tbl_update(i).lease_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17357 THEN
17358 p_payment_terms_tbl_update(i).lease_id := r_payment_terms.lease_id;
17359 END IF;
17360 IF ( p_payment_terms_tbl_update(i).lease_change_id IS NULL )--OR p_payment_terms_tbl_update(i).lease_change_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17361 THEN
17362 p_payment_terms_tbl_update(i).lease_change_id := r_payment_terms.lease_change_id;
17363 END IF;
17364 IF ( p_payment_terms_tbl_update(i).start_date IS NULL )--OR p_payment_terms_tbl_update(i).start_date = PN_LEASE_UTILS.G_PN_MISS_DATE)
17365 THEN
17366 p_payment_terms_tbl_update(i).start_date := r_payment_terms.start_date;
17367 END IF;
17368 IF ( p_payment_terms_tbl_update(i).end_date IS NULL )--OR p_payment_terms_tbl_update(i).end_date = PN_LEASE_UTILS.G_PN_MISS_DATE)
17369 THEN
17370 p_payment_terms_tbl_update(i).end_date := r_payment_terms.end_date;
17371 END IF;
17372 IF ( p_payment_terms_tbl_update(i).code_combination_id IS NULL )--OR p_payment_terms_tbl_update(i).code_combination_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17373 THEN
17374 p_payment_terms_tbl_update(i).code_combination_id := r_payment_terms.code_combination_id;
17375 END IF;
17376 IF ( p_payment_terms_tbl_update(i).vendor_id IS NULL )--OR p_payment_terms_tbl_update(i).vendor_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17377 THEN
17378 p_payment_terms_tbl_update(i).vendor_id := r_payment_terms.vendor_id;
17379 END IF;
17380 IF ( p_payment_terms_tbl_update(i).vendor_site_id IS NULL )--OR p_payment_terms_tbl_update(i).vendor_site_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17381 THEN
17382 p_payment_terms_tbl_update(i).vendor_site_id := r_payment_terms.vendor_site_id;
17383 END IF;
17384 IF ( p_payment_terms_tbl_update(i).target_date IS NULL )--OR p_payment_terms_tbl_update(i).target_date = PN_LEASE_UTILS.G_PN_MISS_DATE)
17385 THEN
17386 p_payment_terms_tbl_update(i).target_date := r_payment_terms.target_date;
17387 END IF;
17388 IF ( p_payment_terms_tbl_update(i).actual_amount IS NULL )--OR p_payment_terms_tbl_update(i).actual_amount = PN_LEASE_UTILS.G_PN_MISS_NUM)
17389 THEN
17390 p_payment_terms_tbl_update(i).actual_amount := r_payment_terms.actual_amount;
17391 END IF;
17392 IF ( p_payment_terms_tbl_update(i).estimated_amount IS NULL )--OR p_payment_terms_tbl_update(i).estimated_amount = PN_LEASE_UTILS.G_PN_MISS_NUM)
17393 THEN
17394 p_payment_terms_tbl_update(i).estimated_amount := r_payment_terms.estimated_amount;
17395 END IF;
17396 IF ( p_payment_terms_tbl_update(i).set_of_books_id IS NULL )--OR p_payment_terms_tbl_update(i).set_of_books_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17397 THEN
17398 p_payment_terms_tbl_update(i).set_of_books_id := r_payment_terms.set_of_books_id;
17399 END IF;
17400 IF ( p_payment_terms_tbl_update(i).currency_code IS NULL )--OR p_payment_terms_tbl_update(i).currency_code = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17401 THEN
17402 p_payment_terms_tbl_update(i).currency_code := r_payment_terms.currency_code;
17403 END IF;
17404 IF ( p_payment_terms_tbl_update(i).rate IS NULL )--OR p_payment_terms_tbl_update(i).rate = PN_LEASE_UTILS.G_PN_MISS_NUM)
17405 THEN
17406 p_payment_terms_tbl_update(i).rate := r_payment_terms.rate;
17407 END IF;
17408 IF ( p_payment_terms_tbl_update(i).customer_id IS NULL )--OR p_payment_terms_tbl_update(i).customer_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17409 THEN
17410 p_payment_terms_tbl_update(i).customer_id := r_payment_terms.customer_id;
17411 END IF;
17412 IF ( p_payment_terms_tbl_update(i).customer_site_use_id IS NULL )--OR p_payment_terms_tbl_update(i).customer_site_use_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17413 THEN
17414 p_payment_terms_tbl_update(i).customer_site_use_id := r_payment_terms.customer_site_use_id;
17415 END IF;
17416 IF ( p_payment_terms_tbl_update(i).normalize IS NULL )--OR p_payment_terms_tbl_update(i).normalize = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17417 THEN
17418 p_payment_terms_tbl_update(i).normalize := r_payment_terms.normalize;
17419 END IF;
17420 IF ( p_payment_terms_tbl_update(i).location_id IS NULL )--OR p_payment_terms_tbl_update(i).location_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17421 THEN
17422 p_payment_terms_tbl_update(i).location_id := r_payment_terms.location_id;
17423 END IF;
17424 IF ( p_payment_terms_tbl_update(i).schedule_day IS NULL )--OR p_payment_terms_tbl_update(i).schedule_day = PN_LEASE_UTILS.G_PN_MISS_NUM)
17425 THEN
17426 p_payment_terms_tbl_update(i).schedule_day := r_payment_terms.schedule_day;
17427 END IF;
17428 IF ( p_payment_terms_tbl_update(i).cust_ship_site_id IS NULL )--OR p_payment_terms_tbl_update(i).cust_ship_site_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17429 THEN
17430 p_payment_terms_tbl_update(i).cust_ship_site_id := r_payment_terms.cust_ship_site_id;
17431 END IF;
17432 IF ( p_payment_terms_tbl_update(i).ap_ar_term_id IS NULL )--OR p_payment_terms_tbl_update(i).ap_ar_term_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17433 THEN
17434 p_payment_terms_tbl_update(i).ap_ar_term_id := r_payment_terms.ap_ar_term_id;
17435 END IF;
17436 IF ( p_payment_terms_tbl_update(i).cust_trx_type_id IS NULL )--OR p_payment_terms_tbl_update(i).cust_trx_type_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17437 THEN
17438 p_payment_terms_tbl_update(i).cust_trx_type_id := r_payment_terms.cust_trx_type_id;
17439 END IF;
17440 IF ( p_payment_terms_tbl_update(i).project_id IS NULL )--OR p_payment_terms_tbl_update(i).project_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17441 THEN
17442 p_payment_terms_tbl_update(i).project_id := r_payment_terms.project_id;
17443 END IF;
17444 IF ( p_payment_terms_tbl_update(i).task_id IS NULL )--OR p_payment_terms_tbl_update(i).task_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17445 THEN
17446 p_payment_terms_tbl_update(i).task_id := r_payment_terms.task_id;
17447 END IF;
17448 IF ( p_payment_terms_tbl_update(i).organization_id IS NULL )--OR p_payment_terms_tbl_update(i).organization_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17449 THEN
17450 p_payment_terms_tbl_update(i).organization_id := r_payment_terms.organization_id;
17451 END IF;
17452 IF ( p_payment_terms_tbl_update(i).expenditure_type IS NULL )--OR p_payment_terms_tbl_update(i).expenditure_type = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17453 THEN
17454 p_payment_terms_tbl_update(i).expenditure_type := r_payment_terms.expenditure_type;
17455 END IF;
17456 IF ( p_payment_terms_tbl_update(i).expenditure_item_date IS NULL )--OR p_payment_terms_tbl_update(i).expenditure_item_date = PN_LEASE_UTILS.G_PN_MISS_DATE)
17457 THEN
17458 p_payment_terms_tbl_update(i).expenditure_item_date := r_payment_terms.expenditure_item_date;
17459 END IF;
17460 IF ( p_payment_terms_tbl_update(i).tax_group_id IS NULL )--OR p_payment_terms_tbl_update(i).tax_group_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17461 THEN
17462 p_payment_terms_tbl_update(i).tax_group_id := r_payment_terms.tax_group_id;
17463 END IF;
17464 IF ( p_payment_terms_tbl_update(i).tax_code_id IS NULL )--OR p_payment_terms_tbl_update(i).tax_code_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17465 THEN
17466 p_payment_terms_tbl_update(i).tax_code_id := r_payment_terms.tax_code_id;
17467 END IF;
17468 IF ( p_payment_terms_tbl_update(i).tax_included IS NULL )--OR p_payment_terms_tbl_update(i).tax_included = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17469 THEN
17470 p_payment_terms_tbl_update(i).tax_included := r_payment_terms.tax_included;
17471 END IF;
17472 IF ( p_payment_terms_tbl_update(i).distribution_set_id IS NULL )--OR p_payment_terms_tbl_update(i).distribution_set_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17473 THEN
17474 p_payment_terms_tbl_update(i).distribution_set_id := r_payment_terms.distribution_set_id;
17475 END IF;
17476 IF ( p_payment_terms_tbl_update(i).inv_rule_id IS NULL )--OR p_payment_terms_tbl_update(i).inv_rule_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17477 THEN
17478 p_payment_terms_tbl_update(i).inv_rule_id := r_payment_terms.inv_rule_id;
17479 END IF;
17480 IF ( p_payment_terms_tbl_update(i).account_rule_id IS NULL )--OR p_payment_terms_tbl_update(i).account_rule_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17481 THEN
17482 p_payment_terms_tbl_update(i).account_rule_id := r_payment_terms.account_rule_id;
17483 END IF;
17484 IF ( p_payment_terms_tbl_update(i).salesrep_id IS NULL )--OR p_payment_terms_tbl_update(i).salesrep_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17485 THEN
17486 p_payment_terms_tbl_update(i).salesrep_id := r_payment_terms.salesrep_id;
17487 END IF;
17488 IF ( p_payment_terms_tbl_update(i).approved_by IS NULL )--OR p_payment_terms_tbl_update(i).approved_by = PN_LEASE_UTILS.G_PN_MISS_NUM)
17489 THEN
17490 p_payment_terms_tbl_update(i).approved_by := r_payment_terms.approved_by;
17491 END IF;
17492 IF ( p_payment_terms_tbl_update(i).status IS NULL )--OR p_payment_terms_tbl_update(i).status = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17493 THEN
17494 p_payment_terms_tbl_update(i).status := r_payment_terms.status;
17495 END IF;
17496 IF ( p_payment_terms_tbl_update(i).index_period_id IS NULL )--OR p_payment_terms_tbl_update(i).index_period_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17497 THEN
17498 p_payment_terms_tbl_update(i).index_period_id := r_payment_terms.index_period_id;
17499 END IF;
17500 IF ( p_payment_terms_tbl_update(i).index_term_indicator IS NULL )--OR p_payment_terms_tbl_update(i).index_term_indicator = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17501 THEN
17502 p_payment_terms_tbl_update(i).index_term_indicator := r_payment_terms.index_term_indicator;
17503 END IF;
17504 IF ( p_payment_terms_tbl_update(i).po_header_id IS NULL )--OR p_payment_terms_tbl_update(i).po_header_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17505 THEN
17506 p_payment_terms_tbl_update(i).po_header_id := r_payment_terms.po_header_id;
17507 END IF;
17508 IF ( p_payment_terms_tbl_update(i).cust_po_number IS NULL )--OR p_payment_terms_tbl_update(i).cust_po_number = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17509 THEN
17510 p_payment_terms_tbl_update(i).cust_po_number := r_payment_terms.cust_po_number;
17511 END IF;
17512 IF ( p_payment_terms_tbl_update(i).receipt_method_id IS NULL )--OR p_payment_terms_tbl_update(i).receipt_method_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17513 THEN
17514 p_payment_terms_tbl_update(i).receipt_method_id := r_payment_terms.receipt_method_id;
17515 END IF;
17516 IF ( p_payment_terms_tbl_update(i).var_rent_inv_id IS NULL )--OR p_payment_terms_tbl_update(i).var_rent_inv_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17517 THEN
17518 p_payment_terms_tbl_update(i).var_rent_inv_id := r_payment_terms.var_rent_inv_id;
17519 END IF;
17520 IF ( p_payment_terms_tbl_update(i).var_rent_type IS NULL )--OR p_payment_terms_tbl_update(i).var_rent_type = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17521 THEN
17522 p_payment_terms_tbl_update(i).var_rent_type := r_payment_terms.var_rent_type;
17523 END IF;
17524 IF ( p_payment_terms_tbl_update(i).changed_flag IS NULL )--OR p_payment_terms_tbl_update(i).changed_flag = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17525 THEN
17526 p_payment_terms_tbl_update(i).changed_flag := r_payment_terms.changed_flag;
17527 END IF;
17528 IF ( p_payment_terms_tbl_update(i).norm_start_date IS NULL )--OR p_payment_terms_tbl_update(i).norm_start_date = PN_LEASE_UTILS.G_PN_MISS_DATE)
17529 THEN
17530 p_payment_terms_tbl_update(i).norm_start_date := r_payment_terms.norm_start_date;
17531 END IF;
17532 IF ( p_payment_terms_tbl_update(i).term_template_id IS NULL )--OR p_payment_terms_tbl_update(i).term_template_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17533 THEN
17534 p_payment_terms_tbl_update(i).term_template_id := r_payment_terms.term_template_id;
17535 END IF;
17536 IF ( p_payment_terms_tbl_update(i).event_type_code IS NULL )--OR p_payment_terms_tbl_update(i).event_type_code = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17537 THEN
17538 p_payment_terms_tbl_update(i).event_type_code := r_payment_terms.event_type_code;
17539 END IF;
17540 IF ( p_payment_terms_tbl_update(i).lease_status IS NULL )--OR p_payment_terms_tbl_update(i).lease_status = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17541 THEN
17542 p_payment_terms_tbl_update(i).lease_status := r_payment_terms.lease_status;
17543 END IF;
17544 IF ( p_payment_terms_tbl_update(i).norm_end_date IS NULL )--OR p_payment_terms_tbl_update(i).norm_end_date = PN_LEASE_UTILS.G_PN_MISS_DATE)
17545 THEN
17546 p_payment_terms_tbl_update(i).norm_end_date := r_payment_terms.norm_end_date;
17547 END IF;
17548 IF ( p_payment_terms_tbl_update(i).recoverable_flag IS NULL )--OR p_payment_terms_tbl_update(i).recoverable_flag = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17549 THEN
17550 p_payment_terms_tbl_update(i).recoverable_flag := r_payment_terms.recoverable_flag;
17551 END IF;
17552 IF ( p_payment_terms_tbl_update(i).period_billrec_id IS NULL )--OR p_payment_terms_tbl_update(i).period_billrec_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17553 THEN
17554 p_payment_terms_tbl_update(i).period_billrec_id := r_payment_terms.period_billrec_id;
17555 END IF;
17556 IF ( p_payment_terms_tbl_update(i).amount_type IS NULL )--OR p_payment_terms_tbl_update(i).amount_type = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17557 THEN
17558 p_payment_terms_tbl_update(i).amount_type := r_payment_terms.amount_type;
17559 END IF;
17560 IF ( p_payment_terms_tbl_update(i).rec_agr_line_id IS NULL )--OR p_payment_terms_tbl_update(i).rec_agr_line_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17561 THEN
17562 p_payment_terms_tbl_update(i).rec_agr_line_id := r_payment_terms.rec_agr_line_id;
17563 END IF;
17564 IF ( p_payment_terms_tbl_update(i).grouping_rule_id IS NULL )--OR p_payment_terms_tbl_update(i).grouping_rule_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17565 THEN
17566 p_payment_terms_tbl_update(i).grouping_rule_id := r_payment_terms.grouping_rule_id;
17567 END IF;
17568 IF ( p_payment_terms_tbl_update(i).area_type_code IS NULL )--OR p_payment_terms_tbl_update(i).area_type_code = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17569 THEN
17570 p_payment_terms_tbl_update(i).area_type_code := r_payment_terms.area_type_code;
17571 END IF;
17572 IF ( p_payment_terms_tbl_update(i).area IS NULL )--OR p_payment_terms_tbl_update(i).area = PN_LEASE_UTILS.G_PN_MISS_NUM
17573 THEN
17574 p_payment_terms_tbl_update(i).area := r_payment_terms.area;
17575 END IF;
17576 IF ( p_payment_terms_tbl_update(i).term_altered_flag IS NULL )--OR p_payment_terms_tbl_update(i).term_altered_flag = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17577 THEN
17578 p_payment_terms_tbl_update(i).term_altered_flag := r_payment_terms.term_altered_flag;
17579 END IF;
17580 IF ( p_payment_terms_tbl_update(i).source_code IS NULL )--OR p_payment_terms_tbl_update(i).source_code = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17581 THEN
17582 p_payment_terms_tbl_update(i).source_code := r_payment_terms.source_code;
17583 END IF;
17584 IF ( p_payment_terms_tbl_update(i).term_comments IS NULL )--OR p_payment_terms_tbl_update(i).term_comments = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17585 THEN
17586 p_payment_terms_tbl_update(i).term_comments := r_payment_terms.term_comments;
17587 END IF;
17588 IF ( p_payment_terms_tbl_update(i).legal_entity_id IS NULL )--OR p_payment_terms_tbl_update(i).legal_entity_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17589 THEN
17590 p_payment_terms_tbl_update(i).legal_entity_id := r_payment_terms.legal_entity_id;
17591 END IF;
17592 IF ( p_payment_terms_tbl_update(i).tax_classification_code IS NULL )--OR p_payment_terms_tbl_update(i).tax_classification_code = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17593 THEN
17594 p_payment_terms_tbl_update(i).tax_classification_code := r_payment_terms.tax_classification_code;
17595 END IF;
17596 IF ( p_payment_terms_tbl_update(i).index_norm_flag IS NULL )--OR p_payment_terms_tbl_update(i).index_norm_flag = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17597 THEN
17598 p_payment_terms_tbl_update(i).index_norm_flag := r_payment_terms.index_norm_flag;
17599 END IF;
17600 IF ( p_payment_terms_tbl_update(i).parent_term_id IS NULL )--OR p_payment_terms_tbl_update(i).parent_term_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17601 THEN
17602 p_payment_terms_tbl_update(i).parent_term_id := r_payment_terms.parent_term_id;
17603 END IF;
17604 IF ( p_payment_terms_tbl_update(i).include_in_var_rent IS NULL )--OR p_payment_terms_tbl_update(i).include_in_var_rent = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17605 THEN
17606 p_payment_terms_tbl_update(i).include_in_var_rent := r_payment_terms.include_in_var_rent;
17607 END IF;
17608 IF ( p_payment_terms_tbl_update(i).update_nbp_flag IS NULL )--OR p_payment_terms_tbl_update(i).update_nbp_flag = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17609 THEN
17610 p_payment_terms_tbl_update(i).update_nbp_flag := r_payment_terms.update_nbp_flag;
17611 END IF;
17612 IF ( p_payment_terms_tbl_update(i).recur_bb_calc_date IS NULL )--OR p_payment_terms_tbl_update(i).recur_bb_calc_date = PN_LEASE_UTILS.G_PN_MISS_DATE)
17613 THEN
17614 p_payment_terms_tbl_update(i).recur_bb_calc_date := r_payment_terms.recur_bb_calc_date;
17615 END IF;
17616 IF ( p_payment_terms_tbl_update(i).opex_type IS NULL )--OR p_payment_terms_tbl_update(i).opex_type = PN_LEASE_UTILS.G_PN_MISS_CHAR)
17617 THEN
17618 p_payment_terms_tbl_update(i).opex_type := r_payment_terms.opex_type;
17619 END IF;
17620 IF ( p_payment_terms_tbl_update(i).opex_agr_id IS NULL )--OR p_payment_terms_tbl_update(i).opex_agr_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17621 THEN
17622 p_payment_terms_tbl_update(i).opex_agr_id := r_payment_terms.opex_agr_id;
17623 END IF;
17624 IF ( p_payment_terms_tbl_update(i).opex_recon_id IS NULL )--OR p_payment_terms_tbl_update(i).opex_recon_id = PN_LEASE_UTILS.G_PN_MISS_NUM)
17625 THEN
17626 p_payment_terms_tbl_update(i).opex_recon_id := r_payment_terms.opex_recon_id;
17627 END IF;
17628
17629 pvt_debug(g_pkg_name||'UPDATE_TERMS:Before UPDATE_PAYMENT_TERMS_ROW',3);
17630 --Calling the Update payments procedure to Update after we check for the term distirbution Correctness
17631 ----------------------dbms_output.put_line('B4 Update Payment Terms Row');--Rupak
17632 update_payment_terms_row ( p_lease_terms_rec => p_payment_terms_tbl_update(i)
17633 , p_lease_id => p_lease_id
17634 , p_change_lease_id => l_lease_change_id
17635 , p_lease_context => p_lease_context
17636 , x_return_status => x_return_status
17637 );
17638 pvt_debug(g_pkg_name||'UPDATE_TERMS:UPDATE_PAYMENT_TERMS_ROW Return Status:'||x_return_status,3);
17639 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
17640 RAISE fnd_api.g_exc_error;
17641 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
17642 RAISE fnd_api.g_exc_unexpected_error;
17643 --ELSIF (x_return_status = fnd_api.g_ret_sts_success AND g_status <>'F' AND l_lease_status = 'F') THEN
17644 -- FINALIZE_RECORD ( p_lease_id,l_lease_commencement_date,p_lease_context,g_org_id,l_api_name_full,'U');
17645 END IF;
17646
17647 ----------------------dbms_output.put_line('B4 Validate Payment terms');
17648 BEGIN --Bug14176705
17649 ADD_DIST_ACCOUNT (p_payment_terms_tbl_update(i),p_payment_terms_tbl_update(i).p_terms_exp_rev_accounts_tbl,l_change_account_count,'U');
17650 EXCEPTION
17651 WHEN OTHERS THEN
17652 NULL;
17653 ----------------------dbms_output.put_line('In Exception:validate_dist_account'||SQLERRM);
17654 pvt_debug(g_pkg_name||'UPDATE_TERMS:ADD_DIST_ACCOUNT:Exception:'||SQLERRM,3);
17655 END;
17656 ------------------------------------------------------------
17657 l_assign_flag := 'Y';
17658 ELSE
17659 ------------------------dbms_output.put_line('In Update tenancies:ELSE PART :p_lease_tenancies_tbl(i).teanacy_id'||p_lease_tenancies_tbl(i).tenancy_id);
17660 ------------------------dbms_output.put_line('In Update tenanciess:ELSE PART :r_tenancies_details.tenancy_id'||r_tenancies_details.tenancy_id);
17661 NULL;
17662 END IF;
17663 EXCEPTION
17664 WHEN e_invalid_mode THEN
17665 null;
17666 ----------------------dbms_output.put_line('Into Exception'||SQLERRM);
17667 WHEN fnd_api.g_exc_error THEN
17668 l_error_count_err := l_error_count_err+1;
17669 --x_return_status := fnd_api.g_ret_sts_error;
17670 pvt_debug(g_pkg_name||'-update_terms:LOOOPING:EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
17671 WHEN OTHERS THEN
17672 --l_error_count_uerr := l_error_count_uerr+1;
17673 l_error_count_err := l_error_count_err+1;
17674 --x_return_status := fnd_api.g_ret_sts_unexp_error;
17675 pvt_debug(g_pkg_name||'-update_terms:LOOOPING:EXCEPTION:'||SQLERRM,3);
17676 END;
17677 END LOOP;
17678 EXCEPTION
17679 WHEN e_exit_current_term THEN
17680 ----------------------dbms_output.put_line('Accrual Multiple');
17681 pvt_debug(g_pkg_name||'UPDATE_TERMS:E_EXIT_CURRENT_TERM:Exception:'||SQLERRM,3);
17682 null;
17683 END;
17684 ELSE
17685 ----------------------dbms_output.put_line('The Check failed with error_flag ''Y''');--Rupak
17686 pvt_debug(g_pkg_name||'UPDATE_TERMS:ELSE:',3);
17687 NULL;
17688 END IF; --Check if the Payment(i) is not 'Y'
17689 END IF; --Create-Update Check
17690 END LOOP;
17691 END IF;
17692
17693 p:=1;
17694 FOR i IN 1..p_payment_terms_tbl.COUNT
17695 LOOP
17696 IF(p_payment_terms_tbl (i).payment_term_id IS NULL OR p_payment_terms_tbl (i).payment_term_id = pn_lease_utils.g_pn_miss_num) THEN
17697 pvt_debug(g_pkg_name||'-update_terms:Assigning the term table values to other table',3);
17698 p_payment_terms_tbl_tmp(p) := p_payment_terms_tbl (i);
17699 p:= p+1;
17700 END IF;
17701 END LOOP;
17702
17703 IF (p_payment_terms_tbl_tmp.COUNT >0 ) THEN
17704 --dbms_output.put_line('Hello:p_payment_terms_tbl_tmp.COUNT'||p_payment_terms_tbl_tmp.COUNT);
17705 BEGIN
17706 create_terms (p_api_version => p_api_version
17707 , p_init_msg_list => p_init_msg_list
17708 , p_commit => p_commit
17709 , p_validate => p_validate
17710 , p_payment_terms_tbl => p_payment_terms_tbl_tmp
17711 , p_lease_id => p_lease_id
17712 , p_lease_context => p_lease_context--'CREATE_TERMS' Bug15936949
17713 , x_return_status => x_return_status
17714 , x_msg_count => x_msg_count
17715 , x_msg_data => x_msg_data
17716 );
17717 fnd_msg_pub.count_and_get (p_encoded => fnd_api.g_false
17718 , p_count => x_msg_count
17719 , p_data => x_msg_data
17720 );
17721 EXCEPTION
17722 WHEN OTHERS THEN
17723 x_return_status := fnd_api.g_ret_sts_error;
17724 fnd_msg_pub.count_and_get (p_encoded => fnd_api.g_false
17725 , p_count => x_msg_count
17726 , p_data => x_msg_data
17727 );
17728 END;
17729 END IF;
17730
17731 IF(l_error_count_err = 0) THEN
17732 x_return_status := fnd_api.g_ret_sts_success;
17733 ELSE
17734 x_return_status := fnd_api.g_ret_sts_error;
17735 END IF;
17736 EXCEPTION
17737 WHEN fnd_api.g_exc_error THEN
17738 x_return_status := fnd_api.g_ret_sts_error;
17739 pvt_debug(g_pkg_name||'-update_terms::MAIN EXCEPTION:FND_API.G_EXC_ERROR'||SQLERRM,3);
17740 WHEN OTHERS THEN
17741 x_return_status := fnd_api.g_ret_sts_unexp_error;
17742 pvt_debug(g_pkg_name||'-update_terms:MAIN:EXCEPTION:'||SQLERRM,3);
17743 END update_terms;
17744
17745
17746
17747
17748 /*Insert payment */
17749 PROCEDURE create_terms (
17750 p_api_version IN NUMBER
17751 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
17752 , p_commit IN VARCHAR2 := FND_API.G_FALSE
17753 , p_validate IN VARCHAR2 := FND_API.G_FALSE
17754 , p_payment_terms_tbl IN OUT NOCOPY lease_terms_tbl
17755 , p_lease_id IN NUMBER
17756 , p_lease_context IN VARCHAR2 DEFAULT NULL
17757 , x_return_status OUT NOCOPY VARCHAR2
17758 , x_msg_count OUT NOCOPY NUMBER
17759 , x_msg_data OUT NOCOPY VARCHAR2
17760 )
17761 AS
17762 l_api_version CONSTANT NUMBER := 1.0;
17763 l_api_name CONSTANT VARCHAR2 (30) := 'Create_Payment';
17764 l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name || '.' || l_api_name;
17765
17766 l_return_status VARCHAR2 (1);
17767
17768
17769 --l_term_defaults cur_term_template%ROWTYPE;
17770 l_lease_status pn_leases_all.STATUS%TYPE;
17771 l_lease_context VARCHAR2(20) := null;
17772
17773 l_lease_class_code VARCHAR2 (30);
17774 l_lease_commencement_date DATE;
17775 l_lease_termination_date DATE;
17776 l_parent_lease_id NUMBER;
17777 l_termtemp_type pn_term_templates_all.payment_term_type_code%TYPE;
17778 l_schedule_context VARCHAR2(10) := NULL;
17779 l_requestid NUMBER := NULL;
17780 l_lease_change_id NUMBER;
17781 x_request_id NUMBER:=NULL;
17782
17783 l_locations_count NUMBER := 0;
17784 BEGIN
17785 -- Standard start of API savepoint
17786 SAVEPOINT insert_payment_pvt;
17787
17788 -- Initialize message list if p_init_msg_list is set to TRUE
17789 IF fnd_api.to_boolean (p_init_msg_list)
17790 THEN
17791 fnd_msg_pub.initialize;
17792 END IF;
17793
17794 -- Standard call to check for call compatibility
17795 IF NOT fnd_api.compatible_api_call (l_api_version
17796 , p_api_version
17797 , l_api_name
17798 , g_pkg_name
17799 )
17800 THEN
17801 RAISE fnd_api.g_exc_error;
17802 END IF;
17803
17804 -- Initialize the return status.
17805 x_return_status := fnd_api.g_ret_sts_success;
17806
17807 -------------------------------------------
17808 -- Make sure the Lease Number or Lease Id is not null
17809 -- -------------------------------------------
17810 IF p_lease_id IS NULL
17811 THEN
17812 pn_lease_utils.add_null_parameter_msg (p_token_apiname => l_api_name_full, p_token_nullparam => 'LEASE_ID');
17813 RAISE fnd_api.g_exc_error;
17814 ELSE
17815 BEGIN
17816 l_lease_context := PN_LEASE_UTILS.get_lease_context(p_lease_id,g_org_id);
17817
17818 SELECT pla.lease_class_code
17819 , pld.lease_commencement_date
17820 , pld.lease_termination_date
17821 , pla.parent_lease_id
17822 , DECODE (pla.lease_class_code
17823 , 'DIRECT', 'PAYMENT'
17824 , 'THIRD_PARTY', 'BILLING'
17825 , 'SUB_LEASE','BILLING' /* Bug#13915457*/
17826 )
17827 , PN_LEASE_UTILS.get_lease_change_id(p_lease_id ,g_org_id)
17828 ,pla.status
17829 INTO l_lease_class_code
17830 , l_lease_commencement_date
17831 , l_lease_termination_date
17832 , l_parent_lease_id
17833 , l_termtemp_type
17834 , l_lease_change_id
17835 , l_lease_status
17836 FROM pn_leases_all pla, pn_lease_details_all pld
17837 WHERE pla.lease_id = p_lease_id
17838 AND pla.lease_id = pld.lease_id
17839 AND pld.org_id = pla.org_id
17840 AND pla.org_id = g_org_id;
17841 /*----------dbms_output.put_line('Inside ERROR:1'||l_lease_status||l_lease_context);
17842 IF ((l_lease_status = 'D' and (l_lease_context IN ('EDIT','AMEND')))
17843 OR (l_lease_status = 'F' and (l_lease_context NOT IN ('EDIT','AMEND')))) THEN
17844 ----------dbms_output.put_line('Inside ERROR:l_lease_context'||l_lease_status||l_lease_context);
17845 fnd_message.set_name ('PN', 'PN_INV_LEASECONT');
17846 fnd_message.set_token ('API_NAME', l_api_name_full);
17847 fnd_message.set_token ('LEASE_ID', p_lease_id);
17848 fnd_msg_pub.ADD;
17849 RAISE fnd_api.g_exc_error;
17850 END IF;*/
17851
17852 EXCEPTION
17853 WHEN OTHERS
17854 THEN
17855 fnd_message.set_name ('PN', 'PN_INV_DRVLEASED');
17856 fnd_message.set_token ('API_NAME', l_api_name_full);
17857 fnd_message.set_token ('LEASE_ID', p_lease_id);
17858 fnd_message.set_token ('SQLERRM', SQLERRM);
17859 fnd_msg_pub.ADD;
17860 RAISE fnd_api.g_exc_error;
17861 END;
17862 END IF;
17863 ----------------------dbms_output.put_line('B4 Calling Validate Payments:p_lease_id'||p_lease_id);--Rupak
17864 ----Not yet Created..Rupak
17865 BEGIN
17866 validate_payment_terms_tbl( p_api_name_full => l_api_name_full
17867 , p_payment_terms_tbl => p_payment_terms_tbl
17868 , p_lease_id => p_lease_id
17869 , p_lease_class_code => l_lease_class_code
17870 , p_lease_commencement_date => l_lease_commencement_date
17871 , p_lease_termination_date => l_lease_termination_date
17872 , p_termtemp_type => l_termtemp_type
17873 , p_parent_lease_id => l_parent_lease_id
17874 , p_lease_change_id => l_lease_change_id
17875 , p_lease_status => l_lease_status
17876 , p_lease_context => p_lease_context
17877 , p_operation => 'CREATE_TERMS'
17878 , x_return_status => x_return_status
17879 );
17880 pvt_debug(g_pkg_name||'CREATE_TERMS:VALIDATE_PAYMENT_TERMS_TBL Return Status:'||x_return_status,3);
17881 IF (x_return_status = fnd_api.g_ret_sts_error) THEN
17882 RAISE fnd_api.g_exc_error;
17883 ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
17884 RAISE fnd_api.g_exc_unexpected_error;
17885 END IF;
17886 BEGIN
17887 SELECT COUNT(1)
17888 INTO l_locations_count
17889 FROM pn_tenancies_all
17890 WHERE lease_id = p_lease_id
17891 AND org_id = g_org_id;
17892 EXCEPTION
17893 WHEN OTHERS THEN
17894 pvt_debug(g_pkg_name||'CREATE_TERMS:For Status to be made Final Tenancies are required.',3);
17895 l_locations_count := 0;
17896 END;
17897 pvt_debug('Lease Status:Draft/Final:'||l_lease_status,3);
17898 IF (x_return_status = fnd_api.g_ret_sts_success AND l_lease_status = 'F') THEN
17899 IF(l_locations_count > 0) THEN
17900 pvt_debug(g_pkg_name||'CREATE_TERMS:About to call FINALIZE_RECORD',3);
17901 FINALIZE_RECORD ( p_lease_id,l_lease_commencement_date,p_lease_context,g_org_id,l_api_name_full,'C',x_request_id);
17902 ELSE
17903 fnd_message.set_name('PN','PN_OTHERS_EXCEPTION');
17904 fnd_message.set_token('ERR_MSG', 'Tenancies are not provided for this Lease.Hence cannot be Finalized.');
17905 fnd_msg_pub.ADD;
17906 RAISE fnd_api.g_exc_error;
17907 END IF;
17908 END IF;
17909 IF (x_request_id = 0 ) THEN
17910 fnd_message.set_name ('PN', 'PN_SUBSCHEDULES_ERR');
17911 fnd_message.set_token ('API_NAME', l_api_name_full || '-SubmitSchedulesConcProgram');
17912 fnd_msg_pub.ADD;
17913 RAISE fnd_api.g_exc_error;
17914 END IF;
17915
17916 EXCEPTION
17917 WHEN fnd_api.g_exc_error THEN
17918 x_return_status := fnd_api.g_ret_sts_error;
17919 WHEN fnd_api.g_exc_unexpected_error THEN
17920 x_return_status := fnd_api.g_ret_sts_unexp_error;
17921 WHEN OTHERS THEN
17922 x_return_status := fnd_api.g_ret_sts_unexp_error;
17923 pvt_debug(g_pkg_name||'CREATE_TERMS:Exception:OTHERS:'||SQLERRM,3);
17924 END;
17925
17926 END create_terms;
17927
17928 PROCEDURE INITIALIZE_RIGHTS_REC( p_right_rec IN OUT NOCOPY lease_right_rec
17929 , p_lease_context IN VARCHAR2
17930 , x_return_status OUT NOCOPY VARCHAR2
17931 )
17932 AS
17933 BEGIN
17934 pvt_debug(g_pkg_name||'Inside INITIALIZE_RIGHTS_REC',3);
17935 IF p_right_rec.right_num = pn_lease_utils.g_pn_miss_num THEN
17936 p_right_rec.right_num := NULL;
17937 END IF;
17938 IF p_right_rec.right_type = pn_lease_utils.g_pn_miss_char THEN
17939 p_right_rec.right_type := NULL;
17940 END IF;
17941 IF p_right_rec.right_type_code = pn_lease_utils.g_pn_miss_char THEN
17942 p_right_rec.right_type_code := NULL;
17943 END IF;
17944 IF p_right_rec.right_status = pn_lease_utils.g_pn_miss_char THEN
17945 p_right_rec.right_status := NULL;
17946 END IF;
17947 IF p_right_rec.right_status_code = pn_lease_utils.g_pn_miss_char THEN
17948 p_right_rec.right_status_code := NULL;
17949 END IF;
17950 IF p_right_rec.right_reference = pn_lease_utils.g_pn_miss_char THEN
17951 p_right_rec.right_reference := NULL;
17952 END IF;
17953 IF p_right_rec.right_comments = pn_lease_utils.g_pn_miss_char THEN
17954 p_right_rec.right_comments := NULL;
17955 END IF;
17956 IF p_right_rec.attribute_category = pn_lease_utils.g_pn_miss_char THEN
17957 p_right_rec.attribute_category := NULL;
17958 END IF;
17959 IF p_right_rec.attribute1 = pn_lease_utils.g_pn_miss_char THEN
17960 p_right_rec.attribute1 := NULL;
17961 END IF;
17962 IF p_right_rec.attribute2 = pn_lease_utils.g_pn_miss_char THEN
17963 p_right_rec.attribute2 := NULL;
17964 END IF;
17965 IF p_right_rec.attribute3 = pn_lease_utils.g_pn_miss_char THEN
17966 p_right_rec.attribute3 := NULL;
17967 END IF;
17968 IF p_right_rec.attribute4 = pn_lease_utils.g_pn_miss_char THEN
17969 p_right_rec.attribute4 := NULL;
17970 END IF;
17971 IF p_right_rec.attribute5 = pn_lease_utils.g_pn_miss_char THEN
17972 p_right_rec.attribute5 := NULL;
17973 END IF;
17974 IF p_right_rec.attribute6 = pn_lease_utils.g_pn_miss_char THEN
17975 p_right_rec.attribute6 := NULL;
17976 END IF;
17977 IF p_right_rec.attribute7 = pn_lease_utils.g_pn_miss_char THEN
17978 p_right_rec.attribute7 := NULL;
17979 END IF;
17980 IF p_right_rec.attribute8 = pn_lease_utils.g_pn_miss_char THEN
17981 p_right_rec.attribute8 := NULL;
17982 END IF;
17983 IF p_right_rec.attribute9 = pn_lease_utils.g_pn_miss_char THEN
17984 p_right_rec.attribute9 := NULL;
17985 END IF;
17986 IF p_right_rec.attribute10 = pn_lease_utils.g_pn_miss_char THEN
17987 p_right_rec.attribute10 := NULL;
17988 END IF;
17989 IF p_right_rec.attribute11 = pn_lease_utils.g_pn_miss_char THEN
17990 p_right_rec.attribute11 := NULL;
17991 END IF;
17992 IF p_right_rec.attribute12 = pn_lease_utils.g_pn_miss_char THEN
17993 p_right_rec.attribute12 := NULL;
17994 END IF;
17995 IF p_right_rec.attribute13 = pn_lease_utils.g_pn_miss_char THEN
17996 p_right_rec.attribute13 := NULL;
17997 END IF;
17998
17999 IF p_right_rec.attribute14 = pn_lease_utils.g_pn_miss_char THEN
18000 p_right_rec.attribute14 := NULL;
18001 END IF;
18002 IF p_right_rec.attribute15 = pn_lease_utils.g_pn_miss_char THEN
18003 p_right_rec.attribute15 := NULL;
18004 END IF;
18005
18006 END INITIALIZE_RIGHTS_REC;
18007
18008 PROCEDURE INITIALIZE_OBLIGATIONS_REC( p_obligation_rec IN OUT NOCOPY lease_obligation_rec
18009 , p_lease_context IN VARCHAR2
18010 , x_return_status OUT NOCOPY VARCHAR2
18011 )
18012 AS
18013 BEGIN
18014 pvt_debug(g_pkg_name||'Inside INITIALIZE_OBLIGATIONS_REC',3);
18015 IF p_obligation_rec.status = pn_lease_utils.g_pn_miss_char THEN
18016 p_obligation_rec.status := NULL;
18017 END IF;
18018 IF p_obligation_rec.service_type = pn_lease_utils.g_pn_miss_char THEN
18019 p_obligation_rec.service_type := NULL;
18020 END IF;
18021 IF p_obligation_rec.service_type_lookup_code = pn_lease_utils.g_pn_miss_char THEN
18022 p_obligation_rec.service_type_lookup_code := NULL;
18023 END IF;
18024 IF p_obligation_rec.start_date = pn_lease_utils.g_pn_miss_date THEN
18025 p_obligation_rec.start_date := NULL;
18026 END IF;
18027 IF p_obligation_rec.end_date = pn_lease_utils.g_pn_miss_date THEN
18028 p_obligation_rec.end_date := NULL;
18029 END IF;
18030 IF p_obligation_rec.obligation_num = pn_lease_utils.g_pn_miss_char THEN
18031 p_obligation_rec.obligation_num := NULL;
18032 END IF;
18033 IF p_obligation_rec.responsibility_code = pn_lease_utils.g_pn_miss_char THEN
18034 p_obligation_rec.responsibility_code := NULL;
18035 END IF;
18036 IF p_obligation_rec.common_area_resp = pn_lease_utils.g_pn_miss_char THEN
18037 p_obligation_rec.common_area_resp := NULL;
18038 END IF;
18039 IF p_obligation_rec.financial_resp_party = pn_lease_utils.g_pn_miss_char THEN
18040 p_obligation_rec.financial_resp_party := NULL;
18041 END IF;
18042 IF p_obligation_rec.financial_resp_party_code = pn_lease_utils.g_pn_miss_char THEN
18043 p_obligation_rec.financial_resp_party_code := NULL;
18044 END IF;
18045 IF p_obligation_rec.financial_pct_resp = pn_lease_utils.g_pn_miss_char THEN
18046 p_obligation_rec.financial_pct_resp := NULL;
18047 END IF;
18048 IF p_obligation_rec.company_name = pn_lease_utils.g_pn_miss_char THEN
18049 p_obligation_rec.company_name := NULL;
18050 END IF;
18051 IF p_obligation_rec.responsibility_maint = pn_lease_utils.g_pn_miss_char THEN
18052 p_obligation_rec.responsibility_maint := NULL;
18053 END IF;
18054 IF p_obligation_rec.company_id = pn_lease_utils.g_pn_miss_num THEN
18055 p_obligation_rec.company_id := NULL;
18056 END IF;
18057 IF p_obligation_rec.obligation_reference = pn_lease_utils.g_pn_miss_char THEN
18058 p_obligation_rec.obligation_reference := NULL;
18059 END IF;
18060 IF p_obligation_rec.obligation_comments = pn_lease_utils.g_pn_miss_char THEN
18061 p_obligation_rec.obligation_comments := NULL;
18062 END IF;
18063 IF p_obligation_rec.attribute_category = pn_lease_utils.g_pn_miss_char THEN
18064 p_obligation_rec.attribute_category := NULL;
18065 END IF;
18066 IF p_obligation_rec.attribute1 = pn_lease_utils.g_pn_miss_char THEN
18067 p_obligation_rec.attribute1 := NULL;
18068 END IF;
18069 IF p_obligation_rec.attribute2 = pn_lease_utils.g_pn_miss_char THEN
18070 p_obligation_rec.attribute2 := NULL;
18071 END IF;
18072 IF p_obligation_rec.attribute3 = pn_lease_utils.g_pn_miss_char THEN
18073 p_obligation_rec.attribute3 := NULL;
18074 END IF;
18075 IF p_obligation_rec.attribute4 = pn_lease_utils.g_pn_miss_char THEN
18076 p_obligation_rec.attribute4 := NULL;
18077 END IF;
18078 IF p_obligation_rec.attribute5 = pn_lease_utils.g_pn_miss_char THEN
18079 p_obligation_rec.attribute5 := NULL;
18080 END IF;
18081 IF p_obligation_rec.attribute6 = pn_lease_utils.g_pn_miss_char THEN
18082 p_obligation_rec.attribute6 := NULL;
18083 END IF;
18084 IF p_obligation_rec.attribute7 = pn_lease_utils.g_pn_miss_char THEN
18085 p_obligation_rec.attribute7 := NULL;
18086 END IF;
18087 IF p_obligation_rec.attribute8 = pn_lease_utils.g_pn_miss_char THEN
18088 p_obligation_rec.attribute8 := NULL;
18089 END IF;
18090 IF p_obligation_rec.attribute9 = pn_lease_utils.g_pn_miss_char THEN
18091 p_obligation_rec.attribute9 := NULL;
18092 END IF;
18093 IF p_obligation_rec.attribute10 = pn_lease_utils.g_pn_miss_char THEN
18094 p_obligation_rec.attribute10 := NULL;
18095 END IF;
18096 IF p_obligation_rec.attribute11 = pn_lease_utils.g_pn_miss_char THEN
18097 p_obligation_rec.attribute11 := NULL;
18098 END IF;
18099 IF p_obligation_rec.attribute12 = pn_lease_utils.g_pn_miss_char THEN
18100 p_obligation_rec.attribute12 := NULL;
18101 END IF;
18102 IF p_obligation_rec.attribute13 = pn_lease_utils.g_pn_miss_char THEN
18103 p_obligation_rec.attribute13 := NULL;
18104 END IF;
18105 IF p_obligation_rec.attribute14 = pn_lease_utils.g_pn_miss_char THEN
18106 p_obligation_rec.attribute14 := NULL;
18107 END IF;
18108 IF p_obligation_rec.attribute15 = pn_lease_utils.g_pn_miss_char THEN
18109 p_obligation_rec.attribute15 := NULL;
18110 END IF;
18111
18112 END INITIALIZE_OBLIGATIONS_REC;
18113
18114 PROCEDURE INITIALIZE_OPTIONS_REC( p_option_rec IN OUT NOCOPY lease_option_rec
18115 , p_lease_context IN VARCHAR2
18116 , x_return_status OUT NOCOPY VARCHAR2
18117 )
18118 AS
18119 BEGIN
18120 pvt_debug(g_pkg_name||'Inside INITIALIZE_OPTIONS_REC',3);
18121 IF p_option_rec.option_type = pn_lease_utils.g_pn_miss_char THEN
18122 p_option_rec.option_type := NULL;
18123 END IF;
18124 IF p_option_rec.option_type_code = pn_lease_utils.g_pn_miss_char THEN
18125 p_option_rec.option_type_code := NULL;
18126 END IF;
18127 IF p_option_rec.start_date = pn_lease_utils.g_pn_miss_date THEN
18128 p_option_rec.start_date := NULL;
18129 END IF;
18130 IF p_option_rec.expiration_date = pn_lease_utils.g_pn_miss_date THEN
18131 p_option_rec.expiration_date := NULL;
18132 END IF;
18133 IF p_option_rec.option_reference = pn_lease_utils.g_pn_miss_char THEN
18134 p_option_rec.option_reference := NULL;
18135 END IF;
18136 IF p_option_rec.option_status_type = pn_lease_utils.g_pn_miss_char THEN
18137 p_option_rec.option_status_type := NULL;
18138 END IF;
18139 IF p_option_rec.option_status_lookup_code = pn_lease_utils.g_pn_miss_char THEN
18140 p_option_rec.option_status_lookup_code := NULL;
18141 END IF;
18142 IF p_option_rec.option_notice_reqd_type = pn_lease_utils.g_pn_miss_char THEN
18143 p_option_rec.option_notice_reqd_type := NULL;
18144 END IF;
18145 IF p_option_rec.option_notice_reqd = pn_lease_utils.g_pn_miss_char THEN
18146 p_option_rec.option_notice_reqd := NULL;
18147 END IF;
18148 IF p_option_rec.option_size = pn_lease_utils.g_pn_miss_num THEN
18149 p_option_rec.option_size := NULL;
18150 END IF;
18151 IF p_option_rec.option_exer_start_date = pn_lease_utils.g_pn_miss_date THEN
18152 p_option_rec.option_exer_start_date := NULL;
18153 END IF;
18154 IF p_option_rec.option_exer_end_date = pn_lease_utils.g_pn_miss_date THEN
18155 p_option_rec.option_exer_end_date := NULL;
18156 END IF;
18157 IF p_option_rec.option_action_date = pn_lease_utils.g_pn_miss_date THEN
18158 p_option_rec.option_action_date := NULL;
18159 END IF;
18160 IF p_option_rec.uom_type = pn_lease_utils.g_pn_miss_char THEN
18161 p_option_rec.uom_type := NULL;
18162 END IF;
18163 IF p_option_rec.uom_code = pn_lease_utils.g_pn_miss_char THEN
18164 p_option_rec.uom_code := NULL;
18165 END IF;
18166 IF p_option_rec.option_cost = pn_lease_utils.g_pn_miss_char THEN
18167 p_option_rec.option_cost := NULL;
18168 END IF;
18169 IF p_option_rec.option_area_change = pn_lease_utils.g_pn_miss_num THEN
18170 p_option_rec.option_area_change := NULL;
18171 END IF;
18172 IF p_option_rec.comments = pn_lease_utils.g_pn_miss_char THEN
18173 p_option_rec.comments := NULL;
18174 END IF;
18175 IF p_option_rec.attribute_category = pn_lease_utils.g_pn_miss_char THEN
18176 p_option_rec.attribute_category := NULL;
18177 END IF;
18178 IF p_option_rec.attribute1 = pn_lease_utils.g_pn_miss_char THEN
18179 p_option_rec.attribute1 := NULL;
18180 END IF;
18181 IF p_option_rec.attribute2 = pn_lease_utils.g_pn_miss_char THEN
18182 p_option_rec.attribute2 := NULL;
18183 END IF;
18184 IF p_option_rec.attribute3 = pn_lease_utils.g_pn_miss_char THEN
18185 p_option_rec.attribute3 := NULL;
18186 END IF;
18187 IF p_option_rec.attribute4 = pn_lease_utils.g_pn_miss_char THEN
18188 p_option_rec.attribute4 := NULL;
18189 END IF;
18190 IF p_option_rec.attribute5 = pn_lease_utils.g_pn_miss_char THEN
18191 p_option_rec.attribute5 := NULL;
18192 END IF;
18193 IF p_option_rec.attribute6 = pn_lease_utils.g_pn_miss_char THEN
18194 p_option_rec.attribute6 := NULL;
18195 END IF;
18196 IF p_option_rec.attribute7 = pn_lease_utils.g_pn_miss_char THEN
18197 p_option_rec.attribute7 := NULL;
18198 END IF;
18199 IF p_option_rec.attribute8 = pn_lease_utils.g_pn_miss_char THEN
18200 p_option_rec.attribute8 := NULL;
18201 END IF;
18202 IF p_option_rec.attribute9 = pn_lease_utils.g_pn_miss_char THEN
18203 p_option_rec.attribute9 := NULL;
18204 END IF;
18205 IF p_option_rec.attribute10 = pn_lease_utils.g_pn_miss_char THEN
18206 p_option_rec.attribute10 := NULL;
18207 END IF;
18208 IF p_option_rec.attribute11 = pn_lease_utils.g_pn_miss_char THEN
18209 p_option_rec.attribute11 := NULL;
18210 END IF;
18211 IF p_option_rec.attribute12 = pn_lease_utils.g_pn_miss_char THEN
18212 p_option_rec.attribute12 := NULL;
18213 END IF;
18214 IF p_option_rec.attribute13 = pn_lease_utils.g_pn_miss_char THEN
18215 p_option_rec.attribute13 := NULL;
18216 END IF;
18217 IF p_option_rec.attribute14 = pn_lease_utils.g_pn_miss_char THEN
18218 p_option_rec.attribute14 := NULL;
18219 END IF;
18220 IF p_option_rec.attribute15 = pn_lease_utils.g_pn_miss_char THEN
18221 p_option_rec.attribute15 := NULL;
18222 END IF;
18223 END INITIALIZE_OPTIONS_REC;
18224
18225 PROCEDURE INITIALIZE_INSURANCE_REC( p_insurance_rec IN OUT NOCOPY lease_insurance_rec
18226 , p_lease_context IN VARCHAR2
18227 , x_return_status OUT NOCOPY VARCHAR2
18228 )
18229 AS
18230 BEGIN
18231 pvt_debug(g_pkg_name||'Inside INITIALIZE_INSURANCE_REC',3);
18232 IF p_insurance_rec.status = pn_lease_utils.g_pn_miss_char THEN
18233 p_insurance_rec.status := NULL;
18234 END IF;
18235 IF p_insurance_rec.status_code = pn_lease_utils.g_pn_miss_char THEN
18236 p_insurance_rec.status_code := NULL;
18237 END IF;
18238 IF p_insurance_rec.insurance_type = pn_lease_utils.g_pn_miss_char THEN
18239 p_insurance_rec.insurance_type := NULL;
18240 END IF;
18241 IF p_insurance_rec.insurance_type_lookup_code = pn_lease_utils.g_pn_miss_char THEN
18242 p_insurance_rec.insurance_type_lookup_code := NULL;
18243 END IF;
18244 IF p_insurance_rec.policy_start_date = pn_lease_utils.g_pn_miss_date THEN
18245 p_insurance_rec.policy_start_date := NULL;
18246 END IF;
18247 IF p_insurance_rec.policy_expiration_date = pn_lease_utils.g_pn_miss_date THEN
18248 p_insurance_rec.policy_expiration_date := NULL;
18249 END IF;
18250 IF p_insurance_rec.insurer_name = pn_lease_utils.g_pn_miss_char THEN
18251 p_insurance_rec.insurer_name := NULL;
18252 END IF;
18253 IF p_insurance_rec.policy_number = pn_lease_utils.g_pn_miss_char THEN
18254 p_insurance_rec.policy_number := NULL;
18255 END IF;
18256 IF p_insurance_rec.insured_amount = pn_lease_utils.g_pn_miss_num THEN
18257 p_insurance_rec.insured_amount := NULL;
18258 END IF;
18259 IF p_insurance_rec.required_amount = pn_lease_utils.g_pn_miss_num THEN
18260 p_insurance_rec.required_amount := NULL;
18261 END IF;
18262 ------------
18263 IF p_insurance_rec.attribute_category = pn_lease_utils.g_pn_miss_char THEN
18264 p_insurance_rec.attribute_category := NULL;
18265 END IF;
18266 IF p_insurance_rec.attribute1 = pn_lease_utils.g_pn_miss_char THEN
18267 p_insurance_rec.attribute1 := NULL;
18268 END IF;
18269 IF p_insurance_rec.attribute2 = pn_lease_utils.g_pn_miss_char THEN
18270 p_insurance_rec.attribute2 := NULL;
18271 END IF;
18272 IF p_insurance_rec.attribute3 = pn_lease_utils.g_pn_miss_char THEN
18273 p_insurance_rec.attribute3 := NULL;
18274 END IF;
18275 IF p_insurance_rec.attribute4 = pn_lease_utils.g_pn_miss_char THEN
18276 p_insurance_rec.attribute4 := NULL;
18277 END IF;
18278 IF p_insurance_rec.attribute5 = pn_lease_utils.g_pn_miss_char THEN
18279 p_insurance_rec.attribute5 := NULL;
18280 END IF;
18281 IF p_insurance_rec.attribute6 = pn_lease_utils.g_pn_miss_char THEN
18282 p_insurance_rec.attribute6 := NULL;
18283 END IF;
18284 IF p_insurance_rec.attribute7 = pn_lease_utils.g_pn_miss_char THEN
18285 p_insurance_rec.attribute7 := NULL;
18286 END IF;
18287 IF p_insurance_rec.attribute8 = pn_lease_utils.g_pn_miss_char THEN
18288 p_insurance_rec.attribute8 := NULL;
18289 END IF;
18290 IF p_insurance_rec.attribute9 = pn_lease_utils.g_pn_miss_char THEN
18291 p_insurance_rec.attribute9 := NULL;
18292 END IF;
18293 IF p_insurance_rec.attribute10 = pn_lease_utils.g_pn_miss_char THEN
18294 p_insurance_rec.attribute10 := NULL;
18295 END IF;
18296 IF p_insurance_rec.attribute11 = pn_lease_utils.g_pn_miss_char THEN
18297 p_insurance_rec.attribute11 := NULL;
18298 END IF;
18299 IF p_insurance_rec.attribute12 = pn_lease_utils.g_pn_miss_char THEN
18300 p_insurance_rec.attribute12 := NULL;
18301 END IF;
18302 IF p_insurance_rec.attribute13 = pn_lease_utils.g_pn_miss_char THEN
18303 p_insurance_rec.attribute13 := NULL;
18304 END IF;
18305 IF p_insurance_rec.attribute14 = pn_lease_utils.g_pn_miss_char THEN
18306 p_insurance_rec.attribute14 := NULL;
18307 END IF;
18308 IF p_insurance_rec.attribute15 = pn_lease_utils.g_pn_miss_char THEN
18309 p_insurance_rec.attribute15 := NULL;
18310 END IF;
18311 END INITIALIZE_INSURANCE_REC;
18312
18313 PROCEDURE INITIALIZE_MILESTONE_REC( p_milestone_rec IN OUT NOCOPY lease_milestone_rec
18314 , p_lease_context IN VARCHAR2
18315 , x_return_status OUT NOCOPY VARCHAR2
18316 )
18317 AS
18318 BEGIN
18319 pvt_debug(g_pkg_name||'Inside INITIALIZE_MILESTONE_REC',3);
18320 IF p_milestone_rec.milestone_type = pn_lease_utils.g_pn_miss_char THEN
18321 p_milestone_rec.milestone_type := NULL;
18322 END IF;
18323 IF p_milestone_rec.milestone_type_code = pn_lease_utils.g_pn_miss_char THEN
18324 p_milestone_rec.milestone_type_code := NULL;
18325 END IF;
18326 IF p_milestone_rec.action_due_date = pn_lease_utils.g_pn_miss_date THEN
18327 p_milestone_rec.action_due_date := NULL;
18328 END IF;
18329 IF p_milestone_rec.user_name = pn_lease_utils.g_pn_miss_char THEN
18330 p_milestone_rec.user_name := NULL;
18331 END IF;
18332 IF p_milestone_rec.user_id = pn_lease_utils.g_pn_miss_num THEN
18333 p_milestone_rec.user_id := NULL;
18334 END IF;
18335 IF p_milestone_rec.lead_days = pn_lease_utils.g_pn_miss_num THEN
18336 p_milestone_rec.lead_days := NULL;
18337 END IF;
18338 IF p_milestone_rec.frequency = pn_lease_utils.g_pn_miss_num THEN
18339 p_milestone_rec.frequency := NULL;
18340 END IF;
18341 IF p_milestone_rec.attribute_category = pn_lease_utils.g_pn_miss_char THEN
18342 p_milestone_rec.attribute_category := NULL;
18343 END IF;
18344 IF p_milestone_rec.attribute1 = pn_lease_utils.g_pn_miss_char THEN
18345 p_milestone_rec.attribute1 := NULL;
18346 END IF;
18347 IF p_milestone_rec.attribute2 = pn_lease_utils.g_pn_miss_char THEN
18348 p_milestone_rec.attribute2 := NULL;
18349 END IF;
18350 IF p_milestone_rec.attribute3 = pn_lease_utils.g_pn_miss_char THEN
18351 p_milestone_rec.attribute3 := NULL;
18352 END IF;
18353 IF p_milestone_rec.attribute4 = pn_lease_utils.g_pn_miss_char THEN
18354 p_milestone_rec.attribute4 := NULL;
18355 END IF;
18356 IF p_milestone_rec.attribute5 = pn_lease_utils.g_pn_miss_char THEN
18357 p_milestone_rec.attribute5 := NULL;
18358 END IF;
18359 IF p_milestone_rec.attribute6 = pn_lease_utils.g_pn_miss_char THEN
18360 p_milestone_rec.attribute6 := NULL;
18361 END IF;
18362 IF p_milestone_rec.attribute7 = pn_lease_utils.g_pn_miss_char THEN
18363 p_milestone_rec.attribute7 := NULL;
18364 END IF;
18365 IF p_milestone_rec.attribute8 = pn_lease_utils.g_pn_miss_char THEN
18366 p_milestone_rec.attribute8 := NULL;
18367 END IF;
18368 IF p_milestone_rec.attribute9 = pn_lease_utils.g_pn_miss_char THEN
18369 p_milestone_rec.attribute9 := NULL;
18370 END IF;
18371 IF p_milestone_rec.attribute10 = pn_lease_utils.g_pn_miss_char THEN
18372 p_milestone_rec.attribute10 := NULL;
18373 END IF;
18374 IF p_milestone_rec.attribute11 = pn_lease_utils.g_pn_miss_char THEN
18375 p_milestone_rec.attribute11 := NULL;
18376 END IF;
18377 IF p_milestone_rec.attribute12 = pn_lease_utils.g_pn_miss_char THEN
18378 p_milestone_rec.attribute12 := NULL;
18379 END IF;
18380 IF p_milestone_rec.attribute13 = pn_lease_utils.g_pn_miss_char THEN
18381 p_milestone_rec.attribute13 := NULL;
18382 END IF;
18383 IF p_milestone_rec.attribute14 = pn_lease_utils.g_pn_miss_char THEN
18384 p_milestone_rec.attribute14 := NULL;
18385 END IF;
18386 IF p_milestone_rec.attribute15 = pn_lease_utils.g_pn_miss_char THEN
18387 p_milestone_rec.attribute15 := NULL;
18388 END IF;
18389 END INITIALIZE_MILESTONE_REC;
18390
18391 PROCEDURE INITIALIZE_NOTES_REC( p_notes_rec IN OUT NOCOPY pn_lease_note_rec
18392 , p_lease_context IN VARCHAR2
18393 , x_return_status OUT NOCOPY VARCHAR2
18394 )
18395 AS
18396 BEGIN
18397 pvt_debug(g_pkg_name||'Inside INITIALIZE_NOTES_REC',3);
18398 IF p_notes_rec.note_date = pn_lease_utils.g_pn_miss_date THEN
18399 p_notes_rec.note_date := NULL;
18400 END IF;
18401 IF p_notes_rec.note_type = pn_lease_utils.g_pn_miss_char THEN
18402 p_notes_rec.note_type := NULL;
18403 END IF;
18404 IF p_notes_rec.note_type_lookup_code = pn_lease_utils.g_pn_miss_char THEN
18405 p_notes_rec.note_type_lookup_code := NULL;
18406 END IF;
18407 IF p_notes_rec.note_detail_id = pn_lease_utils.g_pn_miss_num THEN
18408 p_notes_rec.note_detail_id := NULL;
18409 END IF;
18410 IF p_notes_rec.text = pn_lease_utils.g_pn_miss_char THEN
18411 p_notes_rec.text := NULL;
18412 END IF;
18413
18414 ------------
18415 IF p_notes_rec.attribute_category = pn_lease_utils.g_pn_miss_char THEN
18416 p_notes_rec.attribute_category := NULL;
18417 END IF;
18418 IF p_notes_rec.attribute1 = pn_lease_utils.g_pn_miss_char THEN
18419 p_notes_rec.attribute1 := NULL;
18420 END IF;
18421 IF p_notes_rec.attribute2 = pn_lease_utils.g_pn_miss_char THEN
18422 p_notes_rec.attribute2 := NULL;
18423 END IF;
18424 IF p_notes_rec.attribute3 = pn_lease_utils.g_pn_miss_char THEN
18425 p_notes_rec.attribute3 := NULL;
18426 END IF;
18427 IF p_notes_rec.attribute4 = pn_lease_utils.g_pn_miss_char THEN
18428 p_notes_rec.attribute4 := NULL;
18429 END IF;
18430 IF p_notes_rec.attribute5 = pn_lease_utils.g_pn_miss_char THEN
18431 p_notes_rec.attribute5 := NULL;
18432 END IF;
18433 IF p_notes_rec.attribute6 = pn_lease_utils.g_pn_miss_char THEN
18434 p_notes_rec.attribute6 := NULL;
18435 END IF;
18436 IF p_notes_rec.attribute7 = pn_lease_utils.g_pn_miss_char THEN
18437 p_notes_rec.attribute7 := NULL;
18438 END IF;
18439 IF p_notes_rec.attribute8 = pn_lease_utils.g_pn_miss_char THEN
18440 p_notes_rec.attribute8 := NULL;
18441 END IF;
18442 IF p_notes_rec.attribute9 = pn_lease_utils.g_pn_miss_char THEN
18443 p_notes_rec.attribute9 := NULL;
18444 END IF;
18445 IF p_notes_rec.attribute10 = pn_lease_utils.g_pn_miss_char THEN
18446 p_notes_rec.attribute10 := NULL;
18447 END IF;
18448 IF p_notes_rec.attribute11 = pn_lease_utils.g_pn_miss_char THEN
18449 p_notes_rec.attribute11 := NULL;
18450 END IF;
18451 IF p_notes_rec.attribute12 = pn_lease_utils.g_pn_miss_char THEN
18452 p_notes_rec.attribute12 := NULL;
18453 END IF;
18454 IF p_notes_rec.attribute13 = pn_lease_utils.g_pn_miss_char THEN
18455 p_notes_rec.attribute13 := NULL;
18456 END IF;
18457 IF p_notes_rec.attribute14 = pn_lease_utils.g_pn_miss_char THEN
18458 p_notes_rec.attribute14 := NULL;
18459 END IF;
18460 IF p_notes_rec.attribute15 = pn_lease_utils.g_pn_miss_char THEN
18461 p_notes_rec.attribute15 := NULL;
18462 END IF;
18463 END INITIALIZE_NOTES_REC;
18464
18465 --------------------------------------------------------------------------------
18466 --Debug Procedure
18467 --------------------------------------------------------------------------------
18468
18469 PROCEDURE pvt_debug (
18470 p_log_message IN VARCHAR2
18471 , p_log_level IN NUMBER
18472 )
18473 IS
18474 BEGIN
18475 --pvt_debug(g_pkg_name||'Inside pvt_debug',3);
18476 IF g_debug = 'Y'
18477 THEN
18478
18479 pn_debug.g_err_stage := p_log_message;
18480 pn_debug.WRITE (g_module_name
18481 , pn_debug.g_err_stage
18482 , p_log_level
18483 );
18484 ELSE
18485 NULL;
18486 END IF;
18487 END pvt_debug;
18488 ------------------------------------------------------------Terms End-------------------
18489 FUNCTION get_miss_char_decode ( p_parameter VARCHAR2)
18490 RETURN VARCHAR2
18491 AS
18492 l_char VARCHAR2(4000);
18493 BEGIN
18494 SELECT decode (p_parameter,pn_lease_utils.g_pn_miss_char,'',p_parameter)
18495 INTO l_char
18496 FROM dual;
18497 RETURN l_char;
18498 EXCEPTION
18499 WHEN OTHERS THEN
18500 pvt_debug(g_pkg_name||'-get_miss_char_decode:Exception'||SQLERRM,3);
18501 l_char:=NULL;
18502 RETURN l_char;
18503 END get_miss_char_decode;
18504
18505 FUNCTION get_miss_num_decode ( p_parameter NUMBER)
18506 RETURN NUMBER
18507 AS
18508 l_num NUMBER;
18509 BEGIN
18510 SELECT decode (p_parameter,pn_lease_utils.g_pn_miss_num,'',p_parameter)
18511 INTO l_num
18512 FROM dual;
18513 RETURN l_num;
18514 EXCEPTION
18515 WHEN OTHERS THEN
18516 pvt_debug(g_pkg_name||'-get_miss_num_decode:Exception'||SQLERRM,3);
18517 l_num:=NULL;
18518 RETURN l_num;
18519 END get_miss_num_decode;
18520
18521 FUNCTION get_miss_date_decode ( p_parameter DATE)
18522 RETURN DATE
18523 AS
18524 l_date DATE;
18525 BEGIN
18526 SELECT decode (p_parameter,pn_lease_utils.g_pn_miss_date,'',p_parameter)
18527 INTO l_date
18528 FROM dual;
18529 RETURN l_date;
18530 EXCEPTION
18531 WHEN OTHERS THEN
18532 pvt_debug(g_pkg_name||'-get_miss_date_decode:Exception'||SQLERRM,3);
18533 l_date:=NULL;
18534 RETURN l_date;
18535 END get_miss_date_decode;
18536
18537 FUNCTION get_attribute_status( p_desc_name VARCHAR2)
18538 RETURN NUMBER
18539 AS
18540 l_count NUMBER :=0;
18541 BEGIN
18542 SELECT count(1)
18543 INTO l_count
18544 FROM fnd_descr_flex_col_usage_vl
18545 WHERE descriptive_flexfield_name = UPPER(trim(p_desc_name))
18546 AND enabled_flag = 'Y'
18547 AND display_flag = 'Y';
18548 RETURN l_count;
18549 EXCEPTION
18550 WHEN OTHERS THEN
18551 l_count:=0;
18552 RETURN l_count;
18553 END get_attribute_status;
18554
18555 PROCEDURE get_attribute_mandatory_status( p_desc_name IN VARCHAR2
18556 ,p_attribute1 IN VARCHAR2
18557 ,p_attribute2 IN VARCHAR2
18558 ,p_attribute3 IN VARCHAR2
18559 ,p_attribute4 IN VARCHAR2
18560 ,p_attribute5 IN VARCHAR2
18561 ,p_attribute6 IN VARCHAR2
18562 ,p_attribute7 IN VARCHAR2
18563 ,p_attribute8 IN VARCHAR2
18564 ,p_attribute9 IN VARCHAR2
18565 ,p_attribute10 IN VARCHAR2
18566 ,p_attribute11 IN VARCHAR2
18567 ,p_attribute12 IN VARCHAR2
18568 ,p_attribute13 IN VARCHAR2
18569 ,p_attribute14 IN VARCHAR2
18570 ,p_attribute15 IN VARCHAR2
18571 ,x_return_status OUT NOCOPY VARCHAR2
18572 )
18573 AS
18574 CURSOR cur_req_status(p_desc_name VARCHAR2)
18575 IS
18576 SELECT a.*
18577 FROM fnd_descr_flex_col_usage_vl a
18578 WHERE a.descriptive_flexfield_name = trim(p_desc_name)
18579 AND a.enabled_flag = 'Y'
18580 AND a.display_flag = 'Y'
18581 AND a.required_flag = 'Y';
18582
18583 l_err_count NUMBER:=0;
18584
18585 BEGIN
18586 x_return_status := fnd_api.g_ret_sts_success;
18587 l_err_count :=0;
18588 FOR r_req_status IN cur_req_status(p_desc_name)
18589 LOOP
18590 IF (trim(r_req_status.application_column_name) = 'ATTRIBUTE1' AND (p_attribute1 IS NULL OR p_attribute1 = pn_lease_utils.g_pn_miss_char)) THEN
18591 l_err_count := l_err_count + 1;
18592 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE2' AND (p_attribute2 IS NULL OR p_attribute2 = pn_lease_utils.g_pn_miss_char)) THEN
18593 l_err_count := l_err_count + 1;
18594 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE3' AND (p_attribute3 IS NULL OR p_attribute3 = pn_lease_utils.g_pn_miss_char)) THEN
18595 l_err_count := l_err_count + 1;
18596 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE4' AND (p_attribute4 IS NULL OR p_attribute4 = pn_lease_utils.g_pn_miss_char)) THEN
18597 l_err_count := l_err_count + 1;
18598 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE5' AND (p_attribute5 IS NULL OR p_attribute5 = pn_lease_utils.g_pn_miss_char)) THEN
18599 l_err_count := l_err_count + 1;
18600 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE6' AND (p_attribute6 IS NULL OR p_attribute6 = pn_lease_utils.g_pn_miss_char)) THEN
18601 l_err_count := l_err_count + 1;
18602 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE7' AND (p_attribute7 IS NULL OR p_attribute7 = pn_lease_utils.g_pn_miss_char)) THEN
18603 l_err_count := l_err_count + 1;
18604 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE8' AND (p_attribute8 IS NULL OR p_attribute8 = pn_lease_utils.g_pn_miss_char)) THEN
18605 l_err_count := l_err_count + 1;
18606 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE9' AND (p_attribute9 IS NULL OR p_attribute9 = pn_lease_utils.g_pn_miss_char)) THEN
18607 l_err_count := l_err_count + 1;
18608 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE10' AND (p_attribute10 IS NULL OR p_attribute10 = pn_lease_utils.g_pn_miss_char)) THEN
18609 l_err_count := l_err_count + 1;
18610 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE11' AND (p_attribute11 IS NULL OR p_attribute11 = pn_lease_utils.g_pn_miss_char)) THEN
18611 l_err_count := l_err_count + 1;
18612 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE12' AND (p_attribute12 IS NULL OR p_attribute12 = pn_lease_utils.g_pn_miss_char)) THEN
18613 l_err_count := l_err_count + 1;
18614 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE13' AND (p_attribute13 IS NULL OR p_attribute13 = pn_lease_utils.g_pn_miss_char)) THEN
18615 l_err_count := l_err_count + 1;
18616 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE14' AND (p_attribute14 IS NULL OR p_attribute14 = pn_lease_utils.g_pn_miss_char)) THEN
18617 l_err_count := l_err_count + 1;
18618 ELSIF(trim(r_req_status.application_column_name) = 'ATTRIBUTE15' AND(p_attribute15 IS NULL OR p_attribute15 = pn_lease_utils.g_pn_miss_char)) THEN
18619 l_err_count := l_err_count + 1;
18620 END IF;
18621 END LOOP;
18622 IF (l_err_count > 0) THEN
18623 x_return_status := fnd_api.g_ret_sts_error;
18624 ELSE
18625 x_return_status := fnd_api.g_ret_sts_success;
18626 END IF;
18627 EXCEPTION
18628 WHEN OTHERS THEN
18629 x_return_status := fnd_api.g_ret_sts_unexp_error;
18630 END get_attribute_mandatory_status;
18631
18632 --------UPDATE_STATUS
18633 PROCEDURE update_status( p_lease_id IN OUT NOCOPY NUMBER
18634 , p_new_approval_status_code IN OUT NOCOPY VARCHAR2
18635 , p_new_lease_status IN OUT NOCOPY VARCHAR2
18636 , p_operation IN VARCHAR2 DEFAULT 'UPDATE_STATUS'
18637 , x_return_status OUT NOCOPY VARCHAR2
18638 , x_msg_count OUT NOCOPY NUMBER
18639 , x_msg_data OUT NOCOPY VARCHAR2
18640 )
18641 IS
18642 CURSOR c_lease_id( p_lease_id IN NUMBER
18643 , p_org_id IN NUMBER
18644 )
18645 IS SELECT PLA.lease_id lease_id
18646 ,PLA.status status
18647 ,PLA.lease_status lease_status
18648 ,PLD.lease_commencement_date lease_commencement_date
18649 FROM pn_leases_all PLA
18650 ,pn_lease_details_all PLD
18651 WHERE PLD.lease_id = PLA.lease_id
18652 AND PLD.org_id = PLA.org_id
18653 AND PLA.lease_id = p_lease_id
18654 AND PLA.org_id = g_org_id;
18655
18656 CURSOR c_location_exists( p_lease_id IN NUMBER
18657 , p_org_id IN NUMBER
18658 )
18659 IS SELECT 'Y'
18660 FROM dual
18661 WHERE EXISTS (SELECT 1
18662 FROM pn_tenancies_ALL
18663 WHERE lease_id= p_lease_id
18664 AND org_id = g_org_id
18665 );
18666
18667 --l_org_id NUMBER := g_org_id;
18668 l_api_name CONSTANT VARCHAR2 (30) := p_operation;
18669 --l_api_name_full CONSTANT VARCHAR2 (61) := g_pkg_name || '.'|| l_api_name; This line should be uncommented
18670 l_param_status VARCHAR2 (30) := 'P_APPROVAL_STATUS';
18671 l_status_lookup_type fnd_lookup_types.lookup_type%TYPE := 'PN_LEASE_STATUS_TYPE';
18672 l_param_lease_status VARCHAR2 (30) := 'P_LEASE_STATUS';
18673 l_lease_status_lookup_type fnd_lookup_types.lookup_type%TYPE := 'PN_LEASESTATUS_TYPE';
18674 l_error_flag VARCHAR2(1) := 'Y';
18675 l_lease_id NUMBER;
18676 l_approval_status_old VARCHAR2 (30);
18677 l_lease_status_old VARCHAR2 (30);
18678 l_lease_commencement_date DATE;
18679 l_schedule_context VARCHAR2 (30) := 'UPDATE';
18680 l_request_id NUMBER;
18681 l_location_exists VARCHAR2(1);
18682 l_submitted_status VARCHAR2(1) :='S';
18683
18684 -- -- Below global variables to be removed at the time of plugging this procedure into pn_lease_pkg
18685 -- g_pkg_name VARCHAR2(30);
18686 g_program_unit VARCHAR2(30);
18687 -- g_org_id NUMBER;
18688
18689
18690 BEGIN
18691
18692 g_program_unit := 'UPDATE_STATUS';
18693 x_return_status := fnd_api.g_ret_sts_success;
18694
18695 pvt_debug (g_pkg_name||'.'|| g_program_unit || ' - Start of status update procedure', 3);
18696
18697
18698 -- Check if passed lease id exists or not
18699 IF p_lease_id IS NOT NULL AND p_lease_id <> pn_lease_utils.g_pn_miss_num
18700 THEN
18701
18702 OPEN c_lease_id( p_lease_id,g_org_id);
18703
18704 FETCH c_lease_id
18705 INTO l_lease_id
18706 ,l_approval_status_old
18707 ,l_lease_status_old
18708 ,l_lease_commencement_date;
18709
18710 IF (c_lease_id%NOTFOUND)
18711 THEN
18712 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
18713 fnd_message.set_token ('ERR_MSG', 'The provided lease id is invalid. Please provide a valid lease id to update the status');
18714 fnd_msg_pub.ADD;
18715 --x_return_status := fnd_api.g_ret_sts_error;
18716
18717 RAISE fnd_api.g_exc_error;
18718
18719 END IF;
18720
18721 IF c_lease_id%ISOPEN
18722 THEN
18723 CLOSE c_lease_id;
18724 END IF;
18725 ELSE
18726
18727 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
18728 fnd_message.set_token ('ERR_MSG', 'Please provide a valid lease id to update the status');
18729 fnd_msg_pub.ADD;
18730 --x_return_status := fnd_api.g_ret_sts_error;
18731
18732 RAISE fnd_api.g_exc_error;
18733
18734 END IF;
18735
18736 -- Validate passed p_new_approval_status_code against the FND_LOOKUPS.
18737 IF p_new_approval_status_code IS NOT NULL AND p_new_approval_status_code <> pn_lease_utils.g_pn_miss_char
18738 THEN
18739 pn_lease_utils.get_lookup_code
18740 (p_parameter_name => l_param_status
18741 , p_operation => p_operation
18742 , p_lookup_meaning => NULL
18743 , p_lookup_type => l_status_lookup_type
18744 , x_lookup_type_code => p_new_approval_status_code
18745 , x_return_status => x_return_status);
18746
18747
18748 pvt_debug (g_pkg_name||'.'|| g_program_unit || ' - New approval status code ater calling pn_lease_utils.get_lookup_code:' ||p_new_approval_status_code, 3);
18749 --dbms_output.put_line('p_new_approval_status_code:'||p_new_approval_status_code);
18750
18751 IF (x_return_status = fnd_api.g_ret_sts_error)
18752 THEN
18753 p_new_approval_status_code:=NULL;
18754 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
18755 fnd_message.set_token ('ERR_MSG', 'Please provide a valid approval status code to update');
18756 fnd_msg_pub.ADD;
18757 x_return_status := fnd_api.g_ret_sts_success;
18758 --x_return_status := fnd_api.g_ret_sts_error;
18759 --RAISE fnd_api.g_exc_error;
18760 END IF;
18761 END IF;
18762
18763 -- Validate passed p_new_lease_status against the FND_LOOKUPS.
18764 IF p_new_lease_status IS NOT NULL AND p_new_lease_status <> pn_lease_utils.g_pn_miss_char
18765 THEN
18766 pn_lease_utils.get_lookup_code
18767 (p_parameter_name => l_param_lease_status
18768 , p_operation => p_operation
18769 , p_lookup_meaning => NULL
18770 , p_lookup_type => l_lease_status_lookup_type
18771 , x_lookup_type_code => p_new_lease_status
18772 , x_return_status => x_return_status);
18773
18774 pvt_debug (g_pkg_name||'.'|| g_program_unit || ' - New lease status code ater calling pn_lease_utils.get_lookup_code:' ||p_new_lease_status, 3);
18775
18776 --dbms_output.put_line('p_new_lease_status:'||p_new_lease_status);
18777
18778 IF (x_return_status = fnd_api.g_ret_sts_error)
18779 THEN
18780 p_new_lease_status:=NULL;
18781 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
18782 fnd_message.set_token ('ERR_MSG', 'Please provide a valid lease status code to update');
18783 fnd_msg_pub.ADD;
18784 x_return_status := fnd_api.g_ret_sts_success;
18785 --x_return_status := fnd_api.g_ret_sts_error;
18786 --RAISE fnd_api.g_exc_error;
18787 END IF;
18788 END IF;
18789
18790
18791 -- Update associated lease status with the new lease status if old and new statuses are differenct
18792 IF x_return_status = fnd_api.g_ret_sts_success
18793 THEN
18794
18795 IF NVL(p_new_lease_status,l_lease_status_old) <> l_lease_status_old
18796 AND l_approval_status_old='D'
18797 THEN
18798 BEGIN
18799 UPDATE pn_leases_all
18800 SET lease_status = p_new_lease_status
18801 WHERE lease_id = p_lease_id
18802 AND org_id= g_org_id;
18803 --dbms_output.put_line('p_new_lease_status updated');
18804 EXCEPTION
18805 WHEN OTHERS
18806 THEN
18807 pvt_debug ( 'Exception in updating lease status code '
18808 || g_pkg_name
18809 || g_program_unit
18810 || '-'
18811 || SQLERRM
18812 , 5);
18813 x_return_status := fnd_api.g_ret_sts_unexp_error;
18814 END;
18815 END IF;
18816 END IF;
18817
18818 IF x_return_status = fnd_api.g_ret_sts_success
18819 THEN
18820 --dbms_output.put_line('Before IF check Raising Business Event');
18821 IF NVL(p_new_lease_status,l_lease_status_old) <> l_lease_status_old
18822 AND l_approval_status_old='D'
18823 THEN
18824 --dbms_output.put_line('Raising Business Event');
18825 --Raise Business Event passing the old and new approval and lease statuses.
18826 BEGIN
18827 --dbms_output.put_line('Just before Raising Business Event');
18828 pn_am_wf.raise_business_event( p_transaction_id => l_lease_id
18829 , p_event_name => 'oracle.apps.pn.lease.leasestatus'
18830 , p_lease_id => l_lease_id
18831 -- , p_old_approval_status => l_approval_status_old -- Commented on 22NOV2010
18832 -- , p_new_approval_status => p_new_approval_status_code -- Commented on 22NOV2010
18833 , p_old_lease_status => l_lease_status_old
18834 , p_new_lease_status => p_new_lease_status
18835 );
18836 EXCEPTION
18837 WHEN OTHERS THEN
18838 --dbms_output.put_line('Exception in Raising Business Event');
18839 pvt_debug('PN_LEASE_PVT-update_status:Exception in Raising Business Event',3);
18840 END;
18841 END IF;
18842 END IF;
18843
18844
18845
18846 IF x_return_status = fnd_api.g_ret_sts_success
18847 THEN
18848
18849 -- Check if location exists for the provided lease_id
18850
18851
18852 OPEN c_location_exists( p_lease_id,g_org_id);
18853
18854 FETCH c_location_exists
18855 INTO l_location_exists;
18856
18857 IF (c_location_exists%NOTFOUND)
18858 THEN
18859 fnd_message.set_name ('PN', 'PN_OTHERS_EXCEPTION');
18860 fnd_message.set_token ('ERR_MSG', 'Location do not exist for provided lease id');
18861 fnd_msg_pub.ADD;
18862 --RAISE fnd_api.g_exc_error;
18863
18864 END IF;
18865
18866 IF c_location_exists%ISOPEN
18867 THEN
18868 CLOSE c_location_exists;
18869 END IF;
18870
18871 -- Update associated lease status with 'S' if old,new approval statuses are'D','F' respectively, location exists and Approval work flow is enabled
18872 IF p_new_approval_status_code='F' AND l_approval_status_old='D' -- Location Exists
18873 AND l_location_exists='Y'
18874 THEN
18875
18876 --Initiate Approval Workflow if profile option value for 'PN: Use Lease Approval Workflow' is set to 'Y' else submit the standard concurrent request
18877 IF NVL(fnd_profile.VALUE ('PN_LEASE_APPROVAL_WORKFLOW'),'N') ='Y'
18878 THEN
18879
18880 --dbms_output.put_line('Updating status to Submitted');
18881 BEGIN
18882 UPDATE pn_leases_all
18883 SET status = l_submitted_status -- Holds the value of S'
18884 WHERE lease_id = p_lease_id
18885 AND org_id= g_org_id;
18886 COMMIT;
18887
18888 EXCEPTION
18889 WHEN OTHERS
18890 THEN
18891 pvt_debug ( 'Exception in updating lease approval status code '
18892 || g_pkg_name
18893 || g_program_unit
18894 || '-'
18895 || SQLERRM
18896 , 5);
18897 x_return_status := fnd_api.g_ret_sts_unexp_error;
18898 END;
18899
18900 -- Initiate Approval Workflow
18901 --dbms_output.put_line('Call Approval Workflow');
18902 pn_am_wf.call_lease_approval_wf( p_transaction_id => p_lease_id
18903 ,p_lease_id => p_lease_id
18904 );
18905
18906 ELSE
18907
18908 -- Update associated lease status with 'F' if old,new approval statuses are'D','F' respectively, location exists and Approval work flow is not enabled
18909 --dbms_output.put_line('Updating approval status to F');
18910 l_schedule_context := 'ABS';
18911
18912 BEGIN
18913 UPDATE pn_leases_all
18914 SET status = p_new_approval_status_code -- Will hold the value of 'F'
18915 WHERE lease_id = p_lease_id
18916 AND org_id= g_org_id;
18917
18918 COMMIT;
18919 EXCEPTION
18920 WHEN OTHERS
18921 THEN
18922 pvt_debug ( 'Exception in updating lease approval status code '
18923 || g_pkg_name
18924 || g_program_unit
18925 || '-'
18926 || SQLERRM
18927 , 5);
18928 x_return_status := fnd_api.g_ret_sts_unexp_error;
18929 END;
18930
18931 -- Submit the standard concurrent request to Schedule items
18932
18933 l_request_id := fnd_request.submit_request ('PN',
18934 'PNSCHITM',
18935 NULL,
18936 NULL,
18937 FALSE,
18938 p_lease_id ,l_schedule_context,'MAIN',
18939 NULL, NULL, 'N', fnd_date.date_to_canonical(l_lease_commencement_date),NULL,NULL,CHR(0), -- Bug 13462759
18940 '', '', '', '',
18941 '', '', '', '', '', '', '', '', '', '',
18942 '', '', '', '', '', '', '', '', '', '',
18943 '', '', '', '', '', '', '', '', '', '',
18944 '', '', '', '', '', '', '', '', '', '',
18945 '', '', '', '', '', '', '', '', '', '',
18946 '', '', '', '', '', '', '', '', '', '',
18947 '', '', '', '', '', '', '', '', '', '',
18948 '', '', '', '', '', '', '', '', '', '',
18949 '', '', '', '', '', ''
18950 );
18951 pvt_debug(g_pkg_name||'Request Id after calling fnd_request.submit_request: '||l_request_id,3);
18952
18953 IF (l_request_id = 0 ) THEN
18954 pn_lease_pvt.pvt_debug(g_pkg_name||'Submit Request Error. Request Id:'||l_request_id,3);
18955 fnd_message.set_name ('PN', 'PN_SUBSCHEDULES_ERR');
18956 fnd_message.set_token ('API_NAME', g_pkg_name||'.'||g_program_unit || '-SubmitSchedulesConcProgram');
18957 fnd_msg_pub.ADD;
18958 RAISE fnd_api.g_exc_error;
18959 END IF;
18960 END IF; --Initiate Approval Workflow
18961
18962 END IF;-- IF p_new_approval_status_code='F'
18963
18964
18965
18966 END IF; --x_return_status
18967
18968
18969
18970 EXCEPTION
18971 WHEN fnd_api.g_exc_error
18972 THEN
18973 pn_lease_pvt.pvt_debug ( 'Error occurred in '
18974 || g_pkg_name
18975 || g_program_unit
18976 || '-'
18977 || SQLERRM
18978 , 5);
18979 x_return_status := fnd_api.g_ret_sts_error;
18980
18981 WHEN OTHERS
18982 THEN
18983 pn_lease_pvt.pvt_debug ( 'Exception in '
18984 || g_pkg_name
18985 || g_program_unit
18986 || '-'
18987 || SQLERRM
18988 , 5);
18989 x_return_status := fnd_api.g_ret_sts_unexp_error;
18990
18991 END update_status;
18992
18993 END pn_lease_pvt;