[Home] [Help]
PACKAGE BODY: APPS.PN_VAR_VOL_HIST_PKG
Source
1 package body PN_VAR_VOL_HIST_PKG as
2 /* $Header: PNVRHISB.pls 120.2 2006/12/20 07:28:41 rdonthul noship $ */
3
4 -------------------------------------------------------------------------------
5 -- PROCDURE : INSERT_ROW
6 -- INVOKED FROM : insert_row procedure
7 -- PURPOSE : inserts the row
8 -- HISTORY :
9 -- 04-JUL-05 piagrawa o Bug 4284035 - Replaced PN_VAR_VOL_HIST with _ALL table.
10 -------------------------------------------------------------------------------
11 procedure INSERT_ROW (
12 X_ROWID IN out NOCOPY VARCHAR2,
13 X_VOL_HIST_ID IN out NOCOPY NUMBER,
14 X_VOL_HIST_NUM IN out NOCOPY NUMBER,
15 X_LINE_ITEM_ID IN NUMBER,
16 X_PERIOD_ID IN NUMBER,
17 X_START_DATE IN DATE,
18 X_END_DATE IN DATE,
19 X_GRP_DATE_ID IN NUMBER,
20 X_GROUP_DATE IN DATE,
21 X_REPORTING_DATE IN DATE,
22 X_DUE_DATE IN DATE,
23 X_INVOICING_DATE IN DATE,
24 X_ACTUAL_GL_ACCOUNT_ID IN NUMBER,
25 X_ACTUAL_AMOUNT IN NUMBER,
26 X_DAILY_ACTUAL_AMOUNT in NUMBER,
27 X_VOL_HIST_STATUS_CODE IN VARCHAR2,
28 X_REPORT_TYPE_CODE IN VARCHAR2,
29 X_CERTIFIED_BY IN NUMBER,
30 X_ACTUAL_EXP_CODE IN VARCHAR2,
31 X_FOR_GL_ACCOUNT_ID IN NUMBER,
32 X_FORECASTED_AMOUNT IN NUMBER,
33 X_FORECASTED_EXP_CODE IN VARCHAR2,
34 X_VARIANCE_EXP_CODE IN VARCHAR2,
35 X_COMMENTS IN VARCHAR2,
36 X_ATTRIBUTE_CATEGORY IN VARCHAR2,
37 X_ATTRIBUTE1 IN VARCHAR2,
38 X_ATTRIBUTE2 IN VARCHAR2,
39 X_ATTRIBUTE3 IN VARCHAR2,
40 X_ATTRIBUTE4 IN VARCHAR2,
41 X_ATTRIBUTE5 IN VARCHAR2,
42 X_ATTRIBUTE6 IN VARCHAR2,
43 X_ATTRIBUTE7 IN VARCHAR2,
44 X_ATTRIBUTE8 IN VARCHAR2,
45 X_ATTRIBUTE9 IN VARCHAR2,
46 X_ATTRIBUTE10 IN VARCHAR2,
47 X_ATTRIBUTE11 IN VARCHAR2,
48 X_ATTRIBUTE12 IN VARCHAR2,
49 X_ATTRIBUTE13 IN VARCHAR2,
50 X_ATTRIBUTE14 IN VARCHAR2,
51 X_ATTRIBUTE15 IN VARCHAR2,
52 X_ORG_ID IN NUMBER,
53 X_CREATION_DATE IN DATE,
54 X_CREATED_BY IN NUMBER,
55 X_LAST_UPDATE_DATE IN DATE,
56 X_LAST_UPDATED_BY IN NUMBER,
57 X_LAST_UPDATE_LOGIN IN NUMBER
58 )
59 IS
60 CURSOR C IS
61 SELECT ROWID
62 FROM PN_VAR_VOL_HIST_ALL
63 WHERE VOL_HIST_ID = X_VOL_HIST_ID;
64
65 l_return_daily_amount NUMBER := 0;
66
67 BEGIN
68
69 PNP_DEBUG_PKG.debug ('PN_VAR_VOL_HIST_PKG.INSERT_ROW (+)');
70
71 -------------------------------------------------------
72 -- We need to generate the volume history number
73 -------------------------------------------------------
74 SELECT nvl(max(hist.VOL_HIST_NUM),0)
75 INTO X_VOL_HIST_NUM
76 FROM PN_VAR_VOL_HIST_ALL hist
77 WHERE hist.LINE_ITEM_ID = X_LINE_ITEM_ID;
78
79 X_VOL_HIST_NUM := X_VOL_HIST_NUM + 1;
80
81 -------------------------------------------------------
82 -- Select the nextval for volume history id
83 -------------------------------------------------------
84 IF ( X_VOL_HIST_ID IS NULL) THEN
85 SELECT pn_var_vol_hist_s.nextval
86 INTO X_VOL_HIST_ID
87 FROM dual;
88 END IF;
89
90 -------------------------------------------------------
91 -- Calculate daily amount for change calendar function
92 ------------------------------------------------------
93 PN_VAR_VOL_HIST_PKG.CALCULATE_DAILY_AMOUNT( l_return_daily_amount,
94 X_ACTUAL_AMOUNT,
95 X_START_DATE,
96 X_END_DATE
97 );
98
99 INSERT INTO PN_VAR_VOL_HIST_ALL
100 (
101 VOL_HIST_ID,
102 VOL_HIST_NUM,
103 LAST_UPDATE_DATE,
104 LAST_UPDATED_BY,
105 CREATION_DATE,
106 CREATED_BY,
107 LAST_UPDATE_LOGIN,
108 LINE_ITEM_ID,
109 PERIOD_ID,
110 START_DATE,
111 END_DATE,
112 GRP_DATE_ID,
113 GROUP_DATE,
114 REPORTING_DATE,
115 DUE_DATE,
116 INVOICING_DATE,
117 ACTUAL_GL_ACCOUNT_ID,
118 ACTUAL_AMOUNT,
119 DAILY_ACTUAL_AMOUNT,
120 VOL_HIST_STATUS_CODE,
121 REPORT_TYPE_CODE,
122 CERTIFIED_BY,
123 ACTUAL_EXP_CODE,
124 FOR_GL_ACCOUNT_ID,
125 FORECASTED_AMOUNT,
126 FORECASTED_EXP_CODE,
127 VARIANCE_EXP_CODE,
128 COMMENTS,
129 ATTRIBUTE_CATEGORY,
130 ATTRIBUTE1,
131 ATTRIBUTE2,
132 ATTRIBUTE3,
133 ATTRIBUTE4,
134 ATTRIBUTE5,
135 ATTRIBUTE6,
136 ATTRIBUTE7,
137 ATTRIBUTE8,
138 ATTRIBUTE9,
139 ATTRIBUTE10,
140 ATTRIBUTE11,
141 ATTRIBUTE12,
142 ATTRIBUTE13,
143 ATTRIBUTE14,
144 ATTRIBUTE15,
145 ORG_ID
146 )
147 VALUES
148 (
149 X_VOL_HIST_ID,
150 X_VOL_HIST_NUM,
151 X_LAST_UPDATE_DATE,
152 X_LAST_UPDATED_BY,
153 X_CREATION_DATE,
154 X_CREATED_BY,
155 X_LAST_UPDATE_LOGIN,
156 X_LINE_ITEM_ID,
157 X_PERIOD_ID,
158 X_START_DATE,
159 X_END_DATE,
160 X_GRP_DATE_ID,
161 X_GROUP_DATE,
162 X_REPORTING_DATE,
163 X_DUE_DATE,
164 X_INVOICING_DATE,
165 X_ACTUAL_GL_ACCOUNT_ID,
166 X_ACTUAL_AMOUNT,
167 l_return_daily_amount,
168 X_VOL_HIST_STATUS_CODE,
169 X_REPORT_TYPE_CODE,
170 X_CERTIFIED_BY,
171 X_ACTUAL_EXP_CODE,
172 X_FOR_GL_ACCOUNT_ID,
173 X_FORECASTED_AMOUNT,
174 X_FORECASTED_EXP_CODE,
175 X_VARIANCE_EXP_CODE,
176 X_COMMENTS,
177 X_ATTRIBUTE_CATEGORY,
178 X_ATTRIBUTE1,
179 X_ATTRIBUTE2,
180 X_ATTRIBUTE3,
181 X_ATTRIBUTE4,
182 X_ATTRIBUTE5,
183 X_ATTRIBUTE6,
184 X_ATTRIBUTE7,
185 X_ATTRIBUTE8,
186 X_ATTRIBUTE9,
187 X_ATTRIBUTE10,
188 X_ATTRIBUTE11,
189 X_ATTRIBUTE12,
190 X_ATTRIBUTE13,
191 X_ATTRIBUTE14,
192 X_ATTRIBUTE15,
193 X_ORG_ID
194 ) ;
195
196 OPEN c;
197 FETCH c INTO X_ROWID;
198 IF (c%notfound) THEN
199 CLOSE c;
200 RAISE NO_DATA_FOUND;
201 END IF;
202 CLOSE c;
203
204 UPDATE pn_var_lines_all
205 SET sales_vol_update_flag = 'Y'
206 WHERE line_item_id = x_line_item_id;
207
208 PNP_DEBUG_PKG.debug ('PN_VAR_VOL_HIST_PKG.INSERT_ROW (-)');
209
210 END INSERT_ROW;
211
212 -------------------------------------------------------------------------------
213 -- PROCDURE : LOCK_ROW
214 -- INVOKED FROM : LOCK_ROW procedure
215 -- PURPOSE : locks the row
216 -- HISTORY :
217 -- 04-JUL-05 piagrawa o Bug 4284035 - Replaced PN_VAR_VOL_HIST with _ALL table.
218 -------------------------------------------------------------------------------
219 procedure LOCK_ROW (
220 X_VOL_HIST_ID IN NUMBER,
221 X_VOL_HIST_NUM IN NUMBER,
222 X_LINE_ITEM_ID IN NUMBER,
223 X_PERIOD_ID IN NUMBER,
224 X_START_DATE IN DATE,
225 X_END_DATE IN DATE,
226 X_GRP_DATE_ID IN NUMBER,
227 X_GROUP_DATE IN DATE,
228 X_REPORTING_DATE IN DATE,
229 X_DUE_DATE IN DATE,
230 X_INVOICING_DATE IN DATE,
231 X_ACTUAL_GL_ACCOUNT_ID IN NUMBER,
232 X_ACTUAL_AMOUNT IN NUMBER,
233 X_VOL_HIST_STATUS_CODE IN VARCHAR2,
234 X_REPORT_TYPE_CODE IN VARCHAR2,
235 X_CERTIFIED_BY IN NUMBER,
236 X_ACTUAL_EXP_CODE IN VARCHAR2,
237 X_FOR_GL_ACCOUNT_ID IN NUMBER,
238 X_FORECASTED_AMOUNT IN NUMBER,
239 X_FORECASTED_EXP_CODE IN VARCHAR2,
240 X_VARIANCE_EXP_CODE IN VARCHAR2,
241 X_COMMENTS IN VARCHAR2,
242 X_ATTRIBUTE_CATEGORY IN VARCHAR2,
243 X_ATTRIBUTE1 IN VARCHAR2,
244 X_ATTRIBUTE2 IN VARCHAR2,
245 X_ATTRIBUTE3 IN VARCHAR2,
246 X_ATTRIBUTE4 IN VARCHAR2,
247 X_ATTRIBUTE5 IN VARCHAR2,
248 X_ATTRIBUTE6 IN VARCHAR2,
249 X_ATTRIBUTE7 IN VARCHAR2,
250 X_ATTRIBUTE8 IN VARCHAR2,
251 X_ATTRIBUTE9 IN VARCHAR2,
252 X_ATTRIBUTE10 IN VARCHAR2,
253 X_ATTRIBUTE11 IN VARCHAR2,
254 X_ATTRIBUTE12 IN VARCHAR2,
255 X_ATTRIBUTE13 IN VARCHAR2,
256 X_ATTRIBUTE14 IN VARCHAR2,
257 X_ATTRIBUTE15 IN VARCHAR2
258 )
259 IS
260
261 CURSOR c1 IS
262 SELECT *
263 FROM PN_VAR_VOL_HIST_ALL
264 WHERE VOL_HIST_ID = X_VOL_HIST_ID
265 FOR UPDATE OF VOL_HIST_ID NOWAIT;
266
267 tlinfo c1%rowtype;
268
269 BEGIN
270
271 PNP_DEBUG_PKG.debug ('PN_VAR_VOL_HIST_PKG.LOCK_ROW (+)');
272
273 OPEN c1;
274 FETCH c1 INTO tlinfo;
275 IF (c1%notfound) THEN
276 CLOSE c1;
277 RETURN;
278 END IF;
279 CLOSE c1;
280
281 if (tlinfo.VOL_HIST_ID = X_VOL_HIST_ID) then
282 null;
283 else
284 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('VOL_HIST_ID',tlinfo.VOL_HIST_ID);
285 end if;
286 if (tlinfo.VOL_HIST_NUM = X_VOL_HIST_NUM) then
287 null;
288 else
289 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('VOL_HIST_NUM',tlinfo.VOL_HIST_NUM);
290 end if;
291 if ((tlinfo.LINE_ITEM_ID = X_LINE_ITEM_ID)
292 OR ((tlinfo.LINE_ITEM_ID is null) AND (X_LINE_ITEM_ID is null))) then
293 null;
294 else
295 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('LINE_ITEM_ID',tlinfo.LINE_ITEM_ID);
296 end if;
297 if ((tlinfo.PERIOD_ID = X_PERIOD_ID)
298 OR ((tlinfo.PERIOD_ID is null) AND (X_PERIOD_ID is null))) then
299 null;
300 else
301 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('PERIOD_ID',tlinfo.PERIOD_ID);
302 end if;
303 if (tlinfo.START_DATE = X_START_DATE) then
304 null;
305 else
306 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('START_DATE',tlinfo.START_DATE);
307 end if;
308 if (tlinfo.END_DATE = X_END_DATE) then
309 null;
310 else
311 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('END_DATE',tlinfo.END_DATE);
312 end if;
313 if ((tlinfo.GRP_DATE_ID = X_GRP_DATE_ID)
314 OR ((tlinfo.GRP_DATE_ID is null) AND (X_GRP_DATE_ID is null))) then
315 null;
316 else
317 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('GRP_DATE_ID',tlinfo.GRP_DATE_ID);
318 end if;
319 if (tlinfo.GROUP_DATE = X_GROUP_DATE) then
320 null;
321 else
322 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('GROUP_DATE',tlinfo.GROUP_DATE);
323 end if;
324 if ((tlinfo.REPORTING_DATE = X_REPORTING_DATE)
325 OR ((tlinfo.REPORTING_DATE is null) AND (X_REPORTING_DATE is null))) then
326 null;
327 else
328 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('REPORTING_DATE',tlinfo.REPORTING_DATE);
329 end if;
330 if ((tlinfo.DUE_DATE = X_DUE_DATE)
331 OR ((tlinfo.DUE_DATE is null) AND (X_DUE_DATE is null))) then
332 null;
333 else
334 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('DUE_DATE',tlinfo.DUE_DATE);
335 end if;
336 if (tlinfo.INVOICING_DATE = X_INVOICING_DATE) then
337 null;
338 else
339 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('INVOICING_DATE',tlinfo.INVOICING_DATE);
340 end if;
341 if ((tlinfo.ACTUAL_GL_ACCOUNT_ID = X_ACTUAL_GL_ACCOUNT_ID)
342 OR ((tlinfo.ACTUAL_GL_ACCOUNT_ID is null) AND (X_ACTUAL_GL_ACCOUNT_ID is null))) then
343 null;
344 else
345 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ACTUAL_GL_ACCOUNT_ID',tlinfo.ACTUAL_GL_ACCOUNT_ID);
346 end if;
347 if ((tlinfo.ACTUAL_AMOUNT = X_ACTUAL_AMOUNT)
348 OR ((tlinfo.ACTUAL_AMOUNT is null) AND (X_ACTUAL_AMOUNT is null))) then
349 null;
350 else
351 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ACTUAL_AMOUNT',tlinfo.ACTUAL_AMOUNT);
352 end if;
353 if (tlinfo.VOL_HIST_STATUS_CODE = X_VOL_HIST_STATUS_CODE) then
354 null;
355 else
356 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('VOL_HIST_STATUS_CODE',tlinfo.VOL_HIST_STATUS_CODE);
357 end if;
358 if ((tlinfo.REPORT_TYPE_CODE = X_REPORT_TYPE_CODE)
359 OR ((tlinfo.REPORT_TYPE_CODE is null) AND (X_REPORT_TYPE_CODE is null))) then
360 null;
361 else
362 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('REPORT_TYPE_CODE',tlinfo.REPORT_TYPE_CODE);
363 end if;
364 if ((tlinfo.CERTIFIED_BY = X_CERTIFIED_BY)
365 OR ((tlinfo.CERTIFIED_BY is null) AND (X_CERTIFIED_BY is null))) then
366 null;
367 else
368 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('CERTIFIED_BY',tlinfo.CERTIFIED_BY);
369 end if;
370 if (tlinfo.ACTUAL_EXP_CODE = X_ACTUAL_EXP_CODE) then
371 null;
372 else
373 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ACTUAL_EXP_CODE',tlinfo.ACTUAL_EXP_CODE);
374 end if;
375 if ((tlinfo.FOR_GL_ACCOUNT_ID = X_FOR_GL_ACCOUNT_ID)
376 OR ((tlinfo.FOR_GL_ACCOUNT_ID is null) AND (X_FOR_GL_ACCOUNT_ID is null))) then
377 null;
378 else
379 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('FOR_GL_ACCOUNT_ID',tlinfo.FOR_GL_ACCOUNT_ID);
380 end if;
381 if ((tlinfo.FORECASTED_AMOUNT = X_FORECASTED_AMOUNT)
382 OR ((tlinfo.FORECASTED_AMOUNT is null) AND (X_FORECASTED_AMOUNT is null))) then
383 null;
384 else
385 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('FORECASTED_AMOUNT',tlinfo.FORECASTED_AMOUNT);
386 end if;
387 if (tlinfo.FORECASTED_EXP_CODE = X_FORECASTED_EXP_CODE) then
388 null;
389 else
390 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('FORECASTED_EXP_CODE',tlinfo.FORECASTED_EXP_CODE);
391 end if;
392 if (tlinfo.VARIANCE_EXP_CODE = X_VARIANCE_EXP_CODE) then
393 null;
394 else
395 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('VARIANCE_EXP_CODE',tlinfo.VARIANCE_EXP_CODE);
396 end if;
397 if ((tlinfo.COMMENTS = X_COMMENTS)
398 OR ((tlinfo.COMMENTS is null) AND (X_COMMENTS is null))) then
399 null;
400 else
401 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('COMMENTS',tlinfo.COMMENTS);
402 end if;
403 if ((tlinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
404 OR ((tlinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null))) then
405 null;
406 else
407 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE_CATEGORY',tlinfo.ATTRIBUTE_CATEGORY);
408 end if;
409 if ((tlinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
410 OR ((tlinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null))) then
411 null;
412 else
413 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE1',tlinfo.ATTRIBUTE1);
414 end if;
415 if ((tlinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
416 OR ((tlinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null))) then
417 null;
418 else
419 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE2',tlinfo.ATTRIBUTE2);
420 end if;
421 if ((tlinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
422 OR ((tlinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null))) then
423 null;
424 else
425 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE3',tlinfo.ATTRIBUTE3);
426 end if;
427 if ((tlinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
428 OR ((tlinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null))) then
429 null;
430 else
434 OR ((tlinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null))) then
431 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE4',tlinfo.ATTRIBUTE4);
432 end if;
433 if ((tlinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
435 null;
436 else
437 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE5',tlinfo.ATTRIBUTE5);
438 end if;
439 if ((tlinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
440 OR ((tlinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null))) then
441 null;
442 else
443 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE6',tlinfo.ATTRIBUTE6);
444 end if;
445 if ((tlinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
446 OR ((tlinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null))) then
447 null;
448 else
449 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE7',tlinfo.ATTRIBUTE7);
450 end if;
451 if ((tlinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
452 OR ((tlinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null))) then
453 null;
454 else
455 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE8',tlinfo.ATTRIBUTE8);
456 end if;
457 if ((tlinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
458 OR ((tlinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null))) then
459 null;
460 else
461 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE9',tlinfo.ATTRIBUTE9);
462 end if;
463 if ((tlinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
464 OR ((tlinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null))) then
465 null;
466 else
467 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE10',tlinfo.ATTRIBUTE10);
468 end if;
469 if ((tlinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
470 OR ((tlinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null))) then
471 null;
472 else
473 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE11',tlinfo.ATTRIBUTE11);
474 end if;
475 if ((tlinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
476 OR ((tlinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null))) then
477 null;
478 else
479 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE12',tlinfo.ATTRIBUTE12);
480 end if;
481 if ((tlinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
482 OR ((tlinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null))) then
483 null;
484 else
485 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE13',tlinfo.ATTRIBUTE13);
486 end if;
487 if ((tlinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
488 OR ((tlinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null))) then
489 null;
490 else
491 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE14',tlinfo.ATTRIBUTE14);
492 end if;
493 if ((tlinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
494 OR ((tlinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null))) then
495 null;
496 else
497 PN_VAR_RENT_PKG.LOCK_ROW_EXCEPTION('ATTRIBUTE15',tlinfo.ATTRIBUTE15);
498 end if;
499
500 PNP_DEBUG_PKG.debug ('PN_VAR_VOL_HIST_PKG.LOCK_ROW (-)');
501
502 END LOCK_ROW;
503
504 -------------------------------------------------------------------------------
505 -- PROCDURE : UPDATE_ROW
506 -- INVOKED FROM : UPDATE_ROW procedure
507 -- PURPOSE : updates the row
508 -- HISTORY :
509 -- 04-JUL-05 piagrawa o Bug 4284035 - Replaced PN_VAR_VOL_HIST with _ALL table.
510 -------------------------------------------------------------------------------
511 procedure UPDATE_ROW (
512 X_VOL_HIST_ID in NUMBER,
513 X_VOL_HIST_NUM in NUMBER,
514 X_LINE_ITEM_ID in NUMBER,
515 X_PERIOD_ID in NUMBER,
516 X_START_DATE in DATE,
517 X_END_DATE in DATE,
518 X_GRP_DATE_ID in NUMBER,
519 X_GROUP_DATE in DATE,
520 X_REPORTING_DATE in DATE,
521 X_DUE_DATE in DATE,
522 X_INVOICING_DATE in DATE,
523 X_ACTUAL_GL_ACCOUNT_ID in NUMBER,
524 X_ACTUAL_AMOUNT in NUMBER,
525 X_DAILY_ACTUAL_AMOUNT in NUMBER,
526 X_VOL_HIST_STATUS_CODE in VARCHAR2,
527 X_REPORT_TYPE_CODE in VARCHAR2,
528 X_CERTIFIED_BY in NUMBER,
529 X_ACTUAL_EXP_CODE in VARCHAR2,
530 X_FOR_GL_ACCOUNT_ID in NUMBER,
531 X_FORECASTED_AMOUNT in NUMBER,
532 X_FORECASTED_EXP_CODE in VARCHAR2,
533 X_VARIANCE_EXP_CODE in VARCHAR2,
534 X_COMMENTS in VARCHAR2,
535 X_ATTRIBUTE_CATEGORY in VARCHAR2,
536 X_ATTRIBUTE1 in VARCHAR2,
537 X_ATTRIBUTE2 in VARCHAR2,
538 X_ATTRIBUTE3 in VARCHAR2,
539 X_ATTRIBUTE4 in VARCHAR2,
540 X_ATTRIBUTE5 in VARCHAR2,
541 X_ATTRIBUTE6 in VARCHAR2,
542 X_ATTRIBUTE7 in VARCHAR2,
543 X_ATTRIBUTE8 in VARCHAR2,
544 X_ATTRIBUTE9 in VARCHAR2,
545 X_ATTRIBUTE10 in VARCHAR2,
546 X_ATTRIBUTE11 in VARCHAR2,
547 X_ATTRIBUTE12 in VARCHAR2,
548 X_ATTRIBUTE13 in VARCHAR2,
549 X_ATTRIBUTE14 in VARCHAR2,
550 X_ATTRIBUTE15 in VARCHAR2,
551 X_LAST_UPDATE_DATE in DATE,
552 X_LAST_UPDATED_BY in NUMBER,
553 X_LAST_UPDATE_LOGIN in NUMBER
554 )
555 IS
556
557 l_return_daily_amount NUMBER := 0;
558
559 BEGIN
560
561 PNP_DEBUG_PKG.debug ('PN_VAR_VOL_HIST_PKG.UPDATE_ROW (+)');
562
563 -------------------------------------------------------
567 X_ACTUAL_AMOUNT,
564 -- Calculate daily amount for change calendar function
565 ------------------------------------------------------
566 PN_VAR_VOL_HIST_PKG.CALCULATE_DAILY_AMOUNT( l_return_daily_amount,
568 X_START_DATE,
569 X_END_DATE
570 );
571
572 UPDATE PN_VAR_VOL_HIST_ALL
573 SET
574 VOL_HIST_NUM = X_VOL_HIST_NUM,
575 LINE_ITEM_ID = X_LINE_ITEM_ID,
576 PERIOD_ID = X_PERIOD_ID,
577 START_DATE = X_START_DATE,
578 END_DATE = X_END_DATE,
579 GRP_DATE_ID = X_GRP_DATE_ID,
580 GROUP_DATE = X_GROUP_DATE,
581 REPORTING_DATE = X_REPORTING_DATE,
582 DUE_DATE = X_DUE_DATE,
583 INVOICING_DATE = X_INVOICING_DATE,
584 ACTUAL_GL_ACCOUNT_ID = X_ACTUAL_GL_ACCOUNT_ID,
585 ACTUAL_AMOUNT = X_ACTUAL_AMOUNT,
586 DAILY_ACTUAL_AMOUNT = l_return_daily_amount,
587 VOL_HIST_STATUS_CODE = X_VOL_HIST_STATUS_CODE,
588 REPORT_TYPE_CODE = X_REPORT_TYPE_CODE,
589 CERTIFIED_BY = X_CERTIFIED_BY,
590 ACTUAL_EXP_CODE = X_ACTUAL_EXP_CODE,
591 FOR_GL_ACCOUNT_ID = X_FOR_GL_ACCOUNT_ID,
592 FORECASTED_AMOUNT = X_FORECASTED_AMOUNT,
593 FORECASTED_EXP_CODE = X_FORECASTED_EXP_CODE,
594 VARIANCE_EXP_CODE = X_VARIANCE_EXP_CODE,
595 COMMENTS = X_COMMENTS,
596 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
597 ATTRIBUTE1 = X_ATTRIBUTE1,
598 ATTRIBUTE2 = X_ATTRIBUTE2,
599 ATTRIBUTE3 = X_ATTRIBUTE3,
600 ATTRIBUTE4 = X_ATTRIBUTE4,
601 ATTRIBUTE5 = X_ATTRIBUTE5,
602 ATTRIBUTE6 = X_ATTRIBUTE6,
603 ATTRIBUTE7 = X_ATTRIBUTE7,
604 ATTRIBUTE8 = X_ATTRIBUTE8,
605 ATTRIBUTE9 = X_ATTRIBUTE9,
606 ATTRIBUTE10 = X_ATTRIBUTE10,
607 ATTRIBUTE11 = X_ATTRIBUTE11,
608 ATTRIBUTE12 = X_ATTRIBUTE12,
609 ATTRIBUTE13 = X_ATTRIBUTE13,
610 ATTRIBUTE14 = X_ATTRIBUTE14,
611 ATTRIBUTE15 = X_ATTRIBUTE15,
612 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
613 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
614 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
615 WHERE VOL_HIST_ID = X_VOL_HIST_ID
616 ;
617
618 IF (sql%notfound) THEN
619 RAISE NO_DATA_FOUND;
620 END IF;
621
622 UPDATE pn_var_lines_all
623 SET sales_vol_update_flag = 'Y'
624 WHERE line_item_id = x_line_item_id;
625
626 PNP_DEBUG_PKG.debug ('PN_VAR_VOL_HIST_PKG.UPDATE_ROW (-)');
627
628 END UPDATE_ROW;
629
630 -------------------------------------------------------------------------------
631 -- PROCDURE : DELETE_ROW
632 -- INVOKED FROM : DELETE_ROW procedure
633 -- PURPOSE : deletes the row
634 -- HISTORY :
635 -- 04-JUL-05 piagrawa o Bug 4284035 - Replaced PN_VAR_VOL_HIST with _ALL table.
636 -------------------------------------------------------------------------------
637 procedure DELETE_ROW (
638 X_VOL_HIST_ID in NUMBER
639 ) IS
640
641 /* Get the details of line item id for thsi volume history */
642 CURSOR line_item_cur IS
643 SELECT line_item_id
644 FROM pn_var_vol_hist_all
645 WHERE vol_hist_id = x_vol_hist_id;
646
647 BEGIN
648
649 PNP_DEBUG_PKG.debug ('PN_VAR_VOL_HIST_PKG.DELETE_ROW (+)');
650
651 /* Update the sales_vol_update_flag to 'Y' for line for which volume history
652 is deleted */
653 FOR rec IN line_item_cur LOOP
654
655 UPDATE pn_var_lines_all
656 SET sales_vol_update_flag = 'Y'
657 WHERE line_item_id = rec.line_item_id;
658
659 END LOOP;
660
661
662
663 DELETE FROM PN_VAR_VOL_HIST_ALL
664 WHERE VOL_HIST_ID = X_VOL_HIST_ID;
665
666 IF (sql%notfound) THEN
667 RAISE NO_DATA_FOUND;
668 END IF;
669
670 PNP_DEBUG_PKG.debug ('PN_VAR_VOL_HIST_PKG.DELETE_ROW (-)');
671
672 END DELETE_ROW;
673
674 -----------------------------------------------------------------------
675 -- PROCEDURE : CALCULATE_DAILY_AMOUNT
676 -----------------------------------------------------------------------
677 procedure CALCULATE_DAILY_AMOUNT (
678 x_return_daily_amount out NOCOPY NUMBER,
679 X_ACTUAL_AMOUNT in NUMBER,
680 X_START_DATE in DATE,
681 X_END_DATE in DATE
682 ) IS
683
684 l_days number;
685 BEGIN
686
687 l_days := x_end_date - x_start_date;
688 IF l_days = 0 THEN
689 l_days := 1;
690 END IF;
691 x_return_daily_amount := X_ACTUAL_AMOUNT/l_days;
692
693 END CALCULATE_DAILY_AMOUNT;
694
695
696 -------------------------------------------------------------------------------
697 -- PROCDURE : MODIFY_ROW
698 -- INVOKED FROM : MODIFY_ROW procedure
699 -- PURPOSE : modifies the row
700 -- HISTORY :
704 X_VOL_HIST_ID in NUMBER,
701 -- 04-JUL-05 piagrawa o Bug 4284035 - Replaced PN_VAR_VOL_HIST with _ALL table.
702 -------------------------------------------------------------------------------
703 procedure MODIFY_ROW (
705 X_VOL_HIST_NUM in NUMBER,
706 X_LINE_ITEM_ID in NUMBER,
707 X_PERIOD_ID in NUMBER,
708 X_START_DATE in DATE,
709 X_END_DATE in DATE,
710 X_GRP_DATE_ID in NUMBER,
711 X_GROUP_DATE in DATE,
712 X_REPORTING_DATE in DATE,
713 X_DUE_DATE in DATE,
714 X_INVOICING_DATE in DATE,
715 X_ACTUAL_GL_ACCOUNT_ID in NUMBER,
716 X_ACTUAL_AMOUNT in NUMBER,
717 X_DAILY_ACTUAL_AMOUNT in NUMBER,
718 X_VOL_HIST_STATUS_CODE in VARCHAR2,
719 X_REPORT_TYPE_CODE in VARCHAR2,
720 X_CERTIFIED_BY in NUMBER,
721 X_ACTUAL_EXP_CODE in VARCHAR2,
722 X_FOR_GL_ACCOUNT_ID in NUMBER,
723 X_FORECASTED_AMOUNT in NUMBER,
724 X_FORECASTED_EXP_CODE in VARCHAR2,
725 X_VARIANCE_EXP_CODE in VARCHAR2,
726 X_COMMENTS in VARCHAR2,
727 X_ATTRIBUTE_CATEGORY in VARCHAR2,
728 X_ATTRIBUTE1 in VARCHAR2,
729 X_ATTRIBUTE2 in VARCHAR2,
730 X_ATTRIBUTE3 in VARCHAR2,
731 X_ATTRIBUTE4 in VARCHAR2,
732 X_ATTRIBUTE5 in VARCHAR2,
733 X_ATTRIBUTE6 in VARCHAR2,
734 X_ATTRIBUTE7 in VARCHAR2,
735 X_ATTRIBUTE8 in VARCHAR2,
736 X_ATTRIBUTE9 in VARCHAR2,
737 X_ATTRIBUTE10 in VARCHAR2,
738 X_ATTRIBUTE11 in VARCHAR2,
739 X_ATTRIBUTE12 in VARCHAR2,
740 X_ATTRIBUTE13 in VARCHAR2,
741 X_ATTRIBUTE14 in VARCHAR2,
742 X_ATTRIBUTE15 in VARCHAR2,
743 X_LAST_UPDATE_DATE in DATE,
744 X_LAST_UPDATED_BY in NUMBER,
745 X_LAST_UPDATE_LOGIN in NUMBER
746 )
747 IS
748
749 l_return_daily_amount NUMBER := 0;
750
751 /* Get the details of breakpoint details default */
752 CURSOR vol_his_cur IS
753 SELECT *
754 FROM pn_var_vol_hist_all
755 WHERE vol_hist_id = x_vol_hist_id;
756
757
758 BEGIN
759
760 PNP_DEBUG_PKG.debug ('PN_VAR_VOL_HIST_PKG.MODIFY_ROW (+)');
761
762 FOR rec IN vol_his_cur LOOP
763 -------------------------------------------------------
764 -- Calculate daily amount for change calendar function
765 ------------------------------------------------------
766 PN_VAR_VOL_HIST_PKG.CALCULATE_DAILY_AMOUNT( l_return_daily_amount,
767 NVL(x_actual_amount, rec.actual_amount),
768 NVL(x_start_date, rec.start_date),
769 NVL(x_end_date, rec.end_date)
770 );
771
772 UPDATE PN_VAR_VOL_HIST_ALL
773 SET
774 vol_hist_num = NVL( x_vol_hist_num, rec.vol_hist_num),
775 line_item_id = x_line_item_id,
776 period_id = NVL( x_period_id, rec.period_id),
777 start_date = NVL( x_start_date, rec.start_date),
778 end_date = NVL( x_end_date, rec.end_date),
779 grp_date_id = NVL( x_grp_date_id, rec.grp_date_id),
780 group_date = NVL( x_group_date, rec.group_date),
781 reporting_date = NVL( x_reporting_date, rec.reporting_date),
782 due_date = NVL( x_due_date, rec.due_date),
783 invoicing_date = NVL( x_invoicing_date, rec.invoicing_date),
784 actual_gl_account_id = NVL( x_actual_gl_account_id, rec.actual_gl_account_id),
785 actual_amount = NVL( x_actual_amount, rec.actual_amount),
786 daily_actual_amount = NVL( l_return_daily_amount, rec.daily_actual_amount),
787 vol_hist_status_code = NVL( x_vol_hist_status_code, rec.vol_hist_status_code),
788 report_type_code = NVL( x_report_type_code, rec.report_type_code),
789 certified_by = NVL( x_certified_by, rec.certified_by),
790 actual_exp_code = NVL( x_actual_exp_code, rec.actual_exp_code),
791 for_gl_account_id = NVL( x_for_gl_account_id, rec.for_gl_account_id),
792 forecasted_amount = NVL( x_forecasted_amount, rec.forecasted_amount),
793 forecasted_exp_code = NVL( x_forecasted_exp_code, rec.forecasted_exp_code),
794 variance_exp_code = NVL( x_variance_exp_code, rec.variance_exp_code),
795 comments = NVL( x_comments, rec.comments),
796 attribute_category = NVL( x_attribute_category, rec.attribute_category),
797 attribute1 = NVL( x_attribute1, rec.attribute1),
798 attribute2 = NVL( x_attribute2, rec.attribute2),
799 attribute3 = NVL( x_attribute3, rec.attribute3),
800 attribute4 = NVL( x_attribute4, rec.attribute4),
801 attribute5 = NVL( x_attribute5, rec.attribute5),
802 attribute6 = NVL( x_attribute6, rec.attribute6),
803 attribute7 = NVL( x_attribute7, rec.attribute7),
804 attribute8 = NVL( x_attribute8, rec.attribute8),
805 attribute9 = NVL( x_attribute9, rec.attribute9),
806 attribute10 = NVL( x_attribute10, rec.attribute10),
807 attribute11 = NVL( x_attribute11, rec.attribute11),
808 attribute12 = NVL( x_attribute12, rec.attribute12),
809 attribute13 = NVL( x_attribute13, rec.attribute13),
810 attribute14 = NVL( x_attribute14, rec.attribute14),
811 attribute15 = NVL( x_attribute15, rec.attribute15),
812 last_update_date = NVL( x_last_update_date, rec.last_update_date),
813 last_updated_by = NVL( x_last_updated_by, rec.last_updated_by),
814 last_update_login = NVL( x_last_update_login, rec.last_update_login)
815 WHERE vol_hist_id = x_vol_hist_id
816 ;
817
818 IF (sql%notfound) THEN
819 RAISE NO_DATA_FOUND;
820 END IF;
821
822 UPDATE pn_var_lines_all
823 SET sales_vol_update_flag = 'Y'
824 WHERE line_item_id = x_line_item_id;
825
826 END LOOP;
827
828 PNP_DEBUG_PKG.debug ('PN_VAR_VOL_HIST_PKG.MODIFY_ROW (-)');
829
830 END MODIFY_ROW;
831
832 END PN_VAR_VOL_HIST_PKG;