DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_BILLINGTYPE_PVT

Source


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