DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_CONTRACTTYPE_PVT

Source


1 PACKAGE BODY CS_CONTRACTTYPE_PVT AS
2 /* $Header: csctctyb.pls 115.1 99/07/16 08:51:48 porting ship $ */
3   FUNCTION get_seq_id RETURN NUMBER IS
4     CURSOR get_seq_id_csr IS
5       SELECT CS_CONTRACT_TYPES_S.nextval FROM SYS.DUAL;
6       l_seq_id                       NUMBER := 0;
7   BEGIN
8     OPEN get_seq_id_csr;
9     FETCH get_seq_id_csr INTO l_seq_id;
10     CLOSE get_seq_id_csr;
11     RETURN(l_seq_id);
12   END get_seq_id;
13 
14 
15   -- Validation
16   FUNCTION Validate_Item_Attributes
17   (
18     p_contracttype_rec IN  ContractType_Rec_Type
19   )
20   RETURN VARCHAR2
21   IS
22     l_return_status	VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
23   BEGIN
24     IF p_contracttype_rec.name = TAPI_DEV_KIT.G_MISS_CHAR OR
25        p_contracttype_rec.name IS NULL
26     THEN
27       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'name');
28       l_return_status := FND_API.G_RET_STS_ERROR;
29     ELSIF p_contracttype_rec.last_update_date = TAPI_DEV_KIT.G_MISS_DATE OR
30           p_contracttype_rec.last_update_date IS NULL
31     THEN
32       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'last_update_date');
33       l_return_status := FND_API.G_RET_STS_ERROR;
34     ELSIF p_contracttype_rec.last_updated_by = TAPI_DEV_KIT.G_MISS_NUM OR
35           p_contracttype_rec.last_updated_by IS NULL
36     THEN
37       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'last_updated_by');
38       l_return_status := FND_API.G_RET_STS_ERROR;
39     ELSIF p_contracttype_rec.creation_date = TAPI_DEV_KIT.G_MISS_DATE OR
40           p_contracttype_rec.creation_date IS NULL
41     THEN
42       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'creation_date');
43       l_return_status := FND_API.G_RET_STS_ERROR;
44     ELSIF p_contracttype_rec.created_by = TAPI_DEV_KIT.G_MISS_NUM OR
45           p_contracttype_rec.created_by IS NULL
46     THEN
47       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'created_by');
48       l_return_status := FND_API.G_RET_STS_ERROR;
49     END IF;
50     RETURN(l_return_status);
51   END Validate_Item_Attributes;
52 
53 
54   ----- Default
55   FUNCTION Default_Item_Attributes
56   (
57     p_contracttype_rec IN  ContractType_Rec_Type,
58     l_def_contracttype_rec OUT  ContractType_Rec_Type
59   )
60   RETURN VARCHAR2
61   IS
62     l_return_status 	VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
63   BEGIN
64     l_def_contracttype_rec := p_contracttype_rec;
65     l_def_contracttype_rec.OBJECT_VERSION_NUMBER := NVL(l_def_contracttype_rec.OBJECT_VERSION_NUMBER, 0) + 1;
66     RETURN(l_return_status);
67   End Default_Item_attributes;
68 
69 
70   FUNCTION Validate_Item_Record (
71     p_contracttype_rec IN ContractType_Rec_Type
72   )
73   RETURN VARCHAR2 IS
74     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
75     FUNCTION validate_foreign_keys (
76       p_contracttype_rec IN ContractType_Rec_Type
77     )
78     RETURN VARCHAR2 IS
79       item_not_found_error          EXCEPTION;
80       CURSOR ra_cust_trx_types_pk_csr (p_cust_trx_type_id   IN NUMBER) IS
81       SELECT *
82         FROM Ra_Cust_Trx_Types
83        WHERE ra_cust_trx_types.cust_trx_type_id = p_cust_trx_type_id;
84       l_ra_cust_trx_types_pk         ra_cust_trx_types_pk_csr%ROWTYPE;
85       l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
86       l_row_notfound                 BOOLEAN := TRUE;
87     BEGIN
88       IF (p_contracttype_rec.CUST_TRX_TYPE_ID IS NOT NULL)
89       THEN
90         OPEN ra_cust_trx_types_pk_csr(p_contracttype_rec.CUST_TRX_TYPE_ID);
91         FETCH ra_cust_trx_types_pk_csr INTO l_ra_cust_trx_types_pk;
92         l_row_notfound := ra_cust_trx_types_pk_csr%NOTFOUND;
93         CLOSE ra_cust_trx_types_pk_csr;
94         IF (l_row_notfound) THEN
95           TAPI_DEV_KIT.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'CUST_TRX_TYPE_ID');
96           RAISE item_not_found_error;
97         END IF;
98       END IF;
99       RETURN (l_return_status);
100     EXCEPTION
101       WHEN item_not_found_error THEN
102         l_return_status := FND_API.G_RET_STS_ERROR;
103         RETURN (l_return_status);
104     END validate_foreign_keys;
105   BEGIN
106     l_return_status := validate_foreign_keys (p_contracttype_rec);
107     RETURN (l_return_status);
108   END Validate_Item_Record;
109 
110 
111   PROCEDURE migrate (
112     p_from	IN ContractType_Val_Rec_Type,
113     p_to	OUT ContractType_Rec_Type
114   ) IS
115   BEGIN
116     p_to.contract_type_id := p_from.contract_type_id;
117     p_to.name := p_from.name;
118     p_to.description := p_from.description;
119     p_to.cust_trx_type_id := p_from.cust_trx_type_id;
120     p_to.last_update_date := p_from.last_update_date;
121     p_to.last_updated_by := p_from.last_updated_by;
122     p_to.creation_date := p_from.creation_date;
123     p_to.created_by := p_from.created_by;
124     p_to.last_update_login := p_from.last_update_login;
125     p_to.start_date_active := p_from.start_date_active;
126     p_to.end_date_active := p_from.end_date_active;
127     p_to.attribute1 := p_from.attribute1;
128     p_to.attribute2 := p_from.attribute2;
129     p_to.attribute3 := p_from.attribute3;
130     p_to.attribute4 := p_from.attribute4;
131     p_to.attribute5 := p_from.attribute5;
132     p_to.attribute6 := p_from.attribute6;
133     p_to.attribute7 := p_from.attribute7;
134     p_to.attribute8 := p_from.attribute8;
135     p_to.attribute9 := p_from.attribute9;
136     p_to.attribute10 := p_from.attribute10;
137     p_to.attribute11 := p_from.attribute11;
138     p_to.attribute12 := p_from.attribute12;
139     p_to.attribute13 := p_from.attribute13;
140     p_to.attribute14 := p_from.attribute14;
141     p_to.attribute15 := p_from.attribute15;
142     p_to.context := p_from.context;
143     p_to.object_version_number := p_from.object_version_number;
144   END migrate;
145   PROCEDURE migrate (
146     p_from	IN ContractType_Rec_Type,
147     p_to	OUT ContractType_Val_Rec_Type
148   ) IS
149   BEGIN
150     p_to.contract_type_id := p_from.contract_type_id;
151     p_to.name := p_from.name;
152     p_to.description := p_from.description;
153     p_to.cust_trx_type_id := p_from.cust_trx_type_id;
154     p_to.last_update_date := p_from.last_update_date;
155     p_to.last_updated_by := p_from.last_updated_by;
156     p_to.creation_date := p_from.creation_date;
157     p_to.created_by := p_from.created_by;
158     p_to.last_update_login := p_from.last_update_login;
159     p_to.start_date_active := p_from.start_date_active;
160     p_to.end_date_active := p_from.end_date_active;
161     p_to.attribute1 := p_from.attribute1;
162     p_to.attribute2 := p_from.attribute2;
163     p_to.attribute3 := p_from.attribute3;
164     p_to.attribute4 := p_from.attribute4;
165     p_to.attribute5 := p_from.attribute5;
166     p_to.attribute6 := p_from.attribute6;
167     p_to.attribute7 := p_from.attribute7;
168     p_to.attribute8 := p_from.attribute8;
169     p_to.attribute9 := p_from.attribute9;
170     p_to.attribute10 := p_from.attribute10;
171     p_to.attribute11 := p_from.attribute11;
172     p_to.attribute12 := p_from.attribute12;
173     p_to.attribute13 := p_from.attribute13;
174     p_to.attribute14 := p_from.attribute14;
175     p_to.attribute15 := p_from.attribute15;
176     p_to.context := p_from.context;
177     p_to.object_version_number := p_from.object_version_number;
178   END migrate;
179   PROCEDURE insert_row
180   (
181     p_api_version                  IN NUMBER,
182     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
183     p_validation_level             IN NUMBER,
184     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
185     x_return_status                OUT VARCHAR2,
186     x_msg_count                    OUT NUMBER,
187     x_msg_data                     OUT VARCHAR2,
188     p_contracttype_rec             IN ContractType_Rec_Type := G_MISS_CONTRACTTYPE_REC,
189     x_contract_type_id             OUT NUMBER,
190     x_object_version_number        OUT NUMBER) IS
191     l_api_name                     CONSTANT VARCHAR2(30) := 'insert_row';
192     l_api_version                  CONSTANT NUMBER := 1;
193     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
194     l_contracttype_rec             ContractType_Rec_Type;
195     l_def_contracttype_rec         ContractType_Rec_Type;
196   BEGIN
197     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
198                                               G_PKG_NAME,
199                                               l_api_version,
200                                               p_api_version,
201                                               p_init_msg_list,
202                                               '_Pvt',
203                                               x_return_status);
204     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
205       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
206     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
207       RAISE FND_API.G_EXC_ERROR;
208     END IF;
209     l_contracttype_rec := p_contracttype_rec;
210     --- Validate all non-missing attributes (Item Level Validation)
211     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
212       l_return_status := Validate_Item_Attributes
213       (
214         l_contracttype_rec    ---- IN
215       );
216       --- If any errors happen abort API
217       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
218         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
219       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
220         RAISE FND_API.G_EXC_ERROR;
221       END IF;
222     END IF;
223     --- Defaulting item attributes
224     l_return_status := Default_Item_Attributes
225     (
226       l_contracttype_rec,    ---- IN
227       l_def_contracttype_rec
228     );
229     --- If any errors happen abort API
230     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
231       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
232     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
233       RAISE FND_API.G_EXC_ERROR;
234     END IF;
235     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
236       l_return_status := Validate_Item_Record(l_def_contracttype_rec);
237       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
238         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
239       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
240         RAISE FND_API.G_EXC_ERROR;
241       END IF;
242     END IF;
243     -- Set primary key value
244     l_def_contracttype_rec.contract_type_id := get_seq_id;
245     INSERT INTO CS_CONTRACT_TYPES(
246         contract_type_id,
247         name,
248         description,
249         cust_trx_type_id,
250         last_update_date,
251         last_updated_by,
252         creation_date,
253         created_by,
254         last_update_login,
255         start_date_active,
256         end_date_active,
257         attribute1,
258         attribute2,
259         attribute3,
260         attribute4,
261         attribute5,
262         attribute6,
263         attribute7,
264         attribute8,
265         attribute9,
266         attribute10,
267         attribute11,
268         attribute12,
269         attribute13,
270         attribute14,
271         attribute15,
272         context,
273         object_version_number)
274       VALUES (
275         l_def_contracttype_rec.contract_type_id,
276         l_def_contracttype_rec.name,
277         l_def_contracttype_rec.description,
278         l_def_contracttype_rec.cust_trx_type_id,
279         l_def_contracttype_rec.last_update_date,
280         l_def_contracttype_rec.last_updated_by,
281         l_def_contracttype_rec.creation_date,
282         l_def_contracttype_rec.created_by,
283         l_def_contracttype_rec.last_update_login,
284         l_def_contracttype_rec.start_date_active,
285         l_def_contracttype_rec.end_date_active,
286         l_def_contracttype_rec.attribute1,
287         l_def_contracttype_rec.attribute2,
288         l_def_contracttype_rec.attribute3,
289         l_def_contracttype_rec.attribute4,
290         l_def_contracttype_rec.attribute5,
291         l_def_contracttype_rec.attribute6,
292         l_def_contracttype_rec.attribute7,
293         l_def_contracttype_rec.attribute8,
294         l_def_contracttype_rec.attribute9,
295         l_def_contracttype_rec.attribute10,
296         l_def_contracttype_rec.attribute11,
297         l_def_contracttype_rec.attribute12,
298         l_def_contracttype_rec.attribute13,
299         l_def_contracttype_rec.attribute14,
300         l_def_contracttype_rec.attribute15,
301         l_def_contracttype_rec.context,
302         l_def_contracttype_rec.object_version_number);
303     -- Set OUT values
304     x_contract_type_id := l_def_contracttype_rec.contract_type_id;
305     x_object_version_number       := l_def_contracttype_rec.OBJECT_VERSION_NUMBER;
306     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
307   EXCEPTION
308     WHEN FND_API.G_EXC_ERROR THEN
309       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
310       (
311         l_api_name,
312         G_PKG_NAME,
313         'FND_API.G_RET_STS_ERROR',
314         x_msg_count,
315         x_msg_data,
316         '_Pvt'
317       );
318     APP_EXCEPTION.RAISE_EXCEPTION;
319     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
320       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
321       (
322         l_api_name,
323         G_PKG_NAME,
324         'FND_API.G_RET_STS_UNEXP_ERROR',
325         x_msg_count,
326         x_msg_data,
327         '_Pvt'
328       );
329     APP_EXCEPTION.RAISE_EXCEPTION;
330     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
331       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
332       (
333         l_api_name,
334         G_PKG_NAME,
335         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
336         x_msg_count,
337         x_msg_data,
338         '_Pvt'
339       );
340     APP_EXCEPTION.RAISE_EXCEPTION;
341   END insert_row;
342   PROCEDURE insert_row
343   (
344     p_api_version                  IN NUMBER,
345     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
346     p_validation_level             IN NUMBER,
347     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
348     x_return_status                OUT VARCHAR2,
349     x_msg_count                    OUT NUMBER,
350     x_msg_data                     OUT VARCHAR2,
351     p_name                         IN CS_CONTRACT_TYPES.NAME%TYPE := NULL,
352     p_description                  IN CS_CONTRACT_TYPES.DESCRIPTION%TYPE := NULL,
353     p_cust_trx_type_id             IN NUMBER := NULL,
354     p_last_update_date             IN CS_CONTRACT_TYPES.LAST_UPDATE_DATE%TYPE := NULL,
355     p_last_updated_by              IN NUMBER := NULL,
356     p_creation_date                IN CS_CONTRACT_TYPES.CREATION_DATE%TYPE := NULL,
357     p_created_by                   IN NUMBER := NULL,
358     p_last_update_login            IN NUMBER := NULL,
359     p_start_date_active            IN CS_CONTRACT_TYPES.START_DATE_ACTIVE%TYPE := NULL,
360     p_end_date_active              IN CS_CONTRACT_TYPES.END_DATE_ACTIVE%TYPE := NULL,
364     p_attribute4                   IN CS_CONTRACT_TYPES.ATTRIBUTE4%TYPE := NULL,
361     p_attribute1                   IN CS_CONTRACT_TYPES.ATTRIBUTE1%TYPE := NULL,
362     p_attribute2                   IN CS_CONTRACT_TYPES.ATTRIBUTE2%TYPE := NULL,
363     p_attribute3                   IN CS_CONTRACT_TYPES.ATTRIBUTE3%TYPE := NULL,
365     p_attribute5                   IN CS_CONTRACT_TYPES.ATTRIBUTE5%TYPE := NULL,
366     p_attribute6                   IN CS_CONTRACT_TYPES.ATTRIBUTE6%TYPE := NULL,
367     p_attribute7                   IN CS_CONTRACT_TYPES.ATTRIBUTE7%TYPE := NULL,
368     p_attribute8                   IN CS_CONTRACT_TYPES.ATTRIBUTE8%TYPE := NULL,
369     p_attribute9                   IN CS_CONTRACT_TYPES.ATTRIBUTE9%TYPE := NULL,
370     p_attribute10                  IN CS_CONTRACT_TYPES.ATTRIBUTE10%TYPE := NULL,
371     p_attribute11                  IN CS_CONTRACT_TYPES.ATTRIBUTE11%TYPE := NULL,
372     p_attribute12                  IN CS_CONTRACT_TYPES.ATTRIBUTE12%TYPE := NULL,
373     p_attribute13                  IN CS_CONTRACT_TYPES.ATTRIBUTE13%TYPE := NULL,
374     p_attribute14                  IN CS_CONTRACT_TYPES.ATTRIBUTE14%TYPE := NULL,
375     p_attribute15                  IN CS_CONTRACT_TYPES.ATTRIBUTE15%TYPE := NULL,
376     p_context                      IN CS_CONTRACT_TYPES.CONTEXT%TYPE := NULL,
377     p_object_version_number        IN NUMBER := NULL,
378     x_contract_type_id             OUT NUMBER,
379     x_object_version_number        OUT NUMBER) IS
380     l_api_name                     CONSTANT VARCHAR2(30) := 'insert_row';
381     l_api_version                  CONSTANT NUMBER := 1;
382     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
383     l_contracttype_rec             ContractType_Rec_Type;
384   BEGIN
385     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
386                                               G_PKG_NAME,
387                                               l_api_version,
388                                               p_api_version,
389                                               p_init_msg_list,
390                                               '_Pvt',
391                                               x_return_status);
392     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
393       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
394     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
395       RAISE FND_API.G_EXC_ERROR;
396     END IF;
397     l_contracttype_rec.NAME := p_name;
398     l_contracttype_rec.DESCRIPTION := p_description;
399     l_contracttype_rec.CUST_TRX_TYPE_ID := p_cust_trx_type_id;
400     l_contracttype_rec.LAST_UPDATE_DATE := p_last_update_date;
401     l_contracttype_rec.LAST_UPDATED_BY := p_last_updated_by;
402     l_contracttype_rec.CREATION_DATE := p_creation_date;
403     l_contracttype_rec.CREATED_BY := p_created_by;
404     l_contracttype_rec.LAST_UPDATE_LOGIN := p_last_update_login;
405     l_contracttype_rec.START_DATE_ACTIVE := p_start_date_active;
406     l_contracttype_rec.END_DATE_ACTIVE := p_end_date_active;
407     l_contracttype_rec.ATTRIBUTE1 := p_attribute1;
408     l_contracttype_rec.ATTRIBUTE2 := p_attribute2;
409     l_contracttype_rec.ATTRIBUTE3 := p_attribute3;
410     l_contracttype_rec.ATTRIBUTE4 := p_attribute4;
411     l_contracttype_rec.ATTRIBUTE5 := p_attribute5;
412     l_contracttype_rec.ATTRIBUTE6 := p_attribute6;
413     l_contracttype_rec.ATTRIBUTE7 := p_attribute7;
414     l_contracttype_rec.ATTRIBUTE8 := p_attribute8;
415     l_contracttype_rec.ATTRIBUTE9 := p_attribute9;
416     l_contracttype_rec.ATTRIBUTE10 := p_attribute10;
417     l_contracttype_rec.ATTRIBUTE11 := p_attribute11;
418     l_contracttype_rec.ATTRIBUTE12 := p_attribute12;
419     l_contracttype_rec.ATTRIBUTE13 := p_attribute13;
420     l_contracttype_rec.ATTRIBUTE14 := p_attribute14;
421     l_contracttype_rec.ATTRIBUTE15 := p_attribute15;
422     l_contracttype_rec.CONTEXT := p_context;
423     l_contracttype_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
424     insert_row(
425       p_api_version,
426       p_init_msg_list,
427       p_validation_level,
428       p_commit,
429       x_return_status,
430       x_msg_count,
431       x_msg_data,
432       l_contracttype_rec,
433       x_contract_type_id,
434       x_object_version_number
435     );
436     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
437   EXCEPTION
438     WHEN FND_API.G_EXC_ERROR THEN
439       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
440       (
441         l_api_name,
442         G_PKG_NAME,
443         'FND_API.G_RET_STS_ERROR',
444         x_msg_count,
445         x_msg_data,
446         '_Pvt'
447       );
448     APP_EXCEPTION.RAISE_EXCEPTION;
449     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
450       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
451       (
452         l_api_name,
453         G_PKG_NAME,
454         'FND_API.G_RET_STS_UNEXP_ERROR',
455         x_msg_count,
456         x_msg_data,
457         '_Pvt'
458       );
459     APP_EXCEPTION.RAISE_EXCEPTION;
460     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
461       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
462       (
463         l_api_name,
464         G_PKG_NAME,
465         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
466         x_msg_count,
467         x_msg_data,
468         '_Pvt'
469       );
470     APP_EXCEPTION.RAISE_EXCEPTION;
471   END insert_row;
472   Procedure lock_row
473   (
474     p_api_version                  IN NUMBER,
475     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
476     p_validation_level             IN NUMBER,
477     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
478     x_return_status                OUT VARCHAR2,
479     x_msg_count                    OUT NUMBER,
480     x_msg_data                     OUT VARCHAR2,
484     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
481     p_contract_type_id             IN NUMBER,
482     p_object_version_number        IN NUMBER) IS
483     E_Resource_Busy               EXCEPTION;
485     CURSOR lock_csr IS
486     SELECT OBJECT_VERSION_NUMBER
487      FROM CS_CONTRACT_TYPES
488     WHERE
489       CONTRACT_TYPE_ID = p_contract_type_id AND
490       OBJECT_VERSION_NUMBER = p_object_version_number
491     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
492 
493     CURSOR  lchk_csr IS
494     SELECT OBJECT_VERSION_NUMBER
495      FROM CS_CONTRACT_TYPES
496     WHERE
497       CONTRACT_TYPE_ID = p_contract_type_id
498       ;
499     l_api_name                     CONSTANT VARCHAR2(30) := 'lock_row';
500     l_api_version                  CONSTANT NUMBER := 1;
501     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
502     l_object_version_number       CS_CONTRACT_TYPES.OBJECT_VERSION_NUMBER%TYPE;
503     lc_object_version_number      CS_CONTRACT_TYPES.OBJECT_VERSION_NUMBER%TYPE;
504     l_row_notfound                BOOLEAN := FALSE;
505     lc_row_notfound               BOOLEAN := FALSE;
506   BEGIN
507     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
508                                               G_PKG_NAME,
509                                               l_api_version,
510                                               p_api_version,
511                                               p_init_msg_list,
512                                               '_Pvt',
513                                               x_return_status);
514     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
515       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
516     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
517       RAISE FND_API.G_EXC_ERROR;
518     END IF;
519     BEGIN
520       OPEN lock_csr;
521       FETCH lock_csr INTO l_object_version_number;
522       l_row_notfound := lock_csr%NOTFOUND;
523       CLOSE lock_csr;
524     EXCEPTION
525       WHEN E_Resource_Busy THEN
526         IF (lock_csr%ISOPEN) THEN
527           CLOSE lock_csr;
528         END IF;
529         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
530         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
531     END;
532 
533     IF ( l_row_notfound ) THEN
534       OPEN lchk_csr;
535       FETCH lchk_csr INTO lc_object_version_number;
536       lc_row_notfound := lchk_csr%NOTFOUND;
537       CLOSE lchk_csr;
538     END IF;
539     IF (lc_row_notfound) THEN
540       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
541       RAISE FND_API.G_EXC_ERROR;
542     ELSIF lc_object_version_number > p_object_version_number THEN
543       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
544       RAISE FND_API.G_EXC_ERROR;
545     ELSIF lc_object_version_number <> p_object_version_number THEN
546       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
547       RAISE FND_API.G_EXC_ERROR;
548     ELSIF lc_object_version_number = -1 THEN
549       TAPI_DEV_KIT.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
550       RAISE FND_API.G_EXC_ERROR;
551     END IF;
552     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
553   EXCEPTION
554     WHEN FND_API.G_EXC_ERROR THEN
555       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
556       (
557         l_api_name,
558         G_PKG_NAME,
559         'FND_API.G_RET_STS_ERROR',
560         x_msg_count,
561         x_msg_data,
562         '_Pvt'
563       );
564     APP_EXCEPTION.RAISE_EXCEPTION;
565     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
566       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
567       (
568         l_api_name,
569         G_PKG_NAME,
570         'FND_API.G_RET_STS_UNEXP_ERROR',
571         x_msg_count,
572         x_msg_data,
573         '_Pvt'
574       );
575     APP_EXCEPTION.RAISE_EXCEPTION;
576     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
577       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
578       (
579         l_api_name,
580         G_PKG_NAME,
581         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
582         x_msg_count,
583         x_msg_data,
584         '_Pvt'
585       );
586     APP_EXCEPTION.RAISE_EXCEPTION;
587   END lock_row;
588   Procedure update_row
589   (
590     p_api_version                  IN NUMBER,
591     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
592     p_validation_level             IN NUMBER,
593     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
594     x_return_status                OUT VARCHAR2,
595     x_msg_count                    OUT NUMBER,
596     x_msg_data                     OUT VARCHAR2,
597     p_contracttype_val_rec         IN ContractType_Val_Rec_Type := G_MISS_CONTRACTTYPE_VAL_REC,
598     x_object_version_number        OUT NUMBER) IS
599     l_api_name                     CONSTANT VARCHAR2(30) := 'update_row';
600     l_api_version                  CONSTANT NUMBER := 1;
601     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
602     l_contracttype_rec             ContractType_Rec_Type;
603     l_def_contracttype_rec         ContractType_Rec_Type;
604     FUNCTION populate_new_record (
605       p_contracttype_rec	IN ContractType_Rec_Type,
606       x_contracttype_rec	OUT ContractType_Rec_Type
607     ) RETURN VARCHAR2 IS
608       CURSOR cs_contract_types_pk_csr (p_contract_type_id   IN NUMBER) IS
609       SELECT *
610         FROM Cs_Contract_Types
611        WHERE cs_contract_types.contract_type_id = p_contract_type_id;
612       l_cs_contract_types_pk         cs_contract_types_pk_csr%ROWTYPE;
613       l_row_notfound		BOOLEAN := TRUE;
614       l_return_status		VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
618       OPEN cs_contract_types_pk_csr (p_contracttype_rec.contract_type_id);
615     BEGIN
616       x_contracttype_rec := p_contracttype_rec;
617       -- Get current database values
619       FETCH cs_contract_types_pk_csr INTO l_cs_contract_types_pk;
620       l_row_notfound := cs_contract_types_pk_csr%NOTFOUND;
621       CLOSE cs_contract_types_pk_csr;
622       IF (l_row_notfound) THEN
623         l_return_status := FND_API.G_RET_STS_ERROR;
624       END IF;
625       IF (x_contracttype_rec.contract_type_id = TAPI_DEV_KIT.G_MISS_NUM)
626       THEN
627         x_contracttype_rec.contract_type_id := l_cs_contract_types_pk.contract_type_id;
628       END IF;
629       IF (x_contracttype_rec.name = TAPI_DEV_KIT.G_MISS_CHAR)
630       THEN
631         x_contracttype_rec.name := l_cs_contract_types_pk.name;
632       END IF;
633       IF (x_contracttype_rec.description = TAPI_DEV_KIT.G_MISS_CHAR)
634       THEN
635         x_contracttype_rec.description := l_cs_contract_types_pk.description;
636       END IF;
637       IF (x_contracttype_rec.cust_trx_type_id = TAPI_DEV_KIT.G_MISS_NUM)
638       THEN
639         x_contracttype_rec.cust_trx_type_id := l_cs_contract_types_pk.cust_trx_type_id;
640       END IF;
641       IF (x_contracttype_rec.last_update_date = TAPI_DEV_KIT.G_MISS_DATE)
642       THEN
643         x_contracttype_rec.last_update_date := l_cs_contract_types_pk.last_update_date;
644       END IF;
645       IF (x_contracttype_rec.last_updated_by = TAPI_DEV_KIT.G_MISS_NUM)
646       THEN
647         x_contracttype_rec.last_updated_by := l_cs_contract_types_pk.last_updated_by;
648       END IF;
649       IF (x_contracttype_rec.creation_date = TAPI_DEV_KIT.G_MISS_DATE)
650       THEN
651         x_contracttype_rec.creation_date := l_cs_contract_types_pk.creation_date;
652       END IF;
653       IF (x_contracttype_rec.created_by = TAPI_DEV_KIT.G_MISS_NUM)
654       THEN
655         x_contracttype_rec.created_by := l_cs_contract_types_pk.created_by;
656       END IF;
657       IF (x_contracttype_rec.last_update_login = TAPI_DEV_KIT.G_MISS_NUM)
658       THEN
659         x_contracttype_rec.last_update_login := l_cs_contract_types_pk.last_update_login;
660       END IF;
661       IF (x_contracttype_rec.start_date_active = TAPI_DEV_KIT.G_MISS_DATE)
662       THEN
663         x_contracttype_rec.start_date_active := l_cs_contract_types_pk.start_date_active;
664       END IF;
665       IF (x_contracttype_rec.end_date_active = TAPI_DEV_KIT.G_MISS_DATE)
666       THEN
667         x_contracttype_rec.end_date_active := l_cs_contract_types_pk.end_date_active;
668       END IF;
669       IF (x_contracttype_rec.attribute1 = TAPI_DEV_KIT.G_MISS_CHAR)
670       THEN
671         x_contracttype_rec.attribute1 := l_cs_contract_types_pk.attribute1;
672       END IF;
673       IF (x_contracttype_rec.attribute2 = TAPI_DEV_KIT.G_MISS_CHAR)
674       THEN
675         x_contracttype_rec.attribute2 := l_cs_contract_types_pk.attribute2;
676       END IF;
677       IF (x_contracttype_rec.attribute3 = TAPI_DEV_KIT.G_MISS_CHAR)
678       THEN
679         x_contracttype_rec.attribute3 := l_cs_contract_types_pk.attribute3;
680       END IF;
681       IF (x_contracttype_rec.attribute4 = TAPI_DEV_KIT.G_MISS_CHAR)
682       THEN
683         x_contracttype_rec.attribute4 := l_cs_contract_types_pk.attribute4;
684       END IF;
685       IF (x_contracttype_rec.attribute5 = TAPI_DEV_KIT.G_MISS_CHAR)
686       THEN
687         x_contracttype_rec.attribute5 := l_cs_contract_types_pk.attribute5;
688       END IF;
689       IF (x_contracttype_rec.attribute6 = TAPI_DEV_KIT.G_MISS_CHAR)
690       THEN
691         x_contracttype_rec.attribute6 := l_cs_contract_types_pk.attribute6;
692       END IF;
693       IF (x_contracttype_rec.attribute7 = TAPI_DEV_KIT.G_MISS_CHAR)
694       THEN
695         x_contracttype_rec.attribute7 := l_cs_contract_types_pk.attribute7;
696       END IF;
697       IF (x_contracttype_rec.attribute8 = TAPI_DEV_KIT.G_MISS_CHAR)
698       THEN
699         x_contracttype_rec.attribute8 := l_cs_contract_types_pk.attribute8;
700       END IF;
701       IF (x_contracttype_rec.attribute9 = TAPI_DEV_KIT.G_MISS_CHAR)
702       THEN
703         x_contracttype_rec.attribute9 := l_cs_contract_types_pk.attribute9;
704       END IF;
705       IF (x_contracttype_rec.attribute10 = TAPI_DEV_KIT.G_MISS_CHAR)
706       THEN
707         x_contracttype_rec.attribute10 := l_cs_contract_types_pk.attribute10;
708       END IF;
709       IF (x_contracttype_rec.attribute11 = TAPI_DEV_KIT.G_MISS_CHAR)
710       THEN
711         x_contracttype_rec.attribute11 := l_cs_contract_types_pk.attribute11;
712       END IF;
713       IF (x_contracttype_rec.attribute12 = TAPI_DEV_KIT.G_MISS_CHAR)
714       THEN
715         x_contracttype_rec.attribute12 := l_cs_contract_types_pk.attribute12;
716       END IF;
717       IF (x_contracttype_rec.attribute13 = TAPI_DEV_KIT.G_MISS_CHAR)
718       THEN
719         x_contracttype_rec.attribute13 := l_cs_contract_types_pk.attribute13;
720       END IF;
721       IF (x_contracttype_rec.attribute14 = TAPI_DEV_KIT.G_MISS_CHAR)
722       THEN
723         x_contracttype_rec.attribute14 := l_cs_contract_types_pk.attribute14;
724       END IF;
725       IF (x_contracttype_rec.attribute15 = TAPI_DEV_KIT.G_MISS_CHAR)
726       THEN
727         x_contracttype_rec.attribute15 := l_cs_contract_types_pk.attribute15;
728       END IF;
729       IF (x_contracttype_rec.context = TAPI_DEV_KIT.G_MISS_CHAR)
730       THEN
731         x_contracttype_rec.context := l_cs_contract_types_pk.context;
732       END IF;
733       IF (x_contracttype_rec.object_version_number = TAPI_DEV_KIT.G_MISS_NUM)
734       THEN
735         x_contracttype_rec.object_version_number := l_cs_contract_types_pk.object_version_number;
736       END IF;
737       RETURN(l_return_status);
738     END populate_new_record;
739   BEGIN
743                                               p_api_version,
740     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
741                                               G_PKG_NAME,
742                                               l_api_version,
744                                               p_init_msg_list,
745                                               '_Pvt',
746                                               x_return_status);
747     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
748       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
749     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
750       RAISE FND_API.G_EXC_ERROR;
751     END IF;
752     migrate(p_contracttype_val_rec, l_contracttype_rec);
753     --- Defaulting item attributes
754     l_return_status := Default_Item_Attributes
755     (
756       l_contracttype_rec,    ---- IN
757       l_def_contracttype_rec
758     );
759     --- If any errors happen abort API
760     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
761       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
762     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
763       RAISE FND_API.G_EXC_ERROR;
764     END IF;
765     l_return_status := populate_new_record(l_def_contracttype_rec, l_def_contracttype_rec);
766     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
767       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
768     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
769       RAISE FND_API.G_EXC_ERROR;
770     END IF;
771     --- Validate all non-missing attributes (Item Level Validation)
772     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
773       l_return_status := Validate_Item_Attributes
774       (
775         l_def_contracttype_rec    ---- IN
776       );
777       --- If any errors happen abort API
778       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
779         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
780       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
781         RAISE FND_API.G_EXC_ERROR;
782       END IF;
783     END IF;
784     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
785       l_return_status := Validate_Item_Record(l_def_contracttype_rec);
786       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
787         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
788       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
789         RAISE FND_API.G_EXC_ERROR;
790       END IF;
791     END IF;
792     UPDATE  CS_CONTRACT_TYPES
793     SET
794         CONTRACT_TYPE_ID = l_def_contracttype_rec.contract_type_id ,
795         NAME = l_def_contracttype_rec.name ,
796         DESCRIPTION = l_def_contracttype_rec.description ,
797         CUST_TRX_TYPE_ID = l_def_contracttype_rec.cust_trx_type_id ,
798         LAST_UPDATE_DATE = l_def_contracttype_rec.last_update_date ,
799         LAST_UPDATED_BY = l_def_contracttype_rec.last_updated_by ,
800         CREATION_DATE = l_def_contracttype_rec.creation_date ,
801         CREATED_BY = l_def_contracttype_rec.created_by ,
802         LAST_UPDATE_LOGIN = l_def_contracttype_rec.last_update_login ,
803         START_DATE_ACTIVE = l_def_contracttype_rec.start_date_active ,
804         END_DATE_ACTIVE = l_def_contracttype_rec.end_date_active ,
805         ATTRIBUTE1 = l_def_contracttype_rec.attribute1 ,
806         ATTRIBUTE2 = l_def_contracttype_rec.attribute2 ,
807         ATTRIBUTE3 = l_def_contracttype_rec.attribute3 ,
808         ATTRIBUTE4 = l_def_contracttype_rec.attribute4 ,
809         ATTRIBUTE5 = l_def_contracttype_rec.attribute5 ,
810         ATTRIBUTE6 = l_def_contracttype_rec.attribute6 ,
811         ATTRIBUTE7 = l_def_contracttype_rec.attribute7 ,
812         ATTRIBUTE8 = l_def_contracttype_rec.attribute8 ,
813         ATTRIBUTE9 = l_def_contracttype_rec.attribute9 ,
814         ATTRIBUTE10 = l_def_contracttype_rec.attribute10 ,
815         ATTRIBUTE11 = l_def_contracttype_rec.attribute11 ,
816         ATTRIBUTE12 = l_def_contracttype_rec.attribute12 ,
817         ATTRIBUTE13 = l_def_contracttype_rec.attribute13 ,
818         ATTRIBUTE14 = l_def_contracttype_rec.attribute14 ,
819         ATTRIBUTE15 = l_def_contracttype_rec.attribute15 ,
820         CONTEXT = l_def_contracttype_rec.context ,
821         OBJECT_VERSION_NUMBER = l_def_contracttype_rec.object_version_number
822         WHERE
823           CONTRACT_TYPE_ID = l_def_contracttype_rec.contract_type_id
824           ;
825     x_object_version_number := l_def_contracttype_rec.OBJECT_VERSION_NUMBER;
826     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
827   EXCEPTION
828     WHEN FND_API.G_EXC_ERROR THEN
829       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
830       (
831         l_api_name,
832         G_PKG_NAME,
833         'FND_API.G_RET_STS_ERROR',
834         x_msg_count,
835         x_msg_data,
836         '_Pvt'
837       );
838     APP_EXCEPTION.RAISE_EXCEPTION;
839     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
840       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
841       (
842         l_api_name,
843         G_PKG_NAME,
844         'FND_API.G_RET_STS_UNEXP_ERROR',
845         x_msg_count,
846         x_msg_data,
847         '_Pvt'
848       );
849     APP_EXCEPTION.RAISE_EXCEPTION;
850     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
851       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
852       (
853         l_api_name,
854         G_PKG_NAME,
855         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
856         x_msg_count,
857         x_msg_data,
858         '_Pvt'
859       );
860     APP_EXCEPTION.RAISE_EXCEPTION;
861   END update_row;
862   Procedure update_row
863   (
864     p_api_version                  IN NUMBER,
865     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
866     p_validation_level             IN NUMBER,
870     x_msg_data                     OUT VARCHAR2,
867     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
868     x_return_status                OUT VARCHAR2,
869     x_msg_count                    OUT NUMBER,
871     p_contract_type_id             IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
872     p_name                         IN CS_CONTRACT_TYPES.NAME%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
873     p_description                  IN CS_CONTRACT_TYPES.DESCRIPTION%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
874     p_cust_trx_type_id             IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
875     p_last_update_date             IN CS_CONTRACT_TYPES.LAST_UPDATE_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
876     p_last_updated_by              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
877     p_creation_date                IN CS_CONTRACT_TYPES.CREATION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
878     p_created_by                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
879     p_last_update_login            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
880     p_start_date_active            IN CS_CONTRACT_TYPES.START_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
881     p_end_date_active              IN CS_CONTRACT_TYPES.END_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
882     p_attribute1                   IN CS_CONTRACT_TYPES.ATTRIBUTE1%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
883     p_attribute2                   IN CS_CONTRACT_TYPES.ATTRIBUTE2%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
884     p_attribute3                   IN CS_CONTRACT_TYPES.ATTRIBUTE3%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
885     p_attribute4                   IN CS_CONTRACT_TYPES.ATTRIBUTE4%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
886     p_attribute5                   IN CS_CONTRACT_TYPES.ATTRIBUTE5%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
887     p_attribute6                   IN CS_CONTRACT_TYPES.ATTRIBUTE6%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
888     p_attribute7                   IN CS_CONTRACT_TYPES.ATTRIBUTE7%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
889     p_attribute8                   IN CS_CONTRACT_TYPES.ATTRIBUTE8%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
890     p_attribute9                   IN CS_CONTRACT_TYPES.ATTRIBUTE9%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
891     p_attribute10                  IN CS_CONTRACT_TYPES.ATTRIBUTE10%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
892     p_attribute11                  IN CS_CONTRACT_TYPES.ATTRIBUTE11%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
893     p_attribute12                  IN CS_CONTRACT_TYPES.ATTRIBUTE12%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
894     p_attribute13                  IN CS_CONTRACT_TYPES.ATTRIBUTE13%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
895     p_attribute14                  IN CS_CONTRACT_TYPES.ATTRIBUTE14%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
896     p_attribute15                  IN CS_CONTRACT_TYPES.ATTRIBUTE15%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
897     p_context                      IN CS_CONTRACT_TYPES.CONTEXT%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
898     p_object_version_number        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
899     x_object_version_number        OUT NUMBER) IS
900     l_api_name                     CONSTANT VARCHAR2(30) := 'update_row';
901     l_api_version                  CONSTANT NUMBER := 1;
902     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
903     l_contracttype_rec             ContractType_Val_Rec_Type;
904   BEGIN
905     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
906                                               G_PKG_NAME,
907                                               l_api_version,
908                                               p_api_version,
909                                               p_init_msg_list,
910                                               '_Pvt',
911                                               x_return_status);
912     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
913       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
914     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
915       RAISE FND_API.G_EXC_ERROR;
916     END IF;
917     l_contracttype_rec.CONTRACT_TYPE_ID := p_contract_type_id;
918     l_contracttype_rec.NAME := p_name;
919     l_contracttype_rec.DESCRIPTION := p_description;
920     l_contracttype_rec.CUST_TRX_TYPE_ID := p_cust_trx_type_id;
921     l_contracttype_rec.LAST_UPDATE_DATE := p_last_update_date;
922     l_contracttype_rec.LAST_UPDATED_BY := p_last_updated_by;
923     l_contracttype_rec.CREATION_DATE := p_creation_date;
924     l_contracttype_rec.CREATED_BY := p_created_by;
925     l_contracttype_rec.LAST_UPDATE_LOGIN := p_last_update_login;
926     l_contracttype_rec.START_DATE_ACTIVE := p_start_date_active;
927     l_contracttype_rec.END_DATE_ACTIVE := p_end_date_active;
928     l_contracttype_rec.ATTRIBUTE1 := p_attribute1;
929     l_contracttype_rec.ATTRIBUTE2 := p_attribute2;
930     l_contracttype_rec.ATTRIBUTE3 := p_attribute3;
931     l_contracttype_rec.ATTRIBUTE4 := p_attribute4;
932     l_contracttype_rec.ATTRIBUTE5 := p_attribute5;
933     l_contracttype_rec.ATTRIBUTE6 := p_attribute6;
934     l_contracttype_rec.ATTRIBUTE7 := p_attribute7;
935     l_contracttype_rec.ATTRIBUTE8 := p_attribute8;
936     l_contracttype_rec.ATTRIBUTE9 := p_attribute9;
937     l_contracttype_rec.ATTRIBUTE10 := p_attribute10;
938     l_contracttype_rec.ATTRIBUTE11 := p_attribute11;
939     l_contracttype_rec.ATTRIBUTE12 := p_attribute12;
940     l_contracttype_rec.ATTRIBUTE13 := p_attribute13;
941     l_contracttype_rec.ATTRIBUTE14 := p_attribute14;
942     l_contracttype_rec.ATTRIBUTE15 := p_attribute15;
943     l_contracttype_rec.CONTEXT := p_context;
944     l_contracttype_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
945     update_row(
946       p_api_version,
947       p_init_msg_list,
948       p_validation_level,
949       p_commit,
950       x_return_status,
951       x_msg_count,
952       x_msg_data,
953       l_contracttype_rec,
954       x_object_version_number
955     );
956     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
957   EXCEPTION
958     WHEN FND_API.G_EXC_ERROR THEN
959       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
960       (
961         l_api_name,
962         G_PKG_NAME,
966         '_Pvt'
963         'FND_API.G_RET_STS_ERROR',
964         x_msg_count,
965         x_msg_data,
967       );
968     APP_EXCEPTION.RAISE_EXCEPTION;
969     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
970       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
971       (
972         l_api_name,
973         G_PKG_NAME,
974         'FND_API.G_RET_STS_UNEXP_ERROR',
975         x_msg_count,
976         x_msg_data,
977         '_Pvt'
978       );
979     APP_EXCEPTION.RAISE_EXCEPTION;
980     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
981       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
982       (
983         l_api_name,
984         G_PKG_NAME,
985         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
986         x_msg_count,
987         x_msg_data,
988         '_Pvt'
989       );
990     APP_EXCEPTION.RAISE_EXCEPTION;
991   END update_row;
992   Procedure delete_row
993   (
994     p_api_version                  IN NUMBER,
995     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
996     p_validation_level             IN NUMBER,
997     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
998     x_return_status                OUT VARCHAR2,
999     x_msg_count                    OUT NUMBER,
1000     x_msg_data                     OUT VARCHAR2,
1001     p_contract_type_id             IN NUMBER) IS
1002     l_api_name                     CONSTANT VARCHAR2(30) := 'delete_row';
1003     l_api_version                  CONSTANT NUMBER := 1;
1004     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1005   BEGIN
1006     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1007                                               G_PKG_NAME,
1008                                               l_api_version,
1009                                               p_api_version,
1010                                               p_init_msg_list,
1011                                               '_Pvt',
1012                                               x_return_status);
1013     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1014       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1015     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1016       RAISE FND_API.G_EXC_ERROR;
1017     END IF;
1018     DELETE  FROM CS_CONTRACT_TYPES
1019     WHERE
1020       CONTRACT_TYPE_ID = p_contract_type_id
1021       ;
1022     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1023   EXCEPTION
1024     WHEN FND_API.G_EXC_ERROR THEN
1025       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1026       (
1027         l_api_name,
1028         G_PKG_NAME,
1029         'FND_API.G_RET_STS_ERROR',
1030         x_msg_count,
1031         x_msg_data,
1032         '_Pvt'
1033       );
1034     APP_EXCEPTION.RAISE_EXCEPTION;
1035     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1036       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1037       (
1038         l_api_name,
1039         G_PKG_NAME,
1040         'FND_API.G_RET_STS_UNEXP_ERROR',
1041         x_msg_count,
1042         x_msg_data,
1043         '_Pvt'
1044       );
1045     APP_EXCEPTION.RAISE_EXCEPTION;
1046     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1047       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1048       (
1049         l_api_name,
1050         G_PKG_NAME,
1051         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1052         x_msg_count,
1053         x_msg_data,
1054         '_Pvt'
1055       );
1056     APP_EXCEPTION.RAISE_EXCEPTION;
1057   END delete_row;
1058   PROCEDURE validate_row
1059   (
1060     p_api_version                  IN NUMBER,
1061     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1062     p_validation_level             IN NUMBER,
1063     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1064     x_return_status                OUT VARCHAR2,
1065     x_msg_count                    OUT NUMBER,
1066     x_msg_data                     OUT VARCHAR2,
1067     p_contracttype_val_rec         IN ContractType_Val_Rec_Type := G_MISS_CONTRACTTYPE_VAL_REC) IS
1068     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_row';
1069     l_api_version                  CONSTANT NUMBER := 1;
1070     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1071     l_contracttype_rec             ContractType_Rec_Type;
1072     l_def_contracttype_rec         ContractType_Rec_Type;
1073   BEGIN
1074     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1075                                               G_PKG_NAME,
1076                                               l_api_version,
1077                                               p_api_version,
1078                                               p_init_msg_list,
1079                                               '_Pvt',
1080                                               x_return_status);
1081     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1082       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1083     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1084       RAISE FND_API.G_EXC_ERROR;
1085     END IF;
1086     migrate(p_contracttype_val_rec, l_contracttype_rec);
1087     --- Validate all non-missing attributes (Item Level Validation)
1088     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
1089       l_return_status := Validate_Item_Attributes
1090       (
1091         l_contracttype_rec    ---- IN
1092       );
1093       --- If any errors happen abort API
1094       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1095         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1096       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1097         RAISE FND_API.G_EXC_ERROR;
1098       END IF;
1099     END IF;
1100     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
1104       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1101       l_return_status := Validate_Item_Record(l_def_contracttype_rec);
1102       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1103         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1105         RAISE FND_API.G_EXC_ERROR;
1106       END IF;
1107     END IF;
1108     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1109   EXCEPTION
1110     WHEN FND_API.G_EXC_ERROR THEN
1111       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1112       (
1113         l_api_name,
1114         G_PKG_NAME,
1115         'FND_API.G_RET_STS_ERROR',
1116         x_msg_count,
1117         x_msg_data,
1118         '_Pvt'
1119       );
1120     APP_EXCEPTION.RAISE_EXCEPTION;
1121     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1122       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1123       (
1124         l_api_name,
1125         G_PKG_NAME,
1126         'FND_API.G_RET_STS_UNEXP_ERROR',
1127         x_msg_count,
1128         x_msg_data,
1129         '_Pvt'
1130       );
1131     APP_EXCEPTION.RAISE_EXCEPTION;
1132     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1133       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1134       (
1135         l_api_name,
1136         G_PKG_NAME,
1137         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1138         x_msg_count,
1139         x_msg_data,
1140         '_Pvt'
1141       );
1142     APP_EXCEPTION.RAISE_EXCEPTION;
1143   END validate_row;
1144   PROCEDURE validate_row
1145   (
1146     p_api_version                  IN NUMBER,
1147     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1148     p_validation_level             IN NUMBER,
1149     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1150     x_return_status                OUT VARCHAR2,
1151     x_msg_count                    OUT NUMBER,
1152     x_msg_data                     OUT VARCHAR2,
1153     p_contract_type_id             IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1154     p_name                         IN CS_CONTRACT_TYPES.NAME%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1155     p_description                  IN CS_CONTRACT_TYPES.DESCRIPTION%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1156     p_cust_trx_type_id             IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1157     p_last_update_date             IN CS_CONTRACT_TYPES.LAST_UPDATE_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1158     p_last_updated_by              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1159     p_creation_date                IN CS_CONTRACT_TYPES.CREATION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1160     p_created_by                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1161     p_last_update_login            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1162     p_start_date_active            IN CS_CONTRACT_TYPES.START_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1163     p_end_date_active              IN CS_CONTRACT_TYPES.END_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1164     p_attribute1                   IN CS_CONTRACT_TYPES.ATTRIBUTE1%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1165     p_attribute2                   IN CS_CONTRACT_TYPES.ATTRIBUTE2%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1166     p_attribute3                   IN CS_CONTRACT_TYPES.ATTRIBUTE3%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1167     p_attribute4                   IN CS_CONTRACT_TYPES.ATTRIBUTE4%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1168     p_attribute5                   IN CS_CONTRACT_TYPES.ATTRIBUTE5%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1169     p_attribute6                   IN CS_CONTRACT_TYPES.ATTRIBUTE6%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1170     p_attribute7                   IN CS_CONTRACT_TYPES.ATTRIBUTE7%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1171     p_attribute8                   IN CS_CONTRACT_TYPES.ATTRIBUTE8%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1172     p_attribute9                   IN CS_CONTRACT_TYPES.ATTRIBUTE9%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1173     p_attribute10                  IN CS_CONTRACT_TYPES.ATTRIBUTE10%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1174     p_attribute11                  IN CS_CONTRACT_TYPES.ATTRIBUTE11%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1175     p_attribute12                  IN CS_CONTRACT_TYPES.ATTRIBUTE12%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1176     p_attribute13                  IN CS_CONTRACT_TYPES.ATTRIBUTE13%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1177     p_attribute14                  IN CS_CONTRACT_TYPES.ATTRIBUTE14%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1178     p_attribute15                  IN CS_CONTRACT_TYPES.ATTRIBUTE15%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1179     p_context                      IN CS_CONTRACT_TYPES.CONTEXT%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1180     p_object_version_number        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM) IS
1181     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_row';
1182     l_api_version                  CONSTANT NUMBER := 1;
1183     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1184     l_contracttype_rec             ContractType_Val_Rec_Type;
1185   BEGIN
1186     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1187                                               G_PKG_NAME,
1188                                               l_api_version,
1189                                               p_api_version,
1190                                               p_init_msg_list,
1191                                               '_Pvt',
1192                                               x_return_status);
1193     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1194       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1195     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1196       RAISE FND_API.G_EXC_ERROR;
1197     END IF;
1198     l_contracttype_rec.CONTRACT_TYPE_ID := p_contract_type_id;
1199     l_contracttype_rec.NAME := p_name;
1200     l_contracttype_rec.DESCRIPTION := p_description;
1201     l_contracttype_rec.CUST_TRX_TYPE_ID := p_cust_trx_type_id;
1202     l_contracttype_rec.LAST_UPDATE_DATE := p_last_update_date;
1203     l_contracttype_rec.LAST_UPDATED_BY := p_last_updated_by;
1204     l_contracttype_rec.CREATION_DATE := p_creation_date;
1205     l_contracttype_rec.CREATED_BY := p_created_by;
1206     l_contracttype_rec.LAST_UPDATE_LOGIN := p_last_update_login;
1207     l_contracttype_rec.START_DATE_ACTIVE := p_start_date_active;
1208     l_contracttype_rec.END_DATE_ACTIVE := p_end_date_active;
1209     l_contracttype_rec.ATTRIBUTE1 := p_attribute1;
1210     l_contracttype_rec.ATTRIBUTE2 := p_attribute2;
1211     l_contracttype_rec.ATTRIBUTE3 := p_attribute3;
1212     l_contracttype_rec.ATTRIBUTE4 := p_attribute4;
1213     l_contracttype_rec.ATTRIBUTE5 := p_attribute5;
1214     l_contracttype_rec.ATTRIBUTE6 := p_attribute6;
1215     l_contracttype_rec.ATTRIBUTE7 := p_attribute7;
1216     l_contracttype_rec.ATTRIBUTE8 := p_attribute8;
1217     l_contracttype_rec.ATTRIBUTE9 := p_attribute9;
1218     l_contracttype_rec.ATTRIBUTE10 := p_attribute10;
1219     l_contracttype_rec.ATTRIBUTE11 := p_attribute11;
1220     l_contracttype_rec.ATTRIBUTE12 := p_attribute12;
1221     l_contracttype_rec.ATTRIBUTE13 := p_attribute13;
1222     l_contracttype_rec.ATTRIBUTE14 := p_attribute14;
1223     l_contracttype_rec.ATTRIBUTE15 := p_attribute15;
1224     l_contracttype_rec.CONTEXT := p_context;
1225     l_contracttype_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
1226     validate_row(
1227       p_api_version,
1228       p_init_msg_list,
1229       p_validation_level,
1230       p_commit,
1231       x_return_status,
1232       x_msg_count,
1233       x_msg_data,
1234       l_contracttype_rec
1235     );
1236     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1237   EXCEPTION
1238     WHEN FND_API.G_EXC_ERROR THEN
1239       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1240       (
1241         l_api_name,
1242         G_PKG_NAME,
1243         'FND_API.G_RET_STS_ERROR',
1244         x_msg_count,
1245         x_msg_data,
1246         '_Pvt'
1247       );
1248     APP_EXCEPTION.RAISE_EXCEPTION;
1249     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1250       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1251       (
1252         l_api_name,
1253         G_PKG_NAME,
1254         'FND_API.G_RET_STS_UNEXP_ERROR',
1255         x_msg_count,
1256         x_msg_data,
1257         '_Pvt'
1258       );
1259     APP_EXCEPTION.RAISE_EXCEPTION;
1260     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1261       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1262       (
1263         l_api_name,
1264         G_PKG_NAME,
1265         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1266         x_msg_count,
1267         x_msg_data,
1268         '_Pvt'
1269       );
1270     APP_EXCEPTION.RAISE_EXCEPTION;
1271   END validate_row;
1272 END CS_CONTRACTTYPE_PVT;