DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_CONTRACTSTATS_PVT

Source


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