DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_CONTINTF_PVT

Source


1 PACKAGE BODY CS_CONTINTF_PVT AS
2 /* $Header: csctcbib.pls 115.1 99/07/16 08:49:03 porting ship $ */
3   FUNCTION get_seq_id RETURN NUMBER IS
4     CURSOR get_seq_id_csr IS
5       SELECT CS_CONT_BILL_IFACE_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_contintf_rec IN  ContIntf_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_contintf_rec.cp_service_transaction_id = TAPI_DEV_KIT.G_MISS_NUM OR
25        p_contintf_rec.cp_service_transaction_id IS NULL
26     THEN
27       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'cp_service_transaction_id');
28       l_return_status := FND_API.G_RET_STS_ERROR;
29     ELSIF p_contintf_rec.cp_service_id = TAPI_DEV_KIT.G_MISS_NUM OR
30           p_contintf_rec.cp_service_id IS NULL
31     THEN
32       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'cp_service_id');
33       l_return_status := FND_API.G_RET_STS_ERROR;
34     ELSIF p_contintf_rec.contract_id = TAPI_DEV_KIT.G_MISS_NUM OR
35           p_contintf_rec.contract_id IS NULL
36     THEN
37       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'contract_id');
38       l_return_status := FND_API.G_RET_STS_ERROR;
39     ELSIF p_contintf_rec.ar_trx_type = TAPI_DEV_KIT.G_MISS_CHAR OR
40           p_contintf_rec.ar_trx_type IS NULL
41     THEN
42       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'ar_trx_type');
43       l_return_status := FND_API.G_RET_STS_ERROR;
44     ELSIF p_contintf_rec.trx_start_date = TAPI_DEV_KIT.G_MISS_DATE OR
45           p_contintf_rec.trx_start_date IS NULL
46     THEN
47       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'trx_start_date');
48       l_return_status := FND_API.G_RET_STS_ERROR;
49     ELSIF p_contintf_rec.trx_end_date = TAPI_DEV_KIT.G_MISS_DATE OR
50           p_contintf_rec.trx_end_date IS NULL
51     THEN
52       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'trx_end_date');
53       l_return_status := FND_API.G_RET_STS_ERROR;
54     ELSIF p_contintf_rec.trx_date = TAPI_DEV_KIT.G_MISS_DATE OR
55           p_contintf_rec.trx_date IS NULL
56     THEN
57       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'trx_date');
58       l_return_status := FND_API.G_RET_STS_ERROR;
59     ELSIF p_contintf_rec.trx_amount = TAPI_DEV_KIT.G_MISS_NUM OR
60           p_contintf_rec.trx_amount IS NULL
61     THEN
62       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'trx_amount');
63       l_return_status := FND_API.G_RET_STS_ERROR;
64     ELSIF p_contintf_rec.created_by = TAPI_DEV_KIT.G_MISS_NUM OR
65           p_contintf_rec.created_by IS NULL
66     THEN
67       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'created_by');
68       l_return_status := FND_API.G_RET_STS_ERROR;
69     ELSIF p_contintf_rec.creation_date = TAPI_DEV_KIT.G_MISS_DATE OR
70           p_contintf_rec.creation_date IS NULL
71     THEN
72       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'creation_date');
73       l_return_status := FND_API.G_RET_STS_ERROR;
74     END IF;
75     RETURN(l_return_status);
76   END Validate_Item_Attributes;
77 
78 
79   ----- Default
80   FUNCTION Default_Item_Attributes
81   (
82     p_contintf_rec IN  ContIntf_Rec_Type,
83     l_def_contintf_rec OUT  ContIntf_Rec_Type
84   )
85   RETURN VARCHAR2
86   IS
87     l_return_status 	VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
88   BEGIN
89     l_def_contintf_rec := p_contintf_rec;
90     l_def_contintf_rec.OBJECT_VERSION_NUMBER := NVL(l_def_contintf_rec.OBJECT_VERSION_NUMBER, 0) + 1;
91     RETURN(l_return_status);
92   End Default_Item_attributes;
93 
94 
95   FUNCTION Validate_Item_Record (
96     p_contintf_rec IN ContIntf_Rec_Type
97   )
98   RETURN VARCHAR2 IS
99     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
100   BEGIN
101     RETURN (l_return_status);
102   END Validate_Item_Record;
103 
104 
105   PROCEDURE migrate (
106     p_from	IN ContIntf_Val_Rec_Type,
107     p_to	OUT ContIntf_Rec_Type
108   ) IS
109   BEGIN
110     p_to.contracts_interface_id := p_from.contracts_interface_id;
111     p_to.cp_service_transaction_id := p_from.cp_service_transaction_id;
112     p_to.cp_service_id := p_from.cp_service_id;
113     p_to.contract_id := p_from.contract_id;
114     p_to.ar_trx_type := p_from.ar_trx_type;
115     p_to.trx_start_date := p_from.trx_start_date;
116     p_to.trx_end_date := p_from.trx_end_date;
117     p_to.trx_date := p_from.trx_date;
118     p_to.trx_amount := p_from.trx_amount;
119     p_to.reason_code := p_from.reason_code;
120     p_to.reason_comments := p_from.reason_comments;
121     p_to.contract_billing_id := p_from.contract_billing_id;
122     p_to.cp_quantity := p_from.cp_quantity;
123     p_to.concurrent_process_id := p_from.concurrent_process_id;
124     p_to.created_by := p_from.created_by;
125     p_to.creation_date := p_from.creation_date;
126     p_to.object_version_number := p_from.object_version_number;
127   END migrate;
128   PROCEDURE migrate (
129     p_from	IN ContIntf_Rec_Type,
130     p_to	OUT ContIntf_Val_Rec_Type
131   ) IS
132   BEGIN
133     p_to.contracts_interface_id := p_from.contracts_interface_id;
134     p_to.cp_service_transaction_id := p_from.cp_service_transaction_id;
135     p_to.cp_service_id := p_from.cp_service_id;
136     p_to.contract_id := p_from.contract_id;
137     p_to.ar_trx_type := p_from.ar_trx_type;
138     p_to.trx_start_date := p_from.trx_start_date;
139     p_to.trx_end_date := p_from.trx_end_date;
140     p_to.trx_date := p_from.trx_date;
141     p_to.trx_amount := p_from.trx_amount;
142     p_to.reason_code := p_from.reason_code;
143     p_to.reason_comments := p_from.reason_comments;
144     p_to.contract_billing_id := p_from.contract_billing_id;
145     p_to.cp_quantity := p_from.cp_quantity;
146     p_to.concurrent_process_id := p_from.concurrent_process_id;
147     p_to.created_by := p_from.created_by;
148     p_to.creation_date := p_from.creation_date;
149     p_to.object_version_number := p_from.object_version_number;
150   END migrate;
151   PROCEDURE insert_row
152   (
153     p_api_version                  IN NUMBER,
154     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
155     p_validation_level             IN NUMBER,
156     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
157     x_return_status                OUT VARCHAR2,
158     x_msg_count                    OUT NUMBER,
159     x_msg_data                     OUT VARCHAR2,
160     p_contintf_rec                 IN ContIntf_Rec_Type := G_MISS_CONTINTF_REC,
161     x_contracts_interface_id       OUT NUMBER,
162     x_object_version_number        OUT NUMBER) IS
163     l_api_name                     CONSTANT VARCHAR2(30) := 'insert_row';
164     l_api_version                  CONSTANT NUMBER := 1;
165     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
166     l_contintf_rec                 ContIntf_Rec_Type;
167     l_def_contintf_rec             ContIntf_Rec_Type;
168   BEGIN
169     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
170                                               G_PKG_NAME,
171                                               l_api_version,
172                                               p_api_version,
173                                               p_init_msg_list,
174                                               '_Pvt',
175                                               x_return_status);
176     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
177       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
178     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
179       RAISE FND_API.G_EXC_ERROR;
180     END IF;
181     l_contintf_rec := p_contintf_rec;
182     --- Validate all non-missing attributes (Item Level Validation)
183     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
184       l_return_status := Validate_Item_Attributes
185       (
186         l_contintf_rec    ---- IN
187       );
188       --- If any errors happen abort API
189       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
190         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
191       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
192         RAISE FND_API.G_EXC_ERROR;
193       END IF;
194     END IF;
195     --- Defaulting item attributes
196     l_return_status := Default_Item_Attributes
197     (
198       l_contintf_rec,    ---- IN
199       l_def_contintf_rec
200     );
201     --- If any errors happen abort API
202     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
203       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
204     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
205       RAISE FND_API.G_EXC_ERROR;
206     END IF;
207     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
208       l_return_status := Validate_Item_Record(l_def_contintf_rec);
209       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
210         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
211       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
212         RAISE FND_API.G_EXC_ERROR;
213       END IF;
214     END IF;
215     -- Set primary key value
216     l_def_contintf_rec.contracts_interface_id := get_seq_id;
217     INSERT INTO CS_CONT_BILL_IFACE(
218         contracts_interface_id,
219         cp_service_transaction_id,
220         cp_service_id,
221         contract_id,
222         ar_trx_type,
223         trx_start_date,
224         trx_end_date,
225         trx_date,
226         trx_amount,
227         reason_code,
228         reason_comments,
229         contract_billing_id,
230         cp_quantity,
231         concurrent_process_id,
232         created_by,
233         creation_date,
234         object_version_number)
235       VALUES (
236         l_def_contintf_rec.contracts_interface_id,
237         l_def_contintf_rec.cp_service_transaction_id,
238         l_def_contintf_rec.cp_service_id,
239         l_def_contintf_rec.contract_id,
240         l_def_contintf_rec.ar_trx_type,
241         l_def_contintf_rec.trx_start_date,
242         l_def_contintf_rec.trx_end_date,
243         l_def_contintf_rec.trx_date,
244         l_def_contintf_rec.trx_amount,
245         l_def_contintf_rec.reason_code,
246         l_def_contintf_rec.reason_comments,
247         l_def_contintf_rec.contract_billing_id,
248         l_def_contintf_rec.cp_quantity,
249         l_def_contintf_rec.concurrent_process_id,
250         l_def_contintf_rec.created_by,
251         l_def_contintf_rec.creation_date,
252         l_def_contintf_rec.object_version_number);
253     -- Set OUT values
254     x_contracts_interface_id := l_def_contintf_rec.contracts_interface_id;
255     x_object_version_number       := l_def_contintf_rec.OBJECT_VERSION_NUMBER;
256     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
257   EXCEPTION
258     WHEN FND_API.G_EXC_ERROR THEN
259       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
260       (
261         l_api_name,
262         G_PKG_NAME,
263         'FND_API.G_RET_STS_ERROR',
264         x_msg_count,
265         x_msg_data,
266         '_Pvt'
267       );
268     APP_EXCEPTION.RAISE_EXCEPTION;
269     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
270       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
271       (
272         l_api_name,
273         G_PKG_NAME,
274         'FND_API.G_RET_STS_UNEXP_ERROR',
275         x_msg_count,
276         x_msg_data,
277         '_Pvt'
278       );
279     APP_EXCEPTION.RAISE_EXCEPTION;
280     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
281       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
282       (
283         l_api_name,
284         G_PKG_NAME,
285         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
286         x_msg_count,
287         x_msg_data,
288         '_Pvt'
289       );
290     APP_EXCEPTION.RAISE_EXCEPTION;
291   END insert_row;
292   PROCEDURE insert_row
293   (
294     p_api_version                  IN NUMBER,
295     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
296     p_validation_level             IN NUMBER,
297     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
298     x_return_status                OUT VARCHAR2,
299     x_msg_count                    OUT NUMBER,
300     x_msg_data                     OUT VARCHAR2,
301     p_cp_service_transaction_id    IN NUMBER := NULL,
302     p_cp_service_id                IN NUMBER := NULL,
303     p_contract_id                  IN NUMBER := NULL,
304     p_ar_trx_type                  IN CS_CONT_BILL_IFACE.AR_TRX_TYPE%TYPE := NULL,
305     p_trx_start_date               IN CS_CONT_BILL_IFACE.TRX_START_DATE%TYPE := NULL,
306     p_trx_end_date                 IN CS_CONT_BILL_IFACE.TRX_END_DATE%TYPE := NULL,
307     p_trx_date                     IN CS_CONT_BILL_IFACE.TRX_DATE%TYPE := NULL,
308     p_trx_amount                   IN NUMBER := NULL,
309     p_reason_code                  IN CS_CONT_BILL_IFACE.REASON_CODE%TYPE := NULL,
310     p_reason_comments              IN CS_CONT_BILL_IFACE.REASON_COMMENTS%TYPE := NULL,
311     p_contract_billing_id          IN NUMBER := NULL,
312     p_cp_quantity                  IN NUMBER := NULL,
313     p_concurrent_process_id        IN NUMBER := NULL,
314     p_created_by                   IN NUMBER := NULL,
315     p_creation_date                IN CS_CONT_BILL_IFACE.CREATION_DATE%TYPE := NULL,
316     p_object_version_number        IN NUMBER := NULL,
317     x_contracts_interface_id       OUT NUMBER,
318     x_object_version_number        OUT NUMBER) IS
319     l_api_name                     CONSTANT VARCHAR2(30) := 'insert_row';
320     l_api_version                  CONSTANT NUMBER := 1;
321     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
322     l_contintf_rec                 ContIntf_Rec_Type;
323   BEGIN
324     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
325                                               G_PKG_NAME,
326                                               l_api_version,
327                                               p_api_version,
331     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
328                                               p_init_msg_list,
329                                               '_Pvt',
330                                               x_return_status);
332       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
333     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
334       RAISE FND_API.G_EXC_ERROR;
335     END IF;
336     l_contintf_rec.CP_SERVICE_TRANSACTION_ID := p_cp_service_transaction_id;
337     l_contintf_rec.CP_SERVICE_ID := p_cp_service_id;
338     l_contintf_rec.CONTRACT_ID := p_contract_id;
339     l_contintf_rec.AR_TRX_TYPE := p_ar_trx_type;
340     l_contintf_rec.TRX_START_DATE := p_trx_start_date;
341     l_contintf_rec.TRX_END_DATE := p_trx_end_date;
342     l_contintf_rec.TRX_DATE := p_trx_date;
343     l_contintf_rec.TRX_AMOUNT := p_trx_amount;
344     l_contintf_rec.REASON_CODE := p_reason_code;
345     l_contintf_rec.REASON_COMMENTS := p_reason_comments;
346     l_contintf_rec.CONTRACT_BILLING_ID := p_contract_billing_id;
347     l_contintf_rec.CP_QUANTITY := p_cp_quantity;
348     l_contintf_rec.CONCURRENT_PROCESS_ID := p_concurrent_process_id;
349     l_contintf_rec.CREATED_BY := p_created_by;
350     l_contintf_rec.CREATION_DATE := p_creation_date;
351     l_contintf_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
352     insert_row(
353       p_api_version,
354       p_init_msg_list,
355       p_validation_level,
356       p_commit,
357       x_return_status,
358       x_msg_count,
359       x_msg_data,
360       l_contintf_rec,
361       x_contracts_interface_id,
362       x_object_version_number
363     );
364     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
365   EXCEPTION
366     WHEN FND_API.G_EXC_ERROR THEN
367       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
368       (
369         l_api_name,
370         G_PKG_NAME,
371         'FND_API.G_RET_STS_ERROR',
372         x_msg_count,
373         x_msg_data,
374         '_Pvt'
375       );
376     APP_EXCEPTION.RAISE_EXCEPTION;
377     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
378       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
379       (
380         l_api_name,
381         G_PKG_NAME,
382         'FND_API.G_RET_STS_UNEXP_ERROR',
383         x_msg_count,
384         x_msg_data,
385         '_Pvt'
386       );
387     APP_EXCEPTION.RAISE_EXCEPTION;
388     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
389       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
390       (
391         l_api_name,
392         G_PKG_NAME,
393         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
394         x_msg_count,
395         x_msg_data,
396         '_Pvt'
397       );
398     APP_EXCEPTION.RAISE_EXCEPTION;
399   END insert_row;
400   Procedure lock_row
401   (
402     p_api_version                  IN NUMBER,
403     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
404     p_validation_level             IN NUMBER,
405     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
406     x_return_status                OUT VARCHAR2,
407     x_msg_count                    OUT NUMBER,
408     x_msg_data                     OUT VARCHAR2,
409     p_contracts_interface_id       IN NUMBER,
410     p_object_version_number        IN NUMBER) IS
411     E_Resource_Busy               EXCEPTION;
412     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
413     CURSOR lock_csr IS
414     SELECT OBJECT_VERSION_NUMBER
415      FROM CS_CONT_BILL_IFACE
416     WHERE
417       CONTRACTS_INTERFACE_ID = p_contracts_interface_id AND
418       OBJECT_VERSION_NUMBER = p_object_version_number
419     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
420 
421     CURSOR  lchk_csr IS
422     SELECT OBJECT_VERSION_NUMBER
423      FROM CS_CONT_BILL_IFACE
424     WHERE
425       CONTRACTS_INTERFACE_ID = p_contracts_interface_id
426       ;
427     l_api_name                     CONSTANT VARCHAR2(30) := 'lock_row';
428     l_api_version                  CONSTANT NUMBER := 1;
429     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
430     l_object_version_number       CS_CONT_BILL_IFACE.OBJECT_VERSION_NUMBER%TYPE;
431     lc_object_version_number      CS_CONT_BILL_IFACE.OBJECT_VERSION_NUMBER%TYPE;
432     l_row_notfound                BOOLEAN := FALSE;
433     lc_row_notfound               BOOLEAN := FALSE;
434   BEGIN
435     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
436                                               G_PKG_NAME,
437                                               l_api_version,
438                                               p_api_version,
439                                               p_init_msg_list,
440                                               '_Pvt',
441                                               x_return_status);
442     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
443       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
444     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
445       RAISE FND_API.G_EXC_ERROR;
446     END IF;
447     BEGIN
448       OPEN lock_csr;
449       FETCH lock_csr INTO l_object_version_number;
450       l_row_notfound := lock_csr%NOTFOUND;
451       CLOSE lock_csr;
452     EXCEPTION
453       WHEN E_Resource_Busy THEN
454         IF (lock_csr%ISOPEN) THEN
455           CLOSE lock_csr;
456         END IF;
457         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
458         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
459     END;
460 
461     IF ( l_row_notfound ) THEN
462       OPEN lchk_csr;
463       FETCH lchk_csr INTO lc_object_version_number;
464       lc_row_notfound := lchk_csr%NOTFOUND;
465       CLOSE lchk_csr;
466     END IF;
470     ELSIF lc_object_version_number > p_object_version_number THEN
467     IF (lc_row_notfound) THEN
468       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
469       RAISE FND_API.G_EXC_ERROR;
471       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
472       RAISE FND_API.G_EXC_ERROR;
473     ELSIF lc_object_version_number <> p_object_version_number THEN
474       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
475       RAISE FND_API.G_EXC_ERROR;
476     ELSIF lc_object_version_number = -1 THEN
477       TAPI_DEV_KIT.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
478       RAISE FND_API.G_EXC_ERROR;
479     END IF;
480     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
481   EXCEPTION
482     WHEN FND_API.G_EXC_ERROR THEN
483       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
484       (
485         l_api_name,
486         G_PKG_NAME,
487         'FND_API.G_RET_STS_ERROR',
488         x_msg_count,
489         x_msg_data,
490         '_Pvt'
491       );
492     APP_EXCEPTION.RAISE_EXCEPTION;
493     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
494       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
495       (
496         l_api_name,
497         G_PKG_NAME,
498         'FND_API.G_RET_STS_UNEXP_ERROR',
499         x_msg_count,
500         x_msg_data,
501         '_Pvt'
502       );
503     APP_EXCEPTION.RAISE_EXCEPTION;
504     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
505       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
506       (
507         l_api_name,
508         G_PKG_NAME,
509         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
510         x_msg_count,
511         x_msg_data,
512         '_Pvt'
513       );
514     APP_EXCEPTION.RAISE_EXCEPTION;
515   END lock_row;
516   Procedure update_row
517   (
518     p_api_version                  IN NUMBER,
519     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
520     p_validation_level             IN NUMBER,
521     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
522     x_return_status                OUT VARCHAR2,
523     x_msg_count                    OUT NUMBER,
524     x_msg_data                     OUT VARCHAR2,
525     p_contintf_val_rec             IN ContIntf_Val_Rec_Type := G_MISS_CONTINTF_VAL_REC,
526     x_object_version_number        OUT NUMBER) IS
527     l_api_name                     CONSTANT VARCHAR2(30) := 'update_row';
528     l_api_version                  CONSTANT NUMBER := 1;
529     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
530     l_contintf_rec                 ContIntf_Rec_Type;
531     l_def_contintf_rec             ContIntf_Rec_Type;
532     FUNCTION populate_new_record (
533       p_contintf_rec	IN ContIntf_Rec_Type,
534       x_contintf_rec	OUT ContIntf_Rec_Type
535     ) RETURN VARCHAR2 IS
536       CURSOR oco_26638_csr (p_contracts_interface_id  IN NUMBER) IS
537       SELECT *
538         FROM Cs_Cont_Bill_Iface
539        WHERE cs_cont_bill_iface.contracts_interface_id = p_contracts_interface_id;
540       l_oco_26638                    oco_26638_csr%ROWTYPE;
541       l_row_notfound		BOOLEAN := TRUE;
542       l_return_status		VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
543     BEGIN
544       x_contintf_rec := p_contintf_rec;
545       -- Get current database values
546       OPEN oco_26638_csr (p_contintf_rec.contracts_interface_id);
547       FETCH oco_26638_csr INTO l_oco_26638;
548       l_row_notfound := oco_26638_csr%NOTFOUND;
549       CLOSE oco_26638_csr;
550       IF (l_row_notfound) THEN
551         l_return_status := FND_API.G_RET_STS_ERROR;
552       END IF;
553       IF (x_contintf_rec.contracts_interface_id = TAPI_DEV_KIT.G_MISS_NUM)
554       THEN
555         x_contintf_rec.contracts_interface_id := l_oco_26638.contracts_interface_id;
556       END IF;
557       IF (x_contintf_rec.cp_service_transaction_id = TAPI_DEV_KIT.G_MISS_NUM)
558       THEN
559         x_contintf_rec.cp_service_transaction_id := l_oco_26638.cp_service_transaction_id;
560       END IF;
561       IF (x_contintf_rec.cp_service_id = TAPI_DEV_KIT.G_MISS_NUM)
562       THEN
563         x_contintf_rec.cp_service_id := l_oco_26638.cp_service_id;
564       END IF;
565       IF (x_contintf_rec.contract_id = TAPI_DEV_KIT.G_MISS_NUM)
566       THEN
567         x_contintf_rec.contract_id := l_oco_26638.contract_id;
568       END IF;
569       IF (x_contintf_rec.ar_trx_type = TAPI_DEV_KIT.G_MISS_CHAR)
570       THEN
571         x_contintf_rec.ar_trx_type := l_oco_26638.ar_trx_type;
572       END IF;
573       IF (x_contintf_rec.trx_start_date = TAPI_DEV_KIT.G_MISS_DATE)
574       THEN
575         x_contintf_rec.trx_start_date := l_oco_26638.trx_start_date;
576       END IF;
577       IF (x_contintf_rec.trx_end_date = TAPI_DEV_KIT.G_MISS_DATE)
578       THEN
579         x_contintf_rec.trx_end_date := l_oco_26638.trx_end_date;
580       END IF;
581       IF (x_contintf_rec.trx_date = TAPI_DEV_KIT.G_MISS_DATE)
582       THEN
583         x_contintf_rec.trx_date := l_oco_26638.trx_date;
584       END IF;
585       IF (x_contintf_rec.trx_amount = TAPI_DEV_KIT.G_MISS_NUM)
586       THEN
587         x_contintf_rec.trx_amount := l_oco_26638.trx_amount;
588       END IF;
589       IF (x_contintf_rec.reason_code = TAPI_DEV_KIT.G_MISS_CHAR)
590       THEN
591         x_contintf_rec.reason_code := l_oco_26638.reason_code;
592       END IF;
593       IF (x_contintf_rec.reason_comments = TAPI_DEV_KIT.G_MISS_CHAR)
594       THEN
595         x_contintf_rec.reason_comments := l_oco_26638.reason_comments;
596       END IF;
597       IF (x_contintf_rec.contract_billing_id = TAPI_DEV_KIT.G_MISS_NUM)
598       THEN
599         x_contintf_rec.contract_billing_id := l_oco_26638.contract_billing_id;
600       END IF;
604       END IF;
601       IF (x_contintf_rec.cp_quantity = TAPI_DEV_KIT.G_MISS_NUM)
602       THEN
603         x_contintf_rec.cp_quantity := l_oco_26638.cp_quantity;
605       IF (x_contintf_rec.concurrent_process_id = TAPI_DEV_KIT.G_MISS_NUM)
606       THEN
607         x_contintf_rec.concurrent_process_id := l_oco_26638.concurrent_process_id;
608       END IF;
609       IF (x_contintf_rec.created_by = TAPI_DEV_KIT.G_MISS_NUM)
610       THEN
611         x_contintf_rec.created_by := l_oco_26638.created_by;
612       END IF;
613       IF (x_contintf_rec.creation_date = TAPI_DEV_KIT.G_MISS_DATE)
614       THEN
615         x_contintf_rec.creation_date := l_oco_26638.creation_date;
616       END IF;
617       IF (x_contintf_rec.object_version_number = TAPI_DEV_KIT.G_MISS_NUM)
618       THEN
619         x_contintf_rec.object_version_number := l_oco_26638.object_version_number;
620       END IF;
621       RETURN(l_return_status);
622     END populate_new_record;
623   BEGIN
624     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
625                                               G_PKG_NAME,
626                                               l_api_version,
627                                               p_api_version,
628                                               p_init_msg_list,
629                                               '_Pvt',
630                                               x_return_status);
631     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
632       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
633     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
634       RAISE FND_API.G_EXC_ERROR;
635     END IF;
636     migrate(p_contintf_val_rec, l_contintf_rec);
637     --- Defaulting item attributes
638     l_return_status := Default_Item_Attributes
639     (
640       l_contintf_rec,    ---- IN
641       l_def_contintf_rec
642     );
643     --- If any errors happen abort API
644     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
645       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
646     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
647       RAISE FND_API.G_EXC_ERROR;
648     END IF;
649     l_return_status := populate_new_record(l_def_contintf_rec, l_def_contintf_rec);
650     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
651       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
652     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
653       RAISE FND_API.G_EXC_ERROR;
654     END IF;
655     --- Validate all non-missing attributes (Item Level Validation)
656     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
657       l_return_status := Validate_Item_Attributes
658       (
659         l_def_contintf_rec    ---- IN
660       );
661       --- If any errors happen abort API
662       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
663         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
664       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
665         RAISE FND_API.G_EXC_ERROR;
666       END IF;
667     END IF;
668     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
669       l_return_status := Validate_Item_Record(l_def_contintf_rec);
670       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
671         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
672       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
673         RAISE FND_API.G_EXC_ERROR;
674       END IF;
675     END IF;
676     UPDATE  CS_CONT_BILL_IFACE
677     SET
678         CONTRACTS_INTERFACE_ID = l_def_contintf_rec.contracts_interface_id ,
679         CP_SERVICE_TRANSACTION_ID = l_def_contintf_rec.cp_service_transaction_id ,
680         CP_SERVICE_ID = l_def_contintf_rec.cp_service_id ,
681         CONTRACT_ID = l_def_contintf_rec.contract_id ,
682         AR_TRX_TYPE = l_def_contintf_rec.ar_trx_type ,
683         TRX_START_DATE = l_def_contintf_rec.trx_start_date ,
684         TRX_END_DATE = l_def_contintf_rec.trx_end_date ,
685         TRX_DATE = l_def_contintf_rec.trx_date ,
686         TRX_AMOUNT = l_def_contintf_rec.trx_amount ,
687         REASON_CODE = l_def_contintf_rec.reason_code ,
688         REASON_COMMENTS = l_def_contintf_rec.reason_comments ,
689         CONTRACT_BILLING_ID = l_def_contintf_rec.contract_billing_id ,
690         CP_QUANTITY = l_def_contintf_rec.cp_quantity ,
691         CONCURRENT_PROCESS_ID = l_def_contintf_rec.concurrent_process_id ,
692         CREATED_BY = l_def_contintf_rec.created_by ,
693         CREATION_DATE = l_def_contintf_rec.creation_date ,
694         OBJECT_VERSION_NUMBER = l_def_contintf_rec.object_version_number
695         WHERE
696           CONTRACTS_INTERFACE_ID = l_def_contintf_rec.contracts_interface_id
697           ;
698     x_object_version_number := l_def_contintf_rec.OBJECT_VERSION_NUMBER;
699     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
700   EXCEPTION
701     WHEN FND_API.G_EXC_ERROR THEN
702       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
703       (
704         l_api_name,
705         G_PKG_NAME,
706         'FND_API.G_RET_STS_ERROR',
707         x_msg_count,
708         x_msg_data,
709         '_Pvt'
710       );
711     APP_EXCEPTION.RAISE_EXCEPTION;
712     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
713       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
714       (
715         l_api_name,
716         G_PKG_NAME,
717         'FND_API.G_RET_STS_UNEXP_ERROR',
718         x_msg_count,
719         x_msg_data,
720         '_Pvt'
721       );
722     APP_EXCEPTION.RAISE_EXCEPTION;
723     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
724       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
725       (
726         l_api_name,
727         G_PKG_NAME,
728         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
729         x_msg_count,
730         x_msg_data,
731         '_Pvt'
735   Procedure update_row
732       );
733     APP_EXCEPTION.RAISE_EXCEPTION;
734   END update_row;
736   (
737     p_api_version                  IN NUMBER,
738     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
739     p_validation_level             IN NUMBER,
740     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
741     x_return_status                OUT VARCHAR2,
742     x_msg_count                    OUT NUMBER,
743     x_msg_data                     OUT VARCHAR2,
744     p_contracts_interface_id       IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
745     p_cp_service_transaction_id    IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
746     p_cp_service_id                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
747     p_contract_id                  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
748     p_ar_trx_type                  IN CS_CONT_BILL_IFACE.AR_TRX_TYPE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
749     p_trx_start_date               IN CS_CONT_BILL_IFACE.TRX_START_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
750     p_trx_end_date                 IN CS_CONT_BILL_IFACE.TRX_END_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
751     p_trx_date                     IN CS_CONT_BILL_IFACE.TRX_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
752     p_trx_amount                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
753     p_reason_code                  IN CS_CONT_BILL_IFACE.REASON_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
754     p_reason_comments              IN CS_CONT_BILL_IFACE.REASON_COMMENTS%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
755     p_contract_billing_id          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
756     p_cp_quantity                  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
757     p_concurrent_process_id        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
758     p_created_by                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
759     p_creation_date                IN CS_CONT_BILL_IFACE.CREATION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
760     p_object_version_number        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
761     x_object_version_number        OUT NUMBER) IS
762     l_api_name                     CONSTANT VARCHAR2(30) := 'update_row';
763     l_api_version                  CONSTANT NUMBER := 1;
764     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
765     l_contintf_rec                 ContIntf_Val_Rec_Type;
766   BEGIN
767     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
768                                               G_PKG_NAME,
769                                               l_api_version,
770                                               p_api_version,
771                                               p_init_msg_list,
772                                               '_Pvt',
773                                               x_return_status);
774     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
775       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
776     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
777       RAISE FND_API.G_EXC_ERROR;
778     END IF;
779     l_contintf_rec.CONTRACTS_INTERFACE_ID := p_contracts_interface_id;
780     l_contintf_rec.CP_SERVICE_TRANSACTION_ID := p_cp_service_transaction_id;
781     l_contintf_rec.CP_SERVICE_ID := p_cp_service_id;
782     l_contintf_rec.CONTRACT_ID := p_contract_id;
783     l_contintf_rec.AR_TRX_TYPE := p_ar_trx_type;
784     l_contintf_rec.TRX_START_DATE := p_trx_start_date;
785     l_contintf_rec.TRX_END_DATE := p_trx_end_date;
786     l_contintf_rec.TRX_DATE := p_trx_date;
787     l_contintf_rec.TRX_AMOUNT := p_trx_amount;
788     l_contintf_rec.REASON_CODE := p_reason_code;
789     l_contintf_rec.REASON_COMMENTS := p_reason_comments;
790     l_contintf_rec.CONTRACT_BILLING_ID := p_contract_billing_id;
791     l_contintf_rec.CP_QUANTITY := p_cp_quantity;
792     l_contintf_rec.CONCURRENT_PROCESS_ID := p_concurrent_process_id;
793     l_contintf_rec.CREATED_BY := p_created_by;
794     l_contintf_rec.CREATION_DATE := p_creation_date;
795     l_contintf_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
796     update_row(
797       p_api_version,
798       p_init_msg_list,
799       p_validation_level,
800       p_commit,
801       x_return_status,
802       x_msg_count,
803       x_msg_data,
804       l_contintf_rec,
805       x_object_version_number
806     );
807     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
808   EXCEPTION
809     WHEN FND_API.G_EXC_ERROR THEN
810       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
811       (
812         l_api_name,
813         G_PKG_NAME,
814         'FND_API.G_RET_STS_ERROR',
815         x_msg_count,
816         x_msg_data,
817         '_Pvt'
818       );
819     APP_EXCEPTION.RAISE_EXCEPTION;
820     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
821       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
822       (
823         l_api_name,
824         G_PKG_NAME,
825         'FND_API.G_RET_STS_UNEXP_ERROR',
826         x_msg_count,
827         x_msg_data,
828         '_Pvt'
829       );
830     APP_EXCEPTION.RAISE_EXCEPTION;
831     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
832       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
833       (
834         l_api_name,
835         G_PKG_NAME,
836         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
837         x_msg_count,
838         x_msg_data,
839         '_Pvt'
840       );
841     APP_EXCEPTION.RAISE_EXCEPTION;
842   END update_row;
843   Procedure delete_row
844   (
845     p_api_version                  IN NUMBER,
846     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
847     p_validation_level             IN NUMBER,
848     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
849     x_return_status                OUT VARCHAR2,
850     x_msg_count                    OUT NUMBER,
851     x_msg_data                     OUT VARCHAR2,
855     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
852     p_contracts_interface_id       IN NUMBER) IS
853     l_api_name                     CONSTANT VARCHAR2(30) := 'delete_row';
854     l_api_version                  CONSTANT NUMBER := 1;
856   BEGIN
857     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
858                                               G_PKG_NAME,
859                                               l_api_version,
860                                               p_api_version,
861                                               p_init_msg_list,
862                                               '_Pvt',
863                                               x_return_status);
864     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
865       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
866     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
867       RAISE FND_API.G_EXC_ERROR;
868     END IF;
869     DELETE  FROM CS_CONT_BILL_IFACE
870     WHERE
871       CONTRACTS_INTERFACE_ID = p_contracts_interface_id
872       ;
873     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
874   EXCEPTION
875     WHEN FND_API.G_EXC_ERROR THEN
876       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
877       (
878         l_api_name,
879         G_PKG_NAME,
880         'FND_API.G_RET_STS_ERROR',
881         x_msg_count,
882         x_msg_data,
883         '_Pvt'
884       );
885     APP_EXCEPTION.RAISE_EXCEPTION;
886     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
887       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
888       (
889         l_api_name,
890         G_PKG_NAME,
891         'FND_API.G_RET_STS_UNEXP_ERROR',
892         x_msg_count,
893         x_msg_data,
894         '_Pvt'
895       );
896     APP_EXCEPTION.RAISE_EXCEPTION;
897     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
898       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
899       (
900         l_api_name,
901         G_PKG_NAME,
902         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
903         x_msg_count,
904         x_msg_data,
905         '_Pvt'
906       );
907     APP_EXCEPTION.RAISE_EXCEPTION;
908   END delete_row;
909   PROCEDURE validate_row
910   (
911     p_api_version                  IN NUMBER,
912     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
913     p_validation_level             IN NUMBER,
914     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
915     x_return_status                OUT VARCHAR2,
916     x_msg_count                    OUT NUMBER,
917     x_msg_data                     OUT VARCHAR2,
918     p_contintf_val_rec             IN ContIntf_Val_Rec_Type := G_MISS_CONTINTF_VAL_REC) IS
919     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_row';
920     l_api_version                  CONSTANT NUMBER := 1;
921     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
922     l_contintf_rec                 ContIntf_Rec_Type;
923     l_def_contintf_rec             ContIntf_Rec_Type;
924   BEGIN
925     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
926                                               G_PKG_NAME,
927                                               l_api_version,
928                                               p_api_version,
929                                               p_init_msg_list,
930                                               '_Pvt',
931                                               x_return_status);
932     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
933       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
934     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
935       RAISE FND_API.G_EXC_ERROR;
936     END IF;
937     migrate(p_contintf_val_rec, l_contintf_rec);
938     --- Validate all non-missing attributes (Item Level Validation)
939     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
940       l_return_status := Validate_Item_Attributes
941       (
942         l_contintf_rec    ---- IN
943       );
944       --- If any errors happen abort API
945       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
946         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
947       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
948         RAISE FND_API.G_EXC_ERROR;
949       END IF;
950     END IF;
951     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
952       l_return_status := Validate_Item_Record(l_def_contintf_rec);
953       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
954         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
955       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
956         RAISE FND_API.G_EXC_ERROR;
957       END IF;
958     END IF;
959     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
960   EXCEPTION
961     WHEN FND_API.G_EXC_ERROR THEN
962       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
963       (
964         l_api_name,
965         G_PKG_NAME,
966         'FND_API.G_RET_STS_ERROR',
967         x_msg_count,
968         x_msg_data,
969         '_Pvt'
970       );
971     APP_EXCEPTION.RAISE_EXCEPTION;
972     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
973       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
974       (
975         l_api_name,
976         G_PKG_NAME,
977         'FND_API.G_RET_STS_UNEXP_ERROR',
978         x_msg_count,
979         x_msg_data,
980         '_Pvt'
981       );
982     APP_EXCEPTION.RAISE_EXCEPTION;
983     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
984       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
985       (
986         l_api_name,
987         G_PKG_NAME,
988         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
989         x_msg_count,
993     APP_EXCEPTION.RAISE_EXCEPTION;
990         x_msg_data,
991         '_Pvt'
992       );
994   END validate_row;
995   PROCEDURE validate_row
996   (
997     p_api_version                  IN NUMBER,
998     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
999     p_validation_level             IN NUMBER,
1000     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1001     x_return_status                OUT VARCHAR2,
1002     x_msg_count                    OUT NUMBER,
1003     x_msg_data                     OUT VARCHAR2,
1004     p_contracts_interface_id       IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1005     p_cp_service_transaction_id    IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1006     p_cp_service_id                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1007     p_contract_id                  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1008     p_ar_trx_type                  IN CS_CONT_BILL_IFACE.AR_TRX_TYPE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1009     p_trx_start_date               IN CS_CONT_BILL_IFACE.TRX_START_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1010     p_trx_end_date                 IN CS_CONT_BILL_IFACE.TRX_END_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1011     p_trx_date                     IN CS_CONT_BILL_IFACE.TRX_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1012     p_trx_amount                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1013     p_reason_code                  IN CS_CONT_BILL_IFACE.REASON_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1014     p_reason_comments              IN CS_CONT_BILL_IFACE.REASON_COMMENTS%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1015     p_contract_billing_id          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1016     p_cp_quantity                  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1017     p_concurrent_process_id        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1018     p_created_by                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1019     p_creation_date                IN CS_CONT_BILL_IFACE.CREATION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1020     p_object_version_number        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM) IS
1021     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_row';
1022     l_api_version                  CONSTANT NUMBER := 1;
1023     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1024     l_contintf_rec                 ContIntf_Val_Rec_Type;
1025   BEGIN
1026     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1027                                               G_PKG_NAME,
1028                                               l_api_version,
1029                                               p_api_version,
1030                                               p_init_msg_list,
1031                                               '_Pvt',
1032                                               x_return_status);
1033     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1034       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1035     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1036       RAISE FND_API.G_EXC_ERROR;
1037     END IF;
1038     l_contintf_rec.CONTRACTS_INTERFACE_ID := p_contracts_interface_id;
1039     l_contintf_rec.CP_SERVICE_TRANSACTION_ID := p_cp_service_transaction_id;
1040     l_contintf_rec.CP_SERVICE_ID := p_cp_service_id;
1041     l_contintf_rec.CONTRACT_ID := p_contract_id;
1042     l_contintf_rec.AR_TRX_TYPE := p_ar_trx_type;
1043     l_contintf_rec.TRX_START_DATE := p_trx_start_date;
1044     l_contintf_rec.TRX_END_DATE := p_trx_end_date;
1045     l_contintf_rec.TRX_DATE := p_trx_date;
1046     l_contintf_rec.TRX_AMOUNT := p_trx_amount;
1047     l_contintf_rec.REASON_CODE := p_reason_code;
1048     l_contintf_rec.REASON_COMMENTS := p_reason_comments;
1049     l_contintf_rec.CONTRACT_BILLING_ID := p_contract_billing_id;
1050     l_contintf_rec.CP_QUANTITY := p_cp_quantity;
1051     l_contintf_rec.CONCURRENT_PROCESS_ID := p_concurrent_process_id;
1052     l_contintf_rec.CREATED_BY := p_created_by;
1053     l_contintf_rec.CREATION_DATE := p_creation_date;
1054     l_contintf_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
1055     validate_row(
1056       p_api_version,
1057       p_init_msg_list,
1058       p_validation_level,
1059       p_commit,
1060       x_return_status,
1061       x_msg_count,
1062       x_msg_data,
1063       l_contintf_rec
1064     );
1065     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1066   EXCEPTION
1067     WHEN FND_API.G_EXC_ERROR THEN
1068       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1069       (
1070         l_api_name,
1071         G_PKG_NAME,
1072         'FND_API.G_RET_STS_ERROR',
1073         x_msg_count,
1074         x_msg_data,
1075         '_Pvt'
1076       );
1077     APP_EXCEPTION.RAISE_EXCEPTION;
1078     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1079       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1080       (
1081         l_api_name,
1082         G_PKG_NAME,
1083         'FND_API.G_RET_STS_UNEXP_ERROR',
1084         x_msg_count,
1085         x_msg_data,
1086         '_Pvt'
1087       );
1088     APP_EXCEPTION.RAISE_EXCEPTION;
1089     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1090       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1091       (
1092         l_api_name,
1093         G_PKG_NAME,
1094         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1095         x_msg_count,
1096         x_msg_data,
1097         '_Pvt'
1098       );
1099     APP_EXCEPTION.RAISE_EXCEPTION;
1100   END validate_row;
1101 END CS_CONTINTF_PVT;