[Home] [Help]
PACKAGE BODY: APPS.OKL_TQD_PVT
Source
1 PACKAGE BODY OKL_TQD_PVT AS
2 /* $Header: OKLSTQDB.pls 120.2 2006/07/11 10:33:22 dkagrawa noship $ */
3 G_EXCEPTION_STOP_VALIDATION EXCEPTION;
4 ---------------------------------------------------------------------------
5 -- FUNCTION get_seq_id
6 ---------------------------------------------------------------------------
7 FUNCTION get_seq_id RETURN NUMBER IS
8 BEGIN
9 RETURN(okc_p_util.raw_to_number(sys_guid()));
10 END get_seq_id;
11
12 ---------------------------------------------------------------------------
13 -- PROCEDURE qc
14 ---------------------------------------------------------------------------
15 PROCEDURE qc IS
16 BEGIN
17 null;
18 END qc;
19
20 ---------------------------------------------------------------------------
21 -- PROCEDURE change_version
22 ---------------------------------------------------------------------------
23 PROCEDURE change_version IS
24 BEGIN
25 null;
26 END change_version;
27
28 ---------------------------------------------------------------------------
29 -- PROCEDURE api_copy
30 ---------------------------------------------------------------------------
31 PROCEDURE api_copy IS
32 BEGIN
33 null;
34 END api_copy;
35
36 ---------------------------------------------------------------------------
37 -- FUNCTION get_rec for: OKL_TXD_QUOTE_LINE_DTLS_V
38 ---------------------------------------------------------------------------
39 FUNCTION get_rec (p_tqdv_rec IN tqdv_rec_type,
40 x_no_data_found OUT NOCOPY BOOLEAN)
41 RETURN tqdv_rec_type IS
42
43 CURSOR okl_tqdv_pk_csr (p_id IN NUMBER) IS
44 SELECT ID,
45 OBJECT_VERSION_NUMBER,
46 NUMBER_OF_UNITS,
47 TQL_ID,
48 KLE_ID,
49 ORG_ID,
50 REQUEST_ID,
51 PROGRAM_APPLICATION_ID,
52 PROGRAM_ID,
53 PROGRAM_UPDATE_DATE,
54 CREATED_BY,
55 CREATION_DATE,
56 LAST_UPDATED_BY,
57 LAST_UPDATE_DATE,
58 LAST_UPDATE_LOGIN,
59 ATTRIBUTE_CATEGORY,
60 ATTRIBUTE1,
61 ATTRIBUTE2,
62 ATTRIBUTE3,
63 ATTRIBUTE4,
64 ATTRIBUTE5,
65 ATTRIBUTE6,
66 ATTRIBUTE7,
67 ATTRIBUTE8,
68 ATTRIBUTE9,
69 ATTRIBUTE10,
70 ATTRIBUTE11,
71 ATTRIBUTE12,
72 ATTRIBUTE13,
73 ATTRIBUTE14,
74 ATTRIBUTE15
75 FROM OKL_TXD_QUOTE_LINE_DTLS
76 WHERE OKL_TXD_QUOTE_LINE_DTLS.id = p_id;
77 l_okl_tqdv_pk okl_tqdv_pk_csr%ROWTYPE;
78 l_tqdv_rec tqdv_rec_type;
79 BEGIN
80 x_no_data_found := TRUE;
81 -- Get current database values
82 OPEN okl_tqdv_pk_csr (p_tqdv_rec.id);
83 FETCH okl_tqdv_pk_csr INTO
84 l_tqdv_rec.id,
85 l_tqdv_rec.object_version_number,
86 l_tqdv_rec.number_of_units,
87 l_tqdv_rec.tql_id,
88 l_tqdv_rec.kle_id,
89 l_tqdv_rec.org_id,
90 l_tqdv_rec.request_id,
91 l_tqdv_rec.program_application_id,
92 l_tqdv_rec.program_id,
93 l_tqdv_rec.program_update_date,
94 l_tqdv_rec.created_by,
95 l_tqdv_rec.creation_date,
96 l_tqdv_rec.last_updated_by,
97 l_tqdv_rec.last_update_date,
98 l_tqdv_rec.last_update_login,
99 l_tqdv_rec.attribute_category,
100 l_tqdv_rec.attribute1,
101 l_tqdv_rec.attribute2,
102 l_tqdv_rec.attribute3,
103 l_tqdv_rec.attribute4,
104 l_tqdv_rec.attribute5,
105 l_tqdv_rec.attribute6,
106 l_tqdv_rec.attribute7,
107 l_tqdv_rec.attribute8,
108 l_tqdv_rec.attribute9,
109 l_tqdv_rec.attribute10,
110 l_tqdv_rec.attribute11,
111 l_tqdv_rec.attribute12,
112 l_tqdv_rec.attribute13,
113 l_tqdv_rec.attribute14,
114 l_tqdv_rec.attribute15;
115 x_no_data_found := okl_tqdv_pk_csr%NOTFOUND;
116 CLOSE okl_tqdv_pk_csr;
117 RETURN(l_tqdv_rec);
118 END get_rec;
119
120 ------------------------------------------------------------------
121 -- This version of get_rec sets error messages if no data found --
122 ------------------------------------------------------------------
123 FUNCTION get_rec (p_tqdv_rec IN tqdv_rec_type,
124 x_return_status OUT NOCOPY VARCHAR2)
125 RETURN tqdv_rec_type IS
126 l_tqdv_rec tqdv_rec_type;
127 l_row_notfound BOOLEAN := TRUE;
128 BEGIN
129 x_return_status := OKC_API.G_RET_STS_SUCCESS;
130 l_tqdv_rec := get_rec(p_tqdv_rec, l_row_notfound);
131 IF (l_row_notfound) THEN
132 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
133 x_return_status := OKC_API.G_RET_STS_ERROR;
134 END IF;
135 RETURN(l_tqdv_rec);
136 END get_rec;
137 -----------------------------------------------------------
138 -- So we don't have to pass an "l_row_notfound" variable --
139 -----------------------------------------------------------
140 FUNCTION get_rec (p_tqdv_rec IN tqdv_rec_type)
141 RETURN tqdv_rec_type IS
142 l_row_not_found BOOLEAN := TRUE;
143 BEGIN
144 RETURN(get_rec(p_tqdv_rec, l_row_not_found));
145 END get_rec;
146 ---------------------------------------------------------------------------
147 -- FUNCTION get_rec for: OKL_TXD_QUOTE_LINE_DTLS
148 ---------------------------------------------------------------------------
149 FUNCTION get_rec (p_tqd_rec IN tqd_rec_type,
150 x_no_data_found OUT NOCOPY BOOLEAN)
151 RETURN tqd_rec_type IS
152 CURSOR okl_txd_quote_line_dtls_pk_csr (p_id IN NUMBER) IS
153 SELECT ID,
154 OBJECT_VERSION_NUMBER,
155 NUMBER_OF_UNITS,
156 KLE_ID,
157 TQL_ID,
158 ORG_ID,
159 REQUEST_ID,
160 PROGRAM_APPLICATION_ID,
161 PROGRAM_ID,
162 PROGRAM_UPDATE_DATE,
163 CREATED_BY,
164 CREATION_DATE,
165 LAST_UPDATED_BY,
166 LAST_UPDATE_DATE,
167 LAST_UPDATE_LOGIN,
168 ATTRIBUTE_CATEGORY,
169 ATTRIBUTE1,
170 ATTRIBUTE2,
171 ATTRIBUTE3,
172 ATTRIBUTE4,
173 ATTRIBUTE5,
174 ATTRIBUTE6,
175 ATTRIBUTE7,
176 ATTRIBUTE8,
177 ATTRIBUTE9,
178 ATTRIBUTE10,
179 ATTRIBUTE11,
180 ATTRIBUTE12,
181 ATTRIBUTE13,
182 ATTRIBUTE14,
183 ATTRIBUTE15
184 FROM Okl_Txd_Quote_Line_Dtls
185 WHERE okl_txd_quote_line_dtls.id = p_id;
186 l_okl_txd_quote_line_dtls_pk okl_txd_quote_line_dtls_pk_csr%ROWTYPE;
187 l_tqd_rec tqd_rec_type;
188 BEGIN
189 x_no_data_found := TRUE;
190 -- Get current database values
191 OPEN okl_txd_quote_line_dtls_pk_csr (p_tqd_rec.id);
192 FETCH okl_txd_quote_line_dtls_pk_csr INTO
193 l_tqd_rec.id,
194 l_tqd_rec.object_version_number,
195 l_tqd_rec.number_of_units,
196 l_tqd_rec.kle_id,
197 l_tqd_rec.tql_id,
198 l_tqd_rec.org_id,
199 l_tqd_rec.request_id,
200 l_tqd_rec.program_application_id,
201 l_tqd_rec.program_id,
202 l_tqd_rec.program_update_date,
203 l_tqd_rec.created_by,
204 l_tqd_rec.creation_date,
205 l_tqd_rec.last_updated_by,
206 l_tqd_rec.last_update_date,
207 l_tqd_rec.last_update_login,
208 l_tqd_rec.attribute_category,
209 l_tqd_rec.attribute1,
210 l_tqd_rec.attribute2,
211 l_tqd_rec.attribute3,
212 l_tqd_rec.attribute4,
213 l_tqd_rec.attribute5,
214 l_tqd_rec.attribute6,
215 l_tqd_rec.attribute7,
216 l_tqd_rec.attribute8,
217 l_tqd_rec.attribute9,
218 l_tqd_rec.attribute10,
219 l_tqd_rec.attribute11,
220 l_tqd_rec.attribute12,
221 l_tqd_rec.attribute13,
222 l_tqd_rec.attribute14,
223 l_tqd_rec.attribute15;
224 x_no_data_found := okl_txd_quote_line_dtls_pk_csr%NOTFOUND;
225 CLOSE okl_txd_quote_line_dtls_pk_csr;
226 RETURN(l_tqd_rec);
227 END get_rec;
228
229 ------------------------------------------------------------------
230 -- This version of get_rec sets error messages if no data found --
231 ------------------------------------------------------------------
232 FUNCTION get_rec (p_tqd_rec IN tqd_rec_type,
233 x_return_status OUT NOCOPY VARCHAR2)
234 RETURN tqd_rec_type IS
235 l_tqd_rec tqd_rec_type;
236 l_row_notfound BOOLEAN := TRUE;
237 BEGIN
238 x_return_status := OKC_API.G_RET_STS_SUCCESS;
239 l_tqd_rec := get_rec(p_tqd_rec, l_row_notfound);
240 IF (l_row_notfound) THEN
241 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
242 x_return_status := OKC_API.G_RET_STS_ERROR;
243 END IF;
244 RETURN(l_tqd_rec);
245 END get_rec;
246 -----------------------------------------------------------
247 -- So we don't have to pass an "l_row_notfound" variable --
248 -----------------------------------------------------------
249 FUNCTION get_rec (p_tqd_rec IN tqd_rec_type)
250 RETURN tqd_rec_type IS
251 l_row_not_found BOOLEAN := TRUE;
252 BEGIN
253 RETURN(get_rec(p_tqd_rec, l_row_not_found));
254 END get_rec;
255 ---------------------------------------------------------------------------
256 -- FUNCTION null_out_defaults for: OKL_TXD_QUOTE_LINE_DTLS_V
257 ---------------------------------------------------------------------------
258 FUNCTION null_out_defaults (p_tqdv_rec IN tqdv_rec_type)
259 RETURN tqdv_rec_type IS
260 l_tqdv_rec tqdv_rec_type := p_tqdv_rec;
261 BEGIN
262 IF (l_tqdv_rec.id = OKC_API.G_MISS_NUM ) THEN
263 l_tqdv_rec.id := NULL;
264 END IF;
265 IF (l_tqdv_rec.object_version_number = OKC_API.G_MISS_NUM ) THEN
266 l_tqdv_rec.object_version_number := NULL;
267 END IF;
268 IF (l_tqdv_rec.number_of_units = OKC_API.G_MISS_NUM ) THEN
269 l_tqdv_rec.number_of_units := NULL;
270 END IF;
271 IF (l_tqdv_rec.tql_id = OKC_API.G_MISS_NUM ) THEN
272 l_tqdv_rec.tql_id := NULL;
273 END IF;
274 IF (l_tqdv_rec.kle_id = OKC_API.G_MISS_NUM ) THEN
275 l_tqdv_rec.kle_id := NULL;
276 END IF;
277 IF (l_tqdv_rec.org_id = OKC_API.G_MISS_NUM ) THEN
278 l_tqdv_rec.org_id := NULL;
279 END IF;
280 IF (l_tqdv_rec.request_id = OKC_API.G_MISS_NUM ) THEN
281 l_tqdv_rec.request_id := NULL;
282 END IF;
283 IF (l_tqdv_rec.program_application_id = OKC_API.G_MISS_NUM ) THEN
284 l_tqdv_rec.program_application_id := NULL;
285 END IF;
286 IF (l_tqdv_rec.program_id = OKC_API.G_MISS_NUM ) THEN
287 l_tqdv_rec.program_id := NULL;
288 END IF;
289 IF (l_tqdv_rec.program_update_date = OKC_API.G_MISS_DATE ) THEN
290 l_tqdv_rec.program_update_date := NULL;
291 END IF;
292 IF (l_tqdv_rec.created_by = OKC_API.G_MISS_NUM ) THEN
293 l_tqdv_rec.created_by := NULL;
294 END IF;
295 IF (l_tqdv_rec.creation_date = OKC_API.G_MISS_DATE ) THEN
296 l_tqdv_rec.creation_date := NULL;
297 END IF;
298 IF (l_tqdv_rec.last_updated_by = OKC_API.G_MISS_NUM ) THEN
299 l_tqdv_rec.last_updated_by := NULL;
300 END IF;
301 IF (l_tqdv_rec.last_update_date = OKC_API.G_MISS_DATE ) THEN
302 l_tqdv_rec.last_update_date := NULL;
303 END IF;
304 IF (l_tqdv_rec.last_update_login = OKC_API.G_MISS_NUM ) THEN
305 l_tqdv_rec.last_update_login := NULL;
306 END IF;
307 IF (l_tqdv_rec.attribute_category = OKC_API.G_MISS_CHAR ) THEN
308 l_tqdv_rec.attribute_category := NULL;
309 END IF;
310 IF (l_tqdv_rec.attribute1 = OKC_API.G_MISS_CHAR ) THEN
311 l_tqdv_rec.attribute1 := NULL;
312 END IF;
313 IF (l_tqdv_rec.attribute2 = OKC_API.G_MISS_CHAR ) THEN
314 l_tqdv_rec.attribute2 := NULL;
315 END IF;
316 IF (l_tqdv_rec.attribute3 = OKC_API.G_MISS_CHAR ) THEN
317 l_tqdv_rec.attribute3 := NULL;
318 END IF;
319 IF (l_tqdv_rec.attribute4 = OKC_API.G_MISS_CHAR ) THEN
320 l_tqdv_rec.attribute4 := NULL;
321 END IF;
322 IF (l_tqdv_rec.attribute5 = OKC_API.G_MISS_CHAR ) THEN
323 l_tqdv_rec.attribute5 := NULL;
324 END IF;
325 IF (l_tqdv_rec.attribute6 = OKC_API.G_MISS_CHAR ) THEN
326 l_tqdv_rec.attribute6 := NULL;
330 END IF;
327 END IF;
328 IF (l_tqdv_rec.attribute7 = OKC_API.G_MISS_CHAR ) THEN
329 l_tqdv_rec.attribute7 := NULL;
331 IF (l_tqdv_rec.attribute8 = OKC_API.G_MISS_CHAR ) THEN
332 l_tqdv_rec.attribute8 := NULL;
333 END IF;
334 IF (l_tqdv_rec.attribute9 = OKC_API.G_MISS_CHAR ) THEN
335 l_tqdv_rec.attribute9 := NULL;
336 END IF;
337 IF (l_tqdv_rec.attribute10 = OKC_API.G_MISS_CHAR ) THEN
338 l_tqdv_rec.attribute10 := NULL;
339 END IF;
340 IF (l_tqdv_rec.attribute11 = OKC_API.G_MISS_CHAR ) THEN
341 l_tqdv_rec.attribute11 := NULL;
342 END IF;
343 IF (l_tqdv_rec.attribute12 = OKC_API.G_MISS_CHAR ) THEN
344 l_tqdv_rec.attribute12 := NULL;
345 END IF;
346 IF (l_tqdv_rec.attribute13 = OKC_API.G_MISS_CHAR ) THEN
347 l_tqdv_rec.attribute13 := NULL;
348 END IF;
349 IF (l_tqdv_rec.attribute14 = OKC_API.G_MISS_CHAR ) THEN
350 l_tqdv_rec.attribute14 := NULL;
351 END IF;
352 IF (l_tqdv_rec.attribute15 = OKC_API.G_MISS_CHAR ) THEN
353 l_tqdv_rec.attribute15 := NULL;
354 END IF;
355 RETURN(l_tqdv_rec);
356 END null_out_defaults;
357 ---------------------------------
358 -- Validate_Attributes for: ID --
359 ---------------------------------
360 PROCEDURE validate_id(x_return_status OUT NOCOPY VARCHAR2,
361 p_id IN NUMBER) IS
362 BEGIN
363 x_return_status := OKC_API.G_RET_STS_SUCCESS;
364 IF (p_id = OKC_API.G_MISS_NUM OR
365 p_id IS NULL) THEN
366 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'id');
367 x_return_status := OKC_API.G_RET_STS_ERROR;
368 RAISE G_EXCEPTION_HALT_VALIDATION;
369 END IF;
370 EXCEPTION
371 WHEN G_EXCEPTION_HALT_VALIDATION THEN
372 null;
373 WHEN OTHERS THEN
374 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
375 ,p_msg_name => G_UNEXPECTED_ERROR
376 ,p_token1 => G_SQLCODE_TOKEN
377 ,p_token1_value => SQLCODE
378 ,p_token2 => G_SQLERRM_TOKEN
379 ,p_token2_value => SQLERRM);
380 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
381 END validate_id;
382 ---------------------------------
383 -- Validate_Attributes for: ORG_ID --
384 ---------------------------------
385 -- Start of comments
386 --
387 -- Procedure Name : validate_org_id
388 -- Description : To check for valid Org Id
389 -- Business Rules :
390 -- Parameters :
391 -- Version : 1.0
392 -- End of comments
393 PROCEDURE validate_org_id(x_return_status OUT NOCOPY VARCHAR2,
394 p_org_id IN NUMBER) IS
395
396 BEGIN
397 -- initialize return status
398 x_return_status := OKC_API.G_RET_STS_SUCCESS;
399 IF (p_org_id IS NOT NULL OR
400 p_org_id <> OKC_API.G_MISS_NUM) THEN
401 x_return_status := OKL_UTIL.check_org_id(p_org_id => p_org_id);
402 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
403 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME,
404 p_msg_name => G_INVALID_VALUE,
405 p_token1 => G_COL_NAME_TOKEN,
406 p_token1_value => 'org_id');
407 RAISE G_EXCEPTION_HALT_VALIDATION;
408 END IF;
409 END IF;
410 EXCEPTION
411 WHEN G_EXCEPTION_HALT_VALIDATION THEN
412 x_return_status := OKC_API.G_RET_STS_ERROR;
413 WHEN OTHERS THEN
414 -- store SQL error message on message stack for caller
415 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
416 ,p_msg_name => G_UNEXPECTED_ERROR
417 ,p_token1 => G_SQLCODE_TOKEN
418 ,p_token1_value => sqlcode
419 ,p_token2 => G_SQLERRM_TOKEN
420 ,p_token2_value => sqlerrm);
421 -- notify caller of an UNEXPECTED error
422 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
423 END validate_org_id;
424 -------------------------------------
425 -- Validate_Attributes for: TQL_ID --
426 -------------------------------------
427 -- Start of comments
428 --
429 -- Procedure Name : validate_tql_id
430 -- Description : Foreign Key validation for Okl_Txl_Quote_Lines_V
431 -- Business Rules :
432 -- Parameters :
433 -- Version : 1.0
434 -- End of comments
435 PROCEDURE validate_tql_id(x_return_status OUT NOCOPY VARCHAR2,
436 p_tql_id IN NUMBER) IS
437 ln_dummy NUMBER := 0;
438
439 CURSOR okl_tqlv_pk_csr (p_tql_id IN NUMBER) IS
440 SELECT 1
441 FROM DUAL
442 WHERE EXISTS (SELECT 'x'
443 FROM Okl_Txl_Quote_Lines_V
444 WHERE okl_txl_quote_lines_v.id = p_tql_id);
445
446 BEGIN
447 x_return_status := OKC_API.G_RET_STS_SUCCESS;
448 IF (p_tql_id = OKC_API.G_MISS_NUM OR
449 p_tql_id IS NULL) THEN
450 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'TQL_ID');
451 x_return_status := OKC_API.G_RET_STS_ERROR;
452 RAISE G_EXCEPTION_HALT_VALIDATION;
453 END IF;
454 OPEN okl_tqlv_pk_csr(p_tql_id => p_tql_id);
458 x_return_status := OKC_API.G_RET_STS_ERROR;
455 FETCH okl_tqlv_pk_csr INTO ln_dummy;
456 IF okl_tqlv_pk_csr%NOTFOUND THEN
457 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TQL_ID');
459 RAISE G_EXCEPTION_STOP_VALIDATION;
460 END IF;
461 CLOSE okl_tqlv_pk_csr;
462 IF ln_dummy = 0 THEN
463 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TQL_ID');
464 x_return_status := OKC_API.G_RET_STS_ERROR;
465 RAISE G_EXCEPTION_STOP_VALIDATION;
466 END IF;
467 EXCEPTION
468 WHEN G_EXCEPTION_STOP_VALIDATION THEN
469 null;
470 WHEN G_EXCEPTION_HALT_VALIDATION THEN
471 IF okl_tqlv_pk_csr%ISOPEN THEN
472 CLOSE okl_tqlv_pk_csr;
473 END IF;
474 null;
475 WHEN OTHERS THEN
476 IF okl_tqlv_pk_csr%ISOPEN THEN
477 CLOSE okl_tqlv_pk_csr;
478 END IF;
479 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
480 ,p_msg_name => G_UNEXPECTED_ERROR
481 ,p_token1 => G_SQLCODE_TOKEN
482 ,p_token1_value => SQLCODE
483 ,p_token2 => G_SQLERRM_TOKEN
484 ,p_token2_value => SQLERRM);
485 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
486 END validate_tql_id;
487
488 -------------------------------------
489 -- Validate_Attributes for: KLE_ID --
490 -------------------------------------
491 -- Start of comments
492 --
493 -- Procedure Name : validate_kle_id
494 -- Description : Foreign Key validation for Okl_k_lines_v
495 -- Business Rules :
496 -- Parameters :
497 -- Version : 1.0
498 -- End of comments
499
500 PROCEDURE validate_kle_id(x_return_status OUT NOCOPY VARCHAR2,
501 p_kle_id IN NUMBER) IS
502 ln_dummy NUMBER := 0;
503
504 CURSOR okl_klev_pk_csr (p_kle_id IN NUMBER) IS
505 SELECT 1
506 FROM DUAL
507 WHERE EXISTS (SELECT 'x'
508 FROM Okl_k_lines_V kle
509 WHERE kle.id = p_kle_id);
510
511 BEGIN
512 x_return_status := OKC_API.G_RET_STS_SUCCESS;
513 IF (p_kle_id = OKC_API.G_MISS_NUM OR
514 p_kle_id IS NULL) THEN
515 RAISE G_EXCEPTION_HALT_VALIDATION;
516 END IF;
517 OPEN okl_klev_pk_csr(p_kle_id => p_kle_id);
518 FETCH okl_klev_pk_csr INTO ln_dummy;
519 IF okl_klev_pk_csr%NOTFOUND THEN
520 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'KLE_ID');
521 x_return_status := OKC_API.G_RET_STS_ERROR;
522 RAISE G_EXCEPTION_STOP_VALIDATION;
523 END IF;
524 CLOSE okl_klev_pk_csr;
525 IF ln_dummy = 0 THEN
526 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'KLE_ID');
527 x_return_status := OKC_API.G_RET_STS_ERROR;
528 RAISE G_EXCEPTION_STOP_VALIDATION;
529 END IF;
530 EXCEPTION
531 WHEN G_EXCEPTION_STOP_VALIDATION THEN
532 null;
533 WHEN G_EXCEPTION_HALT_VALIDATION THEN
534 IF okl_klev_pk_csr%ISOPEN THEN
535 CLOSE okl_klev_pk_csr;
536 END IF;
537 null;
538 WHEN OTHERS THEN
539 IF okl_klev_pk_csr%ISOPEN THEN
540 CLOSE okl_klev_pk_csr;
541 END IF;
542 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
543 ,p_msg_name => G_UNEXPECTED_ERROR
544 ,p_token1 => G_SQLCODE_TOKEN
545 ,p_token1_value => SQLCODE
546 ,p_token2 => G_SQLERRM_TOKEN
547 ,p_token2_value => SQLERRM);
548 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
549 END validate_kle_id;
550 ---------------------------------------------------------------------------
551 -- FUNCTION Validate_Attributes
552 ---------------------------------------------------------------------------
553 -------------------------------------------------------
554 -- Validate_Attributes for:OKL_TXD_QUOTE_LINE_DTLS_V --
555 -------------------------------------------------------
556 FUNCTION Validate_Attributes (
557 p_tqdv_rec IN tqdv_rec_type
558 ) RETURN VARCHAR2 IS
559 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
560 x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
561 BEGIN
562 -----------------------------
563 -- Column Level Validation --
564 -----------------------------
565 validate_id(x_return_status, p_tqdv_rec.id);
566 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
567 l_return_status := x_return_status;
568 END IF;
569 validate_tql_id(x_return_status, p_tqdv_rec.tql_id);
570 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
571 l_return_status := x_return_status;
572 END IF;
573 validate_org_id(x_return_status, p_tqdv_rec.org_id);
574 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
575 l_return_status := x_return_status;
576 END IF;
577 validate_kle_id(x_return_status, p_tqdv_rec.kle_id);
578 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
579 l_return_status := x_return_status;
580 END IF;
581 IF l_return_status <> OKC_API.G_RET_STS_SUCCESS OR
585 RETURN(l_return_status);
582 x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
583 RAISE G_EXCEPTION_HALT_VALIDATION;
584 END IF;
586 EXCEPTION
587 WHEN G_EXCEPTION_HALT_VALIDATION THEN
588 RETURN(l_return_status);
589 WHEN OTHERS THEN
590 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
591 ,p_msg_name => G_UNEXPECTED_ERROR
592 ,p_token1 => G_SQLCODE_TOKEN
593 ,p_token1_value => SQLCODE
594 ,p_token2 => G_SQLERRM_TOKEN
595 ,p_token2_value => SQLERRM);
596 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
597 RETURN(l_return_status);
598 END Validate_Attributes;
599 ---------------------------------------------------------------------------
600 -- PROCEDURE Validate_Record
601 ---------------------------------------------------------------------------
602 ---------------------------------------------------
603 -- Validate Record for:OKL_TXD_QUOTE_LINE_DTLS_V --
604 ---------------------------------------------------
605 FUNCTION Validate_Record (p_tqdv_rec IN tqdv_rec_type,
606 p_db_tqdv_rec IN tqdv_rec_type) RETURN VARCHAR2 IS
607 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
608 BEGIN
609 RETURN (l_return_status);
610 END Validate_Record;
611
612 FUNCTION Validate_Record (
613 p_tqdv_rec IN tqdv_rec_type
614 ) RETURN VARCHAR2 IS
615 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
616 l_db_tqdv_rec tqdv_rec_type := get_rec(p_tqdv_rec);
617 BEGIN
618 l_return_status := Validate_Record(p_tqdv_rec => p_tqdv_rec,
619 p_db_tqdv_rec => l_db_tqdv_rec);
620 RETURN (l_return_status);
621 END Validate_Record;
622
623 ---------------------------------------------------------------------------
624 -- PROCEDURE Migrate
625 ---------------------------------------------------------------------------
626 PROCEDURE migrate (p_from IN tqdv_rec_type,
627 p_to IN OUT NOCOPY tqd_rec_type) IS
628 BEGIN
629 p_to.id := p_from.id;
630 p_to.object_version_number := p_from.object_version_number;
631 p_to.number_of_units := p_from.number_of_units;
632 p_to.kle_id := p_from.kle_id;
633 p_to.tql_id := p_from.tql_id;
634 p_to.org_id := p_from.org_id;
635 p_to.request_id := p_from.request_id;
636 p_to.program_application_id := p_from.program_application_id;
637 p_to.program_id := p_from.program_id;
638 p_to.program_update_date := p_from.program_update_date;
639 p_to.created_by := p_from.created_by;
640 p_to.creation_date := p_from.creation_date;
641 p_to.last_updated_by := p_from.last_updated_by;
642 p_to.last_update_date := p_from.last_update_date;
643 p_to.last_update_login := p_from.last_update_login;
644 p_to.attribute_category := p_from.attribute_category;
645 p_to.attribute1 := p_from.attribute1;
646 p_to.attribute2 := p_from.attribute2;
647 p_to.attribute3 := p_from.attribute3;
648 p_to.attribute4 := p_from.attribute4;
649 p_to.attribute5 := p_from.attribute5;
650 p_to.attribute6 := p_from.attribute6;
651 p_to.attribute7 := p_from.attribute7;
652 p_to.attribute8 := p_from.attribute8;
653 p_to.attribute9 := p_from.attribute9;
654 p_to.attribute10 := p_from.attribute10;
655 p_to.attribute11 := p_from.attribute11;
656 p_to.attribute12 := p_from.attribute12;
657 p_to.attribute13 := p_from.attribute13;
658 p_to.attribute14 := p_from.attribute14;
659 p_to.attribute15 := p_from.attribute15;
660 END migrate;
661 PROCEDURE migrate (p_from IN tqd_rec_type,
662 p_to IN OUT NOCOPY tqdv_rec_type) IS
663 BEGIN
664 p_to.id := p_from.id;
665 p_to.object_version_number := p_from.object_version_number;
666 p_to.number_of_units := p_from.number_of_units;
667 p_to.tql_id := p_from.tql_id;
668 p_to.kle_id := p_from.kle_id;
669 p_to.org_id := p_from.org_id;
670 p_to.request_id := p_from.request_id;
671 p_to.program_application_id := p_from.program_application_id;
672 p_to.program_id := p_from.program_id;
673 p_to.program_update_date := p_from.program_update_date;
674 p_to.created_by := p_from.created_by;
675 p_to.creation_date := p_from.creation_date;
676 p_to.last_updated_by := p_from.last_updated_by;
677 p_to.last_update_date := p_from.last_update_date;
678 p_to.last_update_login := p_from.last_update_login;
679 p_to.attribute_category := p_from.attribute_category;
680 p_to.attribute1 := p_from.attribute1;
681 p_to.attribute2 := p_from.attribute2;
682 p_to.attribute3 := p_from.attribute3;
683 p_to.attribute4 := p_from.attribute4;
684 p_to.attribute5 := p_from.attribute5;
685 p_to.attribute6 := p_from.attribute6;
686 p_to.attribute7 := p_from.attribute7;
687 p_to.attribute8 := p_from.attribute8;
688 p_to.attribute9 := p_from.attribute9;
689 p_to.attribute10 := p_from.attribute10;
690 p_to.attribute11 := p_from.attribute11;
691 p_to.attribute12 := p_from.attribute12;
692 p_to.attribute13 := p_from.attribute13;
693 p_to.attribute14 := p_from.attribute14;
694 p_to.attribute15 := p_from.attribute15;
695 END migrate;
699 ------------------------------------------------
696 ---------------------------------------------------------------------------
697 -- PROCEDURE validate_row
698 ---------------------------------------------------------------------------
700 -- validate_row for:OKL_TXD_QUOTE_LINE_DTLS_V --
701 ------------------------------------------------
702 PROCEDURE validate_row(
703 p_api_version IN NUMBER,
704 p_init_msg_list IN VARCHAR2,
705 x_return_status OUT NOCOPY VARCHAR2,
706 x_msg_count OUT NOCOPY NUMBER,
707 x_msg_data OUT NOCOPY VARCHAR2,
708 p_tqdv_rec IN tqdv_rec_type) IS
709
710 l_api_version CONSTANT NUMBER := 1;
711 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
712 l_tqdv_rec tqdv_rec_type := p_tqdv_rec;
713 l_tqd_rec tqd_rec_type;
714 l_tqd_rec tqd_rec_type;
715 BEGIN
716 x_return_status := OKC_API.START_ACTIVITY(l_api_name,
717 G_PKG_NAME,
718 p_init_msg_list,
719 l_api_version,
720 p_api_version,
721 '_PVT',
722 x_return_status);
723 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
724 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
725 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
726 RAISE OKC_API.G_EXCEPTION_ERROR;
727 END IF;
728 --- Validate all non-missing attributes (Item Level Validation)
729 x_return_status := Validate_Attributes(l_tqdv_rec);
730 --- If any errors happen abort API
731 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
732 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
733 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
734 RAISE OKC_API.G_EXCEPTION_ERROR;
735 END IF;
736 x_return_status := Validate_Record(l_tqdv_rec);
737 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
738 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
739 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
740 RAISE OKC_API.G_EXCEPTION_ERROR;
741 END IF;
742 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
743 EXCEPTION
744 WHEN OKC_API.G_EXCEPTION_ERROR THEN
745 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
746 l_api_name,
747 G_PKG_NAME,
748 'OKC_API.G_RET_STS_ERROR',
749 x_msg_count,
750 x_msg_data,
751 '_PVT');
752 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
753 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
754 l_api_name,
755 G_PKG_NAME,
756 'OKC_API.G_RET_STS_UNEXP_ERROR',
757 x_msg_count,
758 x_msg_data,
759 '_PVT');
760 WHEN OTHERS THEN
761 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
762 l_api_name,
763 G_PKG_NAME,
764 'OTHERS',
765 x_msg_count,
766 x_msg_data,
767 '_PVT');
768 END validate_row;
769 -----------------------------------------------------------
770 -- PL/SQL TBL validate_row for:OKL_TXD_QUOTE_LINE_DTLS_V --
771 -----------------------------------------------------------
772 PROCEDURE validate_row(
773 p_api_version IN NUMBER,
774 p_init_msg_list IN VARCHAR2,
775 x_return_status OUT NOCOPY VARCHAR2,
776 x_msg_count OUT NOCOPY NUMBER,
777 x_msg_data OUT NOCOPY VARCHAR2,
778 p_tqdv_tbl IN tqdv_tbl_type) IS
779
780 l_api_version CONSTANT NUMBER := 1;
781 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
782 i NUMBER := 0;
783 BEGIN
784 OKC_API.init_msg_list(p_init_msg_list);
785 -- Make sure PL/SQL table has records in it before passing
786 IF (p_tqdv_tbl.COUNT > 0) THEN
787 i := p_tqdv_tbl.FIRST;
788 LOOP
789 validate_row (p_api_version => p_api_version,
790 p_init_msg_list => OKC_API.G_FALSE,
791 x_return_status => x_return_status,
792 x_msg_count => x_msg_count,
793 x_msg_data => x_msg_data,
794 p_tqdv_rec => p_tqdv_tbl(i));
795 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
796 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
797 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
798 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
799 END IF;
800 EXIT WHEN (i = p_tqdv_tbl.LAST);
801 i := p_tqdv_tbl.NEXT(i);
802 END LOOP;
806 RAISE OKC_API.G_EXCEPTION_ERROR;
803 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
804 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
805 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
807 END IF;
808 END IF;
809 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
810 EXCEPTION
811 WHEN OKC_API.G_EXCEPTION_ERROR THEN
812 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
813 l_api_name,
814 G_PKG_NAME,
815 'OKC_API.G_RET_STS_ERROR',
816 x_msg_count,
817 x_msg_data,
818 '_PVT');
819 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
820 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
821 l_api_name,
822 G_PKG_NAME,
823 'OKC_API.G_RET_STS_UNEXP_ERROR',
824 x_msg_count,
825 x_msg_data,
826 '_PVT');
827 WHEN OTHERS THEN
828 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
829 l_api_name,
830 G_PKG_NAME,
831 'OTHERS',
832 x_msg_count,
833 x_msg_data,
834 '_PVT');
835 END validate_row;
836 ---------------------------------------------------------------------------
837 -- PROCEDURE insert_row
838 ---------------------------------------------------------------------------
839 --------------------------------------------
840 -- insert_row for:OKL_TXD_QUOTE_LINE_DTLS --
841 --------------------------------------------
842 PROCEDURE insert_row(
843 p_init_msg_list IN VARCHAR2,
844 x_return_status OUT NOCOPY VARCHAR2,
845 x_msg_count OUT NOCOPY NUMBER,
846 x_msg_data OUT NOCOPY VARCHAR2,
847 p_tqd_rec IN tqd_rec_type,
848 x_tqd_rec OUT NOCOPY tqd_rec_type) IS
849
850 l_api_version CONSTANT NUMBER := 1;
851 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
852 l_tqd_rec tqd_rec_type := p_tqd_rec;
853 l_def_tqd_rec tqd_rec_type;
854 ------------------------------------------------
855 -- Set_Attributes for:OKL_TXD_QUOTE_LINE_DTLS --
856 ------------------------------------------------
857 FUNCTION Set_Attributes (p_tqd_rec IN tqd_rec_type,
858 x_tqd_rec OUT NOCOPY tqd_rec_type) RETURN VARCHAR2 IS
859 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
860 BEGIN
861 x_tqd_rec := p_tqd_rec;
862 RETURN(l_return_status);
863 END Set_Attributes;
864 BEGIN
865 x_return_status := OKC_API.START_ACTIVITY(l_api_name,
866 p_init_msg_list,
867 '_PVT',
868 x_return_status);
869 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
870 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
871 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
872 RAISE OKC_API.G_EXCEPTION_ERROR;
873 END IF;
874 --- Setting item atributes
875 x_return_status := Set_Attributes(
876 p_tqd_rec, -- IN
877 l_tqd_rec); -- OUT
878 --- If any errors happen abort API
879 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
880 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
881 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
882 RAISE OKC_API.G_EXCEPTION_ERROR;
883 END IF;
884 INSERT INTO OKL_TXD_QUOTE_LINE_DTLS(
885 id,
886 object_version_number,
887 number_of_units,
888 kle_id,
889 tql_id,
890 org_id,
891 request_id,
892 program_application_id,
893 program_id,
894 program_update_date,
895 created_by,
896 creation_date,
897 last_updated_by,
898 last_update_date,
899 last_update_login,
900 attribute_category,
901 attribute1,
902 attribute2,
903 attribute3,
904 attribute4,
905 attribute5,
906 attribute6,
907 attribute7,
908 attribute8,
909 attribute9,
910 attribute10,
911 attribute11,
912 attribute12,
913 attribute13,
914 attribute14,
915 attribute15)
916 VALUES (
917 l_tqd_rec.id,
918 l_tqd_rec.object_version_number,
919 l_tqd_rec.number_of_units,
920 l_tqd_rec.kle_id,
921 l_tqd_rec.tql_id,
922 l_tqd_rec.org_id,
923 decode(FND_GLOBAL.CONC_REQUEST_ID, -1, NULL, FND_GLOBAL.CONC_REQUEST_ID),
924 decode(FND_GLOBAL.PROG_APPL_ID, -1, NULL, FND_GLOBAL.PROG_APPL_ID),
925 decode(FND_GLOBAL.CONC_PROGRAM_ID, -1, NULL, FND_GLOBAL.CONC_PROGRAM_ID),
926 decode(FND_GLOBAL.CONC_REQUEST_ID, -1, NULL, SYSDATE),
927 l_tqd_rec.created_by,
928 l_tqd_rec.creation_date,
932 l_tqd_rec.attribute_category,
929 l_tqd_rec.last_updated_by,
930 l_tqd_rec.last_update_date,
931 l_tqd_rec.last_update_login,
933 l_tqd_rec.attribute1,
934 l_tqd_rec.attribute2,
935 l_tqd_rec.attribute3,
936 l_tqd_rec.attribute4,
937 l_tqd_rec.attribute5,
938 l_tqd_rec.attribute6,
939 l_tqd_rec.attribute7,
940 l_tqd_rec.attribute8,
941 l_tqd_rec.attribute9,
942 l_tqd_rec.attribute10,
943 l_tqd_rec.attribute11,
944 l_tqd_rec.attribute12,
945 l_tqd_rec.attribute13,
946 l_tqd_rec.attribute14,
947 l_tqd_rec.attribute15);
948 -- Set OUT values
949 x_tqd_rec := l_tqd_rec;
950 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
951 EXCEPTION
952 WHEN OKC_API.G_EXCEPTION_ERROR THEN
953 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
954 l_api_name,
955 G_PKG_NAME,
956 'OKC_API.G_RET_STS_ERROR',
957 x_msg_count,
958 x_msg_data,
959 '_PVT');
960 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
961 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
962 l_api_name,
963 G_PKG_NAME,
964 'OKC_API.G_RET_STS_UNEXP_ERROR',
965 x_msg_count,
966 x_msg_data,
967 '_PVT');
968 WHEN OTHERS THEN
969 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
970 l_api_name,
971 G_PKG_NAME,
972 'OTHERS',
973 x_msg_count,
974 x_msg_data,
975 '_PVT');
976 END insert_row;
977 -----------------------------------------------
978 -- insert_row for :OKL_TXD_QUOTE_LINE_DTLS_V --
979 -----------------------------------------------
980 PROCEDURE insert_row(
981 p_api_version IN NUMBER,
982 p_init_msg_list IN VARCHAR2,
983 x_return_status OUT NOCOPY VARCHAR2,
984 x_msg_count OUT NOCOPY NUMBER,
985 x_msg_data OUT NOCOPY VARCHAR2,
986 p_tqdv_rec IN tqdv_rec_type,
987 x_tqdv_rec OUT NOCOPY tqdv_rec_type) IS
988
989 l_api_version CONSTANT NUMBER := 1;
990 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
991 l_tqdv_rec tqdv_rec_type := p_tqdv_rec;
992 l_def_tqdv_rec tqdv_rec_type;
993 l_tqd_rec tqd_rec_type;
994 lx_tqd_rec tqd_rec_type;
995 -------------------------------
996 -- FUNCTION fill_who_columns --
997 -------------------------------
998 FUNCTION fill_who_columns (
999 p_tqdv_rec IN tqdv_rec_type
1000 ) RETURN tqdv_rec_type IS
1001 l_tqdv_rec tqdv_rec_type := p_tqdv_rec;
1002 BEGIN
1003 l_tqdv_rec.CREATION_DATE := SYSDATE;
1004 l_tqdv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
1005 l_tqdv_rec.LAST_UPDATE_DATE := l_tqdv_rec.CREATION_DATE;
1006 l_tqdv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1007 l_tqdv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1008 RETURN(l_tqdv_rec);
1009 END fill_who_columns;
1010 --------------------------------------------------
1011 -- Set_Attributes for:OKL_TXD_QUOTE_LINE_DTLS_V --
1012 --------------------------------------------------
1013 FUNCTION Set_Attributes (
1014 p_tqdv_rec IN tqdv_rec_type,
1015 x_tqdv_rec OUT NOCOPY tqdv_rec_type
1016 ) RETURN VARCHAR2 IS
1017 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1018 BEGIN
1019 x_tqdv_rec := p_tqdv_rec;
1020 x_tqdv_rec.OBJECT_VERSION_NUMBER := 1;
1021 RETURN(l_return_status);
1022 END Set_Attributes;
1023 BEGIN
1024 x_return_status := OKL_API.START_ACTIVITY(l_api_name,
1025 G_PKG_NAME,
1026 p_init_msg_list,
1027 l_api_version,
1028 p_api_version,
1029 '_PVT',
1030 x_return_status);
1031 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1032 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1033 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1034 RAISE OKC_API.G_EXCEPTION_ERROR;
1035 END IF;
1036 l_tqdv_rec := null_out_defaults(p_tqdv_rec);
1037 -- Set primary key value
1038 l_tqdv_rec.ID := get_seq_id;
1039 -- Setting item attributes
1040 x_return_Status := Set_Attributes(
1041 l_tqdv_rec, -- IN
1042 l_def_tqdv_rec); -- OUT
1043 --- If any errors happen abort API
1044 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1045 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1046 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1047 RAISE OKC_API.G_EXCEPTION_ERROR;
1051 x_return_status := Validate_Attributes(l_def_tqdv_rec);
1048 END IF;
1049 l_def_tqdv_rec := fill_who_columns(l_def_tqdv_rec);
1050 --- Validate all non-missing attributes (Item Level Validation)
1052 --- If any errors happen abort API
1053 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1054 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1055 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1056 RAISE OKC_API.G_EXCEPTION_ERROR;
1057 END IF;
1058 x_return_status := Validate_Record(l_def_tqdv_rec);
1059 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1060 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1061 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1062 RAISE OKC_API.G_EXCEPTION_ERROR;
1063 END IF;
1064 -----------------------------------------
1065 -- Move VIEW record to "Child" records --
1066 -----------------------------------------
1067 migrate(l_def_tqdv_rec, l_tqd_rec);
1068 -----------------------------------------------
1069 -- Call the INSERT_ROW for each child record --
1070 -----------------------------------------------
1071 insert_row(
1072 p_init_msg_list,
1073 x_return_status,
1074 x_msg_count,
1075 x_msg_data,
1076 l_tqd_rec,
1077 lx_tqd_rec
1078 );
1079 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1080 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1081 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1082 RAISE OKC_API.G_EXCEPTION_ERROR;
1083 END IF;
1084 migrate(lx_tqd_rec, l_def_tqdv_rec);
1085 -- Set OUT values
1086 x_tqdv_rec := l_def_tqdv_rec;
1087 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1088 EXCEPTION
1089 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1090 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1091 l_api_name,
1092 G_PKG_NAME,
1093 'OKC_API.G_RET_STS_ERROR',
1094 x_msg_count,
1095 x_msg_data,
1096 '_PVT');
1097 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1098 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1099 l_api_name,
1100 G_PKG_NAME,
1101 'OKC_API.G_RET_STS_UNEXP_ERROR',
1102 x_msg_count,
1103 x_msg_data,
1104 '_PVT');
1105 WHEN OTHERS THEN
1106 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1107 l_api_name,
1108 G_PKG_NAME,
1109 'OTHERS',
1110 x_msg_count,
1111 x_msg_data,
1112 '_PVT');
1113 END insert_row;
1114 ----------------------------------------
1115 -- PL/SQL TBL insert_row for:TQDV_TBL --
1116 ----------------------------------------
1117 PROCEDURE insert_row(
1118 p_api_version IN NUMBER,
1119 p_init_msg_list IN VARCHAR2,
1120 x_return_status OUT NOCOPY VARCHAR2,
1121 x_msg_count OUT NOCOPY NUMBER,
1122 x_msg_data OUT NOCOPY VARCHAR2,
1123 p_tqdv_tbl IN tqdv_tbl_type,
1124 x_tqdv_tbl OUT NOCOPY tqdv_tbl_type) IS
1125
1126 l_api_version CONSTANT NUMBER := 1;
1127 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
1128 i NUMBER := 0;
1129 BEGIN
1130 OKC_API.init_msg_list(p_init_msg_list);
1131 -- Make sure PL/SQL table has records in it before passing
1132 IF (p_tqdv_tbl.COUNT > 0) THEN
1133 i := p_tqdv_tbl.FIRST;
1134 LOOP
1135 insert_row (p_api_version => p_api_version,
1136 p_init_msg_list => OKC_API.G_FALSE,
1137 x_return_status => x_return_status,
1138 x_msg_count => x_msg_count,
1139 x_msg_data => x_msg_data,
1140 p_tqdv_rec => p_tqdv_tbl(i),
1141 x_tqdv_rec => x_tqdv_tbl(i));
1142 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1143 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
1144 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1145 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
1146 END IF;
1147 EXIT WHEN (i = p_tqdv_tbl.LAST);
1148 i := p_tqdv_tbl.NEXT(i);
1149 END LOOP;
1150 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1151 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1152 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1153 RAISE OKC_API.G_EXCEPTION_ERROR;
1154 END IF;
1155 END IF;
1156 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1157 EXCEPTION
1158 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1159 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1160 l_api_name,
1161 G_PKG_NAME,
1162 'OKC_API.G_RET_STS_ERROR',
1163 x_msg_count,
1164 x_msg_data,
1168 l_api_name,
1165 '_PVT');
1166 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1167 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1169 G_PKG_NAME,
1170 'OKC_API.G_RET_STS_UNEXP_ERROR',
1171 x_msg_count,
1172 x_msg_data,
1173 '_PVT');
1174 WHEN OTHERS THEN
1175 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1176 l_api_name,
1177 G_PKG_NAME,
1178 'OTHERS',
1179 x_msg_count,
1180 x_msg_data,
1181 '_PVT');
1182 END insert_row;
1183 ---------------------------------------------------------------------------
1184 -- PROCEDURE lock_row
1185 ---------------------------------------------------------------------------
1186 ------------------------------------------
1187 -- lock_row for:OKL_TXD_QUOTE_LINE_DTLS --
1188 ------------------------------------------
1189 PROCEDURE lock_row(
1190 p_init_msg_list IN VARCHAR2,
1191 x_return_status OUT NOCOPY VARCHAR2,
1192 x_msg_count OUT NOCOPY NUMBER,
1193 x_msg_data OUT NOCOPY VARCHAR2,
1194 p_tqd_rec IN tqd_rec_type) IS
1195
1196 E_Resource_Busy EXCEPTION;
1197 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1198 CURSOR lock_csr (p_tqd_rec IN tqd_rec_type) IS
1199 SELECT OBJECT_VERSION_NUMBER
1200 FROM OKL_TXD_QUOTE_LINE_DTLS
1201 WHERE ID = p_tqd_rec.id
1202 AND OBJECT_VERSION_NUMBER = p_tqd_rec.object_version_number
1203 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
1204
1205 CURSOR lchk_csr (p_tqd_rec IN tqd_rec_type) IS
1206 SELECT OBJECT_VERSION_NUMBER
1207 FROM OKL_TXD_QUOTE_LINE_DTLS
1208 WHERE ID = p_tqd_rec.id;
1209 l_api_version CONSTANT NUMBER := 1;
1210 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
1211 l_object_version_number OKL_TXD_QUOTE_LINE_DTLS.OBJECT_VERSION_NUMBER%TYPE;
1212 lc_object_version_number OKL_TXD_QUOTE_LINE_DTLS.OBJECT_VERSION_NUMBER%TYPE;
1213 l_row_notfound BOOLEAN := FALSE;
1214 lc_row_notfound BOOLEAN := FALSE;
1215 BEGIN
1216 x_return_status := OKC_API.START_ACTIVITY(l_api_name,
1217 p_init_msg_list,
1218 '_PVT',
1219 x_return_status);
1220 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1221 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1222 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1223 RAISE OKC_API.G_EXCEPTION_ERROR;
1224 END IF;
1225 BEGIN
1226 OPEN lock_csr(p_tqd_rec);
1227 FETCH lock_csr INTO l_object_version_number;
1228 l_row_notfound := lock_csr%NOTFOUND;
1229 CLOSE lock_csr;
1230 EXCEPTION
1231 WHEN E_Resource_Busy THEN
1232 IF (lock_csr%ISOPEN) THEN
1233 CLOSE lock_csr;
1234 END IF;
1235 OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1236 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
1237 END;
1238
1239 IF ( l_row_notfound ) THEN
1240 OPEN lchk_csr(p_tqd_rec);
1241 FETCH lchk_csr INTO lc_object_version_number;
1242 lc_row_notfound := lchk_csr%NOTFOUND;
1243 CLOSE lchk_csr;
1244 END IF;
1245 IF (lc_row_notfound) THEN
1246 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1247 RAISE OKC_API.G_EXCEPTION_ERROR;
1248 ELSIF lc_object_version_number > p_tqd_rec.object_version_number THEN
1249 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1250 RAISE OKC_API.G_EXCEPTION_ERROR;
1251 ELSIF lc_object_version_number <> p_tqd_rec.object_version_number THEN
1252 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1253 RAISE OKC_API.G_EXCEPTION_ERROR;
1254 ELSIF lc_object_version_number = -1 THEN
1255 OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
1256 RAISE OKC_API.G_EXCEPTION_ERROR;
1257 END IF;
1258 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1259 EXCEPTION
1260 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1261 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1262 l_api_name,
1263 G_PKG_NAME,
1264 'OKC_API.G_RET_STS_ERROR',
1265 x_msg_count,
1266 x_msg_data,
1267 '_PVT');
1268 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1269 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1270 l_api_name,
1271 G_PKG_NAME,
1272 'OKC_API.G_RET_STS_UNEXP_ERROR',
1273 x_msg_count,
1274 x_msg_data,
1275 '_PVT');
1276 WHEN OTHERS THEN
1277 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1278 l_api_name,
1279 G_PKG_NAME,
1280 'OTHERS',
1284 END lock_row;
1281 x_msg_count,
1282 x_msg_data,
1283 '_PVT');
1285 ---------------------------------------------
1286 -- lock_row for: OKL_TXD_QUOTE_LINE_DTLS_V --
1287 ---------------------------------------------
1288 PROCEDURE lock_row(
1289 p_api_version IN NUMBER,
1290 p_init_msg_list IN VARCHAR2,
1291 x_return_status OUT NOCOPY VARCHAR2,
1292 x_msg_count OUT NOCOPY NUMBER,
1293 x_msg_data OUT NOCOPY VARCHAR2,
1294 p_tqdv_rec IN tqdv_rec_type) IS
1295
1296 l_api_version CONSTANT NUMBER := 1;
1297 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
1298 l_tqd_rec tqd_rec_type;
1299 BEGIN
1300 x_return_status := OKC_API.START_ACTIVITY(l_api_name,
1301 G_PKG_NAME,
1302 p_init_msg_list,
1303 l_api_version,
1304 p_api_version,
1305 '_PVT',
1306 x_return_status);
1307 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1308 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1309 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1310 RAISE OKC_API.G_EXCEPTION_ERROR;
1311 END IF;
1312 -----------------------------------------
1313 -- Move VIEW record to "Child" records --
1314 -----------------------------------------
1315 migrate(p_tqdv_rec, l_tqd_rec);
1316 ---------------------------------------------
1317 -- Call the LOCK_ROW for each child record --
1318 ---------------------------------------------
1319 lock_row(
1320 p_init_msg_list,
1321 x_return_status,
1322 x_msg_count,
1323 x_msg_data,
1324 l_tqd_rec
1325 );
1326 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1327 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1328 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1329 RAISE OKC_API.G_EXCEPTION_ERROR;
1330 END IF;
1331 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1332 EXCEPTION
1333 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1334 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1335 l_api_name,
1336 G_PKG_NAME,
1337 'OKC_API.G_RET_STS_ERROR',
1338 x_msg_count,
1339 x_msg_data,
1340 '_PVT');
1341 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1342 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1343 l_api_name,
1344 G_PKG_NAME,
1345 'OKC_API.G_RET_STS_UNEXP_ERROR',
1346 x_msg_count,
1347 x_msg_data,
1348 '_PVT');
1349 WHEN OTHERS THEN
1350 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1351 l_api_name,
1352 G_PKG_NAME,
1353 'OTHERS',
1354 x_msg_count,
1355 x_msg_data,
1356 '_PVT');
1357 END lock_row;
1358 --------------------------------------
1359 -- PL/SQL TBL lock_row for:TQDV_TBL --
1360 --------------------------------------
1361 PROCEDURE lock_row(
1362 p_api_version IN NUMBER,
1363 p_init_msg_list IN VARCHAR2,
1364 x_return_status OUT NOCOPY VARCHAR2,
1365 x_msg_count OUT NOCOPY NUMBER,
1366 x_msg_data OUT NOCOPY VARCHAR2,
1367 p_tqdv_tbl IN tqdv_tbl_type) IS
1368
1369 l_api_version CONSTANT NUMBER := 1;
1370 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
1371 i NUMBER := 0;
1372 BEGIN
1373 OKC_API.init_msg_list(p_init_msg_list);
1374 -- Make sure PL/SQL table has recrods in it before passing
1375 IF (p_tqdv_tbl.COUNT > 0) THEN
1376 i := p_tqdv_tbl.FIRST;
1377 LOOP
1378 lock_row(p_api_version => p_api_version,
1379 p_init_msg_list => OKC_API.G_FALSE,
1380 x_return_status => x_return_status,
1381 x_msg_count => x_msg_count,
1382 x_msg_data => x_msg_data,
1383 p_tqdv_rec => p_tqdv_tbl(i));
1384 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1385 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
1386 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1387 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
1388 END IF;
1389 EXIT WHEN (i = p_tqdv_tbl.LAST);
1390 i := p_tqdv_tbl.NEXT(i);
1391 END LOOP;
1392 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1393 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1394 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1398 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1395 RAISE OKC_API.G_EXCEPTION_ERROR;
1396 END IF;
1397 END IF;
1399 EXCEPTION
1400 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1401 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1402 l_api_name,
1403 G_PKG_NAME,
1404 'OKC_API.G_RET_STS_ERROR',
1405 x_msg_count,
1406 x_msg_data,
1407 '_PVT');
1408 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1409 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1410 l_api_name,
1411 G_PKG_NAME,
1412 'OKC_API.G_RET_STS_UNEXP_ERROR',
1413 x_msg_count,
1414 x_msg_data,
1415 '_PVT');
1416 WHEN OTHERS THEN
1417 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1418 l_api_name,
1419 G_PKG_NAME,
1420 'OTHERS',
1421 x_msg_count,
1422 x_msg_data,
1423 '_PVT');
1424 END lock_row;
1425 ---------------------------------------------------------------------------
1426 -- PROCEDURE update_row
1427 ---------------------------------------------------------------------------
1428 --------------------------------------------
1429 -- update_row for:OKL_TXD_QUOTE_LINE_DTLS --
1430 --------------------------------------------
1431 PROCEDURE update_row(
1432 p_init_msg_list IN VARCHAR2,
1433 x_return_status OUT NOCOPY VARCHAR2,
1434 x_msg_count OUT NOCOPY NUMBER,
1435 x_msg_data OUT NOCOPY VARCHAR2,
1436 p_tqd_rec IN tqd_rec_type,
1437 x_tqd_rec OUT NOCOPY tqd_rec_type) IS
1438
1439 l_api_version CONSTANT NUMBER := 1;
1440 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
1441 l_tqd_rec tqd_rec_type := p_tqd_rec;
1442 l_def_tqd_rec tqd_rec_type;
1443 l_row_notfound BOOLEAN := TRUE;
1444 ----------------------------------
1445 -- FUNCTION populate_new_record --
1446 ----------------------------------
1447 FUNCTION populate_new_record (
1448 p_tqd_rec IN tqd_rec_type,
1449 x_tqd_rec OUT NOCOPY tqd_rec_type
1450 ) RETURN VARCHAR2 IS
1451 l_tqd_rec tqd_rec_type;
1452 l_row_notfound BOOLEAN := TRUE;
1453 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1454 BEGIN
1455 x_tqd_rec := p_tqd_rec;
1456 -- Get current database values
1457 l_tqd_rec := get_rec(p_tqd_rec, l_return_status);
1458 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
1459 IF (x_tqd_rec.id = OKC_API.G_MISS_NUM)
1460 THEN
1461 x_tqd_rec.id := l_tqd_rec.id;
1462 END IF;
1463 IF (x_tqd_rec.object_version_number = OKC_API.G_MISS_NUM)
1464 THEN
1465 x_tqd_rec.object_version_number := l_tqd_rec.object_version_number;
1466 END IF;
1467 IF (x_tqd_rec.number_of_units = OKC_API.G_MISS_NUM)
1468 THEN
1469 x_tqd_rec.number_of_units := l_tqd_rec.number_of_units;
1470 END IF;
1471 IF (x_tqd_rec.kle_id = OKC_API.G_MISS_NUM)
1472 THEN
1473 x_tqd_rec.kle_id := l_tqd_rec.kle_id;
1474 END IF;
1475 IF (x_tqd_rec.tql_id = OKC_API.G_MISS_NUM)
1476 THEN
1477 x_tqd_rec.tql_id := l_tqd_rec.tql_id;
1478 END IF;
1479 IF (x_tqd_rec.org_id = OKC_API.G_MISS_NUM)
1480 THEN
1481 x_tqd_rec.org_id := l_tqd_rec.org_id;
1482 END IF;
1483 IF (x_tqd_rec.request_id = OKC_API.G_MISS_NUM)
1484 THEN
1485 x_tqd_rec.request_id := l_tqd_rec.request_id;
1486 END IF;
1487 IF (x_tqd_rec.program_application_id = OKC_API.G_MISS_NUM)
1488 THEN
1489 x_tqd_rec.program_application_id := l_tqd_rec.program_application_id;
1490 END IF;
1491 IF (x_tqd_rec.program_id = OKC_API.G_MISS_NUM)
1492 THEN
1493 x_tqd_rec.program_id := l_tqd_rec.program_id;
1494 END IF;
1495 IF (x_tqd_rec.program_update_date = OKC_API.G_MISS_DATE)
1496 THEN
1497 x_tqd_rec.program_update_date := l_tqd_rec.program_update_date;
1498 END IF;
1499 IF (x_tqd_rec.created_by = OKC_API.G_MISS_NUM)
1500 THEN
1501 x_tqd_rec.created_by := l_tqd_rec.created_by;
1502 END IF;
1503 IF (x_tqd_rec.creation_date = OKC_API.G_MISS_DATE)
1504 THEN
1505 x_tqd_rec.creation_date := l_tqd_rec.creation_date;
1506 END IF;
1507 IF (x_tqd_rec.last_updated_by = OKC_API.G_MISS_NUM)
1508 THEN
1509 x_tqd_rec.last_updated_by := l_tqd_rec.last_updated_by;
1510 END IF;
1511 IF (x_tqd_rec.last_update_date = OKC_API.G_MISS_DATE)
1512 THEN
1513 x_tqd_rec.last_update_date := l_tqd_rec.last_update_date;
1514 END IF;
1515 IF (x_tqd_rec.last_update_login = OKC_API.G_MISS_NUM)
1516 THEN
1520 THEN
1517 x_tqd_rec.last_update_login := l_tqd_rec.last_update_login;
1518 END IF;
1519 IF (x_tqd_rec.attribute_category = OKC_API.G_MISS_CHAR)
1521 x_tqd_rec.attribute_category := l_tqd_rec.attribute_category;
1522 END IF;
1523 IF (x_tqd_rec.attribute1 = OKC_API.G_MISS_CHAR)
1524 THEN
1525 x_tqd_rec.attribute1 := l_tqd_rec.attribute1;
1526 END IF;
1527 IF (x_tqd_rec.attribute2 = OKC_API.G_MISS_CHAR)
1528 THEN
1529 x_tqd_rec.attribute2 := l_tqd_rec.attribute2;
1530 END IF;
1531 IF (x_tqd_rec.attribute3 = OKC_API.G_MISS_CHAR)
1532 THEN
1533 x_tqd_rec.attribute3 := l_tqd_rec.attribute3;
1534 END IF;
1535 IF (x_tqd_rec.attribute4 = OKC_API.G_MISS_CHAR)
1536 THEN
1537 x_tqd_rec.attribute4 := l_tqd_rec.attribute4;
1538 END IF;
1539 IF (x_tqd_rec.attribute5 = OKC_API.G_MISS_CHAR)
1540 THEN
1541 x_tqd_rec.attribute5 := l_tqd_rec.attribute5;
1542 END IF;
1543 IF (x_tqd_rec.attribute6 = OKC_API.G_MISS_CHAR)
1544 THEN
1545 x_tqd_rec.attribute6 := l_tqd_rec.attribute6;
1546 END IF;
1547 IF (x_tqd_rec.attribute7 = OKC_API.G_MISS_CHAR)
1548 THEN
1549 x_tqd_rec.attribute7 := l_tqd_rec.attribute7;
1550 END IF;
1551 IF (x_tqd_rec.attribute8 = OKC_API.G_MISS_CHAR)
1552 THEN
1553 x_tqd_rec.attribute8 := l_tqd_rec.attribute8;
1554 END IF;
1555 IF (x_tqd_rec.attribute9 = OKC_API.G_MISS_CHAR)
1556 THEN
1557 x_tqd_rec.attribute9 := l_tqd_rec.attribute9;
1558 END IF;
1559 IF (x_tqd_rec.attribute10 = OKC_API.G_MISS_CHAR)
1560 THEN
1561 x_tqd_rec.attribute10 := l_tqd_rec.attribute10;
1562 END IF;
1563 IF (x_tqd_rec.attribute11 = OKC_API.G_MISS_CHAR)
1564 THEN
1565 x_tqd_rec.attribute11 := l_tqd_rec.attribute11;
1566 END IF;
1567 IF (x_tqd_rec.attribute12 = OKC_API.G_MISS_CHAR)
1568 THEN
1569 x_tqd_rec.attribute12 := l_tqd_rec.attribute12;
1570 END IF;
1571 IF (x_tqd_rec.attribute13 = OKC_API.G_MISS_CHAR)
1572 THEN
1573 x_tqd_rec.attribute13 := l_tqd_rec.attribute13;
1574 END IF;
1575 IF (x_tqd_rec.attribute14 = OKC_API.G_MISS_CHAR)
1576 THEN
1577 x_tqd_rec.attribute14 := l_tqd_rec.attribute14;
1578 END IF;
1579 IF (x_tqd_rec.attribute15 = OKC_API.G_MISS_CHAR)
1580 THEN
1581 x_tqd_rec.attribute15 := l_tqd_rec.attribute15;
1582 END IF;
1583 END IF;
1584 RETURN(l_return_status);
1585 END populate_new_record;
1586 ------------------------------------------------
1587 -- Set_Attributes for:OKL_TXD_QUOTE_LINE_DTLS --
1588 ------------------------------------------------
1589 FUNCTION Set_Attributes (
1590 p_tqd_rec IN tqd_rec_type,
1591 x_tqd_rec OUT NOCOPY tqd_rec_type
1592 ) RETURN VARCHAR2 IS
1593 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1594 BEGIN
1595 x_tqd_rec := p_tqd_rec;
1596 x_tqd_rec.OBJECT_VERSION_NUMBER := p_tqd_rec.OBJECT_VERSION_NUMBER + 1;
1597 RETURN(l_return_status);
1598 END Set_Attributes;
1599 BEGIN
1600 x_return_status := OKC_API.START_ACTIVITY(l_api_name,
1601 p_init_msg_list,
1602 '_PVT',
1603 x_return_status);
1604 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1605 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1606 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1607 RAISE OKC_API.G_EXCEPTION_ERROR;
1608 END IF;
1609 --- Setting item attributes
1610 x_return_status := Set_Attributes(
1611 p_tqd_rec, -- IN
1612 l_tqd_rec); -- OUT
1613 --- If any errors happen abort API
1614 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1615 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1616 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1617 RAISE OKC_API.G_EXCEPTION_ERROR;
1618 END IF;
1619 x_return_status := populate_new_record(l_tqd_rec, l_def_tqd_rec);
1620 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1621 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1622 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1623 RAISE OKC_API.G_EXCEPTION_ERROR;
1624 END IF;
1625 UPDATE OKL_TXD_QUOTE_LINE_DTLS
1626 SET OBJECT_VERSION_NUMBER = l_def_tqd_rec.object_version_number,
1627 NUMBER_OF_UNITS = l_def_tqd_rec.number_of_units,
1628 KLE_ID = l_def_tqd_rec.kle_id,
1629 TQL_ID = l_def_tqd_rec.tql_id,
1630 ORG_ID = l_def_tqd_rec.org_id,
1631 REQUEST_ID = NVL(decode(FND_GLOBAL.CONC_REQUEST_ID,-1, NULL,
1632 FND_GLOBAL.CONC_REQUEST_ID),l_def_tqd_rec.request_id),
1633 PROGRAM_APPLICATION_ID = NVL(decode(FND_GLOBAL.PROG_APPL_ID,-1,NULL,
1634 FND_GLOBAL.PROG_APPL_ID),l_def_tqd_rec.program_application_id),
1635 PROGRAM_ID = NVL(decode(FND_GLOBAL.CONC_PROGRAM_ID,-1,NULL,
1636 FND_GLOBAL.CONC_PROGRAM_ID),l_def_tqd_rec.program_id),
1637 PROGRAM_UPDATE_DATE = decode(decode(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,
1641 LAST_UPDATED_BY = l_def_tqd_rec.last_updated_by,
1638 SYSDATE),NULL,l_def_tqd_rec.program_update_date,SYSDATE),
1639 CREATED_BY = l_def_tqd_rec.created_by,
1640 CREATION_DATE = l_def_tqd_rec.creation_date,
1642 LAST_UPDATE_DATE = l_def_tqd_rec.last_update_date,
1643 LAST_UPDATE_LOGIN = l_def_tqd_rec.last_update_login,
1644 ATTRIBUTE_CATEGORY = l_def_tqd_rec.attribute_category,
1645 ATTRIBUTE1 = l_def_tqd_rec.attribute1,
1646 ATTRIBUTE2 = l_def_tqd_rec.attribute2,
1647 ATTRIBUTE3 = l_def_tqd_rec.attribute3,
1648 ATTRIBUTE4 = l_def_tqd_rec.attribute4,
1649 ATTRIBUTE5 = l_def_tqd_rec.attribute5,
1650 ATTRIBUTE6 = l_def_tqd_rec.attribute6,
1651 ATTRIBUTE7 = l_def_tqd_rec.attribute7,
1652 ATTRIBUTE8 = l_def_tqd_rec.attribute8,
1653 ATTRIBUTE9 = l_def_tqd_rec.attribute9,
1654 ATTRIBUTE10 = l_def_tqd_rec.attribute10,
1655 ATTRIBUTE11 = l_def_tqd_rec.attribute11,
1656 ATTRIBUTE12 = l_def_tqd_rec.attribute12,
1657 ATTRIBUTE13 = l_def_tqd_rec.attribute13,
1658 ATTRIBUTE14 = l_def_tqd_rec.attribute14,
1659 ATTRIBUTE15 = l_def_tqd_rec.attribute15
1660 WHERE ID = l_def_tqd_rec.id;
1661 x_tqd_rec := l_tqd_rec;
1662 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1663 EXCEPTION
1664 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1665 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1666 l_api_name,
1667 G_PKG_NAME,
1668 'OKC_API.G_RET_STS_ERROR',
1669 x_msg_count,
1670 x_msg_data,
1671 '_PVT');
1672 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1673 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1674 l_api_name,
1675 G_PKG_NAME,
1676 'OKC_API.G_RET_STS_UNEXP_ERROR',
1677 x_msg_count,
1678 x_msg_data,
1679 '_PVT');
1680 WHEN OTHERS THEN
1681 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1682 l_api_name,
1683 G_PKG_NAME,
1684 'OTHERS',
1685 x_msg_count,
1686 x_msg_data,
1687 '_PVT');
1688 END update_row;
1689 ----------------------------------------------
1690 -- update_row for:OKL_TXD_QUOTE_LINE_DTLS_V --
1691 ----------------------------------------------
1692 PROCEDURE update_row(
1693 p_api_version IN NUMBER,
1694 p_init_msg_list IN VARCHAR2,
1695 x_return_status OUT NOCOPY VARCHAR2,
1696 x_msg_count OUT NOCOPY NUMBER,
1697 x_msg_data OUT NOCOPY VARCHAR2,
1698 p_tqdv_rec IN tqdv_rec_type,
1699 x_tqdv_rec OUT NOCOPY tqdv_rec_type) IS
1700
1701 l_api_version CONSTANT NUMBER := 1;
1702 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
1703 l_tqdv_rec tqdv_rec_type := p_tqdv_rec;
1704 l_def_tqdv_rec tqdv_rec_type;
1705 l_db_tqdv_rec tqdv_rec_type;
1706 l_tqd_rec tqd_rec_type;
1707 lx_tqd_rec tqd_rec_type;
1708 -------------------------------
1709 -- FUNCTION fill_who_columns --
1710 -------------------------------
1711 FUNCTION fill_who_columns (
1712 p_tqdv_rec IN tqdv_rec_type
1713 ) RETURN tqdv_rec_type IS
1714 l_tqdv_rec tqdv_rec_type := p_tqdv_rec;
1715 BEGIN
1716 l_tqdv_rec.LAST_UPDATE_DATE := SYSDATE;
1717 l_tqdv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1718 l_tqdv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1719 RETURN(l_tqdv_rec);
1720 END fill_who_columns;
1721 ----------------------------------
1722 -- FUNCTION populate_new_record --
1723 ----------------------------------
1724 FUNCTION populate_new_record (
1725 p_tqdv_rec IN tqdv_rec_type,
1726 x_tqdv_rec OUT NOCOPY tqdv_rec_type
1727 ) RETURN VARCHAR2 IS
1728 l_row_notfound BOOLEAN := TRUE;
1729 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1730 BEGIN
1731 x_tqdv_rec := p_tqdv_rec;
1732 -- Get current database values
1733 -- NOTE: Never assign the OBJECT_VERSION_NUMBER. Force the user to pass it
1734 -- so it may be verified through LOCK_ROW.
1735 l_db_tqdv_rec := get_rec(p_tqdv_rec, l_return_status);
1736 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
1737 IF (x_tqdv_rec.id = OKC_API.G_MISS_NUM)
1738 THEN
1739 x_tqdv_rec.id := l_db_tqdv_rec.id;
1740 END IF;
1741 IF (x_tqdv_rec.object_version_number = OKL_API.G_MISS_NUM)
1742 THEN
1743 x_tqdv_rec.object_version_number := l_db_tqdv_rec.object_version_number;
1744 END IF;
1745 IF (x_tqdv_rec.number_of_units = OKC_API.G_MISS_NUM)
1746 THEN
1747 x_tqdv_rec.number_of_units := l_db_tqdv_rec.number_of_units;
1748 END IF;
1749 IF (x_tqdv_rec.tql_id = OKC_API.G_MISS_NUM)
1750 THEN
1751 x_tqdv_rec.tql_id := l_db_tqdv_rec.tql_id;
1755 x_tqdv_rec.kle_id := l_db_tqdv_rec.kle_id;
1752 END IF;
1753 IF (x_tqdv_rec.kle_id = OKC_API.G_MISS_NUM)
1754 THEN
1756 END IF;
1757 IF (x_tqdv_rec.org_id = OKC_API.G_MISS_NUM)
1758 THEN
1759 x_tqdv_rec.org_id := l_db_tqdv_rec.org_id;
1760 END IF;
1761 IF (x_tqdv_rec.request_id = OKC_API.G_MISS_NUM)
1762 THEN
1763 x_tqdv_rec.request_id := l_db_tqdv_rec.request_id;
1764 END IF;
1765 IF (x_tqdv_rec.program_application_id = OKC_API.G_MISS_NUM)
1766 THEN
1767 x_tqdv_rec.program_application_id := l_db_tqdv_rec.program_application_id;
1768 END IF;
1769 IF (x_tqdv_rec.program_id = OKC_API.G_MISS_NUM)
1770 THEN
1771 x_tqdv_rec.program_id := l_db_tqdv_rec.program_id;
1772 END IF;
1773 IF (x_tqdv_rec.program_update_date = OKC_API.G_MISS_DATE)
1774 THEN
1775 x_tqdv_rec.program_update_date := l_db_tqdv_rec.program_update_date;
1776 END IF;
1777 IF (x_tqdv_rec.created_by = OKC_API.G_MISS_NUM)
1778 THEN
1779 x_tqdv_rec.created_by := l_db_tqdv_rec.created_by;
1780 END IF;
1781 IF (x_tqdv_rec.creation_date = OKC_API.G_MISS_DATE)
1782 THEN
1783 x_tqdv_rec.creation_date := l_db_tqdv_rec.creation_date;
1784 END IF;
1785 IF (x_tqdv_rec.last_updated_by = OKC_API.G_MISS_NUM)
1786 THEN
1787 x_tqdv_rec.last_updated_by := l_db_tqdv_rec.last_updated_by;
1788 END IF;
1789 IF (x_tqdv_rec.last_update_date = OKC_API.G_MISS_DATE)
1790 THEN
1791 x_tqdv_rec.last_update_date := l_db_tqdv_rec.last_update_date;
1792 END IF;
1793 IF (x_tqdv_rec.last_update_login = OKC_API.G_MISS_NUM)
1794 THEN
1795 x_tqdv_rec.last_update_login := l_db_tqdv_rec.last_update_login;
1796 END IF;
1797 IF (x_tqdv_rec.attribute_category = OKC_API.G_MISS_CHAR)
1798 THEN
1799 x_tqdv_rec.attribute_category := l_db_tqdv_rec.attribute_category;
1800 END IF;
1801 IF (x_tqdv_rec.attribute1 = OKC_API.G_MISS_CHAR)
1802 THEN
1803 x_tqdv_rec.attribute1 := l_db_tqdv_rec.attribute1;
1804 END IF;
1805 IF (x_tqdv_rec.attribute2 = OKC_API.G_MISS_CHAR)
1806 THEN
1807 x_tqdv_rec.attribute2 := l_db_tqdv_rec.attribute2;
1808 END IF;
1809 IF (x_tqdv_rec.attribute3 = OKC_API.G_MISS_CHAR)
1810 THEN
1811 x_tqdv_rec.attribute3 := l_db_tqdv_rec.attribute3;
1812 END IF;
1813 IF (x_tqdv_rec.attribute4 = OKC_API.G_MISS_CHAR)
1814 THEN
1815 x_tqdv_rec.attribute4 := l_db_tqdv_rec.attribute4;
1816 END IF;
1817 IF (x_tqdv_rec.attribute5 = OKC_API.G_MISS_CHAR)
1818 THEN
1819 x_tqdv_rec.attribute5 := l_db_tqdv_rec.attribute5;
1820 END IF;
1821 IF (x_tqdv_rec.attribute6 = OKC_API.G_MISS_CHAR)
1822 THEN
1823 x_tqdv_rec.attribute6 := l_db_tqdv_rec.attribute6;
1824 END IF;
1825 IF (x_tqdv_rec.attribute7 = OKC_API.G_MISS_CHAR)
1826 THEN
1827 x_tqdv_rec.attribute7 := l_db_tqdv_rec.attribute7;
1828 END IF;
1829 IF (x_tqdv_rec.attribute8 = OKC_API.G_MISS_CHAR)
1830 THEN
1831 x_tqdv_rec.attribute8 := l_db_tqdv_rec.attribute8;
1832 END IF;
1833 IF (x_tqdv_rec.attribute9 = OKC_API.G_MISS_CHAR)
1834 THEN
1835 x_tqdv_rec.attribute9 := l_db_tqdv_rec.attribute9;
1836 END IF;
1837 IF (x_tqdv_rec.attribute10 = OKC_API.G_MISS_CHAR)
1838 THEN
1839 x_tqdv_rec.attribute10 := l_db_tqdv_rec.attribute10;
1840 END IF;
1841 IF (x_tqdv_rec.attribute11 = OKC_API.G_MISS_CHAR)
1842 THEN
1843 x_tqdv_rec.attribute11 := l_db_tqdv_rec.attribute11;
1844 END IF;
1845 IF (x_tqdv_rec.attribute12 = OKC_API.G_MISS_CHAR)
1846 THEN
1847 x_tqdv_rec.attribute12 := l_db_tqdv_rec.attribute12;
1848 END IF;
1849 IF (x_tqdv_rec.attribute13 = OKC_API.G_MISS_CHAR)
1850 THEN
1851 x_tqdv_rec.attribute13 := l_db_tqdv_rec.attribute13;
1852 END IF;
1853 IF (x_tqdv_rec.attribute14 = OKC_API.G_MISS_CHAR)
1854 THEN
1855 x_tqdv_rec.attribute14 := l_db_tqdv_rec.attribute14;
1856 END IF;
1857 IF (x_tqdv_rec.attribute15 = OKC_API.G_MISS_CHAR)
1858 THEN
1859 x_tqdv_rec.attribute15 := l_db_tqdv_rec.attribute15;
1860 END IF;
1861 END IF;
1862 RETURN(l_return_status);
1863 END populate_new_record;
1864 --------------------------------------------------
1865 -- Set_Attributes for:OKL_TXD_QUOTE_LINE_DTLS_V --
1866 --------------------------------------------------
1867 FUNCTION Set_Attributes (
1868 p_tqdv_rec IN tqdv_rec_type,
1869 x_tqdv_rec OUT NOCOPY tqdv_rec_type
1870 ) RETURN VARCHAR2 IS
1871 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1872 BEGIN
1873 x_tqdv_rec := p_tqdv_rec;
1874 RETURN(l_return_status);
1875 END Set_Attributes;
1876 BEGIN
1877 x_return_status := OKC_API.START_ACTIVITY(l_api_name,
1878 G_PKG_NAME,
1882 '_PVT',
1879 p_init_msg_list,
1880 l_api_version,
1881 p_api_version,
1883 x_return_status);
1884 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1885 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1886 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1887 RAISE OKC_API.G_EXCEPTION_ERROR;
1888 END IF;
1889 --- Setting item attributes
1890 x_return_status := Set_Attributes(
1891 p_tqdv_rec, -- IN
1892 x_tqdv_rec); -- OUT
1893 --- If any errors happen abort API
1894 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1895 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1896 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1897 RAISE OKC_API.G_EXCEPTION_ERROR;
1898 END IF;
1899 x_return_status := populate_new_record(l_tqdv_rec, l_def_tqdv_rec);
1900 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1901 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1902 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1903 RAISE OKC_API.G_EXCEPTION_ERROR;
1904 END IF;
1905 l_def_tqdv_rec := fill_who_columns(l_def_tqdv_rec);
1906 --- Validate all non-missing attributes (Item Level Validation)
1907 x_return_status := Validate_Attributes(l_def_tqdv_rec);
1908 --- If any errors happen abort API
1909 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1910 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1911 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1912 RAISE OKC_API.G_EXCEPTION_ERROR;
1913 END IF;
1914 x_return_status := Validate_Record(l_def_tqdv_rec, l_db_tqdv_rec);
1915 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1916 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1917 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1918 RAISE OKC_API.G_EXCEPTION_ERROR;
1919 END IF;
1920
1921 -- Lock the Record
1922 lock_row(
1923 p_api_version => p_api_version,
1924 p_init_msg_list => p_init_msg_list,
1925 x_return_status => x_return_status,
1926 x_msg_count => x_msg_count,
1927 x_msg_data => x_msg_data,
1928 p_tqdv_rec => l_def_tqdv_rec);
1929 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1930 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1931 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1932 RAISE OKC_API.G_EXCEPTION_ERROR;
1933 END IF;
1934
1935 -----------------------------------------
1936 -- Move VIEW record to "Child" records --
1937 -----------------------------------------
1938 migrate(l_def_tqdv_rec, l_tqd_rec);
1939 -----------------------------------------------
1940 -- Call the UPDATE_ROW for each child record --
1941 -----------------------------------------------
1942 update_row(
1943 p_init_msg_list,
1944 x_return_status,
1945 x_msg_count,
1946 x_msg_data,
1947 l_tqd_rec,
1948 lx_tqd_rec
1949 );
1950 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1951 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1952 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1953 RAISE OKC_API.G_EXCEPTION_ERROR;
1954 END IF;
1955 migrate(lx_tqd_rec, l_def_tqdv_rec);
1956 x_tqdv_rec := l_def_tqdv_rec;
1957 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1958 EXCEPTION
1959 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1960 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1961 l_api_name,
1962 G_PKG_NAME,
1963 'OKC_API.G_RET_STS_ERROR',
1964 x_msg_count,
1965 x_msg_data,
1966 '_PVT');
1967 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1968 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1969 l_api_name,
1970 G_PKG_NAME,
1971 'OKC_API.G_RET_STS_UNEXP_ERROR',
1972 x_msg_count,
1973 x_msg_data,
1974 '_PVT');
1975 WHEN OTHERS THEN
1976 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1977 l_api_name,
1978 G_PKG_NAME,
1979 'OTHERS',
1980 x_msg_count,
1981 x_msg_data,
1982 '_PVT');
1983 END update_row;
1984 ----------------------------------------
1985 -- PL/SQL TBL update_row for:tqdv_tbl --
1986 ----------------------------------------
1987 PROCEDURE update_row(
1988 p_api_version IN NUMBER,
1989 p_init_msg_list IN VARCHAR2,
1990 x_return_status OUT NOCOPY VARCHAR2,
1991 x_msg_count OUT NOCOPY NUMBER,
1992 x_msg_data OUT NOCOPY VARCHAR2,
1993 p_tqdv_tbl IN tqdv_tbl_type,
1997 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
1994 x_tqdv_tbl OUT NOCOPY tqdv_tbl_type) IS
1995
1996 l_api_version CONSTANT NUMBER := 1;
1998 i NUMBER := 0;
1999 BEGIN
2000 OKC_API.init_msg_list(p_init_msg_list);
2001 -- Make sure PL/SQL table has records in it before passing
2002 IF (p_tqdv_tbl.COUNT > 0) THEN
2003 i := p_tqdv_tbl.FIRST;
2004 LOOP
2005 update_row (p_api_version => p_api_version,
2006 p_init_msg_list => OKC_API.G_FALSE,
2007 x_return_status => x_return_status,
2008 x_msg_count => x_msg_count,
2009 x_msg_data => x_msg_data,
2010 p_tqdv_rec => p_tqdv_tbl(i),
2011 x_tqdv_rec => x_tqdv_tbl(i));
2012 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2013 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2014 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2015 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
2016 END IF;
2017 EXIT WHEN (i = p_tqdv_tbl.LAST);
2018 i := p_tqdv_tbl.NEXT(i);
2019 END LOOP;
2020 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2021 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2022 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2023 RAISE OKC_API.G_EXCEPTION_ERROR;
2024 END IF;
2025 END IF;
2026 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2027 EXCEPTION
2028 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2029 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2030 l_api_name,
2031 G_PKG_NAME,
2032 'OKC_API.G_RET_STS_ERROR',
2033 x_msg_count,
2034 x_msg_data,
2035 '_PVT');
2036 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2037 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2038 l_api_name,
2039 G_PKG_NAME,
2040 'OKC_API.G_RET_STS_UNEXP_ERROR',
2041 x_msg_count,
2042 x_msg_data,
2043 '_PVT');
2044 WHEN OTHERS THEN
2045 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2046 l_api_name,
2047 G_PKG_NAME,
2048 'OTHERS',
2049 x_msg_count,
2050 x_msg_data,
2051 '_PVT');
2052 END update_row;
2053 ---------------------------------------------------------------------------
2054 -- PROCEDURE delete_row
2055 ---------------------------------------------------------------------------
2056 --------------------------------------------
2057 -- delete_row for:OKL_TXD_QUOTE_LINE_DTLS --
2058 --------------------------------------------
2059 PROCEDURE delete_row(
2060 p_init_msg_list IN VARCHAR2,
2061 x_return_status OUT NOCOPY VARCHAR2,
2062 x_msg_count OUT NOCOPY NUMBER,
2063 x_msg_data OUT NOCOPY VARCHAR2,
2064 p_tqd_rec IN tqd_rec_type) IS
2065
2066 l_api_version CONSTANT NUMBER := 1;
2067 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
2068 l_tqd_rec tqd_rec_type := p_tqd_rec;
2069 l_row_notfound BOOLEAN := TRUE;
2070 BEGIN
2071 x_return_status := OKC_API.START_ACTIVITY(l_api_name,
2072 p_init_msg_list,
2073 '_PVT',
2074 x_return_status);
2075 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2076 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2077 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2078 RAISE OKC_API.G_EXCEPTION_ERROR;
2079 END IF;
2080
2081 DELETE FROM OKL_TXD_QUOTE_LINE_DTLS
2082 WHERE ID = p_tqd_rec.id;
2083 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2084 EXCEPTION
2085 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2086 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2087 l_api_name,
2088 G_PKG_NAME,
2089 'OKC_API.G_RET_STS_ERROR',
2090 x_msg_count,
2091 x_msg_data,
2092 '_PVT');
2093 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2094 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2095 l_api_name,
2096 G_PKG_NAME,
2097 'OKC_API.G_RET_STS_UNEXP_ERROR',
2098 x_msg_count,
2099 x_msg_data,
2100 '_PVT');
2101 WHEN OTHERS THEN
2102 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2103 l_api_name,
2104 G_PKG_NAME,
2105 'OTHERS',
2109 END delete_row;
2106 x_msg_count,
2107 x_msg_data,
2108 '_PVT');
2110 ----------------------------------------------
2111 -- delete_row for:OKL_TXD_QUOTE_LINE_DTLS_V --
2112 ----------------------------------------------
2113 PROCEDURE delete_row(
2114 p_api_version IN NUMBER,
2115 p_init_msg_list IN VARCHAR2,
2116 x_return_status OUT NOCOPY VARCHAR2,
2117 x_msg_count OUT NOCOPY NUMBER,
2118 x_msg_data OUT NOCOPY VARCHAR2,
2119 p_tqdv_rec IN tqdv_rec_type) IS
2120
2121 l_api_version CONSTANT NUMBER := 1;
2122 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
2123 l_tqdv_rec tqdv_rec_type := p_tqdv_rec;
2124 l_tqd_rec tqd_rec_type;
2125 BEGIN
2126 x_return_status := OKC_API.START_ACTIVITY(l_api_name,
2127 G_PKG_NAME,
2128 p_init_msg_list,
2129 l_api_version,
2130 p_api_version,
2131 '_PVT',
2132 x_return_status);
2133 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2134 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2135 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2136 RAISE OKC_API.G_EXCEPTION_ERROR;
2137 END IF;
2138 -----------------------------------------
2139 -- Move VIEW record to "Child" records --
2140 -----------------------------------------
2141 migrate(l_tqdv_rec, l_tqd_rec);
2142 -----------------------------------------------
2143 -- Call the DELETE_ROW for each child record --
2144 -----------------------------------------------
2145 delete_row(
2146 p_init_msg_list,
2147 x_return_status,
2148 x_msg_count,
2149 x_msg_data,
2150 l_tqd_rec
2151 );
2152 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2153 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2154 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2155 RAISE OKC_API.G_EXCEPTION_ERROR;
2156 END IF;
2157 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2158 EXCEPTION
2159 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2160 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2161 l_api_name,
2162 G_PKG_NAME,
2163 'OKC_API.G_RET_STS_ERROR',
2164 x_msg_count,
2165 x_msg_data,
2166 '_PVT');
2167 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2168 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2169 l_api_name,
2170 G_PKG_NAME,
2171 'OKC_API.G_RET_STS_UNEXP_ERROR',
2172 x_msg_count,
2173 x_msg_data,
2174 '_PVT');
2175 WHEN OTHERS THEN
2176 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2177 l_api_name,
2178 G_PKG_NAME,
2179 'OTHERS',
2180 x_msg_count,
2181 x_msg_data,
2182 '_PVT');
2183 END delete_row;
2184 ---------------------------------------------------------
2185 -- PL/SQL TBL delete_row for:OKL_TXD_QUOTE_LINE_DTLS_V --
2186 ---------------------------------------------------------
2187 PROCEDURE delete_row(
2188 p_api_version IN NUMBER,
2189 p_init_msg_list IN VARCHAR2,
2190 x_return_status OUT NOCOPY VARCHAR2,
2191 x_msg_count OUT NOCOPY NUMBER,
2192 x_msg_data OUT NOCOPY VARCHAR2,
2193 p_tqdv_tbl IN tqdv_tbl_type) IS
2194
2195 l_api_version CONSTANT NUMBER := 1;
2196 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
2197 i NUMBER := 0;
2198 BEGIN
2199 OKC_API.init_msg_list(p_init_msg_list);
2200 -- Make sure PL/SQL table has records in it before passing
2201 IF (p_tqdv_tbl.COUNT > 0) THEN
2202 i := p_tqdv_tbl.FIRST;
2203 LOOP
2204 delete_row (
2205 p_api_version => p_api_version,
2206 p_init_msg_list => OKC_API.G_FALSE,
2207 x_return_status => x_return_status,
2208 x_msg_count => x_msg_count,
2209 x_msg_data => x_msg_data,
2210 p_tqdv_rec => p_tqdv_tbl(i));
2211 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2212 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2213 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2214 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
2215 END IF;
2216 EXIT WHEN (i = p_tqdv_tbl.LAST);
2217 i := p_tqdv_tbl.NEXT(i);
2218 END LOOP;
2219 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2220 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2221 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2222 RAISE OKC_API.G_EXCEPTION_ERROR;
2223 END IF;
2224 END IF;
2225 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2226 EXCEPTION
2227 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2228 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2229 l_api_name,
2230 G_PKG_NAME,
2231 'OKC_API.G_RET_STS_ERROR',
2232 x_msg_count,
2233 x_msg_data,
2234 '_PVT');
2235 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2236 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2237 l_api_name,
2238 G_PKG_NAME,
2239 'OKC_API.G_RET_STS_UNEXP_ERROR',
2240 x_msg_count,
2241 x_msg_data,
2242 '_PVT');
2243 WHEN OTHERS THEN
2244 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2245 l_api_name,
2246 G_PKG_NAME,
2247 'OTHERS',
2248 x_msg_count,
2249 x_msg_data,
2250 '_PVT');
2251 END delete_row;
2252 END OKL_TQD_PVT;