DBA Data[Home] [Help]

PACKAGE BODY: APPS.CN_PMT_PLANS_PKG

Source


1 PACKAGE BODY CN_PMT_PLANS_PKG as
2 -- $Header: cnpplntb.pls 120.2 2005/10/06 00:38:29 raramasa ship $
3 
4 
5   g_temp_status_code VARCHAR2(30) := NULL;
6   g_program_type     VARCHAR2(30) := NULL;
7 
8 --*****************************************************************************
9   -- Procedure Name : Get_UID
10   -- Purpose        : Get the Sequence Number to Create a new Payment Plan.
11 --*****************************************************************************
12 
13  PROCEDURE Get_UID( X_pmt_plan_id     IN OUT NOCOPY NUMBER) IS
14 
15  BEGIN
16 
17     SELECT cn_pmt_plans_s.nextval
18       INTO   X_pmt_plan_id
19       FROM   sys.dual;
20 
21  END Get_UID;
22 
23 
24 --*****************************************************************************
25   -- Procedure Name : Insert_Record
26   -- Purpose        : Main insert procedure
27 --*****************************************************************************
28 
29   PROCEDURE Insert_Record(
30                         x_Rowid              IN OUT NOCOPY VARCHAR2
31                        ,x_org_id                    cn_pmt_plans.org_id%TYPE
32                        ,x_pmt_plan_id        IN OUT NOCOPY NUMBER
33                        ,x_name		            cn_pmt_plans.name%TYPE
34 		       ,x_minimum_amount	    cn_pmt_plans.minimum_amount%TYPE
35 		       ,x_maximum_amount	    cn_pmt_plans.maximum_amount%TYPE
36 		       ,x_min_rec_flag		    cn_pmt_plans.min_rec_flag%TYPE
37                        ,x_max_rec_flag		    cn_pmt_plans.max_rec_flag%TYPE
38 		       ,x_max_recovery_amount	    cn_pmt_plans.max_recovery_amount%TYPE
39 		       ,x_credit_type_id	    cn_pmt_plans.credit_type_id%TYPE
40                        ,x_pay_interval_type_id      cn_pmt_plans.pay_interval_type_id%TYPE
41 		       ,x_start_date		    cn_pmt_plans.start_date%TYPE
42 		       ,x_end_date		    cn_pmt_plans.end_date%TYPE
43                        ,x_recoverable_interval_type_id cn_pmt_plans.recoverable_interval_type_id%TYPE
44                        ,x_pay_against_commission    cn_pmt_plans.pay_against_commission%TYPE
45                        ,x_attribute_category        cn_pmt_plans.attribute_category%TYPE
46                        ,x_attribute1                cn_pmt_plans.attribute1%TYPE
47                        ,x_attribute2                cn_pmt_plans.attribute2%TYPE
48                        ,x_attribute3                cn_pmt_plans.attribute3%TYPE
49                        ,x_attribute4                cn_pmt_plans.attribute4%TYPE
50                        ,x_attribute5                cn_pmt_plans.attribute5%TYPE
51                        ,x_attribute6                cn_pmt_plans.attribute6%TYPE
52                        ,x_attribute7                cn_pmt_plans.attribute7%TYPE
53                        ,x_attribute8                cn_pmt_plans.attribute8%TYPE
54                        ,x_attribute9                cn_pmt_plans.attribute9%TYPE
55                        ,x_attribute10               cn_pmt_plans.attribute10%TYPE
56                        ,x_attribute11               cn_pmt_plans.attribute11%TYPE
57                        ,x_attribute12               cn_pmt_plans.attribute12%TYPE
58                        ,x_attribute13               cn_pmt_plans.attribute13%TYPE
59                        ,x_attribute14               cn_pmt_plans.attribute14%TYPE
60                        ,x_attribute15               cn_pmt_plans.attribute15%TYPE
61                        ,x_Created_By                cn_pmt_plans.created_by%TYPE
62                        ,x_Creation_Date             cn_pmt_plans.creation_date%TYPE
63                        ,x_Last_Updated_By           cn_pmt_plans.last_updated_by%TYPE
64                        ,x_Last_Update_Date          cn_pmt_plans.last_update_date%TYPE
65                        ,x_Last_Update_Login         cn_pmt_plans.last_update_login%TYPE
66                        ,x_Payment_Group_Code        cn_pmt_plans.payment_group_code%TYPE
67                        ,x_object_version_number     IN OUT NOCOPY cn_pmt_plans.object_version_number%TYPE
68                        )
69     IS
70 
71   BEGIN
72 
73      IF x_pmt_plan_id is null
74      THEN
75         Get_UID( X_pmt_plan_id );
76      END IF;
77 
78             x_object_version_number := 1;
79 
80           INSERT INTO cn_pmt_plans(
81                     org_id
82 				   ,pmt_plan_id
83 				   ,name
84 				   ,minimum_amount
85 				   ,maximum_amount
86 				   ,min_rec_flag
87 				   ,max_rec_flag
88 				   ,max_recovery_amount
89 				   ,credit_type_id
90 				   ,pay_interval_type_id
91 				   ,start_date
92 				   ,end_date
93                                    ,object_version_number
94                                    ,recoverable_interval_type_id
95                                    ,pay_against_commission
96 				   ,attribute_category
97 				   ,attribute1
98 				   ,attribute2
99 				   ,attribute3
100 				   ,attribute4
101 				   ,attribute5
102 				   ,attribute6
103 				   ,attribute7
104 				   ,attribute8
105 				   ,attribute9
106 				   ,attribute10
107 				   ,attribute11
108 				   ,attribute12
109 				   ,attribute13
110 				   ,attribute14
111 				   ,attribute15
112 				   ,Created_By
113 				   ,Creation_Date
114 				   ,Last_Updated_By
115 				   ,Last_Update_Date
116 				   ,Last_Update_Login
117 				   ,payment_group_code)
118             VALUES (
119             x_org_id
120 		    ,x_pmt_plan_id
121 		    ,x_name
122 		    ,x_minimum_amount
123 		    ,x_maximum_amount
124 		    ,x_min_rec_flag
125 		    ,x_max_rec_flag
126 		    ,x_max_recovery_amount
127  		    ,x_credit_type_id
128 		    ,x_pay_interval_type_id
129 		    ,x_start_date
130 		    ,x_end_date
131                     ,x_object_version_number
132                     ,x_recoverable_interval_type_id
133                     ,x_pay_against_commission
134 		    ,x_attribute_category
135 		    ,x_attribute1
136 		    ,x_attribute2
137 		    ,x_attribute3
138 		    ,x_attribute4
139 		    ,x_attribute5
140 		    ,x_attribute6
141 		    ,x_attribute7
142 		    ,x_attribute8
143 		    ,x_attribute9
144 		    ,x_attribute10
145 		    ,x_attribute11
146 		    ,x_attribute12
147 		    ,x_attribute13
148 		    ,x_attribute14
149 		    ,x_attribute15
150 		    ,x_Created_By
151 		    ,x_Creation_Date
152 		    ,x_Last_Updated_By
153 		    ,x_Last_Update_Date
154 		    ,x_Last_Update_Login
155 		    ,x_Payment_Group_Code
156 		    );
157 
158   END Insert_Record;
159 
160 
161 --*****************************************************************************
162   -- Procedure Name : Lock_Record
163   -- Purpose        : Lock db row after form record is changed
164   -- Notes          : Only called from the form
165 --*****************************************************************************
166 
167   PROCEDURE Lock_Record( x_Rowid                VARCHAR2
168                         ,x_pmt_plan_id         NUMBER) IS
169 
170      CURSOR C IS
171         SELECT *
172           FROM cn_pmt_plans
173          WHERE pmt_plan_id = x_pmt_plan_id
174            FOR UPDATE of pmt_plan_id NOWAIT;
175      Recinfo C%ROWTYPE;
176 
177   BEGIN
178      OPEN C;
179      FETCH C INTO Recinfo;
180 
181      IF (C%NOTFOUND) then
182         CLOSE C;
183         fnd_message.Set_Name('FND', 'FORM_RECORD_DELETED');
184         app_exception.raise_exception;
185      END IF;
186 
187      CLOSE C;
188 
189      IF Recinfo.pmt_plan_id = x_pmt_plan_id
190      THEN
191         RETURN;
192      ELSE
193         fnd_message.Set_Name('FND', 'FORM_RECORD_CHANGED');
194         app_exception.raise_exception;
195      END IF;
196   END Lock_Record;
197 
198 
199 --*****************************************************************************
200   -- Procedure Name : Update Record
201   -- Purpose        : To Update the Payment Plans
202 --*****************************************************************************
203 
204   PROCEDURE Update_Record(
205     x_org_id                cn_pmt_plans.org_id%TYPE
206     ,x_pmt_plan_id          NUMBER
207     ,x_name		    cn_pmt_plans.name%TYPE   	          := fnd_api.g_miss_char
208     ,x_minimum_amount       cn_pmt_plans.minimum_amount%TYPE      := fnd_api.g_miss_num
209     ,x_maximum_amount       cn_pmt_plans.maximum_amount%TYPE      := fnd_api.g_miss_num
210     ,x_max_recovery_amount  cn_pmt_plans.max_recovery_amount%TYPE := fnd_api.g_miss_num
211     ,x_min_rec_flag	    cn_pmt_plans.min_rec_flag%TYPE        := fnd_api.g_miss_char
212     ,x_max_rec_flag	    cn_pmt_plans.max_rec_flag%TYPE        := fnd_api.g_miss_char
213     ,x_credit_type_id       cn_pmt_plans.credit_type_id%TYPE      := cn_api.g_miss_id
214     ,x_pay_interval_type_id cn_pmt_plans.pay_interval_type_id%TYPE := cn_api.g_miss_id
215     ,x_start_date	    cn_pmt_plans.start_date%TYPE	  := fnd_api.g_miss_date
216     ,x_end_date		    cn_pmt_plans.end_date%TYPE 		  := fnd_api.g_miss_date
217     ,x_object_version_number IN OUT NOCOPY cn_pmt_plans.object_version_number%TYPE
218     ,x_recoverable_interval_type_id cn_pmt_plans.recoverable_interval_type_id%TYPE := fnd_api.g_miss_char
219     ,x_pay_against_commission    cn_pmt_plans.pay_against_commission%TYPE := fnd_api.g_miss_char
220     ,x_attribute_category   cn_pmt_plans.attribute_category%TYPE  := fnd_api.g_miss_char
221     ,x_attribute1           cn_pmt_plans.attribute1%TYPE          := fnd_api.g_miss_char
222     ,x_attribute2           cn_pmt_plans.attribute2%TYPE          := fnd_api.g_miss_char
223     ,x_attribute3           cn_pmt_plans.attribute3%TYPE          := fnd_api.g_miss_char
224     ,x_attribute4           cn_pmt_plans.attribute4%TYPE          := fnd_api.g_miss_char
225     ,x_attribute5           cn_pmt_plans.attribute5%TYPE          := fnd_api.g_miss_char
226     ,x_attribute6           cn_pmt_plans.attribute6%TYPE          := fnd_api.g_miss_char
227     ,x_attribute7           cn_pmt_plans.attribute7%TYPE          := fnd_api.g_miss_char
228     ,x_attribute8           cn_pmt_plans.attribute8%TYPE          := fnd_api.g_miss_char
229     ,x_attribute9           cn_pmt_plans.attribute9%TYPE          := fnd_api.g_miss_char
230     ,x_attribute10          cn_pmt_plans.attribute10%TYPE         := fnd_api.g_miss_char
231     ,x_attribute11          cn_pmt_plans.attribute11%TYPE         := fnd_api.g_miss_char
232     ,x_attribute12          cn_pmt_plans.attribute12%TYPE         := fnd_api.g_miss_char
233     ,x_attribute13          cn_pmt_plans.attribute13%TYPE         := fnd_api.g_miss_char
234     ,x_attribute14          cn_pmt_plans.attribute14%TYPE         := fnd_api.g_miss_char
235     ,x_attribute15          cn_pmt_plans.attribute15%TYPE         := fnd_api.g_miss_char
236     ,x_Last_Updated_By      cn_pmt_plans.last_updated_by%TYPE
237     ,x_Last_Update_Date     cn_pmt_plans.last_update_date%TYPE
238     ,x_Last_Update_Login    cn_pmt_plans.last_update_login%TYPE
239     ,x_Payment_Group_Code   cn_pmt_plans.payment_group_code%TYPE  := fnd_api.g_miss_char
240     ) IS
241 
242     l_org_id        cn_pmt_plans.org_id%TYPE;
243    l_name			cn_pmt_plans.name%TYPE;
244    l_minimum_amount 		cn_pmt_plans.minimum_amount%TYPE;
245    l_maximum_amount		cn_pmt_plans.maximum_amount%TYPE;
246    l_min_rec_flag		cn_pmt_plans.min_rec_flag%TYPE;
247    l_max_rec_flag		cn_pmt_plans.max_rec_flag%TYPE;
248    l_max_recovery_amount	cn_pmt_plans.max_recovery_amount%TYPE;
249    l_credit_type_id		cn_pmt_plans.credit_type_id%TYPE;
250    l_pay_interval_type_id       cn_pmt_plans.pay_interval_type_id%TYPE;
251    l_start_date			cn_pmt_plans.start_date%TYPE;
252    l_end_date			cn_pmt_plans.end_date%TYPE;
253    l_recoverable_interval_type_id  cn_pmt_plans.recoverable_interval_type_id%TYPE;
254    l_pay_against_commission     cn_pmt_plans.pay_against_commission%TYPE;
255    l_payment_group_code         cn_pmt_plans.payment_group_code%TYPE;
256 
257    l_attribute_category		cn_pmt_plans.attribute_category%TYPE;
258    l_attribute1			cn_pmt_plans.attribute1%TYPE;
259    l_attribute2			cn_pmt_plans.attribute2%TYPE;
260    l_attribute3	    		cn_pmt_plans.attribute3%TYPE;
261    l_attribute4	    		cn_pmt_plans.attribute4%TYPE;
262    l_attribute5	    		cn_pmt_plans.attribute5%TYPE;
263    l_attribute6	   		cn_pmt_plans.attribute6%TYPE;
264    l_attribute7	   		cn_pmt_plans.attribute7%TYPE;
265    l_attribute8			cn_pmt_plans.attribute8%TYPE;
266    l_attribute9			cn_pmt_plans.attribute9%TYPE;
267    l_attribute10		cn_pmt_plans.attribute10%TYPE;
268    l_attribute11		cn_pmt_plans.attribute11%TYPE;
269    l_attribute12		cn_pmt_plans.attribute12%TYPE;
270    l_attribute13		cn_pmt_plans.attribute13%TYPE;
271    l_attribute14		cn_pmt_plans.attribute14%TYPE;
272    l_attribute15		cn_pmt_plans.attribute15%TYPE;
273 
274     CURSOR pmt_plan_cur IS
275        SELECT *
276 	 FROM cn_pmt_plans
277         WHERE pmt_plan_id = x_pmt_plan_id;
278 
279     l_pmt_plan_rec pmt_plan_cur%ROWTYPE;
280 
281  BEGIN
282     OPEN pmt_plan_cur;
283     FETCH pmt_plan_cur INTO l_pmt_plan_rec;
284     CLOSE pmt_plan_cur;
285 
286     SELECT decode(x_name,
287                   fnd_api.g_miss_char, l_pmt_plan_rec.name,
288 		  x_name),
289 	   decode(x_minimum_amount,
290                   fnd_api.g_miss_num, l_pmt_plan_rec.minimum_amount,
291 		  x_minimum_amount),
292 	   decode(x_maximum_amount,
293                   fnd_api.g_miss_num, l_pmt_plan_rec.maximum_amount,
294 		  x_maximum_amount),
295 	   decode(x_min_rec_flag,
296                   fnd_api.g_miss_char, l_pmt_plan_rec.min_rec_flag,
297 		  x_min_rec_flag),
298 	   decode(x_max_rec_flag,
299                   fnd_api.g_miss_char, l_pmt_plan_rec.max_rec_flag,
300 		  x_max_rec_flag),
301 	   decode(x_max_recovery_amount,
302                   fnd_api.g_miss_num, l_pmt_plan_rec.max_recovery_amount,
303 		  x_max_recovery_amount),
304 	   decode(x_credit_type_id,
305                   cn_api.g_miss_id, l_pmt_plan_rec.credit_type_id,
306 		  x_credit_type_id),
307 	   decode(x_pay_interval_type_id,
308                   cn_api.g_miss_id, l_pmt_plan_rec.pay_interval_type_id,
309 		  x_pay_interval_type_id),
310 	   decode(x_start_date,
311                   fnd_api.g_miss_date, l_pmt_plan_rec.start_date,
312 		  x_start_date),
313 	   decode(x_end_date,
314                   fnd_api.g_miss_date, l_pmt_plan_rec.end_date,
315 		  x_end_date),
316            decode(x_recoverable_interval_type_id,
317                   fnd_api.g_miss_char, l_pmt_plan_rec.recoverable_interval_type_id,
318 		  x_recoverable_interval_type_id),
319            decode(x_pay_against_commission,
320                   fnd_api.g_miss_char, l_pmt_plan_rec.pay_against_commission,
321 		  x_pay_against_commission),
322 	   decode(x_attribute_category,
323                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute_category,
324 		  x_attribute_category),
325 	   decode(x_attribute1,
326                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute1,
327 		  x_attribute1),
328 	   decode(x_attribute2,
329                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute2,
330 		  x_attribute2),
331 	   decode(x_attribute3,
332                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute3,
333 		  x_attribute3),
334 	   decode(x_attribute4,
335                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute4,
336 		  x_attribute4),
337 	   decode(x_attribute5,
338                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute5,
339 		  x_attribute5),
340 	   decode(x_attribute6,
341                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute6,
342 		  x_attribute6),
343 	   decode(x_attribute7,
344                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute7,
345 		  x_attribute7),
346 	   decode(x_attribute8,
347                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute8,
348 		  x_attribute8),
349 	   decode(x_attribute9,
350                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute9,
351 		  x_attribute9),
352 	   decode(x_attribute10,
353                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute10,
354 		  x_attribute10),
355 	   decode(x_attribute11,
356                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute11,
357 		  x_attribute11),
358 	   decode(x_attribute12,
359                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute12,
360 		  x_attribute12),
361 	   decode(x_attribute13,
362                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute13,
363 		  x_attribute13),
364 	   decode(x_attribute14,
365                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute14,
366 		  x_attribute14),
367 	   decode(x_attribute15,
368                   fnd_api.g_miss_char, l_pmt_plan_rec.attribute15,
369 		  x_attribute15),
370 	   decode(x_payment_group_code,
371 		  fnd_api.g_miss_char, l_pmt_plan_rec.payment_group_code,
372 		  x_payment_group_code)
373     INTO l_name,
374      l_minimum_amount,
375 	 l_maximum_amount,
376 	 l_min_rec_flag,
377 	 l_max_rec_flag,
378 	 l_max_recovery_amount,
379      l_credit_type_id,
380      l_pay_interval_type_id,
381      l_start_date,
382      l_end_date,
383 	 l_recoverable_interval_type_id,
384      l_pay_against_commission,
385 	 l_attribute_category,
386 	 l_attribute1,
387 	 l_attribute2,
388 	 l_attribute3,
389 	 l_attribute4,
390 	 l_attribute5,
391 	 l_attribute6,
392 	 l_attribute7,
393 	 l_attribute8,
394 	 l_attribute9,
395 	 l_attribute10,
396 	 l_attribute11,
397 	 l_attribute12,
398 	 l_attribute13,
399 	 l_attribute14,
400 	 l_attribute15,
401 	 l_payment_group_code
402     FROM dual;
403 
404     UPDATE cn_pmt_plans
405      SET
406        	name              	=   l_name,
407         minimum_amount		=	l_minimum_amount,
408         maximum_amount		=	l_maximum_amount,
409         min_rec_flag		= 	Nvl(l_min_rec_flag,'N'),
410 	    max_rec_flag		=	Nvl(l_max_rec_flag,'N'),
411         max_recovery_amount =   l_max_recovery_amount,
412         credit_type_id		=	l_credit_type_id,
413         pay_interval_type_id = l_pay_interval_type_id,
414         start_date		=	l_start_date,
415     	end_date		=	l_end_date,
416         object_version_number   =  x_object_version_number + 1,
417 	    recoverable_interval_type_id =  l_recoverable_interval_type_id,
418         pay_against_commission =       l_pay_against_commission,
419 	    attribute_category	=	l_attribute_category,
420         attribute1		=       l_attribute1,
421         attribute2		=       l_attribute2,
422         attribute3		=	l_attribute3,
423         attribute4		=	l_attribute4,
424         attribute5		=	l_attribute5,
425         attribute6		=	l_attribute6,
426         attribute7		=	l_attribute7,
427         attribute8		=	l_attribute8,
428         attribute9		=	l_attribute9,
429         attribute10		=	l_attribute10,
430         attribute11		=	l_attribute11,
431         attribute12		=	l_attribute12,
432         attribute13		=	l_attribute13,
433         attribute14		=	l_attribute14,
434         attribute15		=	l_attribute15,
435         last_update_date	=	x_Last_Update_Date,
436        	last_updated_by      	=     	x_Last_Updated_By,
437 	last_update_login    	=     	x_Last_Update_Login,
438 	payment_group_code      =       l_payment_group_code
439 
440      WHERE pmt_plan_id  =     x_pmt_plan_id ;
441 
442      if (SQL%NOTFOUND) then
443         Raise NO_DATA_FOUND;
444      end if;
445 
446      x_object_version_number := x_object_version_number + 1;
447 
448   END Update_Record;
449 
450 
451 --*****************************************************************************
452   -- Procedure Name : Delete_Record
453   -- Purpose        : Delete the Payment Plan if it has not been assigned
454   --                  to a salesrep
455 --*****************************************************************************
456 
457   PROCEDURE Delete_Record( x_pmt_plan_id     NUMBER ) IS
458   BEGIN
459 
460         DELETE FROM cn_pmt_plans
461         WHERE  pmt_plan_id = x_pmt_plan_id;
462 
463 
464   END Delete_Record;
465 
466 
467 --*****************************************************************************
468  -- Procedure Name : Begin_Record
469  -- Purpose	   : Public procedure which calls the appropriate pvt.
470  --		     depending on the value of X_Operation
471  -- History        : Modified by Sundar Venkat
472  --		     Added New Column
473  --		     PAYMENT_GROUP_CODE
474 --*****************************************************************************
475 
476   PROCEDURE Begin_Record(
477 		        x_Operation		    VARCHAR2
478 		       ,x_Rowid              IN OUT NOCOPY VARCHAR2
479         		       ,x_org_id                    cn_pmt_plans.org_id%TYPE
480                	       ,x_pmt_plan_id        IN OUT NOCOPY NUMBER
481                        ,x_name              	   cn_pmt_plans.name%TYPE
482                        ,x_minimum_amount           cn_pmt_plans.minimum_amount%TYPE
483                        ,x_maximum_amount	   cn_pmt_plans.maximum_amount%TYPE
484                        ,x_min_rec_flag	           cn_pmt_plans.min_rec_flag%TYPE
485                        ,x_max_rec_flag		   cn_pmt_plans.max_rec_flag%TYPE
486 		       ,x_max_recovery_amount	   cn_pmt_plans.max_recovery_amount%TYPE
487 		       ,x_credit_type_id	   cn_pmt_plans.credit_type_id%TYPE
488 		       ,x_pay_interval_type_id     cn_pmt_plans.pay_interval_type_id%TYPE
489                        ,x_start_date		   cn_pmt_plans.start_date%TYPE
490                        ,x_end_date		   cn_pmt_plans.end_date%TYPE
491                        ,x_object_version_number    IN OUT NOCOPY
492                        cn_pmt_plans.object_version_number%TYPE
493 	               ,x_recoverable_interval_type_id cn_pmt_plans.recoverable_interval_type_id%TYPE
494                        ,x_pay_against_commission   cn_pmt_plans.pay_against_commission%TYPE
495                        ,x_attribute_category       cn_pmt_plans.attribute_category%TYPE
496                        ,x_attribute1               cn_pmt_plans.attribute1%TYPE
497                        ,x_attribute2               cn_pmt_plans.attribute2%TYPE
498                        ,x_attribute3               cn_pmt_plans.attribute3%TYPE
499                        ,x_attribute4               cn_pmt_plans.attribute4%TYPE
500                        ,x_attribute5               cn_pmt_plans.attribute5%TYPE
501                        ,x_attribute6               cn_pmt_plans.attribute6%TYPE
502                        ,x_attribute7               cn_pmt_plans.attribute7%TYPE
503                        ,x_attribute8               cn_pmt_plans.attribute8%TYPE
504                        ,x_attribute9               cn_pmt_plans.attribute9%TYPE
505                        ,x_attribute10              cn_pmt_plans.attribute10%TYPE
506                        ,x_attribute11              cn_pmt_plans.attribute11%TYPE
507                        ,x_attribute12              cn_pmt_plans.attribute12%TYPE
508                        ,x_attribute13              cn_pmt_plans.attribute13%TYPE
509                        ,x_attribute14              cn_pmt_plans.attribute14%TYPE
510                        ,x_attribute15              cn_pmt_plans.attribute15%TYPE
511                        ,x_Created_By               cn_pmt_plans.created_by%TYPE
512                        ,x_Creation_Date            cn_pmt_plans.creation_date%TYPE
513                        ,x_Last_Updated_By          cn_pmt_plans.last_updated_by%TYPE
514                        ,x_Last_Update_Date         cn_pmt_plans.last_update_date%TYPE
515                        ,x_Last_Update_Login        cn_pmt_plans.last_update_login%TYPE
516 		       ,x_Program_Type		   VARCHAR2
517 		       ,x_Payment_Group_Code       cn_pmt_plans.payment_group_code%TYPE
518 		       ) IS
519 
520 BEGIN
521 
522    -- Saves passing it around
523    g_program_type 	:= x_program_type;
524    g_temp_status_code 	:= 'COMPLETE'; -- Assume it is good to begin with
525 
526 
527    IF X_Operation = 'INSERT' THEN
528 
529      Insert_Record(     X_Rowid
530                        ,X_org_id
531                        ,X_pmt_plan_id
532                        ,X_name
533 		       ,X_minimum_amount
534 		       ,X_maximum_amount
535 		       ,X_min_rec_flag
536    		       ,X_max_rec_flag
537                        ,X_max_recovery_amount
538 		       ,X_credit_type_id
539 		       ,X_pay_interval_type_id
540                        ,X_start_date
541 		       ,X_end_date
542 	               ,x_recoverable_interval_type_id
543                        ,x_pay_against_commission
544                        ,X_attribute_category
545                        ,X_attribute1
546                        ,X_attribute2
547                        ,X_attribute3
548                        ,X_attribute4
549                        ,X_attribute5
550                        ,X_attribute6
551                        ,X_attribute7
552                        ,X_attribute8
553                        ,X_attribute9
554                        ,X_attribute10
555                        ,X_attribute11
556                        ,X_attribute12
557                        ,X_attribute13
558                        ,X_attribute14
559                        ,X_attribute15
560                        ,X_Created_By
561                        ,X_Creation_Date
562                        ,X_Last_Updated_By
563                        ,X_Last_Update_Date
564 		       ,X_Last_Update_Login
565 		       ,x_Payment_Group_Code
566 		       ,x_object_version_number
567 		       );
568 
569 
570     ELSIF X_Operation = 'UPDATE' THEN
571 
572 
573       Update_Record(	x_org_id
574                         ,x_pmt_plan_id
575                        ,X_name
576 		       ,X_minimum_amount
577 		       ,X_maximum_amount
578 		       ,X_max_recovery_amount
579 		       ,X_min_rec_flag
580    		       ,X_max_rec_flag
581 		       ,X_credit_type_id
582 		       ,X_pay_interval_type_id
583                        ,X_start_date
584 		       ,X_end_date
585                        ,X_object_version_number
586                        ,x_recoverable_interval_type_id
587                        ,x_pay_against_commission
588                        ,X_attribute_category
589                        ,X_attribute1
590                        ,X_attribute2
591                        ,X_attribute3
592                        ,X_attribute4
593                        ,X_attribute5
594                        ,X_attribute6
595                        ,X_attribute7
596                        ,X_attribute8
597                        ,X_attribute9
598                        ,X_attribute10
599                        ,X_attribute11
600                        ,X_attribute12
601                        ,X_attribute13
602                        ,X_attribute14
603                        ,X_attribute15
604                        ,X_Last_Updated_By
605                        ,X_Last_Update_Date
606 		       ,X_Last_Update_Login
607 		       ,x_Payment_Group_Code
608 		       );
609 
610     ELSIF X_Operation = 'DELETE' THEN
611 
612        Delete_Record(	X_pmt_plan_id );
613 
614     ELSIF X_Operation = 'LOCK' THEN
615 
616        Lock_Record( 	X_Rowid
617               	       ,X_pmt_plan_id);
618 
619     END IF;
620 
621 
622  END Begin_Record;
623 
624 END CN_PMT_PLANS_PKG;