DBA Data[Home] [Help]

PACKAGE BODY: APPS.PN_OPTIONS_PKG

Source


4 -- PROCDURE : Insert_Row
1 PACKAGE BODY pn_options_pkg AS
2 -- $Header: PNTOPTNB.pls 120.2 2005/12/01 08:25:59 appldev ship $
3 -------------------------------------------------------------------------------
5 -- HISTORY      :
6 -- 28-NOV-05  pikhar    o fetched org_id using cursor
7 -------------------------------------------------------------------------------
8 PROCEDURE Insert_Row (
9    X_ROWID                         IN OUT NOCOPY VARCHAR2,
10    X_OPTION_ID                     IN OUT NOCOPY NUMBER,
11    X_OPTION_NUM                    IN OUT NOCOPY VARCHAR2,
12    X_LEASE_ID                      IN     NUMBER,
13    X_LEASE_CHANGE_ID               IN     NUMBER,
14    X_OPTION_TYPE_CODE              IN     VARCHAR2,
15    X_START_DATE                    IN     DATE,
16    X_EXPIRATION_DATE               IN     DATE,
17    X_OPTION_SIZE                   IN     NUMBER,
18    X_UOM_CODE                      IN     VARCHAR2,
19    X_OPTION_STATUS_LOOKUP_CODE     IN     VARCHAR2,
20    X_ATTRIBUTE_CATEGORY            IN     VARCHAR2,
21    X_ATTRIBUTE1                    IN     VARCHAR2,
22    X_ATTRIBUTE2                    IN     VARCHAR2,
23    X_ATTRIBUTE3                    IN     VARCHAR2,
24    X_ATTRIBUTE4                    IN     VARCHAR2,
25    X_ATTRIBUTE5                    IN     VARCHAR2,
26    X_ATTRIBUTE6                    IN     VARCHAR2,
27    X_ATTRIBUTE7                    IN     VARCHAR2,
28    X_ATTRIBUTE8                    IN     VARCHAR2,
29    X_ATTRIBUTE9                    IN     VARCHAR2,
30    X_ATTRIBUTE10                   IN     VARCHAR2,
31    X_ATTRIBUTE11                   IN     VARCHAR2,
32    X_ATTRIBUTE12                   IN     VARCHAR2,
33    X_ATTRIBUTE13                   IN     VARCHAR2,
34    X_ATTRIBUTE14                   IN     VARCHAR2,
35    X_ATTRIBUTE15                   IN     VARCHAR2,
36    X_CREATION_DATE                 IN     DATE,
37    X_CREATED_BY                    IN     NUMBER,
38    X_LAST_UPDATE_DATE              IN     DATE,
39    X_LAST_UPDATED_BY               IN     NUMBER,
40    X_LAST_UPDATE_LOGIN             IN     NUMBER,
41    X_OPTION_EXER_START_DATE        IN     DATE,
42    X_OPTION_EXER_END_DATE          IN     DATE,
43    X_OPTION_ACTION_DATE            IN     DATE,
44    X_OPTION_COST                   IN     VARCHAR2,
45    X_OPTION_AREA_CHANGE            IN     NUMBER,
46    X_OPTION_REFERENCE              IN     VARCHAR2,
47    X_OPTION_NOTICE_REQD            IN     VARCHAR2,
48    X_OPTION_COMMENTS               IN     VARCHAR2,
49    x_org_id                        IN     NUMBER
50 )
51 IS
52 
53    CURSOR c IS
54     SELECT ROWID
55     FROM   pn_options_all
56     WHERE  option_id = x_option_id ;
57 
58    CURSOR org_cur IS
59     SELECT org_id
60     FROM   pn_leases_all
61     WHERE  lease_id = x_lease_id ;
62 
63    l_org_id NUMBER;
64 
65 BEGIN
66 
67    pnp_debug_pkg.debug ('PN_OPTIONS_PKG.INSERT_ROW (+)');
68 
69    -------------------------------------------------------
70    -- We need to generate the lease change number
71    -------------------------------------------------------
72    SELECT NVL(MAX(TO_NUMBER(pno.option_num)), 0)+1
73    INTO   x_option_num
74    FROM   pn_options_all        PNO
75    WHERE  pno.lease_id = x_lease_id;
76 
77    -------------------------------------------------------
78    -- SELECT the NEXTVAL for option id
79    -------------------------------------------------------
80 
81    IF x_org_id IS NULL THEN
82      FOR rec IN org_cur LOOP
83        l_org_id := rec.org_id;
84      END LOOP;
85    ELSE
86      l_org_id := x_org_id;
87    END IF;
88 
89    IF ( X_OPTION_ID IS NULL) THEN
90    SELECT pn_options_s.NEXTVAL
91    INTO   x_option_id
92    FROM   DUAL;
93    END IF;
94 
95    INSERT INTO pn_options_all
96    (
97       OPTION_ID,
98       LAST_UPDATE_DATE,
99       LAST_UPDATED_BY,
100       CREATION_DATE,
101       CREATED_BY,
102       LAST_UPDATE_LOGIN,
103       LEASE_ID,
104       LEASE_CHANGE_ID,
105       OPTION_NUM,
106       OPTION_TYPE_CODE,
107       START_DATE,
108       EXPIRATION_DATE,
109       OPTION_SIZE,
110       UOM_CODE,
111       OPTION_STATUS_LOOKUP_CODE,
112       ATTRIBUTE_CATEGORY,
113       ATTRIBUTE1,
114       ATTRIBUTE2,
115       ATTRIBUTE3,
116       ATTRIBUTE4,
117       ATTRIBUTE5,
118       ATTRIBUTE6,
119       ATTRIBUTE7,
120       ATTRIBUTE8,
121       ATTRIBUTE9,
122       ATTRIBUTE10,
123       ATTRIBUTE11,
124       ATTRIBUTE12,
125       ATTRIBUTE13,
126       ATTRIBUTE14,
127       ATTRIBUTE15,
128       OPTION_EXER_START_DATE,
129       OPTION_EXER_END_DATE,
130       OPTION_ACTION_DATE,
131       OPTION_COST,
132       OPTION_AREA_CHANGE,
133       OPTION_REFERENCE,
134       OPTION_NOTICE_REQD,
135       OPTION_COMMENTS,
139    (
136       org_id
137    )
138    VALUES
140       X_OPTION_ID,
141       X_LAST_UPDATE_DATE,
142       X_LAST_UPDATED_BY,
143       X_CREATION_DATE,
144       X_CREATED_BY,
145       X_LAST_UPDATE_LOGIN,
146       X_LEASE_ID,
147       X_LEASE_CHANGE_ID,
148       X_OPTION_NUM,
149       X_OPTION_TYPE_CODE,
150       X_START_DATE,
151       X_EXPIRATION_DATE,
152       X_OPTION_SIZE,
153       X_UOM_CODE,
154       X_OPTION_STATUS_LOOKUP_CODE,
155       X_ATTRIBUTE_CATEGORY,
156       X_ATTRIBUTE1,
157       X_ATTRIBUTE2,
158       X_ATTRIBUTE3,
159       X_ATTRIBUTE4,
160       X_ATTRIBUTE5,
161       X_ATTRIBUTE6,
162       X_ATTRIBUTE7,
163       X_ATTRIBUTE8,
164       X_ATTRIBUTE9,
165       X_ATTRIBUTE10,
166       X_ATTRIBUTE11,
167       X_ATTRIBUTE12,
168       X_ATTRIBUTE13,
169       X_ATTRIBUTE14,
170       X_ATTRIBUTE15,
171       X_OPTION_EXER_START_DATE,
172       X_OPTION_EXER_END_DATE,
173       X_OPTION_ACTION_DATE,
174       X_OPTION_COST,
175       X_OPTION_AREA_CHANGE,
176       X_OPTION_REFERENCE,
177       X_OPTION_NOTICE_REQD,
178       X_OPTION_COMMENTS,
179       l_org_id
180    );
181 
182    OPEN c;
183       FETCH c INTO X_ROWID;
184       IF (c%NOTFOUND) THEN
185          CLOSE c;
186          RAISE NO_DATA_FOUND;
187       END IF;
188    CLOSE c;
189 
190    pnp_debug_pkg.debug ('PN_OPTIONS_PKG.INSERT_ROW (-)');
191 
192 END Insert_Row;
193 
194 -------------------------------------------------------------------------------
195 -- PROCDURE     : Lock_Row
196 -- INVOKED FROM : Lock_Row procedure
197 -- PURPOSE      : locks the row
198 -- HISTORY      :
199 -- 05-JUL-05  sdmahesh o Bug 4284035 - Replaced pn_options with _ALL table.
200 -------------------------------------------------------------------------------
201 PROCEDURE Lock_Row (
202    X_OPTION_ID                     IN     NUMBER,
203    X_LEASE_ID                      IN     NUMBER,
204    X_LEASE_CHANGE_ID               IN     NUMBER,
205    X_OPTION_NUM                    IN     VARCHAR2,
206    X_OPTION_TYPE_CODE              IN     VARCHAR2,
207    X_START_DATE                    IN     DATE,
208    X_EXPIRATION_DATE               IN     DATE,
209    X_OPTION_SIZE                   IN     NUMBER,
210    X_UOM_CODE                      IN     VARCHAR2,
211    X_OPTION_STATUS_LOOKUP_CODE     IN     VARCHAR2,
212    X_ATTRIBUTE_CATEGORY            IN     VARCHAR2,
213    X_ATTRIBUTE1                    IN     VARCHAR2,
214    X_ATTRIBUTE2                    IN     VARCHAR2,
215    X_ATTRIBUTE3                    IN     VARCHAR2,
216    X_ATTRIBUTE4                    IN     VARCHAR2,
217    X_ATTRIBUTE5                    IN     VARCHAR2,
218    X_ATTRIBUTE6                    IN     VARCHAR2,
219    X_ATTRIBUTE7                    IN     VARCHAR2,
220    X_ATTRIBUTE8                    IN     VARCHAR2,
221    X_ATTRIBUTE9                    IN     VARCHAR2,
222    X_ATTRIBUTE10                   IN     VARCHAR2,
223    X_ATTRIBUTE11                   IN     VARCHAR2,
224    X_ATTRIBUTE12                   IN     VARCHAR2,
225    X_ATTRIBUTE13                   IN     VARCHAR2,
226    X_ATTRIBUTE14                   IN     VARCHAR2,
227    X_ATTRIBUTE15                   IN     VARCHAR2,
228    X_OPTION_EXER_START_DATE        IN     DATE,
229    X_OPTION_EXER_END_DATE          IN     DATE,
230    X_OPTION_ACTION_DATE            IN     DATE,
231    X_OPTION_COST                   IN     VARCHAR2,
232    X_OPTION_AREA_CHANGE            IN     NUMBER,
233    X_OPTION_REFERENCE              IN     VARCHAR2,
234    X_OPTION_NOTICE_REQD            IN     VARCHAR2,
235    X_OPTION_COMMENTS               IN     VARCHAR2
236 )
237 IS
238    CURSOR c1 IS
239       SELECT *
240       FROM   pn_options_all
241       WHERE  option_id = x_option_id
242       FOR UPDATE OF option_id NOWAIT;
243 
244    tlinfo c1%ROWTYPE;
245 
246 BEGIN
247 
248    pnp_debug_pkg.debug ('PN_OPTIONS_PKG.LOCK_ROW (+)');
249 
250    OPEN c1;
251       FETCH c1 INTO tlinfo;
252       IF (c1%NOTFOUND) THEN
253          CLOSE c1;
254          RETURN;
255       END IF;
256    CLOSE c1;
257 
258    IF NOT (tlinfo.OPTION_ID = X_OPTION_ID) THEN
259       pn_var_rent_pkg.lock_row_exception('OPTION_ID',tlinfo.OPTION_ID);
260    END IF;
261 
262    IF NOT (tlinfo.LEASE_ID = X_LEASE_ID) THEN
263       pn_var_rent_pkg.lock_row_exception('LEASE_ID',tlinfo.LEASE_ID);
264    END IF;
265 
266    IF NOT (tlinfo.LEASE_CHANGE_ID = X_LEASE_CHANGE_ID) THEN
267       pn_var_rent_pkg.lock_row_exception('LEASE_CHANGE_ID',tlinfo.LEASE_CHANGE_ID);
268    END IF;
269 
270    IF NOT (tlinfo.OPTION_NUM = X_OPTION_NUM) THEN
271       pn_var_rent_pkg.lock_row_exception('OPTION_NUM',tlinfo.OPTION_NUM);
272    END IF;
273 
274    IF NOT (tlinfo.OPTION_TYPE_CODE = X_OPTION_TYPE_CODE) THEN
275       pn_var_rent_pkg.lock_row_exception('OPTION_TYPE_CODE',tlinfo.OPTION_TYPE_CODE);
276    END IF;
277 
278    IF NOT ((tlinfo.START_DATE = X_START_DATE)
279        OR ((tlinfo.START_DATE IS NULL) AND (X_START_DATE IS NULL))) THEN
280       pn_var_rent_pkg.lock_row_exception('START_DATE',tlinfo.START_DATE);
281    END IF;
282 
283    IF NOT ((tlinfo.EXPIRATION_DATE = X_EXPIRATION_DATE)
284        OR ((tlinfo.EXPIRATION_DATE IS NULL) AND (X_EXPIRATION_DATE IS NULL))) THEN
285       pn_var_rent_pkg.lock_row_exception('EXPIRATION_DATE',tlinfo.EXPIRATION_DATE);
286    END IF;
287 
288    IF NOT ((tlinfo.OPTION_SIZE = X_OPTION_SIZE)
289        OR ((tlinfo.OPTION_SIZE IS NULL) AND (X_OPTION_SIZE IS NULL))) THEN
290       pn_var_rent_pkg.lock_row_exception('OPTION_SIZE',tlinfo.OPTION_SIZE);
291    END IF;
292 
293    IF NOT ((tlinfo.UOM_CODE = X_UOM_CODE)
294        OR ((tlinfo.UOM_CODE IS NULL) AND (X_UOM_CODE IS NULL))) THEN
295       pn_var_rent_pkg.lock_row_exception('UOM_CODE',tlinfo.UOM_CODE);
296    END IF;
297 
298    IF NOT ((tlinfo.OPTION_STATUS_LOOKUP_CODE = X_OPTION_STATUS_LOOKUP_CODE)
299        OR ((tlinfo.OPTION_STATUS_LOOKUP_CODE IS NULL) AND (X_OPTION_STATUS_LOOKUP_CODE IS NULL))) THEN
300       pn_var_rent_pkg.lock_row_exception('OPTION_STATUS_LOOKUP_CODE',tlinfo.OPTION_STATUS_LOOKUP_CODE);
301    END IF;
302 
303    IF NOT ((tlinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
304        OR ((tlinfo.ATTRIBUTE_CATEGORY IS NULL) AND (X_ATTRIBUTE_CATEGORY IS NULL))) THEN
305       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE_CATEGORY',tlinfo.ATTRIBUTE_CATEGORY);
306    END IF;
307 
308    IF NOT ((tlinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
309        OR ((tlinfo.ATTRIBUTE1 IS NULL) AND (X_ATTRIBUTE1 IS NULL))) THEN
310       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE1',tlinfo.ATTRIBUTE1);
311    END IF;
312 
313    IF NOT ((tlinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
314        OR ((tlinfo.ATTRIBUTE2 IS NULL) AND (X_ATTRIBUTE2 IS NULL))) THEN
315       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE2',tlinfo.ATTRIBUTE2);
316    END IF;
317 
318    IF NOT ((tlinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
319        OR ((tlinfo.ATTRIBUTE3 IS NULL) AND (X_ATTRIBUTE3 IS NULL))) THEN
320       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE3',tlinfo.ATTRIBUTE3);
321    END IF;
322 
323    IF NOT ((tlinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
324        OR ((tlinfo.ATTRIBUTE4 IS NULL) AND (X_ATTRIBUTE4 IS NULL))) THEN
325       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE4',tlinfo.ATTRIBUTE4);
326    END IF;
327 
328    IF NOT ((tlinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
329        OR ((tlinfo.ATTRIBUTE5 IS NULL) AND (X_ATTRIBUTE5 IS NULL))) THEN
330       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE5',tlinfo.ATTRIBUTE5);
331    END IF;
332 
333    IF NOT ((tlinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
334        OR ((tlinfo.ATTRIBUTE6 IS NULL) AND (X_ATTRIBUTE6 IS NULL))) THEN
335       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE6',tlinfo.ATTRIBUTE6);
336    END IF;
337 
338    IF NOT ((tlinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
339        OR ((tlinfo.ATTRIBUTE7 IS NULL) AND (X_ATTRIBUTE7 IS NULL))) THEN
340       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE7',tlinfo.ATTRIBUTE7);
341    END IF;
342 
343    IF NOT ((tlinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
344        OR ((tlinfo.ATTRIBUTE8 IS NULL) AND (X_ATTRIBUTE8 IS NULL))) THEN
345       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE8',tlinfo.ATTRIBUTE8);
346    END IF;
347 
348    IF NOT ((tlinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
349        OR ((tlinfo.ATTRIBUTE9 IS NULL) AND (X_ATTRIBUTE9 IS NULL))) THEN
350       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE9',tlinfo.ATTRIBUTE9);
351    END IF;
352 
353    IF NOT ((tlinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
354        OR ((tlinfo.ATTRIBUTE10 IS NULL) AND (X_ATTRIBUTE10 IS NULL))) THEN
355       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE10',tlinfo.ATTRIBUTE10);
356    END IF;
357 
358    IF NOT ((tlinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
359        OR ((tlinfo.ATTRIBUTE11 IS NULL) AND (X_ATTRIBUTE11 IS NULL))) THEN
360       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE11',tlinfo.ATTRIBUTE11);
361    END IF;
362 
363    IF NOT ((tlinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
364        OR ((tlinfo.ATTRIBUTE12 IS NULL) AND (X_ATTRIBUTE12 IS NULL))) THEN
365       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE12',tlinfo.ATTRIBUTE12);
366    END IF;
367 
368    IF NOT ((tlinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
369        OR ((tlinfo.ATTRIBUTE13 IS NULL) AND (X_ATTRIBUTE13 IS NULL))) THEN
370       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE13',tlinfo.ATTRIBUTE13);
371    END IF;
372 
373    IF NOT ((tlinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
374        OR ((tlinfo.ATTRIBUTE14 IS NULL) AND (X_ATTRIBUTE14 IS NULL))) THEN
375       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE14',tlinfo.ATTRIBUTE14);
376    END IF;
377 
378    IF NOT ((tlinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
379        OR ((tlinfo.ATTRIBUTE15 IS NULL) AND (X_ATTRIBUTE15 IS NULL))) THEN
380       pn_var_rent_pkg.lock_row_exception('ATTRIBUTE15',tlinfo.ATTRIBUTE15);
381    END IF;
382 
383    IF NOT ((tlinfo.OPTION_EXER_START_DATE = X_OPTION_EXER_START_DATE)
384        OR ((tlinfo.OPTION_EXER_START_DATE IS NULL) AND (X_OPTION_EXER_START_DATE IS NULL))) THEN
385       pn_var_rent_pkg.lock_row_exception('OPTION_EXER_START_DATE',tlinfo.OPTION_EXER_START_DATE);
386    END IF;
390       pn_var_rent_pkg.lock_row_exception('OPTION_EXER_END_DATE',tlinfo.OPTION_EXER_END_DATE);
387 
388    IF NOT ((tlinfo.OPTION_EXER_END_DATE = X_OPTION_EXER_END_DATE)
389        OR ((tlinfo.OPTION_EXER_END_DATE IS NULL) AND (X_OPTION_EXER_END_DATE IS NULL))) THEN
391    END IF;
392 
393    IF NOT ((tlinfo.OPTION_ACTION_DATE = X_OPTION_ACTION_DATE)
394        OR ((tlinfo.OPTION_ACTION_DATE IS NULL) AND (X_OPTION_ACTION_DATE IS NULL))) THEN
395       pn_var_rent_pkg.lock_row_exception('OPTION_ACTION_DATE',tlinfo.OPTION_ACTION_DATE);
396    END IF;
397 
398    IF NOT ((tlinfo.OPTION_COST = X_OPTION_COST)
399        OR ((tlinfo.OPTION_COST IS NULL) AND (X_OPTION_COST IS NULL))) THEN
400       pn_var_rent_pkg.lock_row_exception('OPTION_COST',tlinfo.OPTION_COST);
401    END IF;
402 
403    IF NOT ((tlinfo.OPTION_AREA_CHANGE = X_OPTION_AREA_CHANGE)
404        OR ((tlinfo.OPTION_AREA_CHANGE IS NULL) AND (X_OPTION_AREA_CHANGE IS NULL))) THEN
405       pn_var_rent_pkg.lock_row_exception('OPTION_AREA_CHANGE',tlinfo.OPTION_AREA_CHANGE);
406    END IF;
407 
408    IF NOT ((tlinfo.OPTION_REFERENCE = X_OPTION_REFERENCE)
409        OR ((tlinfo.OPTION_REFERENCE IS NULL) AND (X_OPTION_REFERENCE IS NULL))) THEN
410       pn_var_rent_pkg.lock_row_exception('OPTION_REFERENCE',tlinfo.OPTION_REFERENCE);
411    END IF;
412 
413    IF NOT ((tlinfo.OPTION_NOTICE_REQD = X_OPTION_NOTICE_REQD)
414        OR ((tlinfo.OPTION_NOTICE_REQD IS NULL) AND (X_OPTION_NOTICE_REQD IS NULL))) THEN
415       pn_var_rent_pkg.lock_row_exception('OPTION_NOTICE_REQD',tlinfo.OPTION_NOTICE_REQD);
416    END IF;
417 
418    IF NOT ((tlinfo.OPTION_COMMENTS = X_OPTION_COMMENTS)
419        OR ((tlinfo.OPTION_COMMENTS IS NULL) AND (X_OPTION_COMMENTS IS NULL))) THEN
420       pn_var_rent_pkg.lock_row_exception('OPTION_COMMENTS',tlinfo.OPTION_COMMENTS);
421    END IF;
422 
423    pnp_debug_pkg.debug ('PN_OPTIONS_PKG.LOCK_ROW (-)');
424 
425 END Lock_Row;
426 
427 -------------------------------------------------------------------------------
428 -- PROCDURE     : Update_Row
429 -- INVOKED FROM : Update_Row procedure
430 -- PURPOSE      : updates the row
431 -- HISTORY      :
432 -- 05-JUL-05  sdmahesh o Bug 4284035 - Replaced pn_options with _ALL table.
433 -------------------------------------------------------------------------------
434 PROCEDURE Update_Row (
435    X_OPTION_ID                     IN     NUMBER,
436    X_LEASE_ID                      IN     NUMBER,
437    X_LEASE_CHANGE_ID               IN     NUMBER,
438    X_OPTION_NUM                    IN     VARCHAR2,
439    X_OPTION_TYPE_CODE              IN     VARCHAR2,
440    X_START_DATE                    IN     DATE,
441    X_EXPIRATION_DATE               IN     DATE,
442    X_OPTION_SIZE                   IN     NUMBER,
443    X_UOM_CODE                      IN     VARCHAR2,
444    X_OPTION_STATUS_LOOKUP_CODE     IN     VARCHAR2,
445    X_ATTRIBUTE_CATEGORY            IN     VARCHAR2,
446    X_ATTRIBUTE1                    IN     VARCHAR2,
447    X_ATTRIBUTE2                    IN     VARCHAR2,
448    X_ATTRIBUTE3                    IN     VARCHAR2,
449    X_ATTRIBUTE4                    IN     VARCHAR2,
450    X_ATTRIBUTE5                    IN     VARCHAR2,
451    X_ATTRIBUTE6                    IN     VARCHAR2,
452    X_ATTRIBUTE7                    IN     VARCHAR2,
453    X_ATTRIBUTE8                    IN     VARCHAR2,
454    X_ATTRIBUTE9                    IN     VARCHAR2,
455    X_ATTRIBUTE10                   IN     VARCHAR2,
456    X_ATTRIBUTE11                   IN     VARCHAR2,
457    X_ATTRIBUTE12                   IN     VARCHAR2,
458    X_ATTRIBUTE13                   IN     VARCHAR2,
459    X_ATTRIBUTE14                   IN     VARCHAR2,
460    X_ATTRIBUTE15                   IN     VARCHAR2,
461    X_LAST_UPDATE_DATE              IN     DATE,
462    X_LAST_UPDATED_BY               IN     NUMBER,
463    X_LAST_UPDATE_LOGIN             IN     NUMBER,
464    X_OPTION_EXER_START_DATE        IN     DATE,
465    X_OPTION_EXER_END_DATE          IN     DATE,
466    X_OPTION_ACTION_DATE            IN     DATE,
467    X_OPTION_COST                   IN     VARCHAR2,
468    X_OPTION_AREA_CHANGE            IN     NUMBER,
469    X_OPTION_REFERENCE              IN     VARCHAR2,
470    X_OPTION_NOTICE_REQD            IN     VARCHAR2,
471    X_OPTION_COMMENTS               IN     VARCHAR2
472 )
473 IS
474 
475    CURSOR c2 IS
476       SELECT *
477       FROM   pn_options_all
478       WHERE  option_id = x_option_id;
479 
480    recInfoForHist                  c2%ROWTYPE;
481    l_optionHistoryId               NUMBER          := NULL;
482    l_leaseStatus                   VARCHAR2(30)    := NULL;
483 
484 BEGIN
485    pnp_debug_pkg.debug ('PN_OPTIONS_PKG.UPDATE_ROW (+)');
486 
487    ----------------------------------------------------
488    -- get the lease status
489    ----------------------------------------------------
490    l_leaseStatus := PNP_UTIL_FUNC.GET_LEASE_STATUS (X_LEASE_ID);
491 
492    ---------------------------------------------------------------
493    -- We need to INSERT the history row IF the lease IS finalised
494    ---------------------------------------------------------------
495    IF (l_leaseStatus = 'F')  THEN
496 
497       OPEN c2;
498          FETCH c2 INTO recInfoForHist;
499          IF (c2%NOTFOUND) THEN
500             CLOSE c2;
501             RAISE NO_DATA_FOUND;
502          END IF;
503       CLOSE c2;
504 
505       IF (recInfoForHist.LEASE_CHANGE_ID <> X_LEASE_CHANGE_ID) THEN
506 
507          SELECT pn_options_history_s.NEXTVAL
508          INTO   l_optionHistoryId
509          FROM   DUAL;
510 
511          INSERT INTO pn_options_history
512          (
513             option_history_id,
514             option_id,
515             last_update_date,
516             last_updated_by,
517             creation_date,
518             created_by,
519             last_update_login,
520             lease_id,
521             lease_change_id,
522             new_lease_change_id,
523             option_num,
524             option_type_code,
525             start_date,
526             expiration_date,
527             option_size,
528             uom_code,
529             option_status_lookup_code,
530             attribute_category,
531             attribute1,
532             attribute2,
533             attribute3,
534             attribute4,
535             attribute5,
536             attribute6,
537             attribute7,
538             attribute8,
539             attribute9,
540             attribute10,
541             attribute11,
542             attribute12,
543             attribute13,
544             attribute14,
545             attribute15,
546             option_exer_start_date,
547             option_exer_end_date,
548             option_action_date,
549             option_cost,
550             option_area_change,
551             option_reference,
552             option_notice_reqd,
553             option_comments
554          )
555          VALUES
556          (
557             l_optionHistoryId,
558             recInfoForHist.option_id,
559             recInfoForHist.last_update_date,
560             recInfoForHist.last_updated_by,
561             recInfoForHist.creation_date,
562             recInfoForHist.created_by,
563             recInfoForHist.last_update_login,
564             recInfoForHist.lease_id,
565             recInfoForHist.lease_change_id,
566             x_lease_change_id,
567             recInfoForHist.option_num,
568             recInfoForHist.option_type_code,
569             recInfoForHist.start_date,
570             recInfoForHist.expiration_date,
571             recInfoForHist.option_size,
572             recInfoForHist.uom_code,
573             recInfoForHist.option_status_lookup_code,
574             recInfoForHist.attribute_category,
575             recInfoForHist.attribute1,
576             recInfoForHist.attribute2,
577             recInfoForHist.attribute3,
578             recInfoForHist.attribute4,
579             recInfoForHist.attribute5,
580             recInfoForHist.attribute6,
581             recInfoForHist.attribute7,
582             recInfoForHist.attribute8,
583             recInfoForHist.attribute9,
584             recInfoForHist.attribute10,
585             recInfoForHist.attribute11,
586             recInfoForHist.attribute12,
587             recInfoForHist.attribute13,
588             recInfoForHist.attribute14,
589             recInfoForHist.attribute15,
590             recInfoForHist.option_exer_start_date,
591             recInfoForHist.option_exer_end_date,
592             recInfoForHist.option_action_date,
593             recInfoForHist.option_cost,
594             recInfoForHist.option_area_change,
595             recInfoForHist.option_reference,
596             recInfoForHist.option_notice_reqd,
597             recInfoForHist.option_comments
598          );
599       END IF;
600    END IF;
601 
602    UPDATE pn_options_all
603    SET    lease_id                        = x_lease_id,
604           lease_change_id                 = x_lease_change_id,
605           option_num                      = x_option_num,
606           option_type_code                = x_option_type_code,
607           start_date                      = x_start_date,
608           expiration_date                 = x_expiration_date,
609           option_size                     = x_option_size,
610           uom_code                        = x_uom_code,
611           option_status_lookup_code       = x_option_status_lookup_code,
612           attribute_category              = x_attribute_category,
613           attribute1                      = x_attribute1,
614           attribute2                      = x_attribute2,
615           attribute3                      = x_attribute3,
616           attribute4                      = x_attribute4,
617           attribute5                      = x_attribute5,
618           attribute6                      = x_attribute6,
619           attribute7                      = x_attribute7,
620           attribute8                      = x_attribute8,
621           attribute9                      = x_attribute9,
622           attribute10                     = x_attribute10,
623           attribute11                     = x_attribute11,
624           attribute12                     = x_attribute12,
625           attribute13                     = x_attribute13,
626           attribute14                     = x_attribute14,
627           attribute15                     = x_attribute15,
628           option_id                       = x_option_id,
629           last_update_date                = x_last_update_date,
630           last_updated_by                 = x_last_updated_by,
631           last_update_login               = x_last_update_login,
632           option_exer_start_date          = x_option_exer_start_date,
633           option_exer_end_date            = x_option_exer_end_date,
634           option_action_date              = x_option_action_date,
635           option_cost                     = x_option_cost,
636           option_area_change              = x_option_area_change,
637           option_reference                = x_option_reference,
638           option_notice_reqd              = x_option_notice_reqd,
639           option_comments                 = x_option_comments
640    WHERE  option_id                       = x_option_id ;
641 
642    IF (SQL%NOTFOUND) THEN
643       RAISE NO_DATA_FOUND;
644    END IF;
645 
646    pnp_debug_pkg.debug ('PN_OPTIONS_PKG.UPDATE_ROW (-)');
647 
648 END Update_Row;
649 
650 -------------------------------------------------------------------------------
651 -- PROCDURE     : Delete_Row
652 -- INVOKED FROM : Delete_Row procedure
653 -- PURPOSE      : deletes the row
654 -- HISTORY      :
655 -- 05-JUL-05  sdmahesh o Bug 4284035 - Replaced pn_options with _ALL table.
656 -------------------------------------------------------------------------------
657 PROCEDURE Delete_Row
658 (
659    x_option_id  IN     NUMBER
660 )
661 IS
662 BEGIN
663 
664    pnp_debug_pkg.debug ('PN_OPTIONS_PKG.DELETE_ROW (+)');
665 
666    DELETE FROM pn_options_all
667    WHERE option_id = x_option_id;
668 
669    IF (SQL%NOTFOUND) THEN
670       RAISE NO_DATA_FOUND;
671    END IF;
672 
673    pnp_debug_pkg.debug ('PN_OPTIONS_PKG.DELETE_ROW (-)');
674 
675 END Delete_Row;
676 
677 END pn_options_pkg;