[Home] [Help]
PACKAGE BODY: APPS.OKL_ITY_PVT
Source
1 PACKAGE BODY Okl_Ity_Pvt AS
2 /* $Header: OKLSITYB.pls 120.3 2006/03/23 14:50:08 abindal noship $ */
3
4
5 -- Checking Unique Key
6 FUNCTION IS_UNIQUE (p_ityv_rec ityv_rec_type) RETURN VARCHAR2
7 IS
8 CURSOR l_ity_csr IS
9 SELECT 'x'
10 FROM okl_invoice_types_v
11 WHERE inf_id = p_ityv_rec.inf_id
12 AND name = p_ityv_rec.name
13 AND id <> NVL(p_ityv_rec.id,-99999);
14
15 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
16 l_dummy VARCHAR2(1);
17 l_found BOOLEAN;
18 BEGIN
19 -- check for unique product and location
20 OPEN l_ity_csr;
21 FETCH l_ity_csr INTO l_dummy;
22 l_found := l_ity_csr%FOUND;
23 CLOSE l_ity_csr;
24
25 IF (l_found) THEN
26 Okl_Api.SET_MESSAGE(p_app_name => g_app_name,
27 p_msg_name => 'OKL_ITY_Exists',
28 p_token1 => 'NAME',
29 p_token1_value => p_ityv_rec.name);
30 -- notify caller of an error
31 l_return_status := Okl_Api.G_RET_STS_ERROR;
32 END IF;
33 RETURN (l_return_status);
34
35 EXCEPTION
36 WHEN OTHERS THEN
37 RETURN (l_return_status);
38 END IS_UNIQUE;
39
40
41 -- Validate not null value for ID
42
43 PROCEDURE validate_id(x_return_status OUT NOCOPY VARCHAR2,
44 p_ityv_rec IN ityv_rec_type) IS
45
46 BEGIN
47 -- initialize return status
48 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
49
50 -- data is required
51 IF(p_ityv_rec.id IS NULL) OR (p_ityv_rec.id = Okl_Api.G_MISS_NUM) THEN
52 Okl_Api.SET_MESSAGE(p_app_name => g_app_name,
53 p_msg_name => g_required_value,
54 p_token1 => g_col_name_token,
55 p_token1_value => 'id');
56
57 -- notify caller of an error
58 x_return_status := Okl_Api.G_RET_STS_ERROR;
59
60 -- halt further validation of this column
61 RAISE G_EXCEPTION_HALT_VALIDATION;
62 END IF;
63
64 END validate_id;
65
66
67 -- Validate not null value for Version Number
68
69 PROCEDURE validate_object_version_number(x_return_status OUT NOCOPY VARCHAR2,
70 p_ityv_rec IN ityv_rec_type) IS
71
72 BEGIN
73 -- initialize return status
74 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
75
76 -- data is required
77 IF(p_ityv_rec.object_version_number IS NULL) OR (p_ityv_rec.object_version_number = Okl_Api.G_MISS_NUM) THEN
78 Okl_Api.SET_MESSAGE(p_app_name => g_app_name,
79 p_msg_name => g_required_value,
80 p_token1 => g_col_name_token,
81 p_token1_value => 'object_version_number');
82
83 -- notify caller of an error
84 x_return_status := Okl_Api.G_RET_STS_ERROR;
85
86 -- halt further validation of this column
87 RAISE G_EXCEPTION_HALT_VALIDATION;
88 END IF;
89
90 END validate_object_version_number;
91
92 PROCEDURE validate_name(x_return_status OUT NOCOPY VARCHAR2,
93 p_ityv_rec IN ityv_rec_type) IS
94
95 BEGIN
96 -- initialize return status
97 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
98
99 -- data is required
100 IF(p_ityv_rec.name IS NULL) THEN
101 Okl_Api.SET_MESSAGE(p_app_name => 'OKC', --g_app_name,
102 p_msg_name => g_required_value,
103 p_token1 => g_col_name_token,
104 p_token1_value => 'Name');
105
106 -- notify caller of an error
107 x_return_status := Okl_Api.G_RET_STS_ERROR;
108
109 -- halt further validation of this column
110 RAISE G_EXCEPTION_HALT_VALIDATION;
111 END IF;
112
113 END validate_name;
114
115
116
117 PROCEDURE validate_group_asset_yn(x_return_status OUT NOCOPY VARCHAR2,
118 p_ityv_rec IN ityv_rec_type) IS
119
120 BEGIN
121 -- initialize return status
122 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
123
124 -- data is required
125 IF(p_ityv_rec.group_asset_yn IS NULL) OR (p_ityv_rec.group_asset_yn = Okl_Api.G_MISS_CHAR) THEN
126 Okl_Api.SET_MESSAGE(p_app_name => g_app_name,
127 p_msg_name => g_required_value,
128 p_token1 => g_col_name_token,
129 p_token1_value => 'group_asset_yn');
130
131 -- notify caller of an error
132 x_return_status := Okl_Api.G_RET_STS_ERROR;
133
134 -- halt further validation of this column
135 RAISE G_EXCEPTION_HALT_VALIDATION;
136 ELSE
137 x_return_status := Okl_Util.CHECK_DOMAIN_YN(p_ityv_rec.group_asset_yn);
138
139 END IF;
140
141 END validate_group_asset_yn;
142
143
144
145 PROCEDURE validate_group_by_contract_yn(x_return_status OUT NOCOPY VARCHAR2,
146 p_ityv_rec IN ityv_rec_type) IS
147
148 BEGIN
149 -- initialize return status
150 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
151
152 -- data is required
153 IF(p_ityv_rec.group_by_contract_yn IS NULL) OR (p_ityv_rec.group_by_contract_yn = Okl_Api.G_MISS_CHAR) THEN
154 Okl_Api.SET_MESSAGE(p_app_name => g_app_name,
155 p_msg_name => g_required_value,
156 p_token1 => g_col_name_token,
157 p_token1_value => 'group_by_contract_yn');
158
159 -- notify caller of an error
160 x_return_status := Okl_Api.G_RET_STS_ERROR;
161
162 -- halt further validation of this column
163 RAISE G_EXCEPTION_HALT_VALIDATION;
164 ELSE
165 x_return_status := Okl_Util.CHECK_DOMAIN_YN(p_ityv_rec.group_by_contract_yn);
166
167 END IF;
168
169 END validate_group_by_contract_yn;
170
171 PROCEDURE validate_inf_id(x_return_status OUT NOCOPY VARCHAR2,
172 p_ityv_rec IN ityv_rec_type) IS
173
174 l_dummy_var VARCHAR2(1) := '?';
175 CURSOR l_ityv_csr IS
176 SELECT 'x'
177 FROM OKL_INVOICE_FORMATS_V
178 WHERE id = p_ityv_rec.inf_id;
179
180 BEGIN
181 -- initialize return status
182 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
183
184 -- data is required
185 IF(p_ityv_rec.inf_id IS NULL) OR (p_ityv_rec.inf_id = Okl_Api.G_MISS_NUM) THEN
186 Okl_Api.SET_MESSAGE(p_app_name => g_app_name,
187 p_msg_name => g_required_value,
188 p_token1 => g_col_name_token,
189 p_token1_value => 'inf_id');
190
191 -- notify caller of an error
192 x_return_status := Okl_Api.G_RET_STS_ERROR;
193
194 -- halt further validation of this column
195 RAISE G_EXCEPTION_HALT_VALIDATION;
196 END IF;
197
198 -- enforce foreign key
199 OPEN l_ityv_csr;
200 FETCH l_ityv_csr INTO l_dummy_var;
201 CLOSE l_ityv_csr;
202
203 -- if l_dummy_var is still set to default, data was not found
204 IF(l_dummy_var = '?') THEN
205 Okl_Api.SET_MESSAGE(p_app_name => g_app_name,
206 p_msg_name => g_no_parent_record,
207 p_token1 => g_col_name_token,
208 p_token1_value => 'inf_id',
209 p_token2 => g_child_table_token,
210 p_token2_value => 'OKL_INVOICE_TYPES_V',
211 p_token3 => g_parent_table_token,
212 p_token3_value => 'OKL_INVOICE_FORMATS_V');
213
214 -- notify caller of an error
215 x_return_status := Okl_Api.G_RET_STS_ERROR;
216 END IF;
217
218 EXCEPTION
219 WHEN G_EXCEPTION_HALT_VALIDATION THEN
220 -- no processing necessary validation can continue with the next column
221 NULL;
222
223 WHEN OTHERS THEN
224 -- store SQL error message on message stack for caller
225 Okl_Api.SET_MESSAGE(p_app_name => g_app_name,
226 p_msg_name => g_unexpected_error,
227 p_token1 => g_sqlcode_token,
228 p_token1_value => SQLCODE,
229 p_token2 => g_sqlerrm_token,
230 p_token2_value => SQLERRM);
231
232
233 -- notify caller of an error
234 x_return_status := Okl_Api.G_RET_STS_UNEXP_ERROR;
235
236 -- verfiy that cursor was closed
237 IF l_ityv_csr%ISOPEN THEN
238 CLOSE l_ityv_csr;
239 END IF;
240
241 END validate_inf_id;
242
243
244 ---------------------------------------------------------------------------
245 -- FUNCTION get_seq_id
246 ---------------------------------------------------------------------------
247 FUNCTION get_seq_id RETURN NUMBER IS
248 BEGIN
249 RETURN(Okc_P_Util.raw_to_number(sys_guid()));
250 END get_seq_id;
251
252 ---------------------------------------------------------------------------
253 -- PROCEDURE qc
254 ---------------------------------------------------------------------------
255 PROCEDURE qc IS
256 BEGIN
257 NULL;
258 END qc;
259
260 ---------------------------------------------------------------------------
261 -- PROCEDURE change_version
262 ---------------------------------------------------------------------------
263 PROCEDURE change_version IS
264 BEGIN
265 NULL;
266 END change_version;
267
268 ---------------------------------------------------------------------------
269 -- PROCEDURE api_copy
270 ---------------------------------------------------------------------------
271 PROCEDURE api_copy IS
272 BEGIN
273 NULL;
274 END api_copy;
275
276 ---------------------------------------------------------------------------
277 -- PROCEDURE add_language
278 ---------------------------------------------------------------------------
279 PROCEDURE add_language IS
280 BEGIN
281 DELETE FROM OKL_INVOICE_TYPES_TL T
282 WHERE NOT EXISTS (
283 SELECT NULL
284 FROM OKL_INVOICE_TYPES_B B
285 WHERE B.ID = T.ID
286 AND T.LANGUAGE = USERENV('LANG')
287 );
288
289 UPDATE OKL_INVOICE_TYPES_TL T SET (
290 NAME,
291 DESCRIPTION) = (SELECT
292 B.NAME,
293 B.DESCRIPTION
294 FROM OKL_INVOICE_TYPES_TL B
295 WHERE B.ID = T.ID
296 AND B.LANGUAGE = T.SOURCE_LANG)
297 WHERE (
298 T.ID,
299 T.LANGUAGE)
300 IN (SELECT
301 SUBT.ID,
302 SUBT.LANGUAGE
303 FROM OKL_INVOICE_TYPES_TL SUBB, OKL_INVOICE_TYPES_TL SUBT
304 WHERE SUBB.ID = SUBT.ID
305 AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
306 AND (SUBB.NAME <> SUBT.NAME
307 OR SUBB.DESCRIPTION <> SUBT.DESCRIPTION
308 OR (SUBB.DESCRIPTION IS NULL AND SUBT.DESCRIPTION IS NOT NULL)
309 OR (SUBB.DESCRIPTION IS NOT NULL AND SUBT.DESCRIPTION IS NULL)
310 ));
311
312 INSERT INTO OKL_INVOICE_TYPES_TL (
313 ID,
314 LANGUAGE,
315 SOURCE_LANG,
316 SFWT_FLAG,
317 NAME,
318 DESCRIPTION,
319 CREATED_BY,
320 CREATION_DATE,
321 LAST_UPDATED_BY,
322 LAST_UPDATE_DATE,
323 LAST_UPDATE_LOGIN)
324 SELECT
325 B.ID,
326 L.LANGUAGE_CODE,
327 B.SOURCE_LANG,
328 B.SFWT_FLAG,
329 B.NAME,
330 B.DESCRIPTION,
331 B.CREATED_BY,
332 B.CREATION_DATE,
333 B.LAST_UPDATED_BY,
334 B.LAST_UPDATE_DATE,
335 B.LAST_UPDATE_LOGIN
336 FROM OKL_INVOICE_TYPES_TL B, FND_LANGUAGES L
337 WHERE L.INSTALLED_FLAG IN ('I', 'B')
338 AND B.LANGUAGE = USERENV('LANG')
339 AND NOT EXISTS(
340 SELECT NULL
341 FROM OKL_INVOICE_TYPES_TL T
342 WHERE T.ID = B.ID
343 AND T.LANGUAGE = L.LANGUAGE_CODE
344 );
345
346 END add_language;
347
348 ---------------------------------------------------------------------------
349 -- FUNCTION get_rec for: OKL_INVOICE_TYPES_B
350 ---------------------------------------------------------------------------
351 FUNCTION get_rec (
352 p_ity_rec IN ity_rec_type,
353 x_no_data_found OUT NOCOPY BOOLEAN
354 ) RETURN ity_rec_type IS
355 CURSOR ity_pk_csr (p_id IN NUMBER) IS
356 SELECT
357 ID,
358 INF_ID,
359 GROUP_ASSET_YN,
360 GROUP_BY_CONTRACT_YN,
361 OBJECT_VERSION_NUMBER,
362 ATTRIBUTE_CATEGORY,
363 ATTRIBUTE1,
364 ATTRIBUTE2,
365 ATTRIBUTE3,
366 ATTRIBUTE4,
367 ATTRIBUTE5,
368 ATTRIBUTE6,
369 ATTRIBUTE7,
370 ATTRIBUTE8,
371 ATTRIBUTE9,
372 ATTRIBUTE10,
373 ATTRIBUTE11,
374 ATTRIBUTE12,
375 ATTRIBUTE13,
376 ATTRIBUTE14,
377 ATTRIBUTE15,
378 CREATED_BY,
379 CREATION_DATE,
380 LAST_UPDATED_BY,
381 LAST_UPDATE_DATE,
382 LAST_UPDATE_LOGIN
383 FROM Okl_Invoice_Types_B
384 WHERE okl_invoice_types_b.id = p_id;
385 l_ity_pk ity_pk_csr%ROWTYPE;
386 l_ity_rec ity_rec_type;
387 BEGIN
388 x_no_data_found := TRUE;
389 -- Get current database values
390 OPEN ity_pk_csr (p_ity_rec.id);
391 FETCH ity_pk_csr INTO
392 l_ity_rec.ID,
393 l_ity_rec.INF_ID,
394 l_ity_rec.GROUP_ASSET_YN,
395 l_ity_rec.GROUP_BY_CONTRACT_YN,
396 l_ity_rec.OBJECT_VERSION_NUMBER,
397 l_ity_rec.ATTRIBUTE_CATEGORY,
398 l_ity_rec.ATTRIBUTE1,
399 l_ity_rec.ATTRIBUTE2,
400 l_ity_rec.ATTRIBUTE3,
401 l_ity_rec.ATTRIBUTE4,
402 l_ity_rec.ATTRIBUTE5,
403 l_ity_rec.ATTRIBUTE6,
404 l_ity_rec.ATTRIBUTE7,
405 l_ity_rec.ATTRIBUTE8,
406 l_ity_rec.ATTRIBUTE9,
407 l_ity_rec.ATTRIBUTE10,
408 l_ity_rec.ATTRIBUTE11,
409 l_ity_rec.ATTRIBUTE12,
410 l_ity_rec.ATTRIBUTE13,
411 l_ity_rec.ATTRIBUTE14,
412 l_ity_rec.ATTRIBUTE15,
413 l_ity_rec.CREATED_BY,
414 l_ity_rec.CREATION_DATE,
415 l_ity_rec.LAST_UPDATED_BY,
416 l_ity_rec.LAST_UPDATE_DATE,
417 l_ity_rec.LAST_UPDATE_LOGIN;
418 x_no_data_found := ity_pk_csr%NOTFOUND;
419 CLOSE ity_pk_csr;
420 RETURN(l_ity_rec);
421 END get_rec;
422
423 FUNCTION get_rec (
424 p_ity_rec IN ity_rec_type
425 ) RETURN ity_rec_type IS
426 l_row_notfound BOOLEAN := TRUE;
427 BEGIN
428 RETURN(get_rec(p_ity_rec, l_row_notfound));
429 END get_rec;
430 ---------------------------------------------------------------------------
431 -- FUNCTION get_rec for: OKL_INVOICE_TYPES_TL
432 ---------------------------------------------------------------------------
433 FUNCTION get_rec (
434 p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type,
435 x_no_data_found OUT NOCOPY BOOLEAN
436 ) RETURN okl_invoice_types_tl_rec_type IS
437 CURSOR okl_invoice_types_tl_pk_csr (p_id IN NUMBER,
438 p_language IN VARCHAR2) IS
439 SELECT
440 ID,
441 LANGUAGE,
442 SOURCE_LANG,
443 SFWT_FLAG,
444 NAME,
445 DESCRIPTION,
446 CREATED_BY,
447 CREATION_DATE,
448 LAST_UPDATED_BY,
449 LAST_UPDATE_DATE,
450 LAST_UPDATE_LOGIN
451 FROM Okl_Invoice_Types_Tl
452 WHERE okl_invoice_types_tl.id = p_id
453 AND okl_invoice_types_tl.LANGUAGE = p_language;
454 l_okl_invoice_types_tl_pk okl_invoice_types_tl_pk_csr%ROWTYPE;
455 l_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type;
456 BEGIN
457 x_no_data_found := TRUE;
458 -- Get current database values
459 OPEN okl_invoice_types_tl_pk_csr (p_okl_invoice_types_tl_rec.id,
460 p_okl_invoice_types_tl_rec.LANGUAGE);
461 FETCH okl_invoice_types_tl_pk_csr INTO
462 l_okl_invoice_types_tl_rec.ID,
463 l_okl_invoice_types_tl_rec.LANGUAGE,
464 l_okl_invoice_types_tl_rec.SOURCE_LANG,
465 l_okl_invoice_types_tl_rec.SFWT_FLAG,
466 l_okl_invoice_types_tl_rec.NAME,
467 l_okl_invoice_types_tl_rec.DESCRIPTION,
468 l_okl_invoice_types_tl_rec.CREATED_BY,
469 l_okl_invoice_types_tl_rec.CREATION_DATE,
470 l_okl_invoice_types_tl_rec.LAST_UPDATED_BY,
471 l_okl_invoice_types_tl_rec.LAST_UPDATE_DATE,
472 l_okl_invoice_types_tl_rec.LAST_UPDATE_LOGIN;
473 x_no_data_found := okl_invoice_types_tl_pk_csr%NOTFOUND;
474 CLOSE okl_invoice_types_tl_pk_csr;
475 RETURN(l_okl_invoice_types_tl_rec);
476 END get_rec;
477
478 FUNCTION get_rec (
479 p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type
480 ) RETURN okl_invoice_types_tl_rec_type IS
481 l_row_notfound BOOLEAN := TRUE;
482 BEGIN
483 RETURN(get_rec(p_okl_invoice_types_tl_rec, l_row_notfound));
484 END get_rec;
485 ---------------------------------------------------------------------------
486 -- FUNCTION get_rec for: OKL_INVOICE_TYPES_V
487 ---------------------------------------------------------------------------
488 FUNCTION get_rec (
489 p_ityv_rec IN ityv_rec_type,
490 x_no_data_found OUT NOCOPY BOOLEAN
491 ) RETURN ityv_rec_type IS
492 CURSOR okl_ityv_pk_csr (p_id IN NUMBER) IS
493 SELECT
494 ID,
495 OBJECT_VERSION_NUMBER,
496 SFWT_FLAG,
497 INF_ID,
498 NAME,
499 DESCRIPTION,
500 GROUP_ASSET_YN,
501 GROUP_BY_CONTRACT_YN,
502 ATTRIBUTE_CATEGORY,
503 ATTRIBUTE1,
504 ATTRIBUTE2,
505 ATTRIBUTE3,
506 ATTRIBUTE4,
507 ATTRIBUTE5,
508 ATTRIBUTE6,
509 ATTRIBUTE7,
510 ATTRIBUTE8,
511 ATTRIBUTE9,
512 ATTRIBUTE10,
513 ATTRIBUTE11,
514 ATTRIBUTE12,
515 ATTRIBUTE13,
516 ATTRIBUTE14,
517 ATTRIBUTE15,
518 CREATED_BY,
519 CREATION_DATE,
520 LAST_UPDATED_BY,
521 LAST_UPDATE_DATE,
522 LAST_UPDATE_LOGIN
523 FROM Okl_Invoice_Types_V
524 WHERE okl_invoice_types_v.id = p_id;
525 l_okl_ityv_pk okl_ityv_pk_csr%ROWTYPE;
526 l_ityv_rec ityv_rec_type;
527 BEGIN
528 x_no_data_found := TRUE;
529 -- Get current database values
530 OPEN okl_ityv_pk_csr (p_ityv_rec.id);
531 FETCH okl_ityv_pk_csr INTO
532 l_ityv_rec.ID,
533 l_ityv_rec.OBJECT_VERSION_NUMBER,
534 l_ityv_rec.SFWT_FLAG,
535 l_ityv_rec.INF_ID,
536 l_ityv_rec.NAME,
537 l_ityv_rec.DESCRIPTION,
538 l_ityv_rec.GROUP_ASSET_YN,
539 l_ityv_rec.GROUP_BY_CONTRACT_YN,
540 l_ityv_rec.ATTRIBUTE_CATEGORY,
541 l_ityv_rec.ATTRIBUTE1,
542 l_ityv_rec.ATTRIBUTE2,
543 l_ityv_rec.ATTRIBUTE3,
544 l_ityv_rec.ATTRIBUTE4,
545 l_ityv_rec.ATTRIBUTE5,
546 l_ityv_rec.ATTRIBUTE6,
547 l_ityv_rec.ATTRIBUTE7,
548 l_ityv_rec.ATTRIBUTE8,
549 l_ityv_rec.ATTRIBUTE9,
550 l_ityv_rec.ATTRIBUTE10,
551 l_ityv_rec.ATTRIBUTE11,
552 l_ityv_rec.ATTRIBUTE12,
553 l_ityv_rec.ATTRIBUTE13,
554 l_ityv_rec.ATTRIBUTE14,
555 l_ityv_rec.ATTRIBUTE15,
556 l_ityv_rec.CREATED_BY,
557 l_ityv_rec.CREATION_DATE,
558 l_ityv_rec.LAST_UPDATED_BY,
559 l_ityv_rec.LAST_UPDATE_DATE,
560 l_ityv_rec.LAST_UPDATE_LOGIN;
561 x_no_data_found := okl_ityv_pk_csr%NOTFOUND;
562 CLOSE okl_ityv_pk_csr;
563 RETURN(l_ityv_rec);
564 END get_rec;
565
566 FUNCTION get_rec (
567 p_ityv_rec IN ityv_rec_type
568 ) RETURN ityv_rec_type IS
569 l_row_notfound BOOLEAN := TRUE;
570 BEGIN
571 RETURN(get_rec(p_ityv_rec, l_row_notfound));
572 END get_rec;
573
574 ---------------------------------------------------------
575 -- FUNCTION null_out_defaults for: OKL_INVOICE_TYPES_V --
576 ---------------------------------------------------------
577 FUNCTION null_out_defaults (
578 p_ityv_rec IN ityv_rec_type
579 ) RETURN ityv_rec_type IS
580 l_ityv_rec ityv_rec_type := p_ityv_rec;
581 BEGIN
582 IF (l_ityv_rec.object_version_number = Okl_Api.G_MISS_NUM) THEN
583 l_ityv_rec.object_version_number := NULL;
584 END IF;
585 IF (l_ityv_rec.sfwt_flag = Okl_Api.G_MISS_CHAR) THEN
586 l_ityv_rec.sfwt_flag := NULL;
587 END IF;
588 IF (l_ityv_rec.inf_id = Okl_Api.G_MISS_NUM) THEN
589 l_ityv_rec.inf_id := NULL;
590 END IF;
591 IF (l_ityv_rec.name = Okl_Api.G_MISS_CHAR) THEN
592 l_ityv_rec.name := NULL;
593 END IF;
594 IF (l_ityv_rec.description = Okl_Api.G_MISS_CHAR) THEN
595 l_ityv_rec.description := NULL;
596 END IF;
597 IF (l_ityv_rec.group_asset_yn = Okl_Api.G_MISS_CHAR) THEN
598 l_ityv_rec.group_asset_yn := NULL;
599 END IF;
600 IF (l_ityv_rec.group_by_contract_yn = Okl_Api.G_MISS_CHAR) THEN
601 l_ityv_rec.group_by_contract_yn := NULL;
602 END IF;
603 IF (l_ityv_rec.attribute_category = Okl_Api.G_MISS_CHAR) THEN
604 l_ityv_rec.attribute_category := NULL;
605 END IF;
606 IF (l_ityv_rec.attribute1 = Okl_Api.G_MISS_CHAR) THEN
607 l_ityv_rec.attribute1 := NULL;
608 END IF;
609 IF (l_ityv_rec.attribute2 = Okl_Api.G_MISS_CHAR) THEN
610 l_ityv_rec.attribute2 := NULL;
611 END IF;
612 IF (l_ityv_rec.attribute3 = Okl_Api.G_MISS_CHAR) THEN
613 l_ityv_rec.attribute3 := NULL;
614 END IF;
615 IF (l_ityv_rec.attribute4 = Okl_Api.G_MISS_CHAR) THEN
616 l_ityv_rec.attribute4 := NULL;
617 END IF;
618 IF (l_ityv_rec.attribute5 = Okl_Api.G_MISS_CHAR) THEN
619 l_ityv_rec.attribute5 := NULL;
620 END IF;
621 IF (l_ityv_rec.attribute6 = Okl_Api.G_MISS_CHAR) THEN
622 l_ityv_rec.attribute6 := NULL;
623 END IF;
624 IF (l_ityv_rec.attribute7 = Okl_Api.G_MISS_CHAR) THEN
625 l_ityv_rec.attribute7 := NULL;
626 END IF;
627 IF (l_ityv_rec.attribute8 = Okl_Api.G_MISS_CHAR) THEN
628 l_ityv_rec.attribute8 := NULL;
629 END IF;
630 IF (l_ityv_rec.attribute9 = Okl_Api.G_MISS_CHAR) THEN
631 l_ityv_rec.attribute9 := NULL;
632 END IF;
633 IF (l_ityv_rec.attribute10 = Okl_Api.G_MISS_CHAR) THEN
634 l_ityv_rec.attribute10 := NULL;
635 END IF;
636 IF (l_ityv_rec.attribute11 = Okl_Api.G_MISS_CHAR) THEN
637 l_ityv_rec.attribute11 := NULL;
638 END IF;
639 IF (l_ityv_rec.attribute12 = Okl_Api.G_MISS_CHAR) THEN
640 l_ityv_rec.attribute12 := NULL;
641 END IF;
642 IF (l_ityv_rec.attribute13 = Okl_Api.G_MISS_CHAR) THEN
643 l_ityv_rec.attribute13 := NULL;
644 END IF;
645 IF (l_ityv_rec.attribute14 = Okl_Api.G_MISS_CHAR) THEN
646 l_ityv_rec.attribute14 := NULL;
647 END IF;
648 IF (l_ityv_rec.attribute15 = Okl_Api.G_MISS_CHAR) THEN
649 l_ityv_rec.attribute15 := NULL;
650 END IF;
651 IF (l_ityv_rec.created_by = Okl_Api.G_MISS_NUM) THEN
652 l_ityv_rec.created_by := NULL;
653 END IF;
654 IF (l_ityv_rec.creation_date = Okl_Api.G_MISS_DATE) THEN
655 l_ityv_rec.creation_date := NULL;
656 END IF;
657 IF (l_ityv_rec.last_updated_by = Okl_Api.G_MISS_NUM) THEN
658 l_ityv_rec.last_updated_by := NULL;
659 END IF;
660 IF (l_ityv_rec.last_update_date = Okl_Api.G_MISS_DATE) THEN
661 l_ityv_rec.last_update_date := NULL;
662 END IF;
663 IF (l_ityv_rec.last_update_login = Okl_Api.G_MISS_NUM) THEN
664 l_ityv_rec.last_update_login := NULL;
665 END IF;
666 RETURN(l_ityv_rec);
667 END null_out_defaults;
668 ---------------------------------------------------------------------------
669 -- PROCEDURE Validate_Attributes
670 ---------------------------------------------------------------------------
671 -------------------------------------------------
672 -- Validate_Attributes for:OKL_INVOICE_TYPES_V --
673 -------------------------------------------------
674 FUNCTION Validate_Attributes (
675 p_ityv_rec IN ityv_rec_type
676 ) RETURN VARCHAR2 IS
677 x_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
678 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
679 BEGIN
680 -- Call each column level validation
681
682 validate_id(x_return_status => l_return_status,
683 p_ityv_rec => p_ityv_rec);
684
685 -- Store the highest degree of error
686 IF(l_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
687 IF(x_return_status <> Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
688 x_return_status := l_return_status;
689 END IF;
690 END IF;
691
692 validate_object_version_number(x_return_status => l_return_status,
693 p_ityv_rec => p_ityv_rec);
694
695 -- Store the highest degree of error
696 IF(l_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
697 IF(x_return_status <> Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
698 x_return_status := l_return_status;
699 END IF;
700 END IF;
701
702 validate_inf_id(x_return_status => l_return_status,
703 p_ityv_rec => p_ityv_rec);
704
705 -- Store the highest degree of error
706 IF(l_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
707 IF(x_return_status <> Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
708 x_return_status := l_return_status;
709 END IF;
710 END IF;
711
712 validate_name(x_return_status => l_return_status,
713 p_ityv_rec => p_ityv_rec);
714
715 -- Store the highest degree of error
716 IF(l_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
717 IF(x_return_status <> Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
718 x_return_status := l_return_status;
719 END IF;
720 END IF;
721
722 validate_group_asset_yn(x_return_status => l_return_status,
723 p_ityv_rec => p_ityv_rec);
724
725 -- Store the highest degree of error
726 IF(l_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
727 IF(x_return_status <> Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
728 x_return_status := l_return_status;
729 END IF;
730 END IF;
731
732 validate_group_by_contract_yn(x_return_status => l_return_status,
733 p_ityv_rec => p_ityv_rec);
734
735 -- Store the highest degree of error
736 IF(l_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
737 IF(x_return_status <> Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
738 x_return_status := l_return_status;
739 END IF;
740 END IF;
741
742 RETURN(l_return_status);
743 END Validate_Attributes;
744
745 ---------------------------------------------------------------------------
746 -- PROCEDURE Validate_Record
747 ---------------------------------------------------------------------------
748 ---------------------------------------------
749 -- Validate_Record for:OKL_INVOICE_TYPES_V --
750 ---------------------------------------------
751 FUNCTION Validate_Record (
752 p_ityv_rec IN ityv_rec_type
753 ) RETURN VARCHAR2 IS
754 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
755 BEGIN
756 l_return_status := IS_UNIQUE(p_ityv_rec);
757 RETURN (l_return_status);
758 END Validate_Record;
759
760 ---------------------------------------------------------------------------
761 -- PROCEDURE Migrate
762 ---------------------------------------------------------------------------
763 PROCEDURE migrate (
764 p_from IN ityv_rec_type,
765 p_to OUT NOCOPY ity_rec_type
766 ) IS
767 BEGIN
768 p_to.id := p_from.id;
769 p_to.inf_id := p_from.inf_id;
770 p_to.group_asset_yn := p_from.group_asset_yn;
771 p_to.group_by_contract_yn := p_from.group_by_contract_yn;
772 p_to.object_version_number := p_from.object_version_number;
773 p_to.attribute_category := p_from.attribute_category;
774 p_to.attribute1 := p_from.attribute1;
775 p_to.attribute2 := p_from.attribute2;
776 p_to.attribute3 := p_from.attribute3;
777 p_to.attribute4 := p_from.attribute4;
778 p_to.attribute5 := p_from.attribute5;
779 p_to.attribute6 := p_from.attribute6;
780 p_to.attribute7 := p_from.attribute7;
781 p_to.attribute8 := p_from.attribute8;
782 p_to.attribute9 := p_from.attribute9;
783 p_to.attribute10 := p_from.attribute10;
784 p_to.attribute11 := p_from.attribute11;
785 p_to.attribute12 := p_from.attribute12;
786 p_to.attribute13 := p_from.attribute13;
787 p_to.attribute14 := p_from.attribute14;
788 p_to.attribute15 := p_from.attribute15;
789 p_to.created_by := p_from.created_by;
790 p_to.creation_date := p_from.creation_date;
791 p_to.last_updated_by := p_from.last_updated_by;
792 p_to.last_update_date := p_from.last_update_date;
793 p_to.last_update_login := p_from.last_update_login;
794 END migrate;
795 PROCEDURE migrate (
796 p_from IN ity_rec_type,
797 p_to OUT NOCOPY ityv_rec_type
798 ) IS
799 BEGIN
800 p_to.id := p_from.id;
801 p_to.inf_id := p_from.inf_id;
802 p_to.group_asset_yn := p_from.group_asset_yn;
803 p_to.group_by_contract_yn := p_from.group_by_contract_yn;
804 p_to.object_version_number := p_from.object_version_number;
805 p_to.attribute_category := p_from.attribute_category;
806 p_to.attribute1 := p_from.attribute1;
807 p_to.attribute2 := p_from.attribute2;
808 p_to.attribute3 := p_from.attribute3;
809 p_to.attribute4 := p_from.attribute4;
810 p_to.attribute5 := p_from.attribute5;
811 p_to.attribute6 := p_from.attribute6;
812 p_to.attribute7 := p_from.attribute7;
813 p_to.attribute8 := p_from.attribute8;
814 p_to.attribute9 := p_from.attribute9;
815 p_to.attribute10 := p_from.attribute10;
816 p_to.attribute11 := p_from.attribute11;
817 p_to.attribute12 := p_from.attribute12;
818 p_to.attribute13 := p_from.attribute13;
819 p_to.attribute14 := p_from.attribute14;
820 p_to.attribute15 := p_from.attribute15;
821 p_to.created_by := p_from.created_by;
822 p_to.creation_date := p_from.creation_date;
823 p_to.last_updated_by := p_from.last_updated_by;
824 p_to.last_update_date := p_from.last_update_date;
825 p_to.last_update_login := p_from.last_update_login;
826 END migrate;
827 PROCEDURE migrate (
828 p_from IN ityv_rec_type,
829 p_to OUT NOCOPY okl_invoice_types_tl_rec_type
830 ) IS
831 BEGIN
832 p_to.id := p_from.id;
833 p_to.sfwt_flag := p_from.sfwt_flag;
834 p_to.name := p_from.name;
835 p_to.description := p_from.description;
836 p_to.created_by := p_from.created_by;
837 p_to.creation_date := p_from.creation_date;
838 p_to.last_updated_by := p_from.last_updated_by;
839 p_to.last_update_date := p_from.last_update_date;
840 p_to.last_update_login := p_from.last_update_login;
841 END migrate;
842 PROCEDURE migrate (
843 p_from IN okl_invoice_types_tl_rec_type,
844 p_to OUT NOCOPY ityv_rec_type
845 ) IS
846 BEGIN
847 p_to.id := p_from.id;
848 p_to.sfwt_flag := p_from.sfwt_flag;
849 p_to.name := p_from.name;
850 p_to.description := p_from.description;
851 p_to.created_by := p_from.created_by;
852 p_to.creation_date := p_from.creation_date;
853 p_to.last_updated_by := p_from.last_updated_by;
854 p_to.last_update_date := p_from.last_update_date;
855 p_to.last_update_login := p_from.last_update_login;
856 END migrate;
857
858 ---------------------------------------------------------------------------
859 -- PROCEDURE validate_row
860 ---------------------------------------------------------------------------
861 ------------------------------------------
862 -- validate_row for:OKL_INVOICE_TYPES_V --
863 ------------------------------------------
864 PROCEDURE validate_row(
865 p_api_version IN NUMBER,
866 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
867 x_return_status OUT NOCOPY VARCHAR2,
868 x_msg_count OUT NOCOPY NUMBER,
869 x_msg_data OUT NOCOPY VARCHAR2,
870 p_ityv_rec IN ityv_rec_type) IS
871
872 l_api_version CONSTANT NUMBER := 1;
873 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
874 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
875 l_ityv_rec ityv_rec_type := p_ityv_rec;
876 l_ity_rec ity_rec_type;
877 l_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type;
878 BEGIN
879 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
880 G_PKG_NAME,
881 p_init_msg_list,
882 l_api_version,
883 p_api_version,
884 '_PVT',
885 x_return_status);
886 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
887 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
888 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
889 RAISE Okl_Api.G_EXCEPTION_ERROR;
890 END IF;
891 --- Validate all non-missing attributes (Item Level Validation)
892 l_return_status := Validate_Attributes(l_ityv_rec);
893 --- If any errors happen abort API
894 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
895 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
896 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
897 RAISE Okl_Api.G_EXCEPTION_ERROR;
898 END IF;
899 l_return_status := Validate_Record(l_ityv_rec);
900 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
901 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
902 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
903 RAISE Okl_Api.G_EXCEPTION_ERROR;
904 END IF;
905 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
906 EXCEPTION
907 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
908 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
909 (
910 l_api_name,
911 G_PKG_NAME,
912 'okl_api.G_RET_STS_ERROR',
913 x_msg_count,
914 x_msg_data,
915 '_PVT'
916 );
917 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
918 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
919 (
920 l_api_name,
921 G_PKG_NAME,
922 'okl_api.G_RET_STS_UNEXP_ERROR',
923 x_msg_count,
924 x_msg_data,
925 '_PVT'
926 );
927 WHEN OTHERS THEN
928 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
929 (
930 l_api_name,
931 G_PKG_NAME,
932 'OTHERS',
933 x_msg_count,
934 x_msg_data,
935 '_PVT'
936 );
937 END validate_row;
938 ------------------------------------------
939 -- PL/SQL TBL validate_row for:ITYV_TBL --
940 ------------------------------------------
941 PROCEDURE validate_row(
942 p_api_version IN NUMBER,
943 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
944 x_return_status OUT NOCOPY VARCHAR2,
945 x_msg_count OUT NOCOPY NUMBER,
946 x_msg_data OUT NOCOPY VARCHAR2,
947 p_ityv_tbl IN ityv_tbl_type) IS
948
949 l_api_version CONSTANT NUMBER := 1;
950 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
951 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
952 l_overall_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
953 i NUMBER := 0;
954 BEGIN
955 Okl_Api.init_msg_list(p_init_msg_list);
956 -- Make sure PL/SQL table has records in it before passing
957 IF (p_ityv_tbl.COUNT > 0) THEN
958 i := p_ityv_tbl.FIRST;
959 LOOP
960 validate_row (
961 p_api_version => p_api_version,
962 p_init_msg_list => Okl_Api.G_FALSE,
963 x_return_status => x_return_status,
964 x_msg_count => x_msg_count,
965 x_msg_data => x_msg_data,
966 p_ityv_rec => p_ityv_tbl(i));
967 -- Store the highest degree of error
968 IF x_return_status <> Okl_Api.G_RET_STS_SUCCESS THEN
969 IF l_overall_status <> Okl_Api.G_RET_STS_UNEXP_ERROR THEN
970 l_overall_status := x_return_status;
971 END IF;
972 END IF;
973 EXIT WHEN (i = p_ityv_tbl.LAST);
974 i := p_ityv_tbl.NEXT(i);
975 END LOOP;
976 -- return overall status
977 x_return_status := l_overall_status;
978 END IF;
979 EXCEPTION
980 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
981 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
982 (
983 l_api_name,
984 G_PKG_NAME,
985 'okl_api.G_RET_STS_ERROR',
986 x_msg_count,
987 x_msg_data,
988 '_PVT'
989 );
990 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
991 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
992 (
993 l_api_name,
994 G_PKG_NAME,
995 'okl_api.G_RET_STS_UNEXP_ERROR',
996 x_msg_count,
997 x_msg_data,
998 '_PVT'
999 );
1000 WHEN OTHERS THEN
1001 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1002 (
1003 l_api_name,
1004 G_PKG_NAME,
1005 'OTHERS',
1006 x_msg_count,
1007 x_msg_data,
1008 '_PVT'
1009 );
1010 END validate_row;
1011
1012 ---------------------------------------------------------------------------
1013 -- PROCEDURE insert_row
1014 ---------------------------------------------------------------------------
1015 ----------------------------------------
1016 -- insert_row for:OKL_INVOICE_TYPES_B --
1017 ----------------------------------------
1018 PROCEDURE insert_row(
1019 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
1020 x_return_status OUT NOCOPY VARCHAR2,
1021 x_msg_count OUT NOCOPY NUMBER,
1022 x_msg_data OUT NOCOPY VARCHAR2,
1023 p_ity_rec IN ity_rec_type,
1024 x_ity_rec OUT NOCOPY ity_rec_type) IS
1025
1026 l_api_version CONSTANT NUMBER := 1;
1027 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
1028 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1029 l_ity_rec ity_rec_type := p_ity_rec;
1030 l_def_ity_rec ity_rec_type;
1031 --------------------------------------------
1032 -- Set_Attributes for:OKL_INVOICE_TYPES_B --
1033 --------------------------------------------
1034 FUNCTION Set_Attributes (
1035 p_ity_rec IN ity_rec_type,
1036 x_ity_rec OUT NOCOPY ity_rec_type
1037 ) RETURN VARCHAR2 IS
1038 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1039 BEGIN
1040 x_ity_rec := p_ity_rec;
1041 RETURN(l_return_status);
1042 END Set_Attributes;
1043 BEGIN
1044 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
1045 p_init_msg_list,
1046 '_PVT',
1047 x_return_status);
1048 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1049 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1050 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1051 RAISE Okl_Api.G_EXCEPTION_ERROR;
1052 END IF;
1053 --- Setting item attributes
1054 l_return_status := Set_Attributes(
1055 p_ity_rec, -- IN
1056 l_ity_rec); -- OUT
1057 --- If any errors happen abort API
1058 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1059 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1060 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1061 RAISE Okl_Api.G_EXCEPTION_ERROR;
1062 END IF;
1063 INSERT INTO OKL_INVOICE_TYPES_B(
1064 id,
1065 inf_id,
1066 group_asset_yn,
1067 group_by_contract_yn,
1068 object_version_number,
1069 attribute_category,
1070 attribute1,
1071 attribute2,
1072 attribute3,
1073 attribute4,
1074 attribute5,
1075 attribute6,
1076 attribute7,
1077 attribute8,
1078 attribute9,
1079 attribute10,
1080 attribute11,
1081 attribute12,
1082 attribute13,
1083 attribute14,
1084 attribute15,
1085 created_by,
1086 creation_date,
1087 last_updated_by,
1088 last_update_date,
1089 last_update_login)
1090 VALUES (
1091 l_ity_rec.id,
1092 l_ity_rec.inf_id,
1093 l_ity_rec.group_asset_yn,
1094 l_ity_rec.group_by_contract_yn,
1095 l_ity_rec.object_version_number,
1096 l_ity_rec.attribute_category,
1097 l_ity_rec.attribute1,
1098 l_ity_rec.attribute2,
1099 l_ity_rec.attribute3,
1100 l_ity_rec.attribute4,
1101 l_ity_rec.attribute5,
1102 l_ity_rec.attribute6,
1103 l_ity_rec.attribute7,
1104 l_ity_rec.attribute8,
1105 l_ity_rec.attribute9,
1106 l_ity_rec.attribute10,
1107 l_ity_rec.attribute11,
1108 l_ity_rec.attribute12,
1109 l_ity_rec.attribute13,
1110 l_ity_rec.attribute14,
1111 l_ity_rec.attribute15,
1112 l_ity_rec.created_by,
1113 l_ity_rec.creation_date,
1114 l_ity_rec.last_updated_by,
1115 l_ity_rec.last_update_date,
1116 l_ity_rec.last_update_login);
1117 -- Set OUT values
1118 x_ity_rec := l_ity_rec;
1119 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1120 EXCEPTION
1121 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1122 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1123 (
1124 l_api_name,
1125 G_PKG_NAME,
1126 'okl_api.G_RET_STS_ERROR',
1127 x_msg_count,
1128 x_msg_data,
1129 '_PVT'
1130 );
1131 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1132 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1133 (
1134 l_api_name,
1135 G_PKG_NAME,
1136 'okl_api.G_RET_STS_UNEXP_ERROR',
1137 x_msg_count,
1138 x_msg_data,
1139 '_PVT'
1140 );
1141 WHEN OTHERS THEN
1142 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1143 (
1144 l_api_name,
1145 G_PKG_NAME,
1146 'OTHERS',
1147 x_msg_count,
1148 x_msg_data,
1149 '_PVT'
1150 );
1151 END insert_row;
1152 -----------------------------------------
1153 -- insert_row for:OKL_INVOICE_TYPES_TL --
1154 -----------------------------------------
1155 PROCEDURE insert_row(
1156 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
1157 x_return_status OUT NOCOPY VARCHAR2,
1158 x_msg_count OUT NOCOPY NUMBER,
1159 x_msg_data OUT NOCOPY VARCHAR2,
1160 p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type,
1161 x_okl_invoice_types_tl_rec OUT NOCOPY okl_invoice_types_tl_rec_type) IS
1162
1163 l_api_version CONSTANT NUMBER := 1;
1164 l_api_name CONSTANT VARCHAR2(30) := 'TL_insert_row';
1165 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1166 l_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type := p_okl_invoice_types_tl_rec;
1167 ldefoklinvoicetypestlrec okl_invoice_types_tl_rec_type;
1168 CURSOR get_languages IS
1169 SELECT *
1170 FROM FND_LANGUAGES
1171 WHERE INSTALLED_FLAG IN ('I', 'B');
1172 ---------------------------------------------
1173 -- Set_Attributes for:OKL_INVOICE_TYPES_TL --
1174 ---------------------------------------------
1175 FUNCTION Set_Attributes (
1176 p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type,
1177 x_okl_invoice_types_tl_rec OUT NOCOPY okl_invoice_types_tl_rec_type
1178 ) RETURN VARCHAR2 IS
1179 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1180 BEGIN
1181 x_okl_invoice_types_tl_rec := p_okl_invoice_types_tl_rec;
1182 x_okl_invoice_types_tl_rec.LANGUAGE := USERENV('LANG');
1183 x_okl_invoice_types_tl_rec.SOURCE_LANG := USERENV('LANG');
1184 RETURN(l_return_status);
1185 END Set_Attributes;
1186 BEGIN
1187 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
1188 p_init_msg_list,
1189 '_PVT',
1190 x_return_status);
1191 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1192 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1193 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1194 RAISE Okl_Api.G_EXCEPTION_ERROR;
1195 END IF;
1196 --- Setting item attributes
1197 l_return_status := Set_Attributes(
1198 p_okl_invoice_types_tl_rec, -- IN
1199 l_okl_invoice_types_tl_rec); -- OUT
1200 --- If any errors happen abort API
1201 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1202 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1203 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1204 RAISE Okl_Api.G_EXCEPTION_ERROR;
1205 END IF;
1206 FOR l_lang_rec IN get_languages LOOP
1207 l_okl_invoice_types_tl_rec.LANGUAGE := l_lang_rec.language_code;
1208 INSERT INTO OKL_INVOICE_TYPES_TL(
1209 id,
1210 LANGUAGE,
1211 source_lang,
1212 sfwt_flag,
1213 name,
1214 description,
1215 created_by,
1216 creation_date,
1217 last_updated_by,
1218 last_update_date,
1219 last_update_login)
1220 VALUES (
1221 l_okl_invoice_types_tl_rec.id,
1222 l_okl_invoice_types_tl_rec.LANGUAGE,
1223 l_okl_invoice_types_tl_rec.source_lang,
1224 l_okl_invoice_types_tl_rec.sfwt_flag,
1225 l_okl_invoice_types_tl_rec.name,
1226 l_okl_invoice_types_tl_rec.description,
1227 l_okl_invoice_types_tl_rec.created_by,
1228 l_okl_invoice_types_tl_rec.creation_date,
1229 l_okl_invoice_types_tl_rec.last_updated_by,
1230 l_okl_invoice_types_tl_rec.last_update_date,
1231 l_okl_invoice_types_tl_rec.last_update_login);
1232 END LOOP;
1233 -- Set OUT values
1234 x_okl_invoice_types_tl_rec := l_okl_invoice_types_tl_rec;
1235 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1236 EXCEPTION
1237 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1238 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1239 (
1240 l_api_name,
1241 G_PKG_NAME,
1242 'okl_api.G_RET_STS_ERROR',
1243 x_msg_count,
1244 x_msg_data,
1245 '_PVT'
1246 );
1247 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1248 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1249 (
1250 l_api_name,
1251 G_PKG_NAME,
1252 'okl_api.G_RET_STS_UNEXP_ERROR',
1253 x_msg_count,
1254 x_msg_data,
1255 '_PVT'
1256 );
1257 WHEN OTHERS THEN
1258 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1259 (
1260 l_api_name,
1261 G_PKG_NAME,
1262 'OTHERS',
1263 x_msg_count,
1264 x_msg_data,
1265 '_PVT'
1266 );
1267 END insert_row;
1268 ----------------------------------------
1269 -- insert_row for:OKL_INVOICE_TYPES_V --
1270 ----------------------------------------
1271 PROCEDURE insert_row(
1272 p_api_version IN NUMBER,
1273 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
1274 x_return_status OUT NOCOPY VARCHAR2,
1275 x_msg_count OUT NOCOPY NUMBER,
1276 x_msg_data OUT NOCOPY VARCHAR2,
1277 p_ityv_rec IN ityv_rec_type,
1278 x_ityv_rec OUT NOCOPY ityv_rec_type) IS
1279
1280 l_api_version CONSTANT NUMBER := 1;
1281 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
1282 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1283 l_ityv_rec ityv_rec_type;
1284 l_def_ityv_rec ityv_rec_type;
1285 l_ity_rec ity_rec_type;
1286 lx_ity_rec ity_rec_type;
1287 l_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type;
1288 lx_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type;
1289 -------------------------------
1290 -- FUNCTION fill_who_columns --
1291 -------------------------------
1292 FUNCTION fill_who_columns (
1293 p_ityv_rec IN ityv_rec_type
1294 ) RETURN ityv_rec_type IS
1295 l_ityv_rec ityv_rec_type := p_ityv_rec;
1296 BEGIN
1297 l_ityv_rec.CREATION_DATE := SYSDATE;
1298 l_ityv_rec.CREATED_BY := Fnd_Global.USER_ID;
1299 l_ityv_rec.LAST_UPDATE_DATE := SYSDATE;
1300 l_ityv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
1301 l_ityv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
1302 RETURN(l_ityv_rec);
1303 END fill_who_columns;
1304 --------------------------------------------
1305 -- Set_Attributes for:OKL_INVOICE_TYPES_V --
1306 --------------------------------------------
1307 FUNCTION Set_Attributes (
1308 p_ityv_rec IN ityv_rec_type,
1309 x_ityv_rec OUT NOCOPY ityv_rec_type
1310 ) RETURN VARCHAR2 IS
1311 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1312 BEGIN
1313 x_ityv_rec := p_ityv_rec;
1314 x_ityv_rec.OBJECT_VERSION_NUMBER := 1;
1315 x_ityv_rec.SFWT_FLAG := 'N';
1316 RETURN(l_return_status);
1317 END Set_Attributes;
1318 BEGIN
1319 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
1320 G_PKG_NAME,
1321 p_init_msg_list,
1322 l_api_version,
1323 p_api_version,
1324 '_PVT',
1325 x_return_status);
1326 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1327 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1328 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1329 RAISE Okl_Api.G_EXCEPTION_ERROR;
1330 END IF;
1331 l_ityv_rec := null_out_defaults(p_ityv_rec);
1332 -- Set primary key value
1333 l_ityv_rec.ID := get_seq_id;
1334 --- Setting item attributes
1335 l_return_status := Set_Attributes(
1336 l_ityv_rec, -- IN
1337 l_def_ityv_rec); -- OUT
1338 --- If any errors happen abort API
1339 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1340 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1341 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1342 RAISE Okl_Api.G_EXCEPTION_ERROR;
1343 END IF;
1344 l_def_ityv_rec := fill_who_columns(l_def_ityv_rec);
1345 --- Validate all non-missing attributes (Item Level Validation)
1346 l_return_status := Validate_Attributes(l_def_ityv_rec);
1347 --- If any errors happen abort API
1348 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1349 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1350 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1351 RAISE Okl_Api.G_EXCEPTION_ERROR;
1352 END IF;
1353 l_return_status := Validate_Record(l_def_ityv_rec);
1354 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1355 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1356 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1357 RAISE Okl_Api.G_EXCEPTION_ERROR;
1358 END IF;
1359 --------------------------------------
1360 -- Move VIEW record to "Child" records
1361 --------------------------------------
1362 migrate(l_def_ityv_rec, l_ity_rec);
1363 migrate(l_def_ityv_rec, l_okl_invoice_types_tl_rec);
1364 --------------------------------------------
1365 -- Call the INSERT_ROW for each child record
1366 --------------------------------------------
1367 insert_row(
1368 p_init_msg_list,
1369 x_return_status,
1370 x_msg_count,
1371 x_msg_data,
1372 l_ity_rec,
1373 lx_ity_rec
1374 );
1375 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1376 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1377 ELSIF (x_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1378 RAISE Okl_Api.G_EXCEPTION_ERROR;
1379 END IF;
1380 migrate(lx_ity_rec, l_def_ityv_rec);
1381 insert_row(
1382 p_init_msg_list,
1383 x_return_status,
1384 x_msg_count,
1385 x_msg_data,
1386 l_okl_invoice_types_tl_rec,
1387 lx_okl_invoice_types_tl_rec
1388 );
1389 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1390 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1391 ELSIF (x_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1392 RAISE Okl_Api.G_EXCEPTION_ERROR;
1393 END IF;
1394 migrate(lx_okl_invoice_types_tl_rec, l_def_ityv_rec);
1395 -- Set OUT values
1396 x_ityv_rec := l_def_ityv_rec;
1397 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1398 EXCEPTION
1399 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1400 x_return_status := 'E';
1401 /*
1402 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1403 (
1404 l_api_name,
1405 G_PKG_NAME,
1406 'okl_api.G_RET_STS_ERROR',
1407 x_msg_count,
1408 x_msg_data,
1409 '_PVT'
1410 );
1411 */
1412 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1413 x_return_status := 'U';
1414 /*
1415 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1416 (
1417 l_api_name,
1418 G_PKG_NAME,
1419 'okl_api.G_RET_STS_UNEXP_ERROR',
1420 x_msg_count,
1421 x_msg_data,
1422 '_PVT'
1423 );
1424 */
1425 WHEN OTHERS THEN
1426 x_return_status := 'U';
1427 /*
1428 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1429 (
1430 l_api_name,
1431 G_PKG_NAME,
1432 'OTHERS',
1433 x_msg_count,
1434 x_msg_data,
1435 '_PVT'
1436 );
1437 */
1438 END insert_row;
1439 ----------------------------------------
1440 -- PL/SQL TBL insert_row for:ITYV_TBL --
1441 ----------------------------------------
1442 PROCEDURE insert_row(
1443 p_api_version IN NUMBER,
1444 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
1445 x_return_status OUT NOCOPY VARCHAR2,
1446 x_msg_count OUT NOCOPY NUMBER,
1447 x_msg_data OUT NOCOPY VARCHAR2,
1448 p_ityv_tbl IN ityv_tbl_type,
1449 x_ityv_tbl OUT NOCOPY ityv_tbl_type) IS
1450
1451 l_api_version CONSTANT NUMBER := 1;
1452 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1453 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1454 l_overall_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1455 i NUMBER := 0;
1456 BEGIN
1457 Okl_Api.init_msg_list(p_init_msg_list);
1458 -- Make sure PL/SQL table has records in it before passing
1459 IF (p_ityv_tbl.COUNT > 0) THEN
1460 i := p_ityv_tbl.FIRST;
1461 LOOP
1462 insert_row (
1463 p_api_version => p_api_version,
1464 p_init_msg_list => Okl_Api.G_FALSE,
1465 x_return_status => x_return_status,
1466 x_msg_count => x_msg_count,
1467 x_msg_data => x_msg_data,
1468 p_ityv_rec => p_ityv_tbl(i),
1469 x_ityv_rec => x_ityv_tbl(i));
1470 -- Store the highest degree of error
1471 IF x_return_status <> Okl_Api.G_RET_STS_SUCCESS THEN
1472 IF l_overall_status <> Okl_Api.G_RET_STS_UNEXP_ERROR THEN
1473 l_overall_status := x_return_status;
1474 END IF;
1475 END IF;
1476 EXIT WHEN (i = p_ityv_tbl.LAST);
1477 i := p_ityv_tbl.NEXT(i);
1478 END LOOP;
1479 -- return overall status
1480 x_return_status := l_overall_status;
1481 END IF;
1482 EXCEPTION
1483 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1484 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1485 (
1486 l_api_name,
1487 G_PKG_NAME,
1488 'okl_api.G_RET_STS_ERROR',
1489 x_msg_count,
1490 x_msg_data,
1491 '_PVT'
1492 );
1493 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1494 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1495 (
1496 l_api_name,
1497 G_PKG_NAME,
1498 'okl_api.G_RET_STS_UNEXP_ERROR',
1499 x_msg_count,
1500 x_msg_data,
1501 '_PVT'
1502 );
1503 WHEN OTHERS THEN
1504 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1505 (
1506 l_api_name,
1507 G_PKG_NAME,
1508 'OTHERS',
1509 x_msg_count,
1510 x_msg_data,
1511 '_PVT'
1512 );
1513 END insert_row;
1514
1515 ---------------------------------------------------------------------------
1516 -- PROCEDURE lock_row
1517 ---------------------------------------------------------------------------
1518 --------------------------------------
1519 -- lock_row for:OKL_INVOICE_TYPES_B --
1520 --------------------------------------
1521 PROCEDURE lock_row(
1522 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
1523 x_return_status OUT NOCOPY VARCHAR2,
1524 x_msg_count OUT NOCOPY NUMBER,
1525 x_msg_data OUT NOCOPY VARCHAR2,
1526 p_ity_rec IN ity_rec_type) IS
1527
1528 E_Resource_Busy EXCEPTION;
1529 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1530 CURSOR lock_csr (p_ity_rec IN ity_rec_type) IS
1531 SELECT OBJECT_VERSION_NUMBER
1532 FROM OKL_INVOICE_TYPES_B
1533 WHERE ID = p_ity_rec.id
1534 AND OBJECT_VERSION_NUMBER = p_ity_rec.object_version_number
1535 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
1536
1537 CURSOR lchk_csr (p_ity_rec IN ity_rec_type) IS
1538 SELECT OBJECT_VERSION_NUMBER
1539 FROM OKL_INVOICE_TYPES_B
1540 WHERE ID = p_ity_rec.id;
1541 l_api_version CONSTANT NUMBER := 1;
1542 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
1543 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1544 l_object_version_number OKL_INVOICE_TYPES_B.OBJECT_VERSION_NUMBER%TYPE;
1545 lc_object_version_number OKL_INVOICE_TYPES_B.OBJECT_VERSION_NUMBER%TYPE;
1546 l_row_notfound BOOLEAN := FALSE;
1547 lc_row_notfound BOOLEAN := FALSE;
1548 BEGIN
1549 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
1550 p_init_msg_list,
1551 '_PVT',
1552 x_return_status);
1553 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1554 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1555 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1556 RAISE Okl_Api.G_EXCEPTION_ERROR;
1557 END IF;
1558 BEGIN
1559 OPEN lock_csr(p_ity_rec);
1560 FETCH lock_csr INTO l_object_version_number;
1561 l_row_notfound := lock_csr%NOTFOUND;
1562 CLOSE lock_csr;
1563 EXCEPTION
1564 WHEN E_Resource_Busy THEN
1565 IF (lock_csr%ISOPEN) THEN
1566 CLOSE lock_csr;
1567 END IF;
1568 Okl_Api.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1569 RAISE App_Exceptions.RECORD_LOCK_EXCEPTION;
1570 END;
1571
1572 IF ( l_row_notfound ) THEN
1573 OPEN lchk_csr(p_ity_rec);
1574 FETCH lchk_csr INTO lc_object_version_number;
1575 lc_row_notfound := lchk_csr%NOTFOUND;
1576 CLOSE lchk_csr;
1577 END IF;
1578 IF (lc_row_notfound) THEN
1579 Okl_Api.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1580 RAISE Okl_Api.G_EXCEPTION_ERROR;
1581 ELSIF lc_object_version_number > p_ity_rec.object_version_number THEN
1582 Okl_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1583 RAISE Okl_Api.G_EXCEPTION_ERROR;
1584 ELSIF lc_object_version_number <> p_ity_rec.object_version_number THEN
1585 Okl_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1586 RAISE Okl_Api.G_EXCEPTION_ERROR;
1587 ELSIF lc_object_version_number = -1 THEN
1588 Okl_Api.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
1589 RAISE Okl_Api.G_EXCEPTION_ERROR;
1590 END IF;
1591 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1592 EXCEPTION
1593 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1594 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1595 (
1596 l_api_name,
1597 G_PKG_NAME,
1598 'okl_api.G_RET_STS_ERROR',
1599 x_msg_count,
1600 x_msg_data,
1601 '_PVT'
1602 );
1603 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1604 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1605 (
1606 l_api_name,
1607 G_PKG_NAME,
1608 'okl_api.G_RET_STS_UNEXP_ERROR',
1609 x_msg_count,
1610 x_msg_data,
1611 '_PVT'
1612 );
1613 WHEN OTHERS THEN
1614 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1615 (
1616 l_api_name,
1617 G_PKG_NAME,
1618 'OTHERS',
1619 x_msg_count,
1620 x_msg_data,
1621 '_PVT'
1622 );
1623 END lock_row;
1624 ---------------------------------------
1625 -- lock_row for:OKL_INVOICE_TYPES_TL --
1626 ---------------------------------------
1627 PROCEDURE lock_row(
1628 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
1629 x_return_status OUT NOCOPY VARCHAR2,
1630 x_msg_count OUT NOCOPY NUMBER,
1631 x_msg_data OUT NOCOPY VARCHAR2,
1632 p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type) IS
1633
1634 E_Resource_Busy EXCEPTION;
1635 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1636 CURSOR lock_csr (p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type) IS
1637 SELECT *
1638 FROM OKL_INVOICE_TYPES_TL
1639 WHERE ID = p_okl_invoice_types_tl_rec.id
1640 FOR UPDATE NOWAIT;
1641
1642 l_api_version CONSTANT NUMBER := 1;
1643 l_api_name CONSTANT VARCHAR2(30) := 'TL_lock_row';
1644 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1645 l_lock_var lock_csr%ROWTYPE;
1646 l_row_notfound BOOLEAN := FALSE;
1647 lc_row_notfound BOOLEAN := FALSE;
1648 BEGIN
1649 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
1650 p_init_msg_list,
1651 '_PVT',
1652 x_return_status);
1653 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1654 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1655 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1656 RAISE Okl_Api.G_EXCEPTION_ERROR;
1657 END IF;
1658 BEGIN
1659 OPEN lock_csr(p_okl_invoice_types_tl_rec);
1660 FETCH lock_csr INTO l_lock_var;
1661 l_row_notfound := lock_csr%NOTFOUND;
1662 CLOSE lock_csr;
1663 EXCEPTION
1664 WHEN E_Resource_Busy THEN
1665 IF (lock_csr%ISOPEN) THEN
1666 CLOSE lock_csr;
1667 END IF;
1668 Okl_Api.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1669 RAISE App_Exceptions.RECORD_LOCK_EXCEPTION;
1670 END;
1671
1672 IF ( l_row_notfound ) THEN
1673 Okl_Api.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1674 RAISE Okl_Api.G_EXCEPTION_ERROR;
1675 END IF;
1676 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1677 EXCEPTION
1678 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1679 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1680 (
1681 l_api_name,
1682 G_PKG_NAME,
1683 'okl_api.G_RET_STS_ERROR',
1684 x_msg_count,
1685 x_msg_data,
1686 '_PVT'
1687 );
1688 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1689 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1690 (
1691 l_api_name,
1692 G_PKG_NAME,
1693 'okl_api.G_RET_STS_UNEXP_ERROR',
1694 x_msg_count,
1695 x_msg_data,
1696 '_PVT'
1697 );
1698 WHEN OTHERS THEN
1699 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1700 (
1701 l_api_name,
1702 G_PKG_NAME,
1703 'OTHERS',
1704 x_msg_count,
1705 x_msg_data,
1706 '_PVT'
1707 );
1708 END lock_row;
1709 --------------------------------------
1710 -- lock_row for:OKL_INVOICE_TYPES_V --
1711 --------------------------------------
1712 PROCEDURE lock_row(
1713 p_api_version IN NUMBER,
1714 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
1715 x_return_status OUT NOCOPY VARCHAR2,
1716 x_msg_count OUT NOCOPY NUMBER,
1717 x_msg_data OUT NOCOPY VARCHAR2,
1718 p_ityv_rec IN ityv_rec_type) IS
1719
1720 l_api_version CONSTANT NUMBER := 1;
1721 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
1722 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1723 l_ity_rec ity_rec_type;
1724 l_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type;
1725 BEGIN
1726 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
1727 G_PKG_NAME,
1728 p_init_msg_list,
1729 l_api_version,
1730 p_api_version,
1731 '_PVT',
1732 x_return_status);
1733 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1734 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1735 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1736 RAISE Okl_Api.G_EXCEPTION_ERROR;
1737 END IF;
1738 --------------------------------------
1739 -- Move VIEW record to "Child" records
1740 --------------------------------------
1741 migrate(p_ityv_rec, l_ity_rec);
1742 migrate(p_ityv_rec, l_okl_invoice_types_tl_rec);
1743 --------------------------------------------
1744 -- Call the LOCK_ROW for each child record
1745 --------------------------------------------
1746 lock_row(
1747 p_init_msg_list,
1748 x_return_status,
1749 x_msg_count,
1750 x_msg_data,
1751 l_ity_rec
1752 );
1753 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1754 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1755 ELSIF (x_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1756 RAISE Okl_Api.G_EXCEPTION_ERROR;
1757 END IF;
1758 lock_row(
1759 p_init_msg_list,
1760 x_return_status,
1761 x_msg_count,
1762 x_msg_data,
1763 l_okl_invoice_types_tl_rec
1764 );
1765 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1766 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1767 ELSIF (x_return_status = Okl_Api.G_RET_STS_ERROR) THEN
1768 RAISE Okl_Api.G_EXCEPTION_ERROR;
1769 END IF;
1770 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1771 EXCEPTION
1772 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1773 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1774 (
1775 l_api_name,
1776 G_PKG_NAME,
1777 'okl_api.G_RET_STS_ERROR',
1778 x_msg_count,
1779 x_msg_data,
1780 '_PVT'
1781 );
1782 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1783 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1784 (
1785 l_api_name,
1786 G_PKG_NAME,
1787 'okl_api.G_RET_STS_UNEXP_ERROR',
1788 x_msg_count,
1789 x_msg_data,
1790 '_PVT'
1791 );
1792 WHEN OTHERS THEN
1793 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1794 (
1795 l_api_name,
1796 G_PKG_NAME,
1797 'OTHERS',
1798 x_msg_count,
1799 x_msg_data,
1800 '_PVT'
1801 );
1802 END lock_row;
1803 --------------------------------------
1804 -- PL/SQL TBL lock_row for:ITYV_TBL --
1805 --------------------------------------
1806 PROCEDURE lock_row(
1807 p_api_version IN NUMBER,
1808 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
1809 x_return_status OUT NOCOPY VARCHAR2,
1810 x_msg_count OUT NOCOPY NUMBER,
1811 x_msg_data OUT NOCOPY VARCHAR2,
1812 p_ityv_tbl IN ityv_tbl_type) IS
1813
1814 l_api_version CONSTANT NUMBER := 1;
1815 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
1816 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1817 l_overall_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1818 i NUMBER := 0;
1819 BEGIN
1820 Okl_Api.init_msg_list(p_init_msg_list);
1821 -- Make sure PL/SQL table has records in it before passing
1822 IF (p_ityv_tbl.COUNT > 0) THEN
1823 i := p_ityv_tbl.FIRST;
1824 LOOP
1825 lock_row (
1826 p_api_version => p_api_version,
1827 p_init_msg_list => Okl_Api.G_FALSE,
1828 x_return_status => x_return_status,
1829 x_msg_count => x_msg_count,
1830 x_msg_data => x_msg_data,
1831 p_ityv_rec => p_ityv_tbl(i));
1832 -- Store the highest degree of error
1833 IF x_return_status <> Okl_Api.G_RET_STS_SUCCESS THEN
1834 IF l_overall_status <> Okl_Api.G_RET_STS_UNEXP_ERROR THEN
1835 l_overall_status := x_return_status;
1836 END IF;
1837 END IF;
1838 EXIT WHEN (i = p_ityv_tbl.LAST);
1839 i := p_ityv_tbl.NEXT(i);
1840 END LOOP;
1841 -- return overall status
1842 x_return_status := l_overall_status;
1843 END IF;
1844 EXCEPTION
1845 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1846 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1847 (
1848 l_api_name,
1849 G_PKG_NAME,
1850 'okl_api.G_RET_STS_ERROR',
1851 x_msg_count,
1852 x_msg_data,
1853 '_PVT'
1854 );
1855 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1856 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1857 (
1858 l_api_name,
1859 G_PKG_NAME,
1860 'okl_api.G_RET_STS_UNEXP_ERROR',
1861 x_msg_count,
1862 x_msg_data,
1863 '_PVT'
1864 );
1865 WHEN OTHERS THEN
1866 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
1867 (
1868 l_api_name,
1869 G_PKG_NAME,
1870 'OTHERS',
1871 x_msg_count,
1872 x_msg_data,
1873 '_PVT'
1874 );
1875 END lock_row;
1876
1877 ---------------------------------------------------------------------------
1878 -- PROCEDURE update_row
1879 ---------------------------------------------------------------------------
1880 ----------------------------------------
1881 -- update_row for:OKL_INVOICE_TYPES_B --
1882 ----------------------------------------
1883 PROCEDURE update_row(
1884 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
1885 x_return_status OUT NOCOPY VARCHAR2,
1886 x_msg_count OUT NOCOPY NUMBER,
1887 x_msg_data OUT NOCOPY VARCHAR2,
1888 p_ity_rec IN ity_rec_type,
1889 x_ity_rec OUT NOCOPY ity_rec_type) IS
1890
1891 l_api_version CONSTANT NUMBER := 1;
1892 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
1893 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1894 l_ity_rec ity_rec_type := p_ity_rec;
1895 l_def_ity_rec ity_rec_type;
1896 l_row_notfound BOOLEAN := TRUE;
1897 ----------------------------------
1898 -- FUNCTION populate_new_record --
1899 ----------------------------------
1900 FUNCTION populate_new_record (
1901 p_ity_rec IN ity_rec_type,
1902 x_ity_rec OUT NOCOPY ity_rec_type
1903 ) RETURN VARCHAR2 IS
1904 l_ity_rec ity_rec_type;
1905 l_row_notfound BOOLEAN := TRUE;
1906 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
1907 BEGIN
1908 x_ity_rec := p_ity_rec;
1909 -- Get current database values
1910 l_ity_rec := get_rec(p_ity_rec, l_row_notfound);
1911 IF (l_row_notfound) THEN
1912 l_return_status := Okl_Api.G_RET_STS_UNEXP_ERROR;
1913 END IF;
1914 IF (x_ity_rec.id = Okl_Api.G_MISS_NUM)
1915 THEN
1916 x_ity_rec.id := l_ity_rec.id;
1917 END IF;
1918 IF (x_ity_rec.inf_id = Okl_Api.G_MISS_NUM)
1919 THEN
1920 x_ity_rec.inf_id := l_ity_rec.inf_id;
1921 END IF;
1922 IF (x_ity_rec.group_asset_yn = Okl_Api.G_MISS_CHAR)
1923 THEN
1924 x_ity_rec.group_asset_yn := l_ity_rec.group_asset_yn;
1925 END IF;
1926 IF (x_ity_rec.group_by_contract_yn = Okl_Api.G_MISS_CHAR)
1927 THEN
1928 x_ity_rec.group_by_contract_yn := l_ity_rec.group_by_contract_yn;
1929 END IF;
1930 IF (x_ity_rec.object_version_number = Okl_Api.G_MISS_NUM)
1931 THEN
1932 x_ity_rec.object_version_number := l_ity_rec.object_version_number;
1933 END IF;
1934 IF (x_ity_rec.attribute_category = Okl_Api.G_MISS_CHAR)
1935 THEN
1936 x_ity_rec.attribute_category := l_ity_rec.attribute_category;
1937 END IF;
1938 IF (x_ity_rec.attribute1 = Okl_Api.G_MISS_CHAR)
1939 THEN
1940 x_ity_rec.attribute1 := l_ity_rec.attribute1;
1941 END IF;
1942 IF (x_ity_rec.attribute2 = Okl_Api.G_MISS_CHAR)
1943 THEN
1944 x_ity_rec.attribute2 := l_ity_rec.attribute2;
1945 END IF;
1946 IF (x_ity_rec.attribute3 = Okl_Api.G_MISS_CHAR)
1947 THEN
1948 x_ity_rec.attribute3 := l_ity_rec.attribute3;
1949 END IF;
1950 IF (x_ity_rec.attribute4 = Okl_Api.G_MISS_CHAR)
1951 THEN
1952 x_ity_rec.attribute4 := l_ity_rec.attribute4;
1953 END IF;
1954 IF (x_ity_rec.attribute5 = Okl_Api.G_MISS_CHAR)
1955 THEN
1956 x_ity_rec.attribute5 := l_ity_rec.attribute5;
1957 END IF;
1958 IF (x_ity_rec.attribute6 = Okl_Api.G_MISS_CHAR)
1959 THEN
1960 x_ity_rec.attribute6 := l_ity_rec.attribute6;
1961 END IF;
1962 IF (x_ity_rec.attribute7 = Okl_Api.G_MISS_CHAR)
1963 THEN
1964 x_ity_rec.attribute7 := l_ity_rec.attribute7;
1965 END IF;
1966 IF (x_ity_rec.attribute8 = Okl_Api.G_MISS_CHAR)
1967 THEN
1968 x_ity_rec.attribute8 := l_ity_rec.attribute8;
1969 END IF;
1970 IF (x_ity_rec.attribute9 = Okl_Api.G_MISS_CHAR)
1971 THEN
1972 x_ity_rec.attribute9 := l_ity_rec.attribute9;
1973 END IF;
1974 IF (x_ity_rec.attribute10 = Okl_Api.G_MISS_CHAR)
1975 THEN
1976 x_ity_rec.attribute10 := l_ity_rec.attribute10;
1977 END IF;
1978 IF (x_ity_rec.attribute11 = Okl_Api.G_MISS_CHAR)
1979 THEN
1980 x_ity_rec.attribute11 := l_ity_rec.attribute11;
1981 END IF;
1982 IF (x_ity_rec.attribute12 = Okl_Api.G_MISS_CHAR)
1983 THEN
1984 x_ity_rec.attribute12 := l_ity_rec.attribute12;
1985 END IF;
1986 IF (x_ity_rec.attribute13 = Okl_Api.G_MISS_CHAR)
1987 THEN
1988 x_ity_rec.attribute13 := l_ity_rec.attribute13;
1989 END IF;
1990 IF (x_ity_rec.attribute14 = Okl_Api.G_MISS_CHAR)
1991 THEN
1992 x_ity_rec.attribute14 := l_ity_rec.attribute14;
1993 END IF;
1994 IF (x_ity_rec.attribute15 = Okl_Api.G_MISS_CHAR)
1995 THEN
1996 x_ity_rec.attribute15 := l_ity_rec.attribute15;
1997 END IF;
1998 IF (x_ity_rec.created_by = Okl_Api.G_MISS_NUM)
1999 THEN
2000 x_ity_rec.created_by := l_ity_rec.created_by;
2001 END IF;
2002 IF (x_ity_rec.creation_date = Okl_Api.G_MISS_DATE)
2003 THEN
2004 x_ity_rec.creation_date := l_ity_rec.creation_date;
2005 END IF;
2006 IF (x_ity_rec.last_updated_by = Okl_Api.G_MISS_NUM)
2007 THEN
2008 x_ity_rec.last_updated_by := l_ity_rec.last_updated_by;
2009 END IF;
2010 IF (x_ity_rec.last_update_date = Okl_Api.G_MISS_DATE)
2011 THEN
2012 x_ity_rec.last_update_date := l_ity_rec.last_update_date;
2013 END IF;
2014 IF (x_ity_rec.last_update_login = Okl_Api.G_MISS_NUM)
2015 THEN
2016 x_ity_rec.last_update_login := l_ity_rec.last_update_login;
2017 END IF;
2018 RETURN(l_return_status);
2019 END populate_new_record;
2020 --------------------------------------------
2021 -- Set_Attributes for:OKL_INVOICE_TYPES_B --
2022 --------------------------------------------
2023 FUNCTION Set_Attributes (
2024 p_ity_rec IN ity_rec_type,
2025 x_ity_rec OUT NOCOPY ity_rec_type
2026 ) RETURN VARCHAR2 IS
2027 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2028 BEGIN
2029 x_ity_rec := p_ity_rec;
2030 RETURN(l_return_status);
2031 END Set_Attributes;
2032 BEGIN
2033 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
2034 p_init_msg_list,
2035 '_PVT',
2036 x_return_status);
2037 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2038 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2039 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2040 RAISE Okl_Api.G_EXCEPTION_ERROR;
2041 END IF;
2042 --- Setting item attributes
2043 l_return_status := Set_Attributes(
2044 p_ity_rec, -- IN
2045 l_ity_rec); -- OUT
2046 --- If any errors happen abort API
2047 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2048 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2049 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2050 RAISE Okl_Api.G_EXCEPTION_ERROR;
2051 END IF;
2052 l_return_status := populate_new_record(l_ity_rec, l_def_ity_rec);
2053 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2054 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2055 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2056 RAISE Okl_Api.G_EXCEPTION_ERROR;
2057 END IF;
2058 UPDATE OKL_INVOICE_TYPES_B
2059 SET INF_ID = l_def_ity_rec.inf_id,
2060 GROUP_ASSET_YN = l_def_ity_rec.group_asset_yn,
2061 GROUP_BY_CONTRACT_YN = l_def_ity_rec.group_by_contract_yn,
2062 OBJECT_VERSION_NUMBER = l_def_ity_rec.object_version_number,
2063 ATTRIBUTE_CATEGORY = l_def_ity_rec.attribute_category,
2064 ATTRIBUTE1 = l_def_ity_rec.attribute1,
2065 ATTRIBUTE2 = l_def_ity_rec.attribute2,
2066 ATTRIBUTE3 = l_def_ity_rec.attribute3,
2067 ATTRIBUTE4 = l_def_ity_rec.attribute4,
2068 ATTRIBUTE5 = l_def_ity_rec.attribute5,
2069 ATTRIBUTE6 = l_def_ity_rec.attribute6,
2070 ATTRIBUTE7 = l_def_ity_rec.attribute7,
2071 ATTRIBUTE8 = l_def_ity_rec.attribute8,
2072 ATTRIBUTE9 = l_def_ity_rec.attribute9,
2073 ATTRIBUTE10 = l_def_ity_rec.attribute10,
2074 ATTRIBUTE11 = l_def_ity_rec.attribute11,
2075 ATTRIBUTE12 = l_def_ity_rec.attribute12,
2076 ATTRIBUTE13 = l_def_ity_rec.attribute13,
2077 ATTRIBUTE14 = l_def_ity_rec.attribute14,
2078 ATTRIBUTE15 = l_def_ity_rec.attribute15,
2079 CREATED_BY = l_def_ity_rec.created_by,
2080 CREATION_DATE = l_def_ity_rec.creation_date,
2081 LAST_UPDATED_BY = l_def_ity_rec.last_updated_by,
2082 LAST_UPDATE_DATE = l_def_ity_rec.last_update_date,
2083 LAST_UPDATE_LOGIN = l_def_ity_rec.last_update_login
2084 WHERE ID = l_def_ity_rec.id;
2085
2086 x_ity_rec := l_def_ity_rec;
2087 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2088 EXCEPTION
2089 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
2090 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
2091 (
2092 l_api_name,
2093 G_PKG_NAME,
2094 'okl_api.G_RET_STS_ERROR',
2095 x_msg_count,
2096 x_msg_data,
2097 '_PVT'
2098 );
2099 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2100 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2101 (
2102 l_api_name,
2103 G_PKG_NAME,
2104 'okl_api.G_RET_STS_UNEXP_ERROR',
2105 x_msg_count,
2106 x_msg_data,
2107 '_PVT'
2108 );
2109 WHEN OTHERS THEN
2110 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2111 (
2112 l_api_name,
2113 G_PKG_NAME,
2114 'OTHERS',
2115 x_msg_count,
2116 x_msg_data,
2117 '_PVT'
2118 );
2119 END update_row;
2120 -----------------------------------------
2121 -- update_row for:OKL_INVOICE_TYPES_TL --
2122 -----------------------------------------
2123 PROCEDURE update_row(
2124 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
2125 x_return_status OUT NOCOPY VARCHAR2,
2126 x_msg_count OUT NOCOPY NUMBER,
2127 x_msg_data OUT NOCOPY VARCHAR2,
2128 p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type,
2129 x_okl_invoice_types_tl_rec OUT NOCOPY okl_invoice_types_tl_rec_type) IS
2130
2131 l_api_version CONSTANT NUMBER := 1;
2132 l_api_name CONSTANT VARCHAR2(30) := 'TL_update_row';
2133 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2134 l_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type := p_okl_invoice_types_tl_rec;
2135 ldefoklinvoicetypestlrec okl_invoice_types_tl_rec_type;
2136 l_row_notfound BOOLEAN := TRUE;
2137 ----------------------------------
2138 -- FUNCTION populate_new_record --
2139 ----------------------------------
2140 FUNCTION populate_new_record (
2141 p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type,
2142 x_okl_invoice_types_tl_rec OUT NOCOPY okl_invoice_types_tl_rec_type
2143 ) RETURN VARCHAR2 IS
2144 l_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type;
2145 l_row_notfound BOOLEAN := TRUE;
2146 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2147 BEGIN
2148 x_okl_invoice_types_tl_rec := p_okl_invoice_types_tl_rec;
2149 -- Get current database values
2150 l_okl_invoice_types_tl_rec := get_rec(p_okl_invoice_types_tl_rec, l_row_notfound);
2151 IF (l_row_notfound) THEN
2152 l_return_status := Okl_Api.G_RET_STS_UNEXP_ERROR;
2153 END IF;
2154 IF (x_okl_invoice_types_tl_rec.id = Okl_Api.G_MISS_NUM)
2155 THEN
2156 x_okl_invoice_types_tl_rec.id := l_okl_invoice_types_tl_rec.id;
2157 END IF;
2158 IF (x_okl_invoice_types_tl_rec.LANGUAGE = Okl_Api.G_MISS_CHAR)
2159 THEN
2160 x_okl_invoice_types_tl_rec.LANGUAGE := l_okl_invoice_types_tl_rec.LANGUAGE;
2161 END IF;
2162 IF (x_okl_invoice_types_tl_rec.source_lang = Okl_Api.G_MISS_CHAR)
2163 THEN
2164 x_okl_invoice_types_tl_rec.source_lang := l_okl_invoice_types_tl_rec.source_lang;
2165 END IF;
2166 IF (x_okl_invoice_types_tl_rec.sfwt_flag = Okl_Api.G_MISS_CHAR)
2167 THEN
2168 x_okl_invoice_types_tl_rec.sfwt_flag := l_okl_invoice_types_tl_rec.sfwt_flag;
2169 END IF;
2170 IF (x_okl_invoice_types_tl_rec.name = Okl_Api.G_MISS_CHAR)
2171 THEN
2172 x_okl_invoice_types_tl_rec.name := l_okl_invoice_types_tl_rec.name;
2173 END IF;
2174 IF (x_okl_invoice_types_tl_rec.description = Okl_Api.G_MISS_CHAR)
2175 THEN
2176 x_okl_invoice_types_tl_rec.description := l_okl_invoice_types_tl_rec.description;
2177 END IF;
2178 IF (x_okl_invoice_types_tl_rec.created_by = Okl_Api.G_MISS_NUM)
2179 THEN
2180 x_okl_invoice_types_tl_rec.created_by := l_okl_invoice_types_tl_rec.created_by;
2181 END IF;
2182 IF (x_okl_invoice_types_tl_rec.creation_date = Okl_Api.G_MISS_DATE)
2183 THEN
2184 x_okl_invoice_types_tl_rec.creation_date := l_okl_invoice_types_tl_rec.creation_date;
2185 END IF;
2186 IF (x_okl_invoice_types_tl_rec.last_updated_by = Okl_Api.G_MISS_NUM)
2187 THEN
2188 x_okl_invoice_types_tl_rec.last_updated_by := l_okl_invoice_types_tl_rec.last_updated_by;
2189 END IF;
2190 IF (x_okl_invoice_types_tl_rec.last_update_date = Okl_Api.G_MISS_DATE)
2191 THEN
2192 x_okl_invoice_types_tl_rec.last_update_date := l_okl_invoice_types_tl_rec.last_update_date;
2193 END IF;
2194 IF (x_okl_invoice_types_tl_rec.last_update_login = Okl_Api.G_MISS_NUM)
2195 THEN
2196 x_okl_invoice_types_tl_rec.last_update_login := l_okl_invoice_types_tl_rec.last_update_login;
2197 END IF;
2198 RETURN(l_return_status);
2199 END populate_new_record;
2200 ---------------------------------------------
2201 -- Set_Attributes for:OKL_INVOICE_TYPES_TL --
2202 ---------------------------------------------
2203 FUNCTION Set_Attributes (
2204 p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type,
2205 x_okl_invoice_types_tl_rec OUT NOCOPY okl_invoice_types_tl_rec_type
2206 ) RETURN VARCHAR2 IS
2207 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2208 BEGIN
2209 x_okl_invoice_types_tl_rec := p_okl_invoice_types_tl_rec;
2210 x_okl_invoice_types_tl_rec.LANGUAGE := USERENV('LANG');
2211 x_okl_invoice_types_tl_rec.SOURCE_LANG := USERENV('LANG');
2212 RETURN(l_return_status);
2213 END Set_Attributes;
2214 BEGIN
2215 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
2216 p_init_msg_list,
2217 '_PVT',
2218 x_return_status);
2219 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2220 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2221 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2222 RAISE Okl_Api.G_EXCEPTION_ERROR;
2223 END IF;
2224 --- Setting item attributes
2225 l_return_status := Set_Attributes(
2226 p_okl_invoice_types_tl_rec, -- IN
2227 l_okl_invoice_types_tl_rec); -- OUT
2228 --- If any errors happen abort API
2229 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2230 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2231 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2232 RAISE Okl_Api.G_EXCEPTION_ERROR;
2233 END IF;
2234 l_return_status := populate_new_record(l_okl_invoice_types_tl_rec, ldefoklinvoicetypestlrec);
2235 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2236 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2237 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2238 RAISE Okl_Api.G_EXCEPTION_ERROR;
2239 END IF;
2240 UPDATE OKL_INVOICE_TYPES_TL
2241 SET NAME = ldefoklinvoicetypestlrec.name,
2242 DESCRIPTION = ldefoklinvoicetypestlrec.description,
2243 CREATED_BY = ldefoklinvoicetypestlrec.created_by,
2244 CREATION_DATE = ldefoklinvoicetypestlrec.creation_date,
2245 LAST_UPDATED_BY = ldefoklinvoicetypestlrec.last_updated_by,
2246 LAST_UPDATE_DATE = ldefoklinvoicetypestlrec.last_update_date,
2247 LAST_UPDATE_LOGIN = ldefoklinvoicetypestlrec.last_update_login
2248 WHERE ID = ldefoklinvoicetypestlrec.id
2249 --AND SOURCE_LANG = USERENV('LANG');
2250 AND USERENV('LANG') in (SOURCE_LANG, LANGUAGE);
2251
2252 UPDATE OKL_INVOICE_TYPES_TL
2253 SET SFWT_FLAG = 'Y'
2254 WHERE ID = ldefoklinvoicetypestlrec.id
2255 AND SOURCE_LANG <> USERENV('LANG');
2256
2257 x_okl_invoice_types_tl_rec := ldefoklinvoicetypestlrec;
2258 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2259 EXCEPTION
2260 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
2261 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
2262 (
2263 l_api_name,
2264 G_PKG_NAME,
2265 'okl_api.G_RET_STS_ERROR',
2266 x_msg_count,
2267 x_msg_data,
2268 '_PVT'
2269 );
2270 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2271 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2272 (
2273 l_api_name,
2274 G_PKG_NAME,
2275 'okl_api.G_RET_STS_UNEXP_ERROR',
2276 x_msg_count,
2277 x_msg_data,
2278 '_PVT'
2279 );
2280 WHEN OTHERS THEN
2281 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2282 (
2283 l_api_name,
2284 G_PKG_NAME,
2285 'OTHERS',
2286 x_msg_count,
2287 x_msg_data,
2288 '_PVT'
2289 );
2290 END update_row;
2291 ----------------------------------------
2292 -- update_row for:OKL_INVOICE_TYPES_V --
2293 ----------------------------------------
2294 PROCEDURE update_row(
2295 p_api_version IN NUMBER,
2296 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
2297 x_return_status OUT NOCOPY VARCHAR2,
2298 x_msg_count OUT NOCOPY NUMBER,
2299 x_msg_data OUT NOCOPY VARCHAR2,
2300 p_ityv_rec IN ityv_rec_type,
2301 x_ityv_rec OUT NOCOPY ityv_rec_type) IS
2302
2303 l_api_version CONSTANT NUMBER := 1;
2304 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
2305 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2306 l_ityv_rec ityv_rec_type := p_ityv_rec;
2307 l_def_ityv_rec ityv_rec_type;
2308 l_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type;
2309 lx_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type;
2310 l_ity_rec ity_rec_type;
2311 lx_ity_rec ity_rec_type;
2312 -------------------------------
2313 -- FUNCTION fill_who_columns --
2314 -------------------------------
2315 FUNCTION fill_who_columns (
2316 p_ityv_rec IN ityv_rec_type
2317 ) RETURN ityv_rec_type IS
2318 l_ityv_rec ityv_rec_type := p_ityv_rec;
2319 BEGIN
2320 l_ityv_rec.LAST_UPDATE_DATE := SYSDATE;
2321 l_ityv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
2322 l_ityv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
2323 RETURN(l_ityv_rec);
2324 END fill_who_columns;
2325 ----------------------------------
2326 -- FUNCTION populate_new_record --
2327 ----------------------------------
2328 FUNCTION populate_new_record (
2329 p_ityv_rec IN ityv_rec_type,
2330 x_ityv_rec OUT NOCOPY ityv_rec_type
2331 ) RETURN VARCHAR2 IS
2332 l_ityv_rec ityv_rec_type;
2333 l_row_notfound BOOLEAN := TRUE;
2334 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2335 BEGIN
2336 x_ityv_rec := p_ityv_rec;
2337 -- Get current database values
2338 l_ityv_rec := get_rec(p_ityv_rec, l_row_notfound);
2339 IF (l_row_notfound) THEN
2340 l_return_status := Okl_Api.G_RET_STS_UNEXP_ERROR;
2341 END IF;
2342 IF (x_ityv_rec.id = Okl_Api.G_MISS_NUM)
2343 THEN
2344 x_ityv_rec.id := l_ityv_rec.id;
2345 END IF;
2346 IF (x_ityv_rec.object_version_number = Okl_Api.G_MISS_NUM)
2347 THEN
2348 x_ityv_rec.object_version_number := l_ityv_rec.object_version_number;
2349 END IF;
2350 IF (x_ityv_rec.sfwt_flag = Okl_Api.G_MISS_CHAR)
2351 THEN
2352 x_ityv_rec.sfwt_flag := l_ityv_rec.sfwt_flag;
2353 END IF;
2354 IF (x_ityv_rec.inf_id = Okl_Api.G_MISS_NUM)
2355 THEN
2356 x_ityv_rec.inf_id := l_ityv_rec.inf_id;
2357 END IF;
2358 IF (x_ityv_rec.name = Okl_Api.G_MISS_CHAR)
2359 THEN
2360 x_ityv_rec.name := l_ityv_rec.name;
2361 END IF;
2362 IF (x_ityv_rec.description = Okl_Api.G_MISS_CHAR)
2363 THEN
2364 x_ityv_rec.description := l_ityv_rec.description;
2365 END IF;
2366 IF (x_ityv_rec.group_asset_yn = Okl_Api.G_MISS_CHAR)
2367 THEN
2368 x_ityv_rec.group_asset_yn := l_ityv_rec.group_asset_yn;
2369 END IF;
2370 IF (x_ityv_rec.group_by_contract_yn = Okl_Api.G_MISS_CHAR)
2371 THEN
2372 x_ityv_rec.group_by_contract_yn := l_ityv_rec.group_by_contract_yn;
2373 END IF;
2374 IF (x_ityv_rec.attribute_category = Okl_Api.G_MISS_CHAR)
2375 THEN
2376 x_ityv_rec.attribute_category := l_ityv_rec.attribute_category;
2377 END IF;
2378 IF (x_ityv_rec.attribute1 = Okl_Api.G_MISS_CHAR)
2379 THEN
2380 x_ityv_rec.attribute1 := l_ityv_rec.attribute1;
2381 END IF;
2382 IF (x_ityv_rec.attribute2 = Okl_Api.G_MISS_CHAR)
2383 THEN
2384 x_ityv_rec.attribute2 := l_ityv_rec.attribute2;
2385 END IF;
2386 IF (x_ityv_rec.attribute3 = Okl_Api.G_MISS_CHAR)
2387 THEN
2388 x_ityv_rec.attribute3 := l_ityv_rec.attribute3;
2389 END IF;
2390 IF (x_ityv_rec.attribute4 = Okl_Api.G_MISS_CHAR)
2391 THEN
2392 x_ityv_rec.attribute4 := l_ityv_rec.attribute4;
2393 END IF;
2394 IF (x_ityv_rec.attribute5 = Okl_Api.G_MISS_CHAR)
2395 THEN
2396 x_ityv_rec.attribute5 := l_ityv_rec.attribute5;
2397 END IF;
2398 IF (x_ityv_rec.attribute6 = Okl_Api.G_MISS_CHAR)
2399 THEN
2400 x_ityv_rec.attribute6 := l_ityv_rec.attribute6;
2401 END IF;
2402 IF (x_ityv_rec.attribute7 = Okl_Api.G_MISS_CHAR)
2403 THEN
2404 x_ityv_rec.attribute7 := l_ityv_rec.attribute7;
2405 END IF;
2406 IF (x_ityv_rec.attribute8 = Okl_Api.G_MISS_CHAR)
2407 THEN
2408 x_ityv_rec.attribute8 := l_ityv_rec.attribute8;
2409 END IF;
2410 IF (x_ityv_rec.attribute9 = Okl_Api.G_MISS_CHAR)
2411 THEN
2412 x_ityv_rec.attribute9 := l_ityv_rec.attribute9;
2413 END IF;
2414 IF (x_ityv_rec.attribute10 = Okl_Api.G_MISS_CHAR)
2415 THEN
2416 x_ityv_rec.attribute10 := l_ityv_rec.attribute10;
2417 END IF;
2418 IF (x_ityv_rec.attribute11 = Okl_Api.G_MISS_CHAR)
2419 THEN
2420 x_ityv_rec.attribute11 := l_ityv_rec.attribute11;
2421 END IF;
2422 IF (x_ityv_rec.attribute12 = Okl_Api.G_MISS_CHAR)
2423 THEN
2424 x_ityv_rec.attribute12 := l_ityv_rec.attribute12;
2425 END IF;
2426 IF (x_ityv_rec.attribute13 = Okl_Api.G_MISS_CHAR)
2427 THEN
2428 x_ityv_rec.attribute13 := l_ityv_rec.attribute13;
2429 END IF;
2430 IF (x_ityv_rec.attribute14 = Okl_Api.G_MISS_CHAR)
2431 THEN
2432 x_ityv_rec.attribute14 := l_ityv_rec.attribute14;
2433 END IF;
2434 IF (x_ityv_rec.attribute15 = Okl_Api.G_MISS_CHAR)
2435 THEN
2436 x_ityv_rec.attribute15 := l_ityv_rec.attribute15;
2437 END IF;
2438 IF (x_ityv_rec.created_by = Okl_Api.G_MISS_NUM)
2439 THEN
2440 x_ityv_rec.created_by := l_ityv_rec.created_by;
2441 END IF;
2442 IF (x_ityv_rec.creation_date = Okl_Api.G_MISS_DATE)
2443 THEN
2444 x_ityv_rec.creation_date := l_ityv_rec.creation_date;
2445 END IF;
2446 IF (x_ityv_rec.last_updated_by = Okl_Api.G_MISS_NUM)
2447 THEN
2448 x_ityv_rec.last_updated_by := l_ityv_rec.last_updated_by;
2449 END IF;
2450 IF (x_ityv_rec.last_update_date = Okl_Api.G_MISS_DATE)
2451 THEN
2452 x_ityv_rec.last_update_date := l_ityv_rec.last_update_date;
2453 END IF;
2454 IF (x_ityv_rec.last_update_login = Okl_Api.G_MISS_NUM)
2455 THEN
2456 x_ityv_rec.last_update_login := l_ityv_rec.last_update_login;
2457 END IF;
2458 RETURN(l_return_status);
2459 END populate_new_record;
2460 --------------------------------------------
2461 -- Set_Attributes for:OKL_INVOICE_TYPES_V --
2462 --------------------------------------------
2463 FUNCTION Set_Attributes (
2464 p_ityv_rec IN ityv_rec_type,
2465 x_ityv_rec OUT NOCOPY ityv_rec_type
2466 ) RETURN VARCHAR2 IS
2467 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2468 BEGIN
2469 x_ityv_rec := p_ityv_rec;
2470 x_ityv_rec.OBJECT_VERSION_NUMBER := NVL(x_ityv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
2471 RETURN(l_return_status);
2472 END Set_Attributes;
2473 BEGIN
2474 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
2475 G_PKG_NAME,
2476 p_init_msg_list,
2477 l_api_version,
2478 p_api_version,
2479 '_PVT',
2480 x_return_status);
2481 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2482 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2483 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2484 RAISE Okl_Api.G_EXCEPTION_ERROR;
2485 END IF;
2486 --- Setting item attributes
2487 l_return_status := Set_Attributes(
2488 p_ityv_rec, -- IN
2489 l_ityv_rec); -- OUT
2490 --- If any errors happen abort API
2491 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2492 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2493 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2494 RAISE Okl_Api.G_EXCEPTION_ERROR;
2495 END IF;
2496 l_return_status := populate_new_record(l_ityv_rec, l_def_ityv_rec);
2497 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2498 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2499 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2500 RAISE Okl_Api.G_EXCEPTION_ERROR;
2501 END IF;
2502 l_def_ityv_rec := fill_who_columns(l_def_ityv_rec);
2503 --- Validate all non-missing attributes (Item Level Validation)
2504 l_return_status := Validate_Attributes(l_def_ityv_rec);
2505 --- If any errors happen abort API
2506 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2507 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2508 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2509 RAISE Okl_Api.G_EXCEPTION_ERROR;
2510 END IF;
2511 l_return_status := Validate_Record(l_def_ityv_rec);
2512 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2513 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2514 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2515 RAISE Okl_Api.G_EXCEPTION_ERROR;
2516 END IF;
2517
2518 --------------------------------------
2519 -- Move VIEW record to "Child" records
2520 --------------------------------------
2521 migrate(l_def_ityv_rec, l_okl_invoice_types_tl_rec);
2522 migrate(l_def_ityv_rec, l_ity_rec);
2523 --------------------------------------------
2524 -- Call the UPDATE_ROW for each child record
2525 --------------------------------------------
2526 update_row(
2527 p_init_msg_list,
2528 x_return_status,
2529 x_msg_count,
2530 x_msg_data,
2531 l_okl_invoice_types_tl_rec,
2532 lx_okl_invoice_types_tl_rec
2533 );
2534 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2535 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2536 ELSIF (x_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2537 RAISE Okl_Api.G_EXCEPTION_ERROR;
2538 END IF;
2539 migrate(lx_okl_invoice_types_tl_rec, l_def_ityv_rec);
2540 update_row(
2541 p_init_msg_list,
2542 x_return_status,
2543 x_msg_count,
2544 x_msg_data,
2545 l_ity_rec,
2546 lx_ity_rec
2547 );
2548 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2549 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2550 ELSIF (x_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2551 RAISE Okl_Api.G_EXCEPTION_ERROR;
2552 END IF;
2553 migrate(lx_ity_rec, l_def_ityv_rec);
2554 x_ityv_rec := l_def_ityv_rec;
2555 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2556 EXCEPTION
2557 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
2558 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
2559 (
2560 l_api_name,
2561 G_PKG_NAME,
2562 'okl_api.G_RET_STS_ERROR',
2563 x_msg_count,
2564 x_msg_data,
2565 '_PVT'
2566 );
2567 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2568 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2569 (
2570 l_api_name,
2571 G_PKG_NAME,
2572 'okl_api.G_RET_STS_UNEXP_ERROR',
2573 x_msg_count,
2574 x_msg_data,
2575 '_PVT'
2576 );
2577 WHEN OTHERS THEN
2578 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2579 (
2580 l_api_name,
2581 G_PKG_NAME,
2582 'OTHERS',
2583 x_msg_count,
2584 x_msg_data,
2585 '_PVT'
2586 );
2587 END update_row;
2588 ----------------------------------------
2589 -- PL/SQL TBL update_row for:ITYV_TBL --
2590 ----------------------------------------
2591 PROCEDURE update_row(
2592 p_api_version IN NUMBER,
2593 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
2594 x_return_status OUT NOCOPY VARCHAR2,
2595 x_msg_count OUT NOCOPY NUMBER,
2596 x_msg_data OUT NOCOPY VARCHAR2,
2597 p_ityv_tbl IN ityv_tbl_type,
2598 x_ityv_tbl OUT NOCOPY ityv_tbl_type) IS
2599
2600 l_api_version CONSTANT NUMBER := 1;
2601 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
2602 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2603 l_overall_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2604 i NUMBER := 0;
2605 BEGIN
2606 Okl_Api.init_msg_list(p_init_msg_list);
2607 -- Make sure PL/SQL table has records in it before passing
2608 IF (p_ityv_tbl.COUNT > 0) THEN
2609 i := p_ityv_tbl.FIRST;
2610 LOOP
2611 update_row (
2612 p_api_version => p_api_version,
2613 p_init_msg_list => Okl_Api.G_FALSE,
2614 x_return_status => x_return_status,
2615 x_msg_count => x_msg_count,
2616 x_msg_data => x_msg_data,
2617 p_ityv_rec => p_ityv_tbl(i),
2618 x_ityv_rec => x_ityv_tbl(i));
2619 -- Store the highest degree of error
2620 IF x_return_status <> Okl_Api.G_RET_STS_SUCCESS THEN
2621 IF l_overall_status <> Okl_Api.G_RET_STS_UNEXP_ERROR THEN
2622 l_overall_status := x_return_status;
2623 END IF;
2624 END IF;
2625 EXIT WHEN (i = p_ityv_tbl.LAST);
2626 i := p_ityv_tbl.NEXT(i);
2627 END LOOP;
2628 -- return overall status
2629 x_return_status := l_overall_status;
2630 END IF;
2631 EXCEPTION
2632 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
2633 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
2634 (
2635 l_api_name,
2636 G_PKG_NAME,
2637 'okl_api.G_RET_STS_ERROR',
2638 x_msg_count,
2639 x_msg_data,
2640 '_PVT'
2641 );
2642 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2643 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2644 (
2645 l_api_name,
2646 G_PKG_NAME,
2647 'okl_api.G_RET_STS_UNEXP_ERROR',
2648 x_msg_count,
2649 x_msg_data,
2650 '_PVT'
2651 );
2652 WHEN OTHERS THEN
2653 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2654 (
2655 l_api_name,
2656 G_PKG_NAME,
2657 'OTHERS',
2658 x_msg_count,
2659 x_msg_data,
2660 '_PVT'
2661 );
2662 END update_row;
2663
2664 ---------------------------------------------------------------------------
2665 -- PROCEDURE delete_row
2666 ---------------------------------------------------------------------------
2667 ----------------------------------------
2668 -- delete_row for:OKL_INVOICE_TYPES_B --
2669 ----------------------------------------
2670 PROCEDURE delete_row(
2671 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
2672 x_return_status OUT NOCOPY VARCHAR2,
2673 x_msg_count OUT NOCOPY NUMBER,
2674 x_msg_data OUT NOCOPY VARCHAR2,
2675 p_ity_rec IN ity_rec_type) IS
2676
2677 l_api_version CONSTANT NUMBER := 1;
2678 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
2679 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2680 l_ity_rec ity_rec_type:= p_ity_rec;
2681 l_row_notfound BOOLEAN := TRUE;
2682 BEGIN
2683 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
2684 p_init_msg_list,
2685 '_PVT',
2686 x_return_status);
2687 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2688 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2689 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2690 RAISE Okl_Api.G_EXCEPTION_ERROR;
2691 END IF;
2692 DELETE FROM OKL_INVOICE_TYPES_B
2693 WHERE ID = l_ity_rec.id;
2694
2695 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2696 EXCEPTION
2697 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
2698 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
2699 (
2700 l_api_name,
2701 G_PKG_NAME,
2702 'okl_api.G_RET_STS_ERROR',
2703 x_msg_count,
2704 x_msg_data,
2705 '_PVT'
2706 );
2707 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2708 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2709 (
2710 l_api_name,
2711 G_PKG_NAME,
2712 'okl_api.G_RET_STS_UNEXP_ERROR',
2713 x_msg_count,
2714 x_msg_data,
2715 '_PVT'
2716 );
2717 WHEN OTHERS THEN
2718 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2719 (
2720 l_api_name,
2721 G_PKG_NAME,
2722 'OTHERS',
2723 x_msg_count,
2724 x_msg_data,
2725 '_PVT'
2726 );
2727 END delete_row;
2728 -----------------------------------------
2729 -- delete_row for:OKL_INVOICE_TYPES_TL --
2730 -----------------------------------------
2731 PROCEDURE delete_row(
2732 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
2733 x_return_status OUT NOCOPY VARCHAR2,
2734 x_msg_count OUT NOCOPY NUMBER,
2735 x_msg_data OUT NOCOPY VARCHAR2,
2736 p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type) IS
2737
2738 l_api_version CONSTANT NUMBER := 1;
2739 l_api_name CONSTANT VARCHAR2(30) := 'TL_delete_row';
2740 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2741 l_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type:= p_okl_invoice_types_tl_rec;
2742 l_row_notfound BOOLEAN := TRUE;
2743 ---------------------------------------------
2744 -- Set_Attributes for:OKL_INVOICE_TYPES_TL --
2745 ---------------------------------------------
2746 FUNCTION Set_Attributes (
2747 p_okl_invoice_types_tl_rec IN okl_invoice_types_tl_rec_type,
2748 x_okl_invoice_types_tl_rec OUT NOCOPY okl_invoice_types_tl_rec_type
2749 ) RETURN VARCHAR2 IS
2750 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2751 BEGIN
2752 x_okl_invoice_types_tl_rec := p_okl_invoice_types_tl_rec;
2753 x_okl_invoice_types_tl_rec.LANGUAGE := USERENV('LANG');
2754 RETURN(l_return_status);
2755 END Set_Attributes;
2756 BEGIN
2757 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
2758 p_init_msg_list,
2759 '_PVT',
2760 x_return_status);
2761 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2762 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2763 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2764 RAISE Okl_Api.G_EXCEPTION_ERROR;
2765 END IF;
2766 --- Setting item attributes
2767 l_return_status := Set_Attributes(
2768 p_okl_invoice_types_tl_rec, -- IN
2769 l_okl_invoice_types_tl_rec); -- OUT
2770 --- If any errors happen abort API
2771 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2772 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2773 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2774 RAISE Okl_Api.G_EXCEPTION_ERROR;
2775 END IF;
2776 DELETE FROM OKL_INVOICE_TYPES_TL
2777 WHERE ID = l_okl_invoice_types_tl_rec.id;
2778
2779 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2780 EXCEPTION
2781 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
2782 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
2783 (
2784 l_api_name,
2785 G_PKG_NAME,
2786 'okl_api.G_RET_STS_ERROR',
2787 x_msg_count,
2788 x_msg_data,
2789 '_PVT'
2790 );
2791 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2792 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2793 (
2794 l_api_name,
2795 G_PKG_NAME,
2796 'okl_api.G_RET_STS_UNEXP_ERROR',
2797 x_msg_count,
2798 x_msg_data,
2799 '_PVT'
2800 );
2801 WHEN OTHERS THEN
2802 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2803 (
2804 l_api_name,
2805 G_PKG_NAME,
2806 'OTHERS',
2807 x_msg_count,
2808 x_msg_data,
2809 '_PVT'
2810 );
2811 END delete_row;
2812 ----------------------------------------
2813 -- delete_row for:OKL_INVOICE_TYPES_V --
2814 ----------------------------------------
2815 PROCEDURE delete_row(
2816 p_api_version IN NUMBER,
2817 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
2818 x_return_status OUT NOCOPY VARCHAR2,
2819 x_msg_count OUT NOCOPY NUMBER,
2820 x_msg_data OUT NOCOPY VARCHAR2,
2821 p_ityv_rec IN ityv_rec_type) IS
2822
2823 l_api_version CONSTANT NUMBER := 1;
2824 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
2825 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2826 l_ityv_rec ityv_rec_type := p_ityv_rec;
2827 l_okl_invoice_types_tl_rec okl_invoice_types_tl_rec_type;
2828 l_ity_rec ity_rec_type;
2829 BEGIN
2830 l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
2831 G_PKG_NAME,
2832 p_init_msg_list,
2833 l_api_version,
2834 p_api_version,
2835 '_PVT',
2836 x_return_status);
2837 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2838 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2839 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2840 RAISE Okl_Api.G_EXCEPTION_ERROR;
2841 END IF;
2842 --------------------------------------
2843 -- Move VIEW record to "Child" records
2844 --------------------------------------
2845 migrate(l_ityv_rec, l_okl_invoice_types_tl_rec);
2846 migrate(l_ityv_rec, l_ity_rec);
2847 --------------------------------------------
2848 -- Call the DELETE_ROW for each child record
2849 --------------------------------------------
2850 delete_row(
2851 p_init_msg_list,
2852 x_return_status,
2853 x_msg_count,
2854 x_msg_data,
2855 l_okl_invoice_types_tl_rec
2856 );
2857 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2858 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2859 ELSIF (x_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2860 RAISE Okl_Api.G_EXCEPTION_ERROR;
2861 END IF;
2862 delete_row(
2863 p_init_msg_list,
2864 x_return_status,
2865 x_msg_count,
2866 x_msg_data,
2867 l_ity_rec
2868 );
2869 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2870 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2871 ELSIF (x_return_status = Okl_Api.G_RET_STS_ERROR) THEN
2872 RAISE Okl_Api.G_EXCEPTION_ERROR;
2873 END IF;
2874 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2875 EXCEPTION
2876 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
2877 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
2878 (
2879 l_api_name,
2880 G_PKG_NAME,
2881 'okl_api.G_RET_STS_ERROR',
2882 x_msg_count,
2883 x_msg_data,
2884 '_PVT'
2885 );
2886 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2887 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2888 (
2889 l_api_name,
2890 G_PKG_NAME,
2891 'okl_api.G_RET_STS_UNEXP_ERROR',
2892 x_msg_count,
2893 x_msg_data,
2894 '_PVT'
2895 );
2896 WHEN OTHERS THEN
2897 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2898 (
2899 l_api_name,
2900 G_PKG_NAME,
2901 'OTHERS',
2902 x_msg_count,
2903 x_msg_data,
2904 '_PVT'
2905 );
2906 END delete_row;
2907 ----------------------------------------
2908 -- PL/SQL TBL delete_row for:ITYV_TBL --
2909 ----------------------------------------
2910 PROCEDURE delete_row(
2911 p_api_version IN NUMBER,
2912 p_init_msg_list IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
2913 x_return_status OUT NOCOPY VARCHAR2,
2914 x_msg_count OUT NOCOPY NUMBER,
2915 x_msg_data OUT NOCOPY VARCHAR2,
2916 p_ityv_tbl IN ityv_tbl_type) IS
2917
2918 l_api_version CONSTANT NUMBER := 1;
2919 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
2920 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2921 l_overall_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
2922 i NUMBER := 0;
2923 BEGIN
2924 Okl_Api.init_msg_list(p_init_msg_list);
2925 -- Make sure PL/SQL table has records in it before passing
2926 IF (p_ityv_tbl.COUNT > 0) THEN
2927 i := p_ityv_tbl.FIRST;
2928 LOOP
2929 delete_row (
2930 p_api_version => p_api_version,
2931 p_init_msg_list => Okl_Api.G_FALSE,
2932 x_return_status => x_return_status,
2933 x_msg_count => x_msg_count,
2934 x_msg_data => x_msg_data,
2935 p_ityv_rec => p_ityv_tbl(i));
2936 -- Store the highest degree of error
2937 IF x_return_status <> Okl_Api.G_RET_STS_SUCCESS THEN
2938 IF l_overall_status <> Okl_Api.G_RET_STS_UNEXP_ERROR THEN
2939 l_overall_status := x_return_status;
2940 END IF;
2941 END IF;
2942 EXIT WHEN (i = p_ityv_tbl.LAST);
2943 i := p_ityv_tbl.NEXT(i);
2944 END LOOP;
2945 -- return overall status
2946 x_return_status := l_overall_status;
2947 END IF;
2948 EXCEPTION
2949 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
2950 x_return_status := Okl_Api.HANDLE_EXCEPTIONS
2951 (
2952 l_api_name,
2953 G_PKG_NAME,
2954 'okl_api.G_RET_STS_ERROR',
2955 x_msg_count,
2956 x_msg_data,
2957 '_PVT'
2958 );
2959 WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2960 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2961 (
2962 l_api_name,
2963 G_PKG_NAME,
2964 'okl_api.G_RET_STS_UNEXP_ERROR',
2965 x_msg_count,
2966 x_msg_data,
2967 '_PVT'
2968 );
2969 WHEN OTHERS THEN
2970 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2971 (
2972 l_api_name,
2973 G_PKG_NAME,
2974 'OTHERS',
2975 x_msg_count,
2976 x_msg_data,
2977 '_PVT'
2978 );
2979 END delete_row;
2980 END Okl_Ity_Pvt;