[Home] [Help]
PACKAGE BODY: APPS.OKL_COPY_ASSET_PVT
Source
1 Package body okl_copy_asset_pvt as
2 /* $Header: OKLRCALB.pls 120.16 2006/11/13 06:30:14 dpsingh noship $ */
3 -------------------------------------------------------------------------------------------------
4 -- GLOBAL MESSAGE CONSTANTS
5 -------------------------------------------------------------------------------------------------
6 G_COL_NAME_TOKEN CONSTANT VARCHAR2(200) := OKL_API.G_COL_NAME_TOKEN;
7 G_REQUIRED_VALUE CONSTANT VARCHAR2(200) := 'OKL_REQUIRED_VALUE';
8 G_NO_MATCHING_RECORD CONSTANT VARCHAR2(200) := 'OKL_LLA_NO_MATCHING_RECORD';
9 G_INVALID_YN CONSTANT VARCHAR2(200) := 'OKL_INVALID_YN';
10 G_LINE_RECORD CONSTANT VARCHAR2(200) := 'OKL_LLA_LINE_RECORD';
11 G_ITEM_RECORD CONSTANT VARCHAR2(200) := 'OKL_LLA_ITEM_RECORD';
12 G_TRX_ID CONSTANT VARCHAR2(200) := 'OKL_LLA_TRX_ID';
13 G_KLE_ID CONSTANT VARCHAR2(200) := 'OKL_LLA_KLE_ID';
14 G_TXD_ID CONSTANT VARCHAR2(200) := 'OKL_LLA_TXD_ID';
15 G_ITI_ID CONSTANT VARCHAR2(200) := 'OKL_LLA_ITI_ID';
16 G_COPY_LINE CONSTANT VARCHAR2(200) := 'OKL_LLA_COPY_LINE';
17 G_UPPERCASE_REQUIRED CONSTANT VARCHAR2(200) := 'OKL_UPPER_CASE_REQUIRED';
18 G_UNEXPECTED_ERROR CONSTANT VARCHAR2(200) := 'OKL_CONTRACTS_UNEXP_ERROR';
19 G_FETCHING_INFO CONSTANT VARCHAR2(200) := 'OKL_LLA_FETCHING_INFO';
20 G_REC_NAME_TOKEN CONSTANT VARCHAR2(200) := 'REC_INFO';
21 G_UPDATING_FIN_LINE CONSTANT VARCHAR2(200) := 'OKL_LLA_UPDATING_FIN_LINE';
22 G_SQLERRM_TOKEN CONSTANT VARCHAR2(200) := 'SQLerrm';
23 G_SQLCODE_TOKEN CONSTANT VARCHAR2(200) := 'SQLcode';
24 --bug# 2769267
25 G_CONV_RATE_NOT_FOUND CONSTANT VARCHAR2(200) := 'OKL_LLA_CONV_RATE_NOT_FOUND';
26 G_FROM_CURRENCY_TOKEN CONSTANT VARCHAR2(200) := 'FROM_CURRENCY';
27 G_TO_CURRENCY_TOKEN CONSTANT VARCHAR2(200) := 'TO_CURRENCY';
28 G_CONV_TYPE_TOKEN CONSTANT VARCHAR2(200) := 'CONVERSION_TYPE';
29 G_CONV_DATE_TOKEN CONSTANT VARCHAR2(200) := 'CONVERSION_DATE';
30
31 --BUG# 3569441
32 G_INVALID_INSTALL_LOC_TYPE CONSTANT VARCHAR2(200) := 'OKL_INVALID_INSTALL_LOC_TYPE';
33 G_LOCATION_TYPE_TOKEN CONSTANT VARCHAR2(30) := 'LOCATION_TYPE';
34 G_LOC_TYPE1_TOKEN CONSTANT VARCHAR2(30) := 'LOCATION_TYPE1';
35 G_LOC_TYPE2_TOKEN CONSTANT VARCHAR2(30) := 'LOCATION_TYPE2';
36
37 G_MISSING_USAGE CONSTANT VARCHAR2(200) := 'OKL_INSTALL_LOC_MISSING_USAGE';
38 G_USAGE_TYPE_TOKEN CONSTANT VARCHAR2(30) := 'USAGE_TYPE';
39 G_ADDRESS_TOKEN CONSTANT VARCHAR2(30) := 'ADDRESS';
40 G_INSTANCE_NUMBER_TOKEN CONSTANT VARCHAR2(30) := 'INSTANCE_NUMBER';
41 --END BUG# 3569441
42 -------------------------------------------------------------------------------------------------
43 -- GLOBAL EXCEPTION
44 -------------------------------------------------------------------------------------------------
45 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
46 G_EXCEPTION_STOP_VALIDATION EXCEPTION;
47 G_API_TYPE CONSTANT VARCHAR2(4) := '_PVT';
48 G_API_VERSION CONSTANT NUMBER := 1.0;
49 G_SCOPE CONSTANT VARCHAR2(4) := '_PVT';
50 -------------------------------------------------------------------------------------------------
51 -- GLOBAL VARIABLES
52 -------------------------------------------------------------------------------------------------
53 G_PKG_NAME CONSTANT VARCHAR2(200) := 'OKL_COPY_ASSET_PVT';
54 G_APP_NAME CONSTANT VARCHAR2(3) := OKL_API.G_APP_NAME;
55 G_FND_APP CONSTANT VARCHAR2(200) := OKL_API.G_FND_APP;
56 G_FIN_LINE_LTY_CODE OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'FREE_FORM1';
57 G_MODEL_LINE_LTY_CODE OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'ITEM';
58 G_ADDON_LINE_LTY_CODE OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'ADD_ITEM';
59 G_FA_LINE_LTY_CODE OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'FIXED_ASSET';
60 G_INST_LINE_LTY_CODE OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'FREE_FORM2';
61 G_IB_LINE_LTY_CODE OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'INST_ITEM';
62 G_FEE_LINE_LTY_CODE OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'FEE';
63 G_SER_LINE_LTY_CODE OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'SOLD_SERVICE';
64 G_UBB_LINE_LTY_CODE OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'USAGE';
65 G_ID2 CONSTANT VARCHAR2(200) := '#';
66 G_TRY_TYPE OKL_TRX_TYPES_V.TRY_TYPE%TYPE := 'TIE';
67 G_TLS_TYPE OKC_LINE_STYLES_V.LSE_TYPE%TYPE := 'TLS';
68 G_SLS_TYPE OKC_LINE_STYLES_V.LSE_TYPE%TYPE := 'SLS';
69 G_LEASE_SCS_CODE OKC_K_HEADERS_V.SCS_CODE%TYPE := 'LEASE';
70 G_LOAN_SCS_CODE OKC_K_HEADERS_V.SCS_CODE%TYPE := 'LOAN';
71 -- G_FA_TRY_NAME OKL_TRX_TYPES_V.NAME%TYPE := 'CREATE ASSET LINES';
72 -- G_IB_TRY_NAME OKL_TRX_TYPES_V.NAME%TYPE := 'CREATE_IB_LINES';
73 G_TRY_NAME OKL_TRX_TYPES_TL.NAME%TYPE := 'Internal Asset Creation';
74 G_LANGUAGE OKL_TRX_TYPES_TL.LANGUAGE%TYPE := 'US';
75 G_GEN_INST_NUM_IB CONSTANT VARCHAR2(200) := 'OKL_LLA_GEN_INST_NUM_IB';
76 G_GEN_ASSET_NUMBER CONSTANT VARCHAR2(200) := 'OKL_LLA_GEN_ASSET_NUMBER';
77 -------------------------------------------------------------------------------------------------
78 -- COMPOSITE GLOBAL VARIABLES
79 -------------------------------------------------------------------------------------------------
80 subtype cimv_rec_type is OKL_OKC_MIGRATION_PVT.cimv_rec_type;
81 subtype clev_rec_type is OKL_OKC_MIGRATION_PVT.clev_rec_type;
82 subtype klev_rec_type is OKL_CONTRACT_PUB.klev_rec_type;
83 subtype trxv_rec_type is OKL_TRX_ASSETS_PUB.thpv_rec_type;
84 subtype trxv_tbl_type is OKL_TRX_ASSETS_PUB.thpv_tbl_type;
85 subtype talv_rec_type is OKL_TXL_ASSETS_PUB.tlpv_rec_type;
86 subtype talv_tbl_type is OKL_TXL_ASSETS_PUB.tlpv_tbl_type;
87 subtype txdv_tbl_type is OKL_TXD_ASSETS_PUB.adpv_tbl_type;
88 subtype txdv_rec_type is OKL_TXD_ASSETS_PUB.adpv_rec_type;
89 subtype itiv_rec_type is OKL_TXL_ITM_INSTS_PUB.iipv_rec_type;
90 subtype itiv_tbl_type is OKL_TXL_ITM_INSTS_PUB.iipv_tbl_type;
91 subtype sidv_rec_type is OKL_SUPP_INVOICE_DTLS_PUB.sidv_rec_type;
92 subtype sidv_tbl_type is OKL_SUPP_INVOICE_DTLS_PUB.sidv_tbl_type;
93 TYPE g_ib_id_rec IS RECORD (
94 id NUMBER := OKL_API.G_MISS_NUM,
95 dnz_chr_id NUMBER := OKL_API.G_MISS_NUM);
96
97 TYPE g_ib_id_tbl IS TABLE OF g_ib_id_rec
98 INDEX BY BINARY_INTEGER;
99
100 TYPE g_ib_item_type IS RECORD (
101 object1_id1 OKC_K_ITEMS_V.OBJECT1_ID1%TYPE := OKL_API.G_MISS_CHAR,
102 object1_id2 OKC_K_ITEMS_V.OBJECT1_ID2%TYPE := OKL_API.G_MISS_CHAR);
103
104 TYPE g_ib_item_tbl IS TABLE OF g_ib_item_type
105 INDEX BY BINARY_INTEGER;
106 -----------------------------------------------------------------------------------------------------------
107 --Added by dpsingh for LE uptake
108 CURSOR contract_num_csr (p_ctr_id1 NUMBER) IS
109 SELECT contract_number
110 FROM OKC_K_HEADERS_B
111 WHERE id = p_ctr_id1;
112
113 CURSOR get_chr_id_csr(p_kle_id1 NUMBER) IS
114 SELECT DNZ_CHR_ID
115 FROM OKC_K_LINES_B
116 WHERE ID = p_kle_id1;
117
118 FUNCTION generate_instance_number_ib(x_instance_number_ib OUT NOCOPY OKL_TXL_ITM_INSTS_V.INSTANCE_NUMBER_IB%TYPE)
119 RETURN VARCHAR2 IS
120 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
121 -- cursor to get sequence number for asset number
122 Cursor c_instance_no_ib IS
123 select TO_CHAR(OKL_IBN_SEQ.NEXTVAL)
124 FROM dual;
125 BEGIN
126 OPEN c_instance_no_ib;
127 FETCH c_instance_no_ib INTO x_instance_number_ib;
128 IF (c_instance_no_ib%NOTFOUND) Then
129 x_return_status := OKC_API.G_RET_STS_ERROR;
130 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
131 p_msg_name => g_unexpected_error,
132 p_token1 => g_sqlcode_token,
133 p_token1_value => sqlcode,
134 p_token2 => g_sqlerrm_token,
135 p_token2_value => sqlerrm);
136 END IF;
137 CLOSE c_instance_no_ib;
138 RETURN x_return_status;
139 EXCEPTION
140 WHEN OTHERS THEN
141 IF c_instance_no_ib%ISOPEN THEN
142 CLOSE c_instance_no_ib;
143 END IF;
144 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
145 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
146 p_msg_name => g_unexpected_error,
147 p_token1 => g_sqlcode_token,
148 p_token1_value => sqlcode,
149 p_token2 => g_sqlerrm_token,
150 p_token2_value => sqlerrm);
151 RETURN x_return_status;
152 END generate_instance_number_ib;
153 ---------------------------------------------------------------------------------------------------------------
154 /*
155 FUNCTION generate_asset_number(p_old_asset_number IN OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE,
156 x_asset_number OUT NOCOPY OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE)
157 RETURN VARCHAR2 IS
158 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
159 -- cursor to get sequence number for asset number
160 Cursor c_asset_no(p_old_asset_number OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE) IS
161 select p_old_asset_number||'_'||OKL_FAN_SEQ.NEXTVAL
162 FROM dual;
163 BEGIN
164 OPEN c_asset_no(p_old_asset_number);
165 FETCH c_asset_no INTO x_asset_number;
166 IF (c_asset_no%NOTFOUND) Then
167 x_return_status := OKC_API.G_RET_STS_ERROR;
168 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
169 p_msg_name => g_unexpected_error,
170 p_token1 => g_sqlcode_token,
171 p_token1_value => sqlcode,
172 p_token2 => g_sqlerrm_token,
173 p_token2_value => sqlerrm);
174 END IF;
175 CLOSE c_asset_no;
176 RETURN x_return_status;
177 EXCEPTION
178 WHEN OTHERS THEN
179 IF c_asset_no%ISOPEN THEN
180 CLOSE c_asset_no;
181 END IF;
182 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
183 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
184 p_msg_name => g_unexpected_error,
185 p_token1 => g_sqlcode_token,
186 p_token1_value => sqlcode,
187 p_token2 => g_sqlerrm_token,
188 p_token2_value => sqlerrm);
189 RETURN x_return_status;
190 END generate_asset_number;
191 */
192 FUNCTION generate_asset_number(x_asset_number OUT NOCOPY OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE)
193 RETURN VARCHAR2 IS
194 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
195 ln_dummy1 NUMBER := 0;
196 ln_dummy2 NUMBER := 0;
197 ln_dummy3 NUMBER := 0;
198 lv_asset_number OKX_ASSETS_V.ASSET_NUMBER%TYPE;
199 -- cursor to get sequence number for asset number
200 Cursor c_asset_no IS
201 select 'OKL'||OKL_FAN_SEQ.NEXTVAL
202 FROM dual;
203
204 -- cursor to get check the existence of asset number
205 CURSOR c_txl_asset_number(p_asset_number OKX_ASSETS_V.ASSET_NUMBER%TYPE)
206 IS
207 SELECT 1
208 FROM DUAL
209 WHERE EXISTS (SELECT '1'
210 FROM OKL_TXL_ASSETS_B
211 WHERE asset_number = p_asset_number);
212
213 CURSOR c_okx_asset_lines_v(p_asset_number OKX_ASSETS_V.ASSET_NUMBER%TYPE) is
214 SELECT 1
215 FROM DUAL
216 WHERE EXISTS (SELECT '1'
217 FROM OKX_ASSET_LINES_V
218 WHERE asset_number = p_asset_number);
219
220 CURSOR c_okx_assets_v(p_asset_number OKX_ASSETS_V.ASSET_NUMBER%TYPE) is
221 SELECT 1
222 FROM DUAL
223 WHERE EXISTS (SELECT '1'
224 FROM OKX_ASSETS_V
225 WHERE asset_number = p_asset_number);
226
227 BEGIN
228 OPEN c_asset_no;
229 FETCH c_asset_no INTO x_asset_number;
230 IF (c_asset_no%NOTFOUND) THEN
231 x_return_status := OKC_API.G_RET_STS_ERROR;
232 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
233 p_msg_name => g_unexpected_error,
234 p_token1 => g_sqlcode_token,
235 p_token1_value => sqlcode,
236 p_token2 => g_sqlerrm_token,
237 p_token2_value => sqlerrm);
238 END IF;
239 CLOSE c_asset_no;
240
241 LOOP
242 lv_asset_number := x_asset_number;
243
244 OPEN c_txl_asset_number(lv_asset_number);
245 FETCH c_txl_asset_number INTO ln_dummy1;
246 IF c_txl_asset_number%NOTFOUND THEN
247 ln_dummy1 := 0;
248 END IF;
249 CLOSE c_txl_asset_number;
250
251 OPEN c_okx_asset_lines_v(lv_asset_number);
252 FETCH c_okx_asset_lines_v INTO ln_dummy2;
253 IF c_okx_asset_lines_v%NOTFOUND THEN
254 ln_dummy2 := 0;
255 END IF;
256 CLOSE c_okx_asset_lines_v;
257
258 OPEN c_okx_assets_v(lv_asset_number);
259 FETCH c_okx_assets_v INTO ln_dummy3;
260 IF c_okx_assets_v%NOTFOUND THEN
261 ln_dummy3 := 0;
262 END IF;
263 CLOSE c_okx_assets_v;
264
265 IF ln_dummy1 = 1 OR
266 ln_dummy2 = 1 OR
267 ln_dummy3 = 1 THEN
268 OPEN c_asset_no;
269 FETCH c_asset_no INTO x_asset_number;
270 IF (c_asset_no%NOTFOUND) THEN
271 x_return_status := OKC_API.G_RET_STS_ERROR;
272 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
273 p_msg_name => g_unexpected_error,
274 p_token1 => g_sqlcode_token,
275 p_token1_value => sqlcode,
276 p_token2 => g_sqlerrm_token,
277 p_token2_value => sqlerrm);
278 END IF;
279 CLOSE c_asset_no;
280 ELSE
281 EXIT;
282 END IF;
283 END LOOP;
284
285 RETURN x_return_status;
286 EXCEPTION
287 WHEN OTHERS THEN
288 IF c_asset_no%ISOPEN THEN
289 CLOSE c_asset_no;
290 END IF;
291 IF c_txl_asset_number%ISOPEN THEN
292 CLOSE c_txl_asset_number;
293 END IF;
294 IF c_okx_asset_lines_v%ISOPEN THEN
295 CLOSE c_okx_asset_lines_v;
296 END IF;
297 IF c_okx_assets_v%ISOPEN THEN
298 CLOSE c_okx_assets_v;
299 END IF;
300 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
301 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
302 p_msg_name => g_unexpected_error,
303 p_token1 => g_sqlcode_token,
304 p_token1_value => sqlcode,
305 p_token2 => g_sqlerrm_token,
306 p_token2_value => sqlerrm);
307 RETURN x_return_status;
308 END generate_asset_number;
309 -------------------------------------------------------------------------------------------------
310 -- Start of Commnets
311 -- Badrinath Kuchibholta
312 -- Procedure Name : Validate_from _cle_id
313 -- Description : validation with OKC_K_LINES_V
314 -- Business Rules : The Line should be a top Line
315 -- Parameters : 1.P_cle_id should be the top line
316 -- 2.x_fa_line_id the Fixed asset line Id
317 -- as the same will be the okl_txl_tables
318 -- 3. Return Status
319 -- Version : 1.0
320 -- End of Commnets
321 PROCEDURE validate_from_cle_id(p_cle_id IN OKC_K_LINES_V.ID%TYPE,
322 x_fa_line_id OUT NOCOPY OKL_K_LINES_V.ID%TYPE,
323 x_ib_id_tbl OUT NOCOPY g_ib_id_tbl,
324 x_dnz_chr_id OUT NOCOPY OKC_K_LINES_V.DNZ_CHR_ID%TYPE,
325 x_return_status OUT NOCOPY VARCHAR2)
326 IS
327 ln_cle_id OKC_K_LINES_V.CLE_ID%TYPE;
328 ln_chr_id OKC_K_LINES_V.CHR_ID%TYPE;
329 lv_lty_code OKC_LINE_STYLES_V.LTY_CODE%TYPE;
330 lv_lse_type OKC_LINE_STYLES_V.LSE_TYPE%TYPE;
331
332 i NUMBER := 0;
333 CURSOR c_cle_id_validate(p_cle_id OKC_K_LINES_V.ID%TYPE)
334 IS
335 SELECT cle.cle_id
336 ,cle.chr_id
337 ,lse.lty_code
338 ,lse.lse_type
339 FROM okc_k_lines_b cle,
340 okc_line_styles_v lse
341 WHERE cle.lse_id = lse.id
342 AND cle.id = p_cle_id;
343
344 CURSOR c_get_fa_line_id(p_cle_id OKC_K_LINES_V.ID%TYPE)
345 IS
346 SELECT cle.id,
347 cle.dnz_chr_id
348 FROM okc_line_styles_b lse,
349 okc_k_lines_v cle
350 WHERE cle.cle_id = p_cle_id
351 AND lse.id = cle.lse_id
352 AND lse.lty_code = G_FA_LINE_LTY_CODE;
353
354 CURSOR c_get_ib_line_id(p_cle_id OKC_K_LINES_V.ID%TYPE)
355 IS
356 SELECT cle_ib.id,
357 cle_ib.dnz_chr_id
358 FROM okc_line_styles_b lse_ib,
359 okc_k_lines_b cle_ib,
360 okc_line_styles_b lse_inst,
361 okc_k_lines_b cle_inst
362 WHERE cle_inst.cle_id = p_cle_id
363 AND cle_inst.lse_id = lse_inst.id
364 AND lse_inst.lty_code = G_INST_LINE_LTY_CODE
365 AND cle_ib.cle_id = cle_inst.id
366 AND cle_ib.lse_id = lse_ib.id
367 AND lse_ib.lty_code = G_IB_LINE_LTY_CODE;
368
369 r_get_ib_line_id c_get_ib_line_id%ROWTYPE;
370
371 BEGIN
372 -- initialize return status
373 x_return_status := OKL_API.G_RET_STS_SUCCESS;
374 -- data is required
375 IF (p_cle_id = OKL_API.G_MISS_NUM) OR
376 (p_cle_id IS NULL) THEN
377 OKL_API.set_message(p_app_name => G_APP_NAME,
378 p_msg_name => G_REQUIRED_VALUE,
379 p_token1 => G_COL_NAME_TOKEN,
380 p_token1_value => 'Cle_id');
381 -- halt validation
382 RAISE G_EXCEPTION_STOP_VALIDATION;
383 END IF;
384 -- Enforce Foreign Key
385 OPEN c_cle_id_validate(p_cle_id);
386 IF c_cle_id_validate%NOTFOUND THEN
387 -- store SQL error message on message stack
388 OKL_API.set_message(p_app_name => G_APP_NAME,
389 p_msg_name => G_NO_MATCHING_RECORD,
390 p_token1 => G_COL_NAME_TOKEN,
391 p_token1_value => 'Cle_id');
392 -- halt validation
393 RAISE G_EXCEPTION_HALT_VALIDATION;
394 END IF;
395 FETCH c_cle_id_validate into ln_cle_id,
396 ln_chr_id,
397 lv_lty_code,
398 lv_lse_type;
399 CLOSE c_cle_id_validate;
400 IF (ln_cle_id IS NULL OR
401 ln_cle_id = OKL_API.G_MISS_NUM) AND
402 ln_chr_id IS NOT NULL AND
403 lv_lty_code = G_FIN_LINE_LTY_CODE AND
404 lv_lse_type = G_TLS_TYPE THEN
405 OPEN c_get_fa_line_id(p_cle_id);
406 IF c_get_fa_line_id%NOTFOUND THEN
407 -- store SQL error message on message stack
408 OKL_API.set_message(p_app_name => G_APP_NAME,
409 p_msg_name => G_NO_MATCHING_RECORD,
410 p_token1 => G_COL_NAME_TOKEN,
411 p_token1_value => 'FA_Cle_id');
412 -- halt validation
413 RAISE G_EXCEPTION_HALT_VALIDATION;
414 END IF;
415 FETCH c_get_fa_line_id INTO x_fa_line_id,
416 x_dnz_chr_id;
417 CLOSE c_get_fa_line_id;
418 FOR r_get_ib_line_id IN c_get_ib_line_id(p_cle_id) LOOP
419 IF c_get_ib_line_id%NOTFOUND THEN
420 OKL_API.set_message(p_app_name => G_APP_NAME,
421 p_msg_name => G_NO_MATCHING_RECORD,
422 p_token1 => G_COL_NAME_TOKEN,
423 p_token1_value => 'IB_Cle_id');
424 x_return_status := OKL_API.G_RET_STS_ERROR;
425 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
426 END IF;
427 x_ib_id_tbl(i).id := r_get_ib_line_id.id;
428 IF r_get_ib_line_id.dnz_chr_id <> x_dnz_chr_id THEN
429 OKL_API.set_message(p_app_name => G_APP_NAME,
430 p_msg_name => G_NO_MATCHING_RECORD,
431 p_token1 => G_COL_NAME_TOKEN,
432 p_token1_value => 'DNZ_CHR_ID');
433 x_return_status := OKL_API.G_RET_STS_ERROR;
434 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
435 END IF;
436 x_ib_id_tbl(i).dnz_chr_id := r_get_ib_line_id.dnz_chr_id;
437 i := i + 1;
438 END LOOP;
439 IF x_return_status = OKL_API.G_RET_STS_ERROR THEN
440 -- halt validation
441 RAISE G_EXCEPTION_HALT_VALIDATION;
442 END IF;
443 ELSE
444 OKL_API.set_message(p_app_name => G_APP_NAME,
445 p_msg_name => G_LINE_RECORD);
446 -- halt validation
447 RAISE G_EXCEPTION_HALT_VALIDATION;
448 END IF;
449 EXCEPTION
450 WHEN G_EXCEPTION_STOP_VALIDATION then
451 -- We are here since the field is required
452 -- store SQL error message on message stack
453 -- Notify Error
454 x_return_status := OKL_API.G_RET_STS_ERROR;
455 WHEN G_EXCEPTION_HALT_VALIDATION then
456 -- We are here b'cause we have no parent record
457 -- If the cursor is open then it has to be closed
458 IF c_cle_id_validate%ISOPEN THEN
459 CLOSE c_cle_id_validate;
460 END IF;
461 IF c_get_fa_line_id%ISOPEN THEN
462 CLOSE c_get_fa_line_id;
463 END IF;
464 IF c_get_ib_line_id%ISOPEN THEN
465 CLOSE c_get_ib_line_id;
466 END IF;
467 -- notify caller of an error
468 x_return_status := OKL_API.G_RET_STS_ERROR;
469 WHEN OTHERS THEN
470 -- store SQL error message on message stack
471 OKL_API.SET_MESSAGE(p_app_name => G_APP_NAME,
472 p_msg_name => G_UNEXPECTED_ERROR,
473 p_token1 => G_SQLCODE_TOKEN,
474 p_token1_value => SQLCODE,
475 p_token2 => G_SQLERRM_TOKEN,
476 p_token2_value => SQLERRM);
477 -- If the cursor is open then it has to be closed
478 IF c_cle_id_validate%ISOPEN THEN
479 CLOSE c_cle_id_validate;
480 END IF;
481 IF c_get_fa_line_id%ISOPEN THEN
482 CLOSE c_get_fa_line_id;
483 END IF;
484 IF c_get_ib_line_id%ISOPEN THEN
485 CLOSE c_get_ib_line_id;
486 END IF;
487 -- notify caller of an error as UNEXPETED error
488 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
489 END validate_from_cle_id;
490 -------------------------------------------------------------------------------------------------
491 -- Start of Commnets
492 -- Badrinath Kuchibholta
493 -- Procedure Name : validate_items_ids
494 -- Description : validation with OKC_K_ITEMS_V
495 -- Business Rules : If the id1 and id2 are populated in okc_k_items_v
496 -- we need to get current info from FA and
497 -- populate the txl_assets table
498 -- if id1 and id2 are null then we there is already info
499 -- in txl_assets tables and now we copy that info and
500 -- create another record in txl_assets table.
501 -- This validation will give me information weather
502 -- id1 and id2 are null or not.
503 -- Parameters : 1.P_cle_id should be the Fixed asset line or ib line
504 -- Function will return the Return Status
505 -- Version : 1.0
506 -- End of Commnets
507 FUNCTION validate_items_ids(p_cle_id IN OKC_K_LINES_V.ID%TYPE,
508 p_dnz_chr_id IN OKC_K_LINES_V.DNZ_CHR_ID%TYPE,
509 x_object1_id1 OUT NOCOPY OKC_K_ITEMS_V.OBJECT1_ID1%TYPE,
510 x_object1_id2 OUT NOCOPY OKC_K_ITEMS_V.OBJECT1_ID2%TYPE)
511 RETURN VARCHAR2 IS
512 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
513 CURSOR c_validate_items_ids(p_cle_id IN OKC_K_LINES_V.ID%TYPE,
514 p_dnz_chr_id IN OKC_K_LINES_V.DNZ_CHR_ID%TYPE)
515 IS
516 SELECT object1_id1,
517 object1_id2
518 FROM okc_k_items_v cim
519 WHERE cim.cle_id = p_cle_id
520 AND cim.dnz_chr_id = p_dnz_chr_id
521 AND cim.object1_id1 IS NOT NULL
522 AND cim.object1_id2 IS NOT NULL;
523 BEGIN
524 -- data is required
525 IF (p_cle_id = OKL_API.G_MISS_NUM OR
526 p_cle_id IS NULL) AND
527 (p_dnz_chr_id = OKL_API.G_MISS_NUM OR
528 p_dnz_chr_id IS NULL) THEN
529 -- store SQL error message on message stack
530 OKL_API.set_message(p_app_name => G_APP_NAME,
531 p_msg_name => G_REQUIRED_VALUE,
532 p_token1 => G_COL_NAME_TOKEN,
533 p_token1_value => 'dnz_chr_id and Cle_id');
534 -- halt validation
535 RAISE G_EXCEPTION_STOP_VALIDATION;
536 END IF;
537 -- Enforce Foreign Key
538 OPEN c_validate_items_ids(p_cle_id,
539 p_dnz_chr_id);
540 FETCH c_validate_items_ids into x_object1_id1,
541 x_object1_id2;
542 CLOSE c_validate_items_ids;
543 RETURN x_return_status;
544 EXCEPTION
545 WHEN G_EXCEPTION_STOP_VALIDATION then
546 -- We are here since the field is required
547 -- Notify Error
548 x_return_status := OKL_API.G_RET_STS_ERROR;
549 -- If the cursor is open then it has to be closed
550 IF c_validate_items_ids%ISOPEN THEN
551 CLOSE c_validate_items_ids;
552 END IF;
553 RETURN x_return_status;
554 WHEN OTHERS THEN
555 -- store SQL error message on message stack
556 OKL_API.SET_MESSAGE(p_app_name => G_APP_NAME,
557 p_msg_name => G_UNEXPECTED_ERROR,
558 p_token1 => G_SQLCODE_TOKEN,
559 p_token1_value => SQLCODE,
560 p_token2 => G_SQLERRM_TOKEN,
561 p_token2_value => SQLERRM);
562 -- If the cursor is open then it has to be closed
563 IF c_validate_items_ids%ISOPEN THEN
564 CLOSE c_validate_items_ids;
565 END IF;
566 -- notify caller of an error as UNEXPETED error
567 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
568 RETURN x_return_status;
569 END validate_items_ids;
570 ---------------------------------------------------------------------------------------------------------------
571 FUNCTION get_rec_clev(p_id IN OKC_K_LINES_V.ID%TYPE,
572 x_clev_rec OUT NOCOPY clev_rec_type)
573 RETURN VARCHAR2 IS
574 CURSOR okc_clev_pk_csr (p_cle_id NUMBER) IS
575 SELECT ID,
576 OBJECT_VERSION_NUMBER,
577 SFWT_FLAG,
578 CHR_ID,
579 CLE_ID,
580 LSE_ID,
581 LINE_NUMBER,
582 STS_CODE,
583 DISPLAY_SEQUENCE,
584 TRN_CODE,
585 DNZ_CHR_ID,
586 COMMENTS,
587 ITEM_DESCRIPTION,
588 OKE_BOE_DESCRIPTION,
589 COGNOMEN,
590 HIDDEN_IND,
591 PRICE_UNIT,
592 PRICE_UNIT_PERCENT,
593 PRICE_NEGOTIATED,
594 PRICE_NEGOTIATED_RENEWED,
595 PRICE_LEVEL_IND,
596 INVOICE_LINE_LEVEL_IND,
597 DPAS_RATING,
598 BLOCK23TEXT,
599 EXCEPTION_YN,
600 TEMPLATE_USED,
601 DATE_TERMINATED,
602 NAME,
603 START_DATE,
604 END_DATE,
605 DATE_RENEWED,
606 UPG_ORIG_SYSTEM_REF,
607 UPG_ORIG_SYSTEM_REF_ID,
608 ORIG_SYSTEM_SOURCE_CODE,
609 ORIG_SYSTEM_ID1,
610 ORIG_SYSTEM_REFERENCE1,
611 REQUEST_ID,
612 PROGRAM_APPLICATION_ID,
613 PROGRAM_ID,
614 PROGRAM_UPDATE_DATE,
615 PRICE_LIST_ID,
616 PRICING_DATE,
617 PRICE_LIST_LINE_ID,
618 LINE_LIST_PRICE,
619 ITEM_TO_PRICE_YN,
620 PRICE_BASIS_YN,
621 CONFIG_HEADER_ID,
622 CONFIG_REVISION_NUMBER,
623 CONFIG_COMPLETE_YN,
624 CONFIG_VALID_YN,
625 CONFIG_TOP_MODEL_LINE_ID,
626 CONFIG_ITEM_TYPE,
627 CONFIG_ITEM_ID ,
628 ATTRIBUTE_CATEGORY,
629 ATTRIBUTE1,
630 ATTRIBUTE2,
631 ATTRIBUTE3,
632 ATTRIBUTE4,
633 ATTRIBUTE5,
634 ATTRIBUTE6,
635 ATTRIBUTE7,
636 ATTRIBUTE8,
637 ATTRIBUTE9,
638 ATTRIBUTE10,
639 ATTRIBUTE11,
640 ATTRIBUTE12,
641 ATTRIBUTE13,
642 ATTRIBUTE14,
643 ATTRIBUTE15,
644 CREATED_BY,
645 CREATION_DATE,
646 LAST_UPDATED_BY,
647 LAST_UPDATE_DATE,
648 PRICE_TYPE,
649 CURRENCY_CODE,
650 CURRENCY_CODE_RENEWED,
651 LAST_UPDATE_LOGIN
652 FROM Okc_K_Lines_V
653 WHERE okc_k_lines_v.id = p_cle_id;
654 l_okc_clev_pk okc_clev_pk_csr%ROWTYPE;
655 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
656 BEGIN
657 -- Get current database values
658 OPEN okc_clev_pk_csr (p_id);
659 FETCH okc_clev_pk_csr INTO
660 x_clev_rec.ID,
661 x_clev_rec.OBJECT_VERSION_NUMBER,
662 x_clev_rec.SFWT_FLAG,
663 x_clev_rec.CHR_ID,
664 x_clev_rec.CLE_ID,
665 x_clev_rec.LSE_ID,
666 x_clev_rec.LINE_NUMBER,
667 x_clev_rec.STS_CODE,
668 x_clev_rec.DISPLAY_SEQUENCE,
669 x_clev_rec.TRN_CODE,
670 x_clev_rec.DNZ_CHR_ID,
671 x_clev_rec.COMMENTS,
672 x_clev_rec.ITEM_DESCRIPTION,
673 x_clev_rec.OKE_BOE_DESCRIPTION,
674 x_clev_rec.COGNOMEN,
675 x_clev_rec.HIDDEN_IND,
676 x_clev_rec.PRICE_UNIT,
677 x_clev_rec.PRICE_UNIT_PERCENT,
678 x_clev_rec.PRICE_NEGOTIATED,
679 x_clev_rec.PRICE_NEGOTIATED_RENEWED,
680 x_clev_rec.PRICE_LEVEL_IND,
681 x_clev_rec.INVOICE_LINE_LEVEL_IND,
682 x_clev_rec.DPAS_RATING,
683 x_clev_rec.BLOCK23TEXT,
684 x_clev_rec.EXCEPTION_YN,
685 x_clev_rec.TEMPLATE_USED,
686 x_clev_rec.DATE_TERMINATED,
687 x_clev_rec.NAME,
688 x_clev_rec.START_DATE,
689 x_clev_rec.END_DATE,
690 x_clev_rec.DATE_RENEWED,
691 x_clev_rec.UPG_ORIG_SYSTEM_REF,
692 x_clev_rec.UPG_ORIG_SYSTEM_REF_ID,
693 x_clev_rec.ORIG_SYSTEM_SOURCE_CODE,
694 x_clev_rec.ORIG_SYSTEM_ID1,
695 x_clev_rec.ORIG_SYSTEM_REFERENCE1,
696 x_clev_rec.request_id,
697 x_clev_rec.program_application_id,
698 x_clev_rec.program_id,
699 x_clev_rec.program_update_date,
700 x_clev_rec.price_list_id,
701 x_clev_rec.pricing_date,
702 x_clev_rec.price_list_line_id,
703 x_clev_rec.line_list_price,
704 x_clev_rec.item_to_price_yn,
705 x_clev_rec.price_basis_yn,
706 x_clev_rec.config_header_id,
707 x_clev_rec.config_revision_number,
708 x_clev_rec.config_complete_yn,
709 x_clev_rec.config_valid_yn,
710 x_clev_rec.config_top_model_line_id,
711 x_clev_rec.config_item_type,
712 x_clev_rec.CONFIG_ITEM_ID ,
713 x_clev_rec.ATTRIBUTE_CATEGORY,
714 x_clev_rec.ATTRIBUTE1,
715 x_clev_rec.ATTRIBUTE2,
716 x_clev_rec.ATTRIBUTE3,
717 x_clev_rec.ATTRIBUTE4,
718 x_clev_rec.ATTRIBUTE5,
719 x_clev_rec.ATTRIBUTE6,
720 x_clev_rec.ATTRIBUTE7,
721 x_clev_rec.ATTRIBUTE8,
722 x_clev_rec.ATTRIBUTE9,
723 x_clev_rec.ATTRIBUTE10,
724 x_clev_rec.ATTRIBUTE11,
725 x_clev_rec.ATTRIBUTE12,
726 x_clev_rec.ATTRIBUTE13,
727 x_clev_rec.ATTRIBUTE14,
728 x_clev_rec.ATTRIBUTE15,
729 x_clev_rec.CREATED_BY,
730 x_clev_rec.CREATION_DATE,
731 x_clev_rec.LAST_UPDATED_BY,
732 x_clev_rec.LAST_UPDATE_DATE,
733 x_clev_rec.PRICE_TYPE,
734 x_clev_rec.CURRENCY_CODE,
735 x_clev_rec.CURRENCY_CODE_RENEWED,
736 x_clev_rec.LAST_UPDATE_LOGIN;
737 IF okc_clev_pk_csr%NOTFOUND THEN
738 x_return_status := OKL_API.G_RET_STS_ERROR;
739 END IF;
740 CLOSE okc_clev_pk_csr;
741 RETURN(x_return_status);
742 EXCEPTION
743 WHEN OTHERS THEN
744 -- store SQL error message on message stack for caller
745 OKL_API.set_message(G_APP_NAME,
746 G_UNEXPECTED_ERROR,
747 G_SQLCODE_TOKEN,
748 SQLCODE,
749 G_SQLERRM_TOKEN,
750 SQLERRM);
751 -- notify caller of an UNEXPECTED error
752 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
753 -- if the cursor is open
754 IF okc_clev_pk_csr%ISOPEN THEN
755 CLOSE okc_clev_pk_csr;
756 END IF;
757 RETURN(x_return_status);
758 END get_rec_clev;
759 -----------------------------------------------------------------------------------------------
760 FUNCTION get_rec_klev(p_id IN OKL_K_LINES_V.ID%TYPE,
761 x_klev_rec OUT NOCOPY klev_rec_type)
762 RETURN VARCHAR2 IS
763 CURSOR okl_k_lines_v_pk_csr (p_kle_id OKL_K_LINES_V.ID%TYPE) IS
764 SELECT ID,
765 OBJECT_VERSION_NUMBER,
766 KLE_ID,
767 STY_ID,
768 PRC_CODE,
769 FCG_CODE,
770 NTY_CODE,
771 ESTIMATED_OEC,
772 LAO_AMOUNT,
773 TITLE_DATE,
774 FEE_CHARGE,
775 LRS_PERCENT,
776 INITIAL_DIRECT_COST,
777 PERCENT_STAKE,
778 PERCENT,
779 EVERGREEN_PERCENT,
780 AMOUNT_STAKE,
781 OCCUPANCY,
782 COVERAGE,
783 RESIDUAL_PERCENTAGE,
784 DATE_LAST_INSPECTION,
785 DATE_SOLD,
786 LRV_AMOUNT,
787 CAPITAL_REDUCTION,
788 DATE_NEXT_INSPECTION_DUE,
789 DATE_RESIDUAL_LAST_REVIEW,
790 DATE_LAST_REAMORTISATION,
791 VENDOR_ADVANCE_PAID,
792 WEIGHTED_AVERAGE_LIFE,
793 TRADEIN_AMOUNT,
794 BOND_EQUIVALENT_YIELD,
795 TERMINATION_PURCHASE_AMOUNT,
796 REFINANCE_AMOUNT,
797 YEAR_BUILT,
798 DELIVERED_DATE,
799 CREDIT_TENANT_YN,
800 DATE_LAST_CLEANUP,
801 YEAR_OF_MANUFACTURE,
802 COVERAGE_RATIO,
803 REMARKETED_AMOUNT,
804 GROSS_SQUARE_FOOTAGE,
805 PRESCRIBED_ASSET_YN,
806 DATE_REMARKETED,
807 NET_RENTABLE,
808 REMARKET_MARGIN,
809 DATE_LETTER_ACCEPTANCE,
810 REPURCHASED_AMOUNT,
811 DATE_COMMITMENT_EXPIRATION,
812 DATE_REPURCHASED,
813 DATE_APPRAISAL,
814 RESIDUAL_VALUE,
815 APPRAISAL_VALUE,
816 SECURED_DEAL_YN,
817 GAIN_LOSS,
818 FLOOR_AMOUNT,
819 RE_LEASE_YN,
820 PREVIOUS_CONTRACT,
821 TRACKED_RESIDUAL,
822 DATE_TITLE_RECEIVED,
823 AMOUNT,
824 ATTRIBUTE_CATEGORY,
825 ATTRIBUTE1,
826 ATTRIBUTE2,
827 ATTRIBUTE3,
828 ATTRIBUTE4,
829 ATTRIBUTE5,
830 ATTRIBUTE6,
831 ATTRIBUTE7,
832 ATTRIBUTE8,
833 ATTRIBUTE9,
834 ATTRIBUTE10,
835 ATTRIBUTE11,
836 ATTRIBUTE12,
837 ATTRIBUTE13,
838 ATTRIBUTE14,
839 ATTRIBUTE15,
840 STY_ID_FOR,
841 CLG_ID,
842 CREATED_BY,
843 CREATION_DATE,
844 LAST_UPDATED_BY,
845 LAST_UPDATE_DATE,
846 LAST_UPDATE_LOGIN,
847 DATE_FUNDING,
848 DATE_FUNDING_REQUIRED,
849 DATE_ACCEPTED,
850 DATE_DELIVERY_EXPECTED,
851 OEC,
852 CAPITAL_AMOUNT,
853 RESIDUAL_GRNTY_AMOUNT,
854 RESIDUAL_CODE,
855 RVI_PREMIUM,
856 CREDIT_NATURE,
857 CAPITALIZED_INTEREST,
858 CAPITAL_REDUCTION_PERCENT,
859 --Bug# 2998115:
860 DATE_PAY_INVESTOR_START,
861 PAY_INVESTOR_FREQUENCY,
862 PAY_INVESTOR_EVENT,
863 PAY_INVESTOR_REMITTANCE_DAYS,
864 FEE_TYPE,
865 --Bug#3143522 Subsidies :
866 SUBSIDY_ID,
867 --SUBSIDIZED_OEC,
868 --SUBSIDIZED_CAP_AMOUNT,
869 PRE_TAX_YIELD,
870 AFTER_TAX_YIELD,
871 IMPLICIT_INTEREST_RATE,
872 IMPLICIT_NON_IDC_INTEREST_RATE,
873 PRE_TAX_IRR,
874 AFTER_TAX_IRR,
875 SUBSIDY_OVERRIDE_AMOUNT,
876 --quote
877 SUB_PRE_TAX_YIELD,
878 SUB_AFTER_TAX_YIELD,
879 SUB_IMPL_INTEREST_RATE,
880 SUB_IMPL_NON_IDC_INT_RATE,
881 SUB_PRE_TAX_IRR,
882 SUB_AFTER_TAX_IRR,
883 --Bug# 2994971
884 ITEM_INSURANCE_CATEGORY,
885 --Bug# 3973640 : 11.510+ schema
886 QTE_ID,
887 FUNDING_DATE,
888 STREAM_TYPE_SUBCLASS
889 --ramurt Bug#4552772
890 ,FEE_PURPOSE_CODE
891 FROM OKL_K_LINES_V
892 WHERE OKL_K_LINES_V.id = p_kle_id;
893 l_okl_k_lines_v_pk okl_k_lines_v_pk_csr%ROWTYPE;
894 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
895 BEGIN
896 -- Get current database values
897 OPEN okl_k_lines_v_pk_csr (p_id);
898 FETCH okl_k_lines_v_pk_csr INTO
899 x_klev_rec.ID,
900 x_klev_rec.OBJECT_VERSION_NUMBER,
901 x_klev_rec.KLE_ID,
902 x_klev_rec.STY_ID,
903 x_klev_rec.PRC_CODE,
904 x_klev_rec.FCG_CODE,
905 x_klev_rec.NTY_CODE,
906 x_klev_rec.ESTIMATED_OEC,
907 x_klev_rec.LAO_AMOUNT,
908 x_klev_rec.TITLE_DATE,
909 x_klev_rec.FEE_CHARGE,
910 x_klev_rec.LRS_PERCENT,
911 x_klev_rec.INITIAL_DIRECT_COST,
912 x_klev_rec.PERCENT_STAKE,
913 x_klev_rec.PERCENT,
914 x_klev_rec.EVERGREEN_PERCENT,
915 x_klev_rec.AMOUNT_STAKE,
916 x_klev_rec.OCCUPANCY,
917 x_klev_rec.COVERAGE,
918 x_klev_rec.RESIDUAL_PERCENTAGE,
919 x_klev_rec.DATE_LAST_INSPECTION,
920 x_klev_rec.DATE_SOLD,
921 x_klev_rec.LRV_AMOUNT,
922 x_klev_rec.CAPITAL_REDUCTION,
923 x_klev_rec.DATE_NEXT_INSPECTION_DUE,
924 x_klev_rec.DATE_RESIDUAL_LAST_REVIEW,
925 x_klev_rec.DATE_LAST_REAMORTISATION,
926 x_klev_rec.VENDOR_ADVANCE_PAID,
927 x_klev_rec.WEIGHTED_AVERAGE_LIFE,
928 x_klev_rec.TRADEIN_AMOUNT,
929 x_klev_rec.BOND_EQUIVALENT_YIELD,
930 x_klev_rec.TERMINATION_PURCHASE_AMOUNT,
931 x_klev_rec.REFINANCE_AMOUNT,
932 x_klev_rec.YEAR_BUILT,
933 x_klev_rec.DELIVERED_DATE,
934 x_klev_rec.CREDIT_TENANT_YN,
935 x_klev_rec.DATE_LAST_CLEANUP,
936 x_klev_rec.YEAR_OF_MANUFACTURE,
937 x_klev_rec.COVERAGE_RATIO,
938 x_klev_rec.REMARKETED_AMOUNT,
939 x_klev_rec.GROSS_SQUARE_FOOTAGE,
940 x_klev_rec.PRESCRIBED_ASSET_YN,
941 x_klev_rec.DATE_REMARKETED,
942 x_klev_rec.NET_RENTABLE,
943 x_klev_rec.REMARKET_MARGIN,
944 x_klev_rec.DATE_LETTER_ACCEPTANCE,
945 x_klev_rec.REPURCHASED_AMOUNT,
946 x_klev_rec.DATE_COMMITMENT_EXPIRATION,
947 x_klev_rec.DATE_REPURCHASED,
948 x_klev_rec.DATE_APPRAISAL,
949 x_klev_rec.RESIDUAL_VALUE,
950 x_klev_rec.APPRAISAL_VALUE,
951 x_klev_rec.SECURED_DEAL_YN,
952 x_klev_rec.GAIN_LOSS,
953 x_klev_rec.FLOOR_AMOUNT,
954 x_klev_rec.RE_LEASE_YN,
955 x_klev_rec.PREVIOUS_CONTRACT,
956 x_klev_rec.TRACKED_RESIDUAL,
957 x_klev_rec.DATE_TITLE_RECEIVED,
958 x_klev_rec.AMOUNT,
959 x_klev_rec.ATTRIBUTE_CATEGORY,
960 x_klev_rec.ATTRIBUTE1,
961 x_klev_rec.ATTRIBUTE2,
962 x_klev_rec.ATTRIBUTE3,
963 x_klev_rec.ATTRIBUTE4,
964 x_klev_rec.ATTRIBUTE5,
965 x_klev_rec.ATTRIBUTE6,
966 x_klev_rec.ATTRIBUTE7,
967 x_klev_rec.ATTRIBUTE8,
968 x_klev_rec.ATTRIBUTE9,
969 x_klev_rec.ATTRIBUTE10,
970 x_klev_rec.ATTRIBUTE11,
971 x_klev_rec.ATTRIBUTE12,
972 x_klev_rec.ATTRIBUTE13,
973 x_klev_rec.ATTRIBUTE14,
974 x_klev_rec.ATTRIBUTE15,
975 x_klev_rec.STY_ID_FOR,
976 x_klev_rec.CLG_ID,
977 x_klev_rec.CREATED_BY,
978 x_klev_rec.CREATION_DATE,
979 x_klev_rec.LAST_UPDATED_BY,
980 x_klev_rec.LAST_UPDATE_DATE,
981 x_klev_rec.LAST_UPDATE_LOGIN,
982 x_klev_rec.DATE_FUNDING,
983 x_klev_rec.DATE_FUNDING_REQUIRED,
984 x_klev_rec.DATE_ACCEPTED,
985 x_klev_rec.DATE_DELIVERY_EXPECTED,
986 x_klev_rec.OEC,
987 x_klev_rec.CAPITAL_AMOUNT,
988 x_klev_rec.RESIDUAL_GRNTY_AMOUNT,
989 x_klev_rec.RESIDUAL_CODE,
990 x_klev_rec.RVI_PREMIUM,
991 x_klev_rec.CREDIT_NATURE,
992 x_klev_rec.CAPITALIZED_INTEREST,
993 x_klev_rec.CAPITAL_REDUCTION_PERCENT,
994 --Bug# 2998115 :
995 x_klev_rec.DATE_PAY_INVESTOR_START,
996 x_klev_rec.PAY_INVESTOR_FREQUENCY,
997 x_klev_rec.PAY_INVESTOR_EVENT,
998 x_klev_rec.PAY_INVESTOR_REMITTANCE_DAYS,
999 x_klev_rec.FEE_TYPE,
1000 --Bug#3143522 Subsidies :
1001 x_klev_rec.SUBSIDY_ID,
1002 --x_klev_rec.SUBSIDIZED_OEC,
1003 --x_klev_rec.SUBSIDIZED_CAP_AMOUNT,
1004 x_klev_rec.PRE_TAX_YIELD,
1005 x_klev_rec.AFTER_TAX_YIELD,
1006 x_klev_rec.IMPLICIT_INTEREST_RATE,
1007 x_klev_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
1008 x_klev_rec.PRE_TAX_IRR,
1009 x_klev_rec.AFTER_TAX_IRR,
1010 x_klev_rec.SUBSIDY_OVERRIDE_AMOUNT,
1011 --quote
1012 x_klev_rec.SUB_PRE_TAX_YIELD,
1013 x_klev_rec.SUB_AFTER_TAX_YIELD,
1014 x_klev_rec.SUB_IMPL_INTEREST_RATE,
1015 x_klev_rec.SUB_IMPL_NON_IDC_INT_RATE,
1016 x_klev_rec.SUB_PRE_TAX_IRR,
1017 x_klev_rec.SUB_AFTER_TAX_IRR,
1018 --Bug# 2994971 :
1019 x_klev_rec.ITEM_INSURANCE_CATEGORY,
1020 --Bug# 3973640 : 11.510+ schema
1021 x_klev_rec.QTE_ID,
1022 x_klev_rec.FUNDING_DATE,
1023 x_klev_rec.STREAM_TYPE_SUBCLASS
1024 --ramurt Bug#4552772
1025 ,x_klev_rec.FEE_PURPOSE_CODE;
1026 IF okl_k_lines_v_pk_csr%NOTFOUND THEN
1027 x_return_status := OKL_API.G_RET_STS_ERROR;
1028 END IF;
1029 CLOSE okl_k_lines_v_pk_csr;
1030 RETURN(x_return_status);
1031 EXCEPTION
1032 WHEN OTHERS THEN
1033 -- store SQL error message on message stack for caller
1034 OKL_API.set_message(G_APP_NAME,
1035 G_UNEXPECTED_ERROR,
1036 G_SQLCODE_TOKEN,
1037 SQLCODE,
1038 G_SQLERRM_TOKEN,
1039 SQLERRM);
1040 -- notify caller of an UNEXPECTED error
1041 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1042 -- if the cursor is open
1043 IF okl_k_lines_v_pk_csr%ISOPEN THEN
1044 CLOSE okl_k_lines_v_pk_csr;
1045 END IF;
1046 RETURN(x_return_status);
1047 END get_rec_klev;
1048 -------------------------------------------------------------------------------------------------
1049 -- Start of Commnets
1050 -- Badrinath Kuchibholta
1051 -- Function Name : get_tasv_rec
1052 -- Description : Get Transaction Header Record
1053 -- Business Rules :
1054 -- Parameters :
1055 -- Version :
1056 -- End of Commnets
1057 FUNCTION get_tasv_rec(p_tas_id IN NUMBER,
1058 x_trxv_rec OUT NOCOPY trxv_rec_type)
1059 RETURN VARCHAR2
1060 IS
1061 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1062 CURSOR c_trxv_rec(p_tas_id NUMBER)
1063 IS
1064 SELECT ID,
1065 OBJECT_VERSION_NUMBER,
1066 ICA_ID,
1067 ATTRIBUTE_CATEGORY,
1068 ATTRIBUTE1,
1069 ATTRIBUTE2,
1070 ATTRIBUTE3,
1071 ATTRIBUTE4,
1072 ATTRIBUTE5,
1073 ATTRIBUTE6,
1074 ATTRIBUTE7,
1075 ATTRIBUTE8,
1076 ATTRIBUTE9,
1077 ATTRIBUTE10,
1078 ATTRIBUTE11,
1079 ATTRIBUTE12,
1080 ATTRIBUTE13,
1081 ATTRIBUTE14,
1082 ATTRIBUTE15,
1083 TAS_TYPE,
1084 CREATED_BY,
1085 CREATION_DATE,
1086 LAST_UPDATED_BY,
1087 LAST_UPDATE_DATE,
1088 LAST_UPDATE_LOGIN,
1089 TSU_CODE,
1090 TRY_ID,
1091 DATE_TRANS_OCCURRED,
1092 TRANS_NUMBER,
1093 COMMENTS,
1094 REQ_ASSET_ID,
1095 TOTAL_MATCH_AMOUNT
1096 FROM OKL_TRX_ASSETS
1097 WHERE id = p_tas_id;
1098 BEGIN
1099 OPEN c_trxv_rec(p_tas_id);
1100 FETCH c_trxv_rec INTO
1101 x_trxv_rec.ID,
1102 x_trxv_rec.OBJECT_VERSION_NUMBER,
1103 x_trxv_rec.ICA_ID,
1104 x_trxv_rec.ATTRIBUTE_CATEGORY,
1105 x_trxv_rec.ATTRIBUTE1,
1106 x_trxv_rec.ATTRIBUTE2,
1107 x_trxv_rec.ATTRIBUTE3,
1108 x_trxv_rec.ATTRIBUTE4,
1109 x_trxv_rec.ATTRIBUTE5,
1110 x_trxv_rec.ATTRIBUTE6,
1111 x_trxv_rec.ATTRIBUTE7,
1112 x_trxv_rec.ATTRIBUTE8,
1113 x_trxv_rec.ATTRIBUTE9,
1114 x_trxv_rec.ATTRIBUTE10,
1115 x_trxv_rec.ATTRIBUTE11,
1116 x_trxv_rec.ATTRIBUTE12,
1117 x_trxv_rec.ATTRIBUTE13,
1118 x_trxv_rec.ATTRIBUTE14,
1119 x_trxv_rec.ATTRIBUTE15,
1120 x_trxv_rec.TAS_TYPE,
1121 x_trxv_rec.CREATED_BY,
1122 x_trxv_rec.CREATION_DATE,
1123 x_trxv_rec.LAST_UPDATED_BY,
1124 x_trxv_rec.LAST_UPDATE_DATE,
1125 x_trxv_rec.LAST_UPDATE_LOGIN,
1126 x_trxv_rec.TSU_CODE,
1127 x_trxv_rec.TRY_ID,
1128 x_trxv_rec.DATE_TRANS_OCCURRED,
1129 x_trxv_rec.TRANS_NUMBER,
1130 x_trxv_rec.COMMENTS,
1131 x_trxv_rec.REQ_ASSET_ID,
1132 x_trxv_rec.TOTAL_MATCH_AMOUNT;
1133 IF c_trxv_rec%NOTFOUND THEN
1134 x_return_status := OKL_API.G_RET_STS_ERROR;
1135 END IF;
1136 CLOSE c_trxv_rec;
1137 RETURN(x_return_status);
1138 EXCEPTION
1139 WHEN OTHERS THEN
1140 -- store SQL error message on message stack for caller
1141 OKL_API.set_message(
1142 G_APP_NAME,
1143 G_UNEXPECTED_ERROR,
1144 G_SQLCODE_TOKEN,
1145 SQLCODE,
1146 G_SQLERRM_TOKEN,
1147 SQLERRM);
1148 IF c_trxv_rec%ISOPEN THEN
1149 CLOSE c_trxv_rec;
1150 END IF;
1151 -- notify caller of an UNEXPECTED error
1152 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1153 RETURN(x_return_status);
1154 END get_tasv_rec;
1155 ------------------------------------------------------------------------------------------------
1156 -- Start of Commnets
1157 -- Badrinath Kuchibholta
1158 -- Function Name : get_sidv_rec
1159 -- Description : Get Supplier Invoice Details Record
1160 -- Business Rules :
1161 -- Parameters :
1162 -- Version :
1163 -- End of Commnets
1164 FUNCTION get_sidv_rec(p_cle_id IN OKL_SUPP_INVOICE_DTLS.ID%TYPE,
1165 x_sidv_rec OUT NOCOPY sidv_rec_type)
1166 RETURN VARCHAR2 IS
1167 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1168 CURSOR okl_supp_invoice_dtls_v_pk_csr(p_id OKL_SUPP_INVOICE_DTLS.ID%TYPE) IS
1169 SELECT ID,
1170 OBJECT_VERSION_NUMBER,
1171 CLE_ID,
1172 FA_CLE_ID,
1173 INVOICE_NUMBER,
1174 DATE_INVOICED,
1175 DATE_DUE,
1176 SHIPPING_ADDRESS_ID1,
1177 SHIPPING_ADDRESS_ID2,
1178 SHIPPING_ADDRESS_CODE,
1179 ATTRIBUTE_CATEGORY,
1180 ATTRIBUTE1,
1181 ATTRIBUTE2,
1182 ATTRIBUTE3,
1183 ATTRIBUTE4,
1184 ATTRIBUTE5,
1185 ATTRIBUTE6,
1186 ATTRIBUTE7,
1187 ATTRIBUTE8,
1188 ATTRIBUTE9,
1189 ATTRIBUTE10,
1190 ATTRIBUTE11,
1191 ATTRIBUTE12,
1192 ATTRIBUTE13,
1193 ATTRIBUTE14,
1194 ATTRIBUTE15,
1195 CREATED_BY,
1196 CREATION_DATE,
1197 LAST_UPDATED_BY,
1198 LAST_UPDATE_DATE,
1199 LAST_UPDATE_LOGIN
1200 FROM Okl_Supp_Invoice_Dtls_V sid
1201 WHERE sid.cle_id = p_id;
1202 l_okl_supp_invoice_dtls_v_pk okl_supp_invoice_dtls_v_pk_csr%ROWTYPE;
1203 BEGIN
1204 -- Get current database values
1205 OPEN okl_supp_invoice_dtls_v_pk_csr (p_id => p_cle_id);
1206 FETCH okl_supp_invoice_dtls_v_pk_csr INTO
1207 x_sidv_rec.id,
1208 x_sidv_rec.object_version_number,
1209 x_sidv_rec.cle_id,
1210 x_sidv_rec.fa_cle_id,
1211 x_sidv_rec.invoice_number,
1212 x_sidv_rec.date_invoiced,
1213 x_sidv_rec.date_due,
1214 x_sidv_rec.shipping_address_id1,
1215 x_sidv_rec.shipping_address_id2,
1216 x_sidv_rec.shipping_address_code,
1217 x_sidv_rec.attribute_category,
1218 x_sidv_rec.attribute1,
1219 x_sidv_rec.attribute2,
1220 x_sidv_rec.attribute3,
1221 x_sidv_rec.attribute4,
1222 x_sidv_rec.attribute5,
1223 x_sidv_rec.attribute6,
1224 x_sidv_rec.attribute7,
1225 x_sidv_rec.attribute8,
1226 x_sidv_rec.attribute9,
1227 x_sidv_rec.attribute10,
1228 x_sidv_rec.attribute11,
1229 x_sidv_rec.attribute12,
1230 x_sidv_rec.attribute13,
1231 x_sidv_rec.attribute14,
1232 x_sidv_rec.attribute15,
1233 x_sidv_rec.created_by,
1234 x_sidv_rec.creation_date,
1235 x_sidv_rec.last_updated_by,
1236 x_sidv_rec.last_update_date,
1237 x_sidv_rec.last_update_login;
1238 IF okl_supp_invoice_dtls_v_pk_csr%NOTFOUND THEN
1239 OKL_API.set_message(p_app_name => G_APP_NAME,
1240 p_msg_name => G_NO_MATCHING_RECORD,
1241 p_token1 => G_COL_NAME_TOKEN,
1242 p_token1_value => 'OKL_SUPP_INVOICE_DTLS Record');
1243 x_return_status := OKL_API.G_RET_STS_ERROR;
1244 END IF;
1245 CLOSE okl_supp_invoice_dtls_v_pk_csr;
1246 RETURN(x_return_status);
1247 EXCEPTION
1248 WHEN OTHERS THEN
1249 -- store SQL error message on message stack for caller
1250 OKL_API.set_message(
1251 G_APP_NAME,
1252 G_UNEXPECTED_ERROR,
1253 G_SQLCODE_TOKEN,
1254 SQLCODE,
1255 G_SQLERRM_TOKEN,
1256 SQLERRM);
1257 IF okl_supp_invoice_dtls_v_pk_csr%ISOPEN THEN
1258 CLOSE okl_supp_invoice_dtls_v_pk_csr;
1259 END IF;
1260 -- notify caller of an UNEXPECTED error
1261 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1262 RETURN(x_return_status);
1263 END get_sidv_rec;
1264 ----------------------------------------------------------------------------
1265 -- Start of Commnets
1266 -- Badrinath Kuchibholta
1267 -- Function Name : get_txlv_rec
1268 -- Description : Get Transaction Line Record
1269 -- Business Rules :
1270 -- Parameters :
1271 -- Version :
1272 -- End of Commnets
1273 FUNCTION get_txlv_rec(p_kle_id IN NUMBER,
1274 x_txlv_rec OUT NOCOPY talv_rec_type)
1275 RETURN VARCHAR2 IS
1276 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1277 CURSOR okl_talv_pk_csr (p_kle_id IN NUMBER) IS
1278 SELECT ID,
1279 OBJECT_VERSION_NUMBER,
1280 SFWT_FLAG,
1281 TAS_ID,
1282 ILO_ID,
1283 ILO_ID_OLD,
1284 IAY_ID,
1285 IAY_ID_NEW,
1286 KLE_ID,
1287 DNZ_KHR_ID,
1288 LINE_NUMBER,
1289 ORG_ID,
1290 TAL_TYPE,
1291 ASSET_NUMBER,
1292 DESCRIPTION,
1293 FA_LOCATION_ID,
1294 ORIGINAL_COST,
1295 CURRENT_UNITS,
1296 MANUFACTURER_NAME,
1297 YEAR_MANUFACTURED,
1298 SUPPLIER_ID,
1299 USED_ASSET_YN,
1300 TAG_NUMBER,
1301 MODEL_NUMBER,
1302 CORPORATE_BOOK,
1303 DATE_PURCHASED,
1304 DATE_DELIVERY,
1305 IN_SERVICE_DATE,
1306 LIFE_IN_MONTHS,
1307 DEPRECIATION_ID,
1308 DEPRECIATION_COST,
1309 DEPRN_METHOD,
1310 DEPRN_RATE,
1311 SALVAGE_VALUE,
1312 PERCENT_SALVAGE_VALUE,
1313 --Bug# 2981308
1314 ASSET_KEY_ID,
1315 ATTRIBUTE_CATEGORY,
1316 ATTRIBUTE1,
1317 ATTRIBUTE2,
1318 ATTRIBUTE3,
1319 ATTRIBUTE4,
1320 ATTRIBUTE5,
1321 ATTRIBUTE6,
1322 ATTRIBUTE7,
1323 ATTRIBUTE8,
1324 ATTRIBUTE9,
1325 ATTRIBUTE10,
1326 ATTRIBUTE11,
1327 ATTRIBUTE12,
1328 ATTRIBUTE13,
1329 ATTRIBUTE14,
1330 ATTRIBUTE15,
1331 CREATED_BY,
1332 CREATION_DATE,
1333 LAST_UPDATED_BY,
1334 LAST_UPDATE_DATE,
1335 LAST_UPDATE_LOGIN,
1336 DEPRECIATE_YN,
1337 HOLD_PERIOD_DAYS,
1338 OLD_SALVAGE_VALUE,
1339 NEW_RESIDUAL_VALUE,
1340 OLD_RESIDUAL_VALUE,
1341 UNITS_RETIRED,
1342 COST_RETIRED,
1343 SALE_PROCEEDS,
1344 REMOVAL_COST,
1345 DNZ_ASSET_ID,
1346 DATE_DUE,
1347 REP_ASSET_ID,
1348 LKE_ASSET_ID,
1349 MATCH_AMOUNT,
1350 SPLIT_INTO_SINGLES_FLAG,
1351 SPLIT_INTO_UNITS,
1352 -- Multi-Currency Change
1353 CURRENCY_CODE,
1354 CURRENCY_CONVERSION_TYPE,
1355 CURRENCY_CONVERSION_RATE,
1356 CURRENCY_CONVERSION_DATE
1357 -- Multi-Currency Change
1358 FROM Okl_Txl_Assets_V tal
1359 WHERE tal.kle_id = p_kle_id;
1360 l_okl_talv_pk okl_talv_pk_csr%ROWTYPE;
1361 BEGIN
1362 -- Get current database values
1363 OPEN okl_talv_pk_csr(p_kle_id);
1364 FETCH okl_talv_pk_csr INTO
1365 x_txlv_rec.ID,
1366 x_txlv_rec.OBJECT_VERSION_NUMBER,
1367 x_txlv_rec.SFWT_FLAG,
1368 x_txlv_rec.TAS_ID,
1369 x_txlv_rec.ILO_ID,
1370 x_txlv_rec.ILO_ID_OLD,
1371 x_txlv_rec.IAY_ID,
1372 x_txlv_rec.IAY_ID_NEW,
1373 x_txlv_rec.KLE_ID,
1374 x_txlv_rec.DNZ_KHR_ID,
1375 x_txlv_rec.LINE_NUMBER,
1376 x_txlv_rec.ORG_ID,
1377 x_txlv_rec.TAL_TYPE,
1378 x_txlv_rec.ASSET_NUMBER,
1379 x_txlv_rec.DESCRIPTION,
1380 x_txlv_rec.FA_LOCATION_ID,
1381 x_txlv_rec.ORIGINAL_COST,
1382 x_txlv_rec.CURRENT_UNITS,
1383 x_txlv_rec.MANUFACTURER_NAME,
1384 x_txlv_rec.YEAR_MANUFACTURED,
1385 x_txlv_rec.SUPPLIER_ID,
1386 x_txlv_rec.USED_ASSET_YN,
1387 x_txlv_rec.TAG_NUMBER,
1388 x_txlv_rec.MODEL_NUMBER,
1389 x_txlv_rec.CORPORATE_BOOK,
1390 x_txlv_rec.DATE_PURCHASED,
1391 x_txlv_rec.DATE_DELIVERY,
1392 x_txlv_rec.IN_SERVICE_DATE,
1393 x_txlv_rec.LIFE_IN_MONTHS,
1394 x_txlv_rec.DEPRECIATION_ID,
1395 x_txlv_rec.DEPRECIATION_COST,
1396 x_txlv_rec.DEPRN_METHOD,
1397 x_txlv_rec.DEPRN_RATE,
1398 x_txlv_rec.SALVAGE_VALUE,
1399 x_txlv_rec.PERCENT_SALVAGE_VALUE,
1400 --Bug# 2181308
1401 x_txlv_rec.ASSET_KEY_ID,
1402 x_txlv_rec.ATTRIBUTE_CATEGORY,
1403 x_txlv_rec.ATTRIBUTE1,
1404 x_txlv_rec.ATTRIBUTE2,
1405 x_txlv_rec.ATTRIBUTE3,
1406 x_txlv_rec.ATTRIBUTE4,
1407 x_txlv_rec.ATTRIBUTE5,
1408 x_txlv_rec.ATTRIBUTE6,
1409 x_txlv_rec.ATTRIBUTE7,
1410 x_txlv_rec.ATTRIBUTE8,
1411 x_txlv_rec.ATTRIBUTE9,
1412 x_txlv_rec.ATTRIBUTE10,
1413 x_txlv_rec.ATTRIBUTE11,
1414 x_txlv_rec.ATTRIBUTE12,
1415 x_txlv_rec.ATTRIBUTE13,
1416 x_txlv_rec.ATTRIBUTE14,
1417 x_txlv_rec.ATTRIBUTE15,
1418 x_txlv_rec.CREATED_BY,
1419 x_txlv_rec.CREATION_DATE,
1420 x_txlv_rec.LAST_UPDATED_BY,
1421 x_txlv_rec.LAST_UPDATE_DATE,
1422 x_txlv_rec.LAST_UPDATE_LOGIN,
1423 x_txlv_rec.DEPRECIATE_YN,
1424 x_txlv_rec.HOLD_PERIOD_DAYS,
1425 x_txlv_rec.OLD_SALVAGE_VALUE,
1426 x_txlv_rec.NEW_RESIDUAL_VALUE,
1427 x_txlv_rec.OLD_RESIDUAL_VALUE,
1428 x_txlv_rec.UNITS_RETIRED,
1429 x_txlv_rec.COST_RETIRED,
1430 x_txlv_rec.SALE_PROCEEDS,
1431 x_txlv_rec.REMOVAL_COST,
1432 x_txlv_rec.DNZ_ASSET_ID,
1433 x_txlv_rec.DATE_DUE,
1434 x_txlv_rec.REP_ASSET_ID,
1435 x_txlv_rec.LKE_ASSET_ID,
1436 x_txlv_rec.MATCH_AMOUNT,
1437 x_txlv_rec.SPLIT_INTO_SINGLES_FLAG,
1438 x_txlv_rec.SPLIT_INTO_UNITS,
1439 -- Multi-Currency Change
1440 x_txlv_rec.CURRENCY_CODE,
1441 x_txlv_rec.CURRENCY_CONVERSION_TYPE,
1442 x_txlv_rec.CURRENCY_CONVERSION_RATE,
1443 x_txlv_rec.CURRENCY_CONVERSION_DATE;
1444 -- Multi-Currency Change
1445 IF okl_talv_pk_csr%NOTFOUND THEN
1446 x_return_status := OKL_API.G_RET_STS_ERROR;
1447 END IF;
1448 CLOSE okl_talv_pk_csr;
1449 RETURN(x_return_status);
1450 EXCEPTION
1451 WHEN OTHERS THEN
1452 -- store SQL error message on message stack for caller
1453 OKL_API.set_message(
1454 G_APP_NAME,
1455 G_UNEXPECTED_ERROR,
1456 G_SQLCODE_TOKEN,
1457 SQLCODE,
1458 G_SQLERRM_TOKEN,
1459 SQLERRM);
1460 IF okl_talv_pk_csr%ISOPEN THEN
1461 CLOSE okl_talv_pk_csr;
1462 END IF;
1463 -- notify caller of an UNEXPECTED error
1464 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1465 RETURN(x_return_status);
1466 END get_txlv_rec;
1467 ----------------------------------------------------------------------------
1468 -- Start of Commnets
1469 -- Badrinath Kuchibholta
1470 -- Function Name : get_txdv_rec
1471 -- Description : Get Transaction Detail Line Record
1472 -- Business Rules :
1473 -- Parameters :
1474 -- Version :
1475 -- End of Commnets
1476 FUNCTION get_txdv_tbl(p_tal_id IN NUMBER,
1477 x_txdv_tbl OUT NOCOPY txdv_tbl_type)
1478 RETURN VARCHAR2
1479 IS
1480 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1481 i NUMBER := 0;
1482 CURSOR c_okl_asdv_pk_csr (p_tal_id IN NUMBER) IS
1483 SELECT id,
1484 object_version_number,
1485 tal_id,
1486 target_kle_id,
1487 line_detail_number,
1488 asset_number,
1489 description,
1490 quantity,
1491 cost,
1492 tax_book,
1493 life_in_months_tax,
1494 deprn_method_tax,
1495 deprn_rate_tax,
1496 salvage_value,
1497 attribute_category,
1498 attribute1,
1499 attribute2,
1500 attribute3,
1501 attribute4,
1502 attribute5,
1503 attribute6,
1504 attribute7,
1505 attribute8,
1506 attribute9,
1507 attribute10,
1508 attribute11,
1509 attribute12,
1510 attribute13,
1511 attribute14,
1512 attribute15,
1513 created_by,
1514 creation_date,
1515 last_updated_by,
1516 last_update_date,
1517 last_update_login,
1518 split_percent,
1519 inventory_item_id ,
1520 -- Multi-Currency Change
1521 currency_code,
1522 currency_conversion_type,
1523 currency_conversion_rate,
1524 currency_conversion_date
1525 -- Multi-Currency Change
1526 FROM Okl_Txd_Assets_V txd
1527 WHERE txd.tal_id = p_tal_id;
1528 BEGIN
1529 FOR r_okl_asdv_pk_csr IN c_okl_asdv_pk_csr(p_tal_id) LOOP
1530 x_txdv_tbl(i).ID := r_okl_asdv_pk_csr.ID;
1531 x_txdv_tbl(i).OBJECT_VERSION_NUMBER := r_okl_asdv_pk_csr.OBJECT_VERSION_NUMBER;
1532 x_txdv_tbl(i).TAL_ID := r_okl_asdv_pk_csr.TAL_ID;
1533 x_txdv_tbl(i).TARGET_KLE_ID := r_okl_asdv_pk_csr.TARGET_KLE_ID;
1534 x_txdv_tbl(i).LINE_DETAIL_NUMBER := r_okl_asdv_pk_csr.LINE_DETAIL_NUMBER;
1535 x_txdv_tbl(i).DESCRIPTION := r_okl_asdv_pk_csr.DESCRIPTION;
1536 x_txdv_tbl(i).ASSET_NUMBER := r_okl_asdv_pk_csr.ASSET_NUMBER;
1537 x_txdv_tbl(i).QUANTITY := r_okl_asdv_pk_csr.QUANTITY;
1538 x_txdv_tbl(i).COST := r_okl_asdv_pk_csr.COST;
1539 x_txdv_tbl(i).TAX_BOOK := r_okl_asdv_pk_csr.TAX_BOOK;
1540 x_txdv_tbl(i).LIFE_IN_MONTHS_TAX := r_okl_asdv_pk_csr.LIFE_IN_MONTHS_TAX;
1541 x_txdv_tbl(i).DEPRN_METHOD_TAX := r_okl_asdv_pk_csr.DEPRN_METHOD_TAX;
1542 x_txdv_tbl(i).DEPRN_RATE_TAX := r_okl_asdv_pk_csr.DEPRN_RATE_TAX;
1543 x_txdv_tbl(i).SALVAGE_VALUE := r_okl_asdv_pk_csr.SALVAGE_VALUE;
1544 x_txdv_tbl(i).ATTRIBUTE_CATEGORY := r_okl_asdv_pk_csr.ATTRIBUTE_CATEGORY;
1545 x_txdv_tbl(i).ATTRIBUTE1 := r_okl_asdv_pk_csr.ATTRIBUTE1;
1546 x_txdv_tbl(i).ATTRIBUTE2 := r_okl_asdv_pk_csr.ATTRIBUTE2;
1547 x_txdv_tbl(i).ATTRIBUTE3 := r_okl_asdv_pk_csr.ATTRIBUTE3;
1548 x_txdv_tbl(i).ATTRIBUTE4 := r_okl_asdv_pk_csr.ATTRIBUTE4;
1549 x_txdv_tbl(i).ATTRIBUTE5 := r_okl_asdv_pk_csr.ATTRIBUTE5;
1550 x_txdv_tbl(i).ATTRIBUTE6 := r_okl_asdv_pk_csr.ATTRIBUTE6;
1551 x_txdv_tbl(i).ATTRIBUTE7 := r_okl_asdv_pk_csr.ATTRIBUTE7;
1552 x_txdv_tbl(i).ATTRIBUTE8 := r_okl_asdv_pk_csr.ATTRIBUTE8;
1553 x_txdv_tbl(i).ATTRIBUTE9 := r_okl_asdv_pk_csr.ATTRIBUTE9;
1554 x_txdv_tbl(i).ATTRIBUTE10 := r_okl_asdv_pk_csr.ATTRIBUTE10;
1555 x_txdv_tbl(i).ATTRIBUTE11 := r_okl_asdv_pk_csr.ATTRIBUTE11;
1556 x_txdv_tbl(i).ATTRIBUTE12 := r_okl_asdv_pk_csr.ATTRIBUTE12;
1557 x_txdv_tbl(i).ATTRIBUTE13 := r_okl_asdv_pk_csr.ATTRIBUTE13;
1558 x_txdv_tbl(i).ATTRIBUTE14 := r_okl_asdv_pk_csr.ATTRIBUTE14;
1559 x_txdv_tbl(i).ATTRIBUTE15 := r_okl_asdv_pk_csr.ATTRIBUTE15;
1560 x_txdv_tbl(i).CREATED_BY := r_okl_asdv_pk_csr.CREATED_BY;
1561 x_txdv_tbl(i).CREATION_DATE := r_okl_asdv_pk_csr.CREATION_DATE;
1562 x_txdv_tbl(i).LAST_UPDATED_BY := r_okl_asdv_pk_csr.LAST_UPDATED_BY;
1563 x_txdv_tbl(i).LAST_UPDATE_DATE := r_okl_asdv_pk_csr.LAST_UPDATE_DATE;
1564 x_txdv_tbl(i).LAST_UPDATE_LOGIN := r_okl_asdv_pk_csr.LAST_UPDATE_LOGIN;
1565 x_txdv_tbl(i).SPLIT_PERCENT := r_okl_asdv_pk_csr.split_percent;
1566 x_txdv_tbl(i).INVENTORY_ITEM_ID := r_okl_asdv_pk_csr.inventory_item_id;
1567 -- Multi-Currency Change
1568 x_txdv_tbl(i).CURRENCY_CODE := r_okl_asdv_pk_csr.currency_code;
1569 x_txdv_tbl(i).CURRENCY_CONVERSION_TYPE := r_okl_asdv_pk_csr.currency_conversion_type;
1570 x_txdv_tbl(i).CURRENCY_CONVERSION_RATE := r_okl_asdv_pk_csr.currency_conversion_rate;
1571 x_txdv_tbl(i).CURRENCY_CONVERSION_DATE := r_okl_asdv_pk_csr.currency_conversion_date;
1572 -- Multi-Currency Change
1573 i := i + 1;
1574 IF c_okl_asdv_pk_csr%NOTFOUND THEN
1575 x_return_status := OKL_API.G_RET_STS_ERROR;
1576 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
1577 END IF;
1578 END LOOP;
1579 RETURN(x_return_status);
1580 EXCEPTION
1581 WHEN OTHERS THEN
1582 -- store SQL error message on message stack for caller
1583 OKL_API.set_message(
1584 G_APP_NAME,
1585 G_UNEXPECTED_ERROR,
1586 G_SQLCODE_TOKEN,
1587 SQLCODE,
1588 G_SQLERRM_TOKEN,
1589 SQLERRM);
1590 IF c_okl_asdv_pk_csr%ISOPEN THEN
1591 CLOSE c_okl_asdv_pk_csr;
1592 END IF;
1593 -- notify caller of an UNEXPECTED error
1594 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1595 return(x_return_status);
1596 END get_txdv_tbl;
1597 ----------------------------------------------------------------------------
1598 -- Start of Commnets
1599 -- Badrinath Kuchibholta
1600 -- Function Name : get_itiv_rec
1601 -- Description : Get Transaction item instance Record
1602 -- Business Rules :
1603 -- Parameters :
1604 -- Version :
1605 -- End of Commnets
1606 FUNCTION get_itiv_rec(p_kle_id IN NUMBER,
1607 x_itiv_rec OUT NOCOPY itiv_rec_type)
1608 RETURN VARCHAR2 IS
1609 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1610 CURSOR okl_itiv_pk_csr (p_kle_id IN NUMBER) IS
1611 SELECT ID,
1612 OBJECT_VERSION_NUMBER,
1613 TAS_ID,
1614 TAL_ID,
1615 KLE_ID,
1616 TAL_TYPE,
1617 LINE_NUMBER,
1618 INSTANCE_NUMBER_IB,
1619 OBJECT_ID1_NEW,
1620 OBJECT_ID2_NEW,
1621 JTOT_OBJECT_CODE_NEW,
1622 OBJECT_ID1_OLD,
1623 OBJECT_ID2_OLD,
1624 JTOT_OBJECT_CODE_OLD,
1625 INVENTORY_ORG_ID,
1626 SERIAL_NUMBER,
1627 MFG_SERIAL_NUMBER_YN,
1628 INVENTORY_ITEM_ID,
1629 INV_MASTER_ORG_ID,
1630 ATTRIBUTE_CATEGORY,
1631 ATTRIBUTE1,
1632 ATTRIBUTE2,
1633 ATTRIBUTE3,
1634 ATTRIBUTE4,
1635 ATTRIBUTE5,
1636 ATTRIBUTE6,
1637 ATTRIBUTE7,
1638 ATTRIBUTE8,
1639 ATTRIBUTE9,
1640 ATTRIBUTE10,
1641 ATTRIBUTE11,
1642 ATTRIBUTE12,
1643 ATTRIBUTE13,
1644 ATTRIBUTE14,
1645 ATTRIBUTE15,
1646 CREATED_BY,
1647 CREATION_DATE,
1648 LAST_UPDATED_BY,
1649 LAST_UPDATE_DATE,
1650 LAST_UPDATE_LOGIN
1651 FROM OKL_TXL_ITM_INSTS iti
1652 WHERE iti.kle_id = p_kle_id;
1653 BEGIN
1654 -- Get current database values
1655 OPEN okl_itiv_pk_csr (p_kle_id);
1656 FETCH okl_itiv_pk_csr INTO
1657 x_itiv_rec.ID,
1658 x_itiv_rec.OBJECT_VERSION_NUMBER,
1659 x_itiv_rec.TAS_ID,
1660 x_itiv_rec.TAL_ID,
1661 x_itiv_rec.KLE_ID,
1662 x_itiv_rec.TAL_TYPE,
1663 x_itiv_rec.LINE_NUMBER,
1664 x_itiv_rec.INSTANCE_NUMBER_IB,
1665 x_itiv_rec.OBJECT_ID1_NEW,
1666 x_itiv_rec.OBJECT_ID2_NEW,
1667 x_itiv_rec.JTOT_OBJECT_CODE_NEW,
1668 x_itiv_rec.OBJECT_ID1_OLD,
1669 x_itiv_rec.OBJECT_ID2_OLD,
1670 x_itiv_rec.JTOT_OBJECT_CODE_OLD,
1671 x_itiv_rec.INVENTORY_ORG_ID,
1672 x_itiv_rec.SERIAL_NUMBER,
1673 x_itiv_rec.MFG_SERIAL_NUMBER_YN,
1674 x_itiv_rec.INVENTORY_ITEM_ID,
1675 x_itiv_rec.INV_MASTER_ORG_ID,
1676 x_itiv_rec.ATTRIBUTE_CATEGORY,
1677 x_itiv_rec.ATTRIBUTE1,
1678 x_itiv_rec.ATTRIBUTE2,
1679 x_itiv_rec.ATTRIBUTE3,
1680 x_itiv_rec.ATTRIBUTE4,
1681 x_itiv_rec.ATTRIBUTE5,
1682 x_itiv_rec.ATTRIBUTE6,
1683 x_itiv_rec.ATTRIBUTE7,
1684 x_itiv_rec.ATTRIBUTE8,
1685 x_itiv_rec.ATTRIBUTE9,
1686 x_itiv_rec.ATTRIBUTE10,
1687 x_itiv_rec.ATTRIBUTE11,
1688 x_itiv_rec.ATTRIBUTE12,
1689 x_itiv_rec.ATTRIBUTE13,
1690 x_itiv_rec.ATTRIBUTE14,
1691 x_itiv_rec.ATTRIBUTE15,
1692 x_itiv_rec.CREATED_BY,
1693 x_itiv_rec.CREATION_DATE,
1694 x_itiv_rec.LAST_UPDATED_BY,
1695 x_itiv_rec.LAST_UPDATE_DATE,
1696 x_itiv_rec.LAST_UPDATE_LOGIN;
1697 IF okl_itiv_pk_csr%NOTFOUND THEN
1698 x_return_status := OKL_API.G_RET_STS_ERROR;
1699 END IF;
1700 CLOSE okl_itiv_pk_csr;
1701 RETURN(x_return_status);
1702 EXCEPTION
1703 WHEN OTHERS THEN
1704 -- store SQL error message on message stack for caller
1705 OKL_API.set_message(
1706 G_APP_NAME,
1707 G_UNEXPECTED_ERROR,
1708 G_SQLCODE_TOKEN,
1709 SQLCODE,
1710 G_SQLERRM_TOKEN,
1711 SQLERRM);
1712 IF okl_itiv_pk_csr%ISOPEN THEN
1713 CLOSE okl_itiv_pk_csr;
1714 END IF;
1715 -- notify caller of an UNEXPECTED error
1716 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1717 RETURN(x_return_status);
1718 END get_itiv_rec;
1719 --------------------------------------------------------------------------
1720 FUNCTION get_try_id(p_try_name IN OKL_TRX_TYPES_V.NAME%TYPE,
1721 x_try_id OUT NOCOPY OKC_LINE_STYLES_V.ID%TYPE)
1722 RETURN VARCHAR2 IS
1723 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1724 CURSOR c_get_try_id(p_try_name OKL_TRX_TYPES_V.NAME%TYPE) IS
1725 SELECT id
1726 FROM OKL_TRX_TYPES_tl
1727 WHERE upper(name) = upper(p_try_name)
1728 AND language = G_LANGUAGE;
1729 BEGIN
1730 IF (p_try_name = OKL_API.G_MISS_CHAR) OR
1731 (p_try_name IS NULL) THEN
1732 -- store SQL error message on message stack
1733 OKL_API.set_message(p_app_name => G_APP_NAME,
1734 p_msg_name => G_REQUIRED_VALUE,
1735 p_token1 => G_COL_NAME_TOKEN,
1736 p_token1_value => 'Try Name');
1737 -- halt validation as it is a required field
1738 RAISE G_EXCEPTION_STOP_VALIDATION;
1739 END IF;
1740 OPEN c_get_try_id(p_try_name);
1741 FETCH c_get_try_id INTO x_try_id;
1742 IF c_get_try_id%NOTFOUND THEN
1743 OKL_API.set_message(p_app_name => G_APP_NAME,
1744 p_msg_name => G_NO_MATCHING_RECORD,
1745 p_token1 => G_COL_NAME_TOKEN,
1746 p_token1_value => 'Try Name');
1747 RAISE G_EXCEPTION_HALT_VALIDATION;
1748 END IF;
1749 CLOSE c_get_try_id;
1750 RETURN x_return_status;
1751 EXCEPTION
1752 WHEN G_EXCEPTION_STOP_VALIDATION then
1753 -- We are here since the field is required
1754 -- Notify Error
1755 x_return_status := OKL_API.G_RET_STS_ERROR;
1756 WHEN G_EXCEPTION_HALT_VALIDATION then
1757 -- We are here b'cause we have no parent record
1758 -- If the cursor is open then it has to be closed
1759 IF c_get_try_id%ISOPEN THEN
1760 CLOSE c_get_try_id;
1761 END IF;
1762 -- notify caller of an error
1763 x_return_status := OKL_API.G_RET_STS_ERROR;
1764 WHEN OTHERS THEN
1765 -- store SQL error message on message stack for caller
1766 OKL_API.set_message(
1767 G_APP_NAME,
1768 G_UNEXPECTED_ERROR,
1769 G_SQLCODE_TOKEN,
1770 SQLCODE,
1771 G_SQLERRM_TOKEN,
1772 SQLERRM);
1773 -- notify caller of an UNEXPECTED error
1774 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1775 -- if the cursor is open
1776 IF c_get_try_id%ISOPEN THEN
1777 CLOSE c_get_try_id;
1778 END IF;
1779 RETURN(x_return_status);
1780 END get_try_id;
1781 --4-------------------------------------------------------------------------
1782 -- FUNCTION get_rec for: OKC_K_ITEMS_V
1783 ---------------------------------------------------------------------------
1784 FUNCTION get_rec_cimv(p_cle_id IN OKC_K_ITEMS_V.CLE_ID%TYPE,
1785 p_dnz_chr_id IN OKC_K_ITEMS_V.DNZ_CHR_ID%TYPE,
1786 x_cimv_rec OUT NOCOPY cimv_rec_type)
1787 RETURN VARCHAR2 IS
1788 CURSOR okc_cimv_pk_csr(p_cle_id OKC_K_ITEMS_V.CLE_ID%TYPE,
1789 p_dnz_chr_id OKC_K_ITEMS_V.DNZ_CHR_ID%TYPE) IS
1790 SELECT CIM.ID,
1791 CIM.OBJECT_VERSION_NUMBER,
1792 CIM.CLE_ID,
1793 CIM.CHR_ID,
1794 CIM.CLE_ID_FOR,
1795 CIM.DNZ_CHR_ID,
1796 CIM.OBJECT1_ID1,
1797 CIM.OBJECT1_ID2,
1798 CIM.JTOT_OBJECT1_CODE,
1799 CIM.UOM_CODE,
1800 CIM.EXCEPTION_YN,
1801 CIM.NUMBER_OF_ITEMS,
1802 CIM.UPG_ORIG_SYSTEM_REF,
1803 CIM.UPG_ORIG_SYSTEM_REF_ID,
1804 CIM.PRICED_ITEM_YN,
1805 CIM.CREATED_BY,
1806 CIM.CREATION_DATE,
1807 CIM.LAST_UPDATED_BY,
1808 CIM.LAST_UPDATE_DATE,
1809 CIM.LAST_UPDATE_LOGIN
1810 FROM okc_k_items_v cim
1811 WHERE cim.dnz_chr_id = p_dnz_chr_id
1812 AND cim.cle_id = p_cle_id;
1813 l_okc_cimv_pk okc_cimv_pk_csr%ROWTYPE;
1814 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1815 BEGIN
1816 OPEN okc_cimv_pk_csr(p_cle_id,
1817 p_dnz_chr_id);
1818 FETCH okc_cimv_pk_csr INTO
1819 x_cimv_rec.ID,
1820 x_cimv_rec.OBJECT_VERSION_NUMBER,
1821 x_cimv_rec.CLE_ID,
1822 x_cimv_rec.CHR_ID,
1823 x_cimv_rec.CLE_ID_FOR,
1824 x_cimv_rec.DNZ_CHR_ID,
1825 x_cimv_rec.OBJECT1_ID1,
1826 x_cimv_rec.OBJECT1_ID2,
1827 x_cimv_rec.JTOT_OBJECT1_CODE,
1828 x_cimv_rec.UOM_CODE,
1829 x_cimv_rec.EXCEPTION_YN,
1830 x_cimv_rec.NUMBER_OF_ITEMS,
1831 x_cimv_rec.UPG_ORIG_SYSTEM_REF,
1832 x_cimv_rec.UPG_ORIG_SYSTEM_REF_ID,
1833 x_cimv_rec.PRICED_ITEM_YN,
1834 x_cimv_rec.CREATED_BY,
1835 x_cimv_rec.CREATION_DATE,
1836 x_cimv_rec.LAST_UPDATED_BY,
1837 x_cimv_rec.LAST_UPDATE_DATE,
1838 x_cimv_rec.LAST_UPDATE_LOGIN;
1839 IF okc_cimv_pk_csr%NOTFOUND THEN
1840 x_return_status := OKL_API.G_RET_STS_ERROR;
1841 END IF;
1842 IF (okc_cimv_pk_csr%ROWCOUNT > 1) THEN
1843 x_return_status := OKL_API.G_RET_STS_ERROR;
1844 END IF;
1845 CLOSE okc_cimv_pk_csr;
1846 RETURN(x_return_status);
1847 EXCEPTION
1848 WHEN OTHERS THEN
1849 -- store SQL error message on message stack for caller
1850 OKL_API.set_message(
1851 G_APP_NAME,
1852 G_UNEXPECTED_ERROR,
1853 G_SQLCODE_TOKEN,
1854 SQLCODE,
1855 G_SQLERRM_TOKEN,
1856 SQLERRM);
1857 -- notify caller of an UNEXPECTED error
1858 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1859 -- if the cursor is open
1860 IF okc_cimv_pk_csr%ISOPEN THEN
1861 CLOSE okc_cimv_pk_csr;
1862 END IF;
1863 RETURN(x_return_status);
1864 END get_rec_cimv;
1865 -------------------------------------------------------------------------------------------------
1866 -- Start of Commnets
1867 -- Badrinath Kuchibholta
1868 -- Procedure Name : Create_asset_header
1869 -- Description : Creation of Asset Header
1870 -- Business Rules :
1871 -- Parameters :
1872 -- Version :
1873 -- End of Commnets
1874 PROCEDURE Create_asset_header(
1875 p_api_version IN NUMBER,
1876 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1877 x_return_status OUT NOCOPY VARCHAR2,
1878 x_msg_count OUT NOCOPY NUMBER,
1879 x_msg_data OUT NOCOPY VARCHAR2,
1880 p_trxv_rec IN trxv_rec_type,
1881 x_trxv_rec OUT NOCOPY trxv_rec_type) IS
1882 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TRX_ASSET_HEADER';
1883 BEGIN
1884 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1885 -- Call start_activity to create savepoint, check compatibility
1886 -- and initialize message list
1887 x_return_status := OKL_API.START_ACTIVITY (
1888 l_api_name
1889 ,p_init_msg_list
1890 ,'_PVT'
1891 ,x_return_status);
1892 -- Check if activity started successfully
1893 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1894 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1895 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1896 RAISE OKL_API.G_EXCEPTION_ERROR;
1897 END IF;
1898 -- evaluate conditions, build outcomes for true conditions and
1899 -- put them on outcome queue
1900 OKL_TRX_ASSETS_PUB.create_trx_ass_h_def(
1901 p_api_version => p_api_version,
1902 p_init_msg_list => p_init_msg_list,
1903 x_return_status => x_return_status,
1904 x_msg_count => x_msg_count,
1905 x_msg_data => x_msg_data,
1906 p_thpv_rec => p_trxv_rec,
1907 x_thpv_rec => x_trxv_rec);
1908 OKL_API.END_ACTIVITY (x_msg_count,
1909 x_msg_data );
1910 EXCEPTION
1911 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1912 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1913 l_api_name,
1914 G_PKG_NAME,
1915 'OKL_API.G_RET_STS_ERROR',
1916 x_msg_count,
1917 x_msg_data,
1918 '_PVT');
1919 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1920 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1921 l_api_name,
1922 G_PKG_NAME,
1923 'OKL_API.G_RET_STS_UNEXP_ERROR',
1924 x_msg_count,
1925 x_msg_data,
1926 '_PVT');
1927 WHEN OTHERS THEN
1928 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1929 l_api_name,
1930 G_PKG_NAME,
1931 'OTHERS',
1932 x_msg_count,
1933 x_msg_data,
1934 '_PVT');
1935 END Create_asset_header;
1936 -------------------------------------------------------------------------------------------------
1937 -- Start of Commnets
1938 -- Badrinath Kuchibholta
1939 -- Procedure Name : Update_asset_header
1940 -- Description : Update of Asset Header
1941 -- Business Rules :
1942 -- Parameters :
1943 -- Version :
1944 -- End of Commnets
1945 PROCEDURE Update_asset_header(
1946 p_api_version IN NUMBER,
1947 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1948 x_return_status OUT NOCOPY VARCHAR2,
1949 x_msg_count OUT NOCOPY NUMBER,
1950 x_msg_data OUT NOCOPY VARCHAR2,
1951 p_trxv_rec IN trxv_rec_type,
1952 x_trxv_rec OUT NOCOPY trxv_rec_type) IS
1953 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_TRX_ASSET_HEADER';
1954 BEGIN
1955 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1956 -- Call start_activity to create savepoint, check compatibility
1957 -- and initialize message list
1958 x_return_status := OKL_API.START_ACTIVITY (
1959 l_api_name
1960 ,p_init_msg_list
1961 ,'_PVT'
1962 ,x_return_status);
1963 -- Check if activity started successfully
1964 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1965 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1966 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1967 RAISE OKL_API.G_EXCEPTION_ERROR;
1968 END IF;
1969 -- evaluate conditions, build outcomes for true conditions and
1970 -- put them on outcome queue
1971 OKL_TRX_ASSETS_PUB.update_trx_ass_h_def(
1972 p_api_version => p_api_version,
1973 p_init_msg_list => p_init_msg_list,
1974 x_return_status => x_return_status,
1975 x_msg_count => x_msg_count,
1976 x_msg_data => x_msg_data,
1977 p_thpv_rec => p_trxv_rec,
1978 x_thpv_rec => x_trxv_rec);
1979 OKL_API.END_ACTIVITY (x_msg_count,
1980 x_msg_data );
1981 EXCEPTION
1982 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1983 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1984 l_api_name,
1985 G_PKG_NAME,
1986 'OKL_API.G_RET_STS_ERROR',
1987 x_msg_count,
1988 x_msg_data,
1989 '_PVT');
1990 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1991 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1992 l_api_name,
1993 G_PKG_NAME,
1994 'OKL_API.G_RET_STS_UNEXP_ERROR',
1995 x_msg_count,
1996 x_msg_data,
1997 '_PVT');
1998 WHEN OTHERS THEN
1999 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2000 l_api_name,
2001 G_PKG_NAME,
2002 'OTHERS',
2003 x_msg_count,
2004 x_msg_data,
2005 '_PVT');
2006 END Update_asset_header;
2007 -------------------------------------------------------------------------------------------------
2008 -- Start of Commnets
2009 -- Badrinath Kuchibholta
2010 -- Procedure Name : Create_asset_lines
2011 -- Description : Creation of Asset Lines
2012 -- Business Rules :
2013 -- Parameters :
2014 -- Version :
2015 -- End of Commnets
2016 PROCEDURE Create_asset_lines(
2017 p_api_version IN NUMBER,
2018 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2019 x_return_status OUT NOCOPY VARCHAR2,
2020 x_msg_count OUT NOCOPY NUMBER,
2021 x_msg_data OUT NOCOPY VARCHAR2,
2022 p_talv_rec IN talv_rec_type,
2023 x_talv_rec OUT NOCOPY talv_rec_type)
2024 IS
2025 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TXL_ASSET_LINE';
2026 BEGIN
2027 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2028 -- Call start_activity to create savepoint, check compatibility
2029 -- and initialize message list
2030 x_return_status := OKL_API.START_ACTIVITY (
2031 l_api_name
2032 ,p_init_msg_list
2033 ,'_PVT'
2034 ,x_return_status);
2035 -- Check if activity started successfully
2036 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2037 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2038 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2039 RAISE OKL_API.G_EXCEPTION_ERROR;
2040 END IF;
2041 OKL_TXL_ASSETS_PUB.create_txl_asset_def(
2042 p_api_version => p_api_version,
2043 p_init_msg_list => p_init_msg_list,
2044 x_return_status => x_return_status,
2045 x_msg_count => x_msg_count,
2046 x_msg_data => x_msg_data,
2047 p_tlpv_rec => p_talv_rec,
2048 x_tlpv_rec => x_talv_rec);
2049 OKL_API.END_ACTIVITY (x_msg_count,
2050 x_msg_data );
2051 EXCEPTION
2052 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2053 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2054 l_api_name,
2055 G_PKG_NAME,
2056 'OKL_API.G_RET_STS_ERROR',
2057 x_msg_count,
2058 x_msg_data,
2059 '_PVT');
2060 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2061 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2062 l_api_name,
2063 G_PKG_NAME,
2064 'OKL_API.G_RET_STS_UNEXP_ERROR',
2065 x_msg_count,
2066 x_msg_data,
2067 '_PVT');
2068 WHEN OTHERS THEN
2069 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2070 l_api_name,
2071 G_PKG_NAME,
2072 'OTHERS',
2073 x_msg_count,
2074 x_msg_data,
2075 '_PVT');
2076 END Create_asset_lines;
2077 -------------------------------------------------------------------------------------------------
2078 -- Start of Commnets
2079 -- Badrinath Kuchibholta
2080 -- Procedure Name : Create_asset_line_details
2081 -- Description : Creation of asset_line_details
2082 -- Business Rules :
2083 -- Parameters :
2084 -- Version :
2085 -- End of Commnets
2086 PROCEDURE Create_asset_line_details(
2087 p_api_version IN NUMBER,
2088 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2089 x_return_status OUT NOCOPY VARCHAR2,
2090 x_msg_count OUT NOCOPY NUMBER,
2091 x_msg_data OUT NOCOPY VARCHAR2,
2092 p_txdv_tbl IN txdv_tbl_type,
2093 x_txdv_tbl OUT NOCOPY txdv_tbl_type)
2094 IS
2095 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TXD_ASSET_DTL';
2096 BEGIN
2097 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2098 -- Call start_activity to create savepoint, check compatibility
2099 -- and initialize message list
2100 x_return_status := OKL_API.START_ACTIVITY (
2101 l_api_name
2102 ,p_init_msg_list
2103 ,'_PVT'
2104 ,x_return_status);
2105 -- Check if activity started successfully
2106 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2107 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2108 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2109 RAISE OKL_API.G_EXCEPTION_ERROR;
2110 END IF;
2111 OKL_TXD_ASSETS_PUB.create_txd_asset_def(
2112 p_api_version => p_api_version,
2113 p_init_msg_list => p_init_msg_list,
2114 x_return_status => x_return_status,
2115 x_msg_count => x_msg_count,
2116 x_msg_data => x_msg_data,
2117 p_adpv_tbl => p_txdv_tbl,
2118 x_adpv_tbl => x_txdv_tbl);
2119 OKL_API.END_ACTIVITY (x_msg_count,
2120 x_msg_data );
2121 EXCEPTION
2122 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2123 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2124 l_api_name,
2125 G_PKG_NAME,
2126 'OKL_API.G_RET_STS_ERROR',
2127 x_msg_count,
2128 x_msg_data,
2129 '_PVT');
2130 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2131 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2132 l_api_name,
2133 G_PKG_NAME,
2134 'OKL_API.G_RET_STS_UNEXP_ERROR',
2135 x_msg_count,
2136 x_msg_data,
2137 '_PVT');
2138 WHEN OTHERS THEN
2139 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2140 l_api_name,
2141 G_PKG_NAME,
2142 'OTHERS',
2143 x_msg_count,
2144 x_msg_data,
2145 '_PVT');
2146 END Create_asset_line_details;
2147
2148 -------------------------------------------------------------------------------------------------
2149 -- Start of Commnets
2150 -- Badrinath Kuchibholta
2151 -- Procedure Name : Create_asset_line_details
2152 -- Description : Creation of asset_line_details
2153 -- Business Rules :
2154 -- Parameters :
2155 -- Version :
2156 -- End of Commnets
2157 PROCEDURE Create_asset_line_details(
2158 p_api_version IN NUMBER,
2159 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2160 x_return_status OUT NOCOPY VARCHAR2,
2161 x_msg_count OUT NOCOPY NUMBER,
2162 x_msg_data OUT NOCOPY VARCHAR2,
2163 p_txdv_rec IN txdv_rec_type,
2164 x_txdv_rec OUT NOCOPY txdv_rec_type)
2165 IS
2166 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TXD_ASSET_DTL';
2167 BEGIN
2168 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2169 -- Call start_activity to create savepoint, check compatibility
2170 -- and initialize message list
2171 x_return_status := OKL_API.START_ACTIVITY (
2172 l_api_name
2173 ,p_init_msg_list
2174 ,'_PVT'
2175 ,x_return_status);
2176 -- Check if activity started successfully
2177 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2178 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2179 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2180 RAISE OKL_API.G_EXCEPTION_ERROR;
2181 END IF;
2182 OKL_TXD_ASSETS_PUB.create_txd_asset_def(
2183 p_api_version => p_api_version,
2184 p_init_msg_list => p_init_msg_list,
2185 x_return_status => x_return_status,
2186 x_msg_count => x_msg_count,
2187 x_msg_data => x_msg_data,
2188 p_adpv_rec => p_txdv_rec,
2189 x_adpv_rec => x_txdv_rec);
2190 OKL_API.END_ACTIVITY (x_msg_count,
2191 x_msg_data );
2192 EXCEPTION
2193 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2194 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2195 l_api_name,
2196 G_PKG_NAME,
2197 'OKL_API.G_RET_STS_ERROR',
2198 x_msg_count,
2199 x_msg_data,
2200 '_PVT');
2201 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2202 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2203 l_api_name,
2204 G_PKG_NAME,
2205 'OKL_API.G_RET_STS_UNEXP_ERROR',
2206 x_msg_count,
2207 x_msg_data,
2208 '_PVT');
2209 WHEN OTHERS THEN
2210 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2211 l_api_name,
2212 G_PKG_NAME,
2213 'OTHERS',
2214 x_msg_count,
2215 x_msg_data,
2216 '_PVT');
2217 END Create_asset_line_details;
2218 --------------------------------------------------------------------------------------------------------------
2219 PROCEDURE create_txl_iti(
2220 p_api_version IN NUMBER,
2221 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2222 x_return_status OUT NOCOPY VARCHAR2,
2223 x_msg_count OUT NOCOPY NUMBER,
2224 x_msg_data OUT NOCOPY VARCHAR2,
2225 p_itiv_rec IN itiv_rec_type,
2226 x_itiv_rec OUT NOCOPY itiv_rec_type) IS
2227
2228 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TXL_ITM_INSTS';
2229 BEGIN
2230 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2231 -- Call start_activity to create savepoint, check compatibility
2232 -- and initialize message list
2233 x_return_status := OKL_API.START_ACTIVITY (
2234 l_api_name
2235 ,p_init_msg_list
2236 ,'_PVT'
2237 ,x_return_status);
2238 -- Check if activity started successfully
2239 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2240 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2241 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2242 RAISE OKL_API.G_EXCEPTION_ERROR;
2243 END IF;
2244 OKL_TXL_ITM_INSTS_PUB.create_txl_itm_insts(
2245 p_api_version => p_api_version,
2246 p_init_msg_list => p_init_msg_list,
2247 x_return_status => x_return_status,
2248 x_msg_count => x_msg_count,
2249 x_msg_data => x_msg_data,
2250 p_iipv_rec => p_itiv_rec,
2251 x_iipv_rec => x_itiv_rec);
2252 OKL_API.END_ACTIVITY (x_msg_count,
2253 x_msg_data );
2254 EXCEPTION
2255 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2256 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2257 l_api_name,
2258 G_PKG_NAME,
2259 'OKL_API.G_RET_STS_ERROR',
2260 x_msg_count,
2261 x_msg_data,
2262 '_PVT');
2263 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2264 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2265 l_api_name,
2266 G_PKG_NAME,
2267 'OKL_API.G_RET_STS_UNEXP_ERROR',
2268 x_msg_count,
2269 x_msg_data,
2270 '_PVT');
2271 WHEN OTHERS THEN
2272 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2273 l_api_name,
2274 G_PKG_NAME,
2275 'OTHERS',
2276 x_msg_count,
2277 x_msg_data,
2278 '_PVT');
2279 END create_txl_iti;
2280 --------------------------------------------------------------------------------------------------------------
2281 PROCEDURE create_supp_invoice_dtls(p_api_version IN NUMBER,
2282 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2283 x_return_status OUT NOCOPY VARCHAR2,
2284 x_msg_count OUT NOCOPY NUMBER,
2285 x_msg_data OUT NOCOPY VARCHAR2,
2286 p_cle_id IN OKC_K_LINES_V.ID%TYPE,
2287 p_fin_cle_id IN OKC_K_LINES_V.ID%TYPE) IS
2288
2289 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_SID';
2290 ln_cle_id OKL_SUPP_INVOICE_DTLS.CLE_ID%TYPE;
2291 ln_fa_cle_id OKL_SUPP_INVOICE_DTLS.FA_CLE_ID%TYPE;
2292 l_sidv_rec sidv_rec_type;
2293 lx_sidv_rec sidv_rec_type;
2294 lad_sidv_rec sidv_rec_type;
2295 ladx_sidv_rec sidv_rec_type;
2296 i NUMBER :=0;
2297 ln_dummy NUMBER :=0;
2298 ln1_dummy NUMBER :=0;
2299 CURSOR c_validate_supp(p_cle_id OKL_K_LINES_V.ID%TYPE)
2300 IS
2301 SELECT 1
2302 FROM DUAL
2303 WHERE EXISTS (SELECT 1
2304 FROM OKL_SUPP_INVOICE_DTLS_V
2305 WHERE cle_id = p_cle_id);
2306
2307 CURSOR c_model_line_id(p_cle_id OKL_K_LINES_V.ID%TYPE)
2308 IS
2309 SELECT cle_ml.id ml_cle_id,
2310 cle_fa.id fa_cle_id
2311 FROM OKC_K_LINES_V cle_fa,
2312 OKC_LINE_STYLES_V lse_fa,
2313 OKC_K_LINES_V cle_ml,
2314 OKC_LINE_STYLES_V lse_ml
2315 WHERE cle_ml.cle_id = p_cle_id
2316 AND cle_ml.lse_id = lse_ml.id
2317 AND lse_ml.lty_code = G_MODEL_LINE_LTY_CODE
2318 AND cle_fa.cle_id = cle_ml.cle_id
2319 AND cle_fa.dnz_chr_id = cle_ml.dnz_chr_id
2320 AND cle_fa.lse_id = lse_fa.id
2321 AND lse_fa.lty_code = G_FA_LINE_LTY_CODE;
2322
2323 CURSOR c_addon_line_id(p_cle_id OKL_K_LINES_V.ID%TYPE)
2324 IS
2325 SELECT cle_ad.id ad_cle_id,
2326 cle_fa.id fa_cle_id
2327 FROM OKC_K_LINES_V cle_ad,
2328 OKC_LINE_STYLES_V lse_ad,
2329 OKC_K_LINES_V cle_fa,
2330 OKC_LINE_STYLES_V lse_fa,
2331 OKC_K_LINES_V cle_ml,
2332 OKC_LINE_STYLES_V lse_ml
2333 WHERE cle_ml.cle_id = p_cle_id
2334 AND cle_ml.lse_id = lse_ml.id
2335 AND lse_ml.lty_code = G_MODEL_LINE_LTY_CODE
2336 AND cle_fa.cle_id = cle_ml.cle_id
2337 AND cle_fa.dnz_chr_id = cle_ml.dnz_chr_id
2338 AND cle_fa.lse_id = lse_fa.id
2339 AND lse_fa.lty_code = G_FA_LINE_LTY_CODE
2340 AND cle_ad.cle_id = cle_ml.id
2341 AND cle_ad.dnz_chr_id = cle_ml.dnz_chr_id
2342 AND cle_ad.lse_id = lse_ad.id
2343 AND lse_ad.lty_code = G_ADDON_LINE_LTY_CODE;
2344
2345 CURSOR c_new_addon_line_id(p_cle_id OKL_K_LINES_V.ID%TYPE,
2346 p_orig_cle_id OKC_K_LINES_V.ORIG_SYSTEM_ID1%TYPE)
2347 IS
2348 SELECT cle_ad.id ad_cle_id,
2349 cle_fa.id fa_cle_id
2350 FROM OKC_K_LINES_V cle_ad,
2351 OKC_LINE_STYLES_V lse_ad,
2352 OKC_K_LINES_V cle_fa,
2353 OKC_LINE_STYLES_V lse_fa,
2354 OKC_K_LINES_V cle_ml,
2355 OKC_LINE_STYLES_V lse_ml
2356 WHERE cle_ml.cle_id = p_cle_id
2357 AND cle_ml.lse_id = lse_ml.id
2358 AND lse_ml.lty_code = G_MODEL_LINE_LTY_CODE
2359 AND cle_fa.cle_id = cle_ml.cle_id
2360 AND cle_fa.dnz_chr_id = cle_ml.dnz_chr_id
2361 AND cle_fa.lse_id = lse_fa.id
2362 AND lse_fa.lty_code = G_FA_LINE_LTY_CODE
2363 AND cle_ad.cle_id = cle_ml.id
2364 AND cle_ad.orig_system_id1 = p_orig_cle_id
2365 AND cle_ad.dnz_chr_id = cle_ml.dnz_chr_id
2366 AND cle_ad.lse_id = lse_ad.id
2367 AND lse_ad.lty_code = G_ADDON_LINE_LTY_CODE;
2368
2369 BEGIN
2370 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2371 -- Call start_activity to create savepoint, check compatibility
2372 -- and initialize message list
2373 x_return_status := OKL_API.START_ACTIVITY (
2374 l_api_name
2375 ,p_init_msg_list
2376 ,'_PVT'
2377 ,x_return_status);
2378 -- Check if activity started successfully
2379 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2380 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2381 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2382 RAISE OKL_API.G_EXCEPTION_ERROR;
2383 END IF;
2384 OPEN c_model_line_id(p_cle_id => p_cle_id);
2385 FETCH c_model_line_id INTO ln_cle_id,
2386 ln_fa_cle_id;
2387 CLOSE c_model_line_id;
2388 OPEN c_validate_supp(p_cle_id => ln_cle_id);
2389 FETCH c_validate_supp INTO ln_dummy;
2390 CLOSE c_validate_supp;
2391 -- Copy the supplier Invoice Details associated to Model line
2392 IF ln_dummy = 1 THEN
2393 -- Get the SID Record
2394 x_return_status := get_sidv_rec(p_cle_id => ln_cle_id,
2395 x_sidv_rec => l_sidv_rec);
2396 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2397 OKL_API.set_message(p_app_name => G_APP_NAME,
2398 p_msg_name => G_NO_MATCHING_RECORD,
2399 p_token1 => G_COL_NAME_TOKEN,
2400 p_token1_value => 'OKL_SUPP_INVOICE_DTLS_V record');
2401 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2402 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2403 OKL_API.set_message(p_app_name => G_APP_NAME,
2404 p_msg_name => G_NO_MATCHING_RECORD,
2405 p_token1 => G_COL_NAME_TOKEN,
2406 p_token1_value => 'OKL_SUPP_INVOICE_DTLS_V record');
2407 RAISE OKL_API.G_EXCEPTION_ERROR;
2408 END IF;
2409 OPEN c_model_line_id(p_cle_id => p_fin_cle_id);
2410 FETCH c_model_line_id INTO l_sidv_rec.cle_id,
2411 l_sidv_rec.fa_cle_id;
2412 CLOSE c_model_line_id;
2413 OKL_SUPP_INVOICE_DTLS_PUB.create_sup_inv_dtls(
2414 p_api_version => p_api_version,
2415 p_init_msg_list => p_init_msg_list,
2416 x_return_status => x_return_status,
2417 x_msg_count => x_msg_count,
2418 x_msg_data => x_msg_data,
2419 p_sidv_rec => l_sidv_rec,
2420 x_sidv_rec => lx_sidv_rec);
2421 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2422 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2423 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2424 RAISE OKL_API.G_EXCEPTION_ERROR;
2425 END IF;
2426 END IF;
2427 -- Copy the supplier Invoice Details associated to Add on line
2428 FOR r_addon_line_id IN c_addon_line_id(p_cle_id => p_cle_id) LOOP
2429 IF r_addon_line_id.ad_cle_id IS NOT NULL OR
2430 r_addon_line_id.ad_cle_id <> OKL_API.G_MISS_NUM THEN
2431 OPEN c_validate_supp(p_cle_id => r_addon_line_id.ad_cle_id);
2432 FETCH c_validate_supp INTO ln1_dummy;
2433 CLOSE c_validate_supp;
2434 IF ln1_dummy = 1 THEN
2435 x_return_status := get_sidv_rec(p_cle_id => r_addon_line_id.ad_cle_id,
2436 x_sidv_rec => lad_sidv_rec);
2437 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2438 OKL_API.set_message(p_app_name => G_APP_NAME,
2439 p_msg_name => G_NO_MATCHING_RECORD,
2440 p_token1 => G_COL_NAME_TOKEN,
2441 p_token1_value => 'OKL_SUPP_INVOICE_DTLS_V record');
2442 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2443 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2444 OKL_API.set_message(p_app_name => G_APP_NAME,
2445 p_msg_name => G_NO_MATCHING_RECORD,
2446 p_token1 => G_COL_NAME_TOKEN,
2447 p_token1_value => 'OKL_SUPP_INVOICE_DTLS_V record');
2448 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
2449 END IF;
2450 OPEN c_new_addon_line_id(p_cle_id => p_fin_cle_id,
2451 p_orig_cle_id => r_addon_line_id.ad_cle_id);
2452 FETCH c_new_addon_line_id INTO lad_sidv_rec.cle_id,
2453 lad_sidv_rec.fa_cle_id;
2454 CLOSE c_new_addon_line_id;
2455 OKL_SUPP_INVOICE_DTLS_PUB.create_sup_inv_dtls(
2456 p_api_version => p_api_version,
2457 p_init_msg_list => p_init_msg_list,
2458 x_return_status => x_return_status,
2459 x_msg_count => x_msg_count,
2460 x_msg_data => x_msg_data,
2461 p_sidv_rec => lad_sidv_rec,
2462 x_sidv_rec => ladx_sidv_rec);
2463 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2464 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2465 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2466 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
2467 END IF;
2468 ln1_dummy := 0;
2469 END IF;
2470 END IF;
2471 END LOOP;
2472 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2473 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2474 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2475 RAISE OKL_API.G_EXCEPTION_ERROR;
2476 END IF;
2477 OKL_API.END_ACTIVITY (x_msg_count,
2478 x_msg_data );
2479 EXCEPTION
2480 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2481 IF c_validate_supp%ISOPEN THEN
2482 CLOSE c_validate_supp;
2483 END IF;
2484 IF c_model_line_id%ISOPEN THEN
2485 CLOSE c_model_line_id;
2486 END IF;
2487 IF c_addon_line_id%ISOPEN THEN
2488 CLOSE c_addon_line_id;
2489 END IF;
2490 IF c_new_addon_line_id%ISOPEN THEN
2491 CLOSE c_new_addon_line_id;
2492 END IF;
2493 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2494 l_api_name,
2495 G_PKG_NAME,
2496 'OKL_API.G_RET_STS_ERROR',
2497 x_msg_count,
2498 x_msg_data,
2499 '_PVT');
2500 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2501 IF c_validate_supp%ISOPEN THEN
2502 CLOSE c_validate_supp;
2503 END IF;
2504 IF c_model_line_id%ISOPEN THEN
2505 CLOSE c_model_line_id;
2506 END IF;
2507 IF c_addon_line_id%ISOPEN THEN
2508 CLOSE c_addon_line_id;
2509 END IF;
2510 IF c_new_addon_line_id%ISOPEN THEN
2511 CLOSE c_new_addon_line_id;
2512 END IF;
2513 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2514 l_api_name,
2515 G_PKG_NAME,
2516 'OKL_API.G_RET_STS_UNEXP_ERROR',
2517 x_msg_count,
2518 x_msg_data,
2519 '_PVT');
2520 WHEN OTHERS THEN
2521 IF c_validate_supp%ISOPEN THEN
2522 CLOSE c_validate_supp;
2523 END IF;
2524 IF c_model_line_id%ISOPEN THEN
2525 CLOSE c_model_line_id;
2526 END IF;
2527 IF c_addon_line_id%ISOPEN THEN
2528 CLOSE c_addon_line_id;
2529 END IF;
2530 IF c_new_addon_line_id%ISOPEN THEN
2531 CLOSE c_new_addon_line_id;
2532 END IF;
2533 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2534 l_api_name,
2535 G_PKG_NAME,
2536 'OTHERS',
2537 x_msg_count,
2538 x_msg_data,
2539 '_PVT');
2540 END create_supp_invoice_dtls;
2541 -------------------------------------------------------------------------------------------------------
2542 PROCEDURE Create_asset_lines(
2543 p_api_version IN NUMBER,
2544 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2545 x_return_status OUT NOCOPY VARCHAR2,
2546 x_msg_count OUT NOCOPY NUMBER,
2547 x_msg_data OUT NOCOPY VARCHAR2,
2548 p_talv_rec IN talv_rec_type,
2549 p_trans_type IN OKL_TRX_ASSETS.TAS_TYPE%TYPE,
2550 x_trxv_rec OUT NOCOPY trxv_rec_type,
2551 x_talv_rec OUT NOCOPY talv_rec_type) IS
2552 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TXL_ASSET_LINE';
2553 l_trxv_rec trxv_rec_type;
2554 l_talv_rec talv_rec_type;
2555
2556 --Added by dpsingh for LE uptake
2557 l_chr_id NUMBER;
2558 l_cntrct_number OKC_K_HEADERS_B.CONTRACT_NUMBER%TYPE;
2559 l_legal_entity_id NUMBER;
2560
2561 BEGIN
2562 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2563 -- Call start_activity to create savepoint, check compatibility
2564 -- and initialize message list
2565 x_return_status := OKL_API.START_ACTIVITY (
2566 l_api_name
2567 ,p_init_msg_list
2568 ,'_PVT'
2569 ,x_return_status);
2570 -- Check if activity started successfully
2571 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2572 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2573 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2574 RAISE OKL_API.G_EXCEPTION_ERROR;
2575 END IF;
2576 -- Create New Header record and new Line record
2577 -- Before creating Header record
2578 -- we should make sure atleast the required record is given
2579 x_return_status := get_try_id(p_try_name => G_TRY_NAME,
2580 x_try_id => l_trxv_rec.try_id);
2581 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2582 OKL_API.set_message(p_app_name => G_APP_NAME,
2583 p_msg_name => G_NO_MATCHING_RECORD,
2584 p_token1 => G_COL_NAME_TOKEN,
2585 p_token1_value => 'try_id');
2586 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2587 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2588 OKL_API.set_message(p_app_name => G_APP_NAME,
2589 p_msg_name => G_NO_MATCHING_RECORD,
2590 p_token1 => G_COL_NAME_TOKEN,
2591 p_token1_value => 'try_id');
2592 RAISE OKL_API.G_EXCEPTION_ERROR;
2593 END IF;
2594 l_trxv_rec.tsu_code := 'ENTERED';
2595 l_trxv_rec.date_trans_occurred := sysdate;
2596 l_trxv_rec.tas_type := p_trans_type;
2597
2598 --Added by dpsingh for LE Uptake
2599 OPEN get_chr_id_csr(p_talv_rec.kle_id);
2600 FETCH get_chr_id_csr INTO l_chr_id;
2601 CLOSE get_chr_id_csr;
2602 l_legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(l_chr_id) ;
2603 IF l_legal_entity_id IS NOT NULL THEN
2604 l_trxv_rec.legal_entity_id := l_legal_entity_id;
2605 ELSE
2606 -- get the contract number
2607 OPEN contract_num_csr(l_chr_id);
2608 FETCH contract_num_csr INTO l_cntrct_number;
2609 CLOSE contract_num_csr;
2610 Okl_Api.set_message(p_app_name => g_app_name,
2611 p_msg_name => 'OKL_LE_NOT_EXIST_CNTRCT',
2612 p_token1 => 'CONTRACT_NUMBER',
2613 p_token1_value => l_cntrct_number);
2614 RAISE OKL_API.G_EXCEPTION_ERROR;
2615 END IF;
2616
2617 -- Now creating the new header record
2618 Create_asset_header(p_api_version => p_api_version,
2619 p_init_msg_list => p_init_msg_list,
2620 x_return_status => x_return_status,
2621 x_msg_count => x_msg_count,
2622 x_msg_data => x_msg_data,
2623 p_trxv_rec => l_trxv_rec,
2624 x_trxv_rec => x_trxv_rec);
2625 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2626 OKL_API.set_message(p_app_name => G_APP_NAME,
2627 p_msg_name => G_TRX_ID);
2628 l_trxv_rec := x_trxv_rec;
2629 l_trxv_rec.tsu_code := 'ERROR';
2630 Update_asset_header(p_api_version => p_api_version,
2631 p_init_msg_list => p_init_msg_list,
2632 x_return_status => x_return_status,
2633 x_msg_count => x_msg_count,
2634 x_msg_data => x_msg_data,
2635 p_trxv_rec => l_trxv_rec,
2636 x_trxv_rec => x_trxv_rec);
2637 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2638 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2639 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2640 RAISE OKL_API.G_EXCEPTION_ERROR;
2641 END IF;
2642 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2643 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2644 OKL_API.set_message(p_app_name => G_APP_NAME,
2645 p_msg_name => G_TRX_ID);
2646 l_trxv_rec := x_trxv_rec;
2647 l_trxv_rec.tsu_code := 'ERROR';
2648 Update_asset_header(p_api_version => p_api_version,
2649 p_init_msg_list => p_init_msg_list,
2650 x_return_status => x_return_status,
2651 x_msg_count => x_msg_count,
2652 x_msg_data => x_msg_data,
2653 p_trxv_rec => l_trxv_rec,
2654 x_trxv_rec => x_trxv_rec);
2655 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2656 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2657 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2658 RAISE OKL_API.G_EXCEPTION_ERROR;
2659 END IF;
2660 RAISE OKL_API.G_EXCEPTION_ERROR;
2661 END IF;
2662 -- Now we are creating the new line record
2663 l_talv_rec := p_talv_rec;
2664 l_talv_rec.tas_id := x_trxv_rec.id;
2665 IF (l_talv_rec.tal_type = OKL_API.G_MISS_CHAR OR
2666 l_talv_rec.tal_type IS NUll) THEN
2667 l_talv_rec.tal_type := p_trans_type;
2668 END IF;
2669 IF (l_talv_rec.line_number = OKL_API.G_MISS_NUM OR
2670 l_talv_rec.line_number IS NUll) THEN
2671 l_talv_rec.line_number := 1;
2672 ELSE
2673 l_talv_rec.line_number := l_talv_rec.line_number + 1;
2674 END IF;
2675 IF (l_talv_rec.description = OKL_API.G_MISS_CHAR OR
2676 l_talv_rec.description IS NUll) THEN
2677 l_talv_rec.description := 'CREATION OF FIXED ASSETS' ;
2678 END IF;
2679 IF p_trans_type NOT IN ('CRB','CRL','CSP','CRV','ALI') THEN
2680 -- x_return_status := generate_asset_number(p_old_asset_number => l_talv_rec.asset_number,
2681 -- x_asset_number => l_talv_rec.asset_number);
2682 x_return_status := generate_asset_number(x_asset_number => l_talv_rec.asset_number);
2683 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2684 OKL_API.set_message(p_app_name => G_APP_NAME,
2685 p_msg_name => G_GEN_ASSET_NUMBER);
2686 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2687 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2688 OKL_API.set_message(p_app_name => G_APP_NAME,
2689 p_msg_name => G_GEN_ASSET_NUMBER);
2690 RAISE OKL_API.G_EXCEPTION_ERROR;
2691 END IF;
2692 END IF;
2693 -- evaluate conditions, build outcomes for true conditions and
2694 -- put them on outcome queue
2695 OKL_TXL_ASSETS_PUB.create_txl_asset_def(
2696 p_api_version => p_api_version,
2697 p_init_msg_list => p_init_msg_list,
2698 x_return_status => x_return_status,
2699 x_msg_count => x_msg_count,
2700 x_msg_data => x_msg_data,
2701 p_tlpv_rec => l_talv_rec,
2702 x_tlpv_rec => x_talv_rec);
2703 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2704 OKL_API.set_message(p_app_name => G_APP_NAME,
2705 p_msg_name => G_KLE_ID);
2706 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2707 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2708 OKL_API.set_message(p_app_name => G_APP_NAME,
2709 p_msg_name => G_KLE_ID);
2710 RAISE OKL_API.G_EXCEPTION_ERROR;
2711 END IF;
2712 OKL_API.END_ACTIVITY (x_msg_count,
2713 x_msg_data );
2714 EXCEPTION
2715 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2716 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2717 l_api_name,
2718 G_PKG_NAME,
2719 'OKL_API.G_RET_STS_ERROR',
2720 x_msg_count,
2721 x_msg_data,
2722 '_PVT');
2723 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2724 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2725 l_api_name,
2726 G_PKG_NAME,
2727 'OKL_API.G_RET_STS_UNEXP_ERROR',
2728 x_msg_count,
2729 x_msg_data,
2730 '_PVT');
2731 WHEN OTHERS THEN
2732 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2733 l_api_name,
2734 G_PKG_NAME,
2735 'OTHERS',
2736 x_msg_count,
2737 x_msg_data,
2738 '_PVT');
2739 END Create_asset_lines;
2740 -------------------------------------------------------------------------------------------------------
2741 PROCEDURE Create_Asset_trx_txl_txd(
2742 p_api_version IN NUMBER,
2743 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2744 x_return_status OUT NOCOPY VARCHAR2,
2745 x_msg_count OUT NOCOPY NUMBER,
2746 x_msg_data OUT NOCOPY VARCHAR2,
2747 p_cle_id IN OKC_K_LINES_V.ID%TYPE,
2748 p_dnz_chr_id IN OKC_K_LINES_V.DNZ_CHR_ID%TYPE,
2749 p_fin_cle_id IN OKC_K_LINES_V.ID%TYPE,
2750 p_trans_type IN OKL_TRX_ASSETS.TAS_TYPE%TYPE,
2751 x_trxv_rec OUT NOCOPY trxv_rec_type,
2752 x_talv_rec OUT NOCOPY talv_rec_type,
2753 x_txdv_tbl OUT NOCOPY txdv_tbl_type) IS
2754 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_HEADER_LINE_DETAILS';
2755 l_trxv_rec trxv_rec_type;
2756 l_talv_rec talv_rec_type;
2757 l_txdv_tbl txdv_tbl_type;
2758 ln_dummy NUMBER :=0;
2759 i NUMBER :=0;
2760 CURSOR c_trans_line_dtl_exist(p_tal_id OKL_K_LINES_V.ID%TYPE)
2761 IS
2762 SELECT 1
2763 FROM DUAL
2764 WHERE EXISTS (SELECT '1'
2765 FROM OKL_TXD_ASSETS_V
2766 WHERE tal_id = p_tal_id);
2767
2768 CURSOR c_fa_line_id(p_cle_id OKL_K_LINES_V.ID%TYPE
2769 ,p_dnz_chr_id OKC_K_LINES_V.DNZ_CHR_ID%TYPE)
2770 IS
2771 SELECT cle.id
2772 FROM OKC_K_LINES_V cle,
2773 OKC_LINE_STYLES_V lse
2774 WHERE cle.cle_id = p_cle_id
2775 AND cle.dnz_chr_id = p_dnz_chr_id
2776 AND cle.lse_id = lse.id
2777 AND lse.lty_code = G_FA_LINE_LTY_CODE;
2778
2779 --Added by dpsingh for LE uptake
2780 l_cntrct_number OKC_K_HEADERS_B.CONTRACT_NUMBER%TYPE;
2781 l_legal_entity_id NUMBER;
2782
2783 BEGIN
2784 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2785 -- Call start_activity to create savepoint, check compatibility
2786 -- and initialize message list
2787 x_return_status := OKL_API.START_ACTIVITY (
2788 l_api_name
2789 ,p_init_msg_list
2790 ,'_PVT'
2791 ,x_return_status);
2792 -- Check if activity started successfully
2793 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2794 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2795 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2796 RAISE OKL_API.G_EXCEPTION_ERROR;
2797 END IF;
2798 -- Get the TAL Rec
2799 x_return_status := get_txlv_rec(p_kle_id => p_cle_id,
2800 x_txlv_rec => l_talv_rec);
2801 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2802 OKL_API.set_message(p_app_name => G_APP_NAME,
2803 p_msg_name => G_NO_MATCHING_RECORD,
2804 p_token1 => G_COL_NAME_TOKEN,
2805 p_token1_value => 'OKL_TXL_ASSETS_V record');
2806 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2807 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2808 OKL_API.set_message(p_app_name => G_APP_NAME,
2809 p_msg_name => G_NO_MATCHING_RECORD,
2810 p_token1 => G_COL_NAME_TOKEN,
2811 p_token1_value => 'OKL_TXL_ASSETS_V record');
2812 RAISE OKL_API.G_EXCEPTION_ERROR;
2813 END IF;
2814 -- Since the above get rec itiv will get the old kle_id
2815 -- w.r.t p_from cle_id(top Line).
2816 -- but We have to replace the same with new fixed asset id
2817 -- with respect to new x_cle_id(top line).
2818 OPEN c_fa_line_id(p_fin_cle_id,
2819 p_dnz_chr_id);
2820 FETCH c_fa_line_id INTO l_talv_rec.kle_id;
2821 CLOSE c_fa_line_id;
2822 -- Get the TRX Rec
2823 x_return_status := get_tasv_rec(p_tas_id => l_talv_rec.tas_id,
2824 x_trxv_rec => l_trxv_rec);
2825 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2826 OKL_API.set_message(p_app_name => G_APP_NAME,
2827 p_msg_name => G_NO_MATCHING_RECORD,
2828 p_token1 => G_COL_NAME_TOKEN,
2829 p_token1_value => 'OKL_TRX_ASSETS record');
2830 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2831 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2832 OKL_API.set_message(p_app_name => G_APP_NAME,
2833 p_msg_name => G_NO_MATCHING_RECORD,
2834 p_token1 => G_COL_NAME_TOKEN,
2835 p_token1_value => 'OKL_TRX_ASSETS record');
2836 RAISE OKL_API.G_EXCEPTION_ERROR;
2837 END IF;
2838 l_trxv_rec.tas_type := p_trans_type;
2839 l_trxv_rec.tsu_code := 'ENTERED';
2840 l_trxv_rec.date_trans_occurred := sysdate;
2841
2842 --Added by dpsingh for LE Uptake
2843 l_legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_dnz_chr_id) ;
2844 IF l_legal_entity_id IS NOT NULL THEN
2845 l_trxv_rec.legal_entity_id := l_legal_entity_id;
2846 ELSE
2847 -- get the contract number
2848 OPEN contract_num_csr(p_dnz_chr_id);
2849 FETCH contract_num_csr INTO l_cntrct_number;
2850 CLOSE contract_num_csr;
2851 Okl_Api.set_message(p_app_name => g_app_name,
2852 p_msg_name => 'OKL_LE_NOT_EXIST_CNTRCT',
2853 p_token1 => 'CONTRACT_NUMBER',
2854 p_token1_value => l_cntrct_number);
2855 RAISE OKL_API.G_EXCEPTION_ERROR;
2856 END IF;
2857 -- Now creating the new header record
2858 Create_asset_header(p_api_version => p_api_version,
2859 p_init_msg_list => p_init_msg_list,
2860 x_return_status => x_return_status,
2861 x_msg_count => x_msg_count,
2862 x_msg_data => x_msg_data,
2863 p_trxv_rec => l_trxv_rec,
2864 x_trxv_rec => x_trxv_rec);
2865 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2866 OKL_API.set_message(p_app_name => G_APP_NAME,
2867 p_msg_name => G_TRX_ID);
2868 l_trxv_rec := x_trxv_rec;
2869 l_trxv_rec.tsu_code := 'ERROR';
2870 Update_asset_header(p_api_version => p_api_version,
2871 p_init_msg_list => p_init_msg_list,
2872 x_return_status => x_return_status,
2873 x_msg_count => x_msg_count,
2874 x_msg_data => x_msg_data,
2875 p_trxv_rec => l_trxv_rec,
2876 x_trxv_rec => x_trxv_rec);
2877 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2878 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2879 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2880 RAISE OKL_API.G_EXCEPTION_ERROR;
2881 END IF;
2882 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2883 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2884 OKL_API.set_message(p_app_name => G_APP_NAME,
2885 p_msg_name => G_TRX_ID);
2886 l_trxv_rec := x_trxv_rec;
2887 l_trxv_rec.tsu_code := 'ERROR';
2888 Update_asset_header(p_api_version => p_api_version,
2889 p_init_msg_list => p_init_msg_list,
2890 x_return_status => x_return_status,
2891 x_msg_count => x_msg_count,
2892 x_msg_data => x_msg_data,
2893 p_trxv_rec => l_trxv_rec,
2894 x_trxv_rec => x_trxv_rec);
2895 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2896 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2897 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2898 RAISE OKL_API.G_EXCEPTION_ERROR;
2899 END IF;
2900 RAISE OKL_API.G_EXCEPTION_ERROR;
2901 END IF;
2902 l_talv_rec.tal_type := p_trans_type;
2903 -- Now we shoudl generate the Serial number
2904 IF p_trans_type NOT IN ('CRB','CRL','CSP','CRV','ALI') THEN
2905 -- x_return_status := generate_asset_number(p_old_asset_number => l_talv_rec.asset_number,
2906 -- x_asset_number => l_talv_rec.asset_number);
2907 x_return_status := generate_asset_number(x_asset_number => l_talv_rec.asset_number);
2908 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2909 OKL_API.set_message(p_app_name => G_APP_NAME,
2910 p_msg_name => G_GEN_ASSET_NUMBER);
2911 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2912 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2913 OKL_API.set_message(p_app_name => G_APP_NAME,
2914 p_msg_name => G_GEN_ASSET_NUMBER);
2915 RAISE OKL_API.G_EXCEPTION_ERROR;
2916 END IF;
2917 END IF;
2918 l_talv_rec.dnz_khr_id := p_dnz_chr_id;
2919 l_talv_rec.tas_id := x_trxv_rec.id;
2920 --Bug# 3657624 : Depreciation Rate should not be multiplied by 100
2921 /*
2922 --Bug# 3621663 : Flat rate support
2923 If nvl(l_talv_rec.deprn_rate,OKL_API.G_MISS_NUM) <> OKL_API.G_MISS_NUM then
2924 l_talv_rec.deprn_rate := l_talv_rec.deprn_rate * 100;
2925 End If;
2926 --Bug# 3621663 End
2927 */
2928 --Bug# 3657624 End
2929 -- Now we are creating the new line record
2930 Create_asset_lines(p_api_version => p_api_version,
2931 p_init_msg_list => p_init_msg_list,
2932 x_return_status => x_return_status,
2933 x_msg_count => x_msg_count,
2934 x_msg_data => x_msg_data,
2935 p_talv_rec => l_talv_rec,
2936 x_talv_rec => x_talv_rec);
2937 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2938 OKL_API.set_message(p_app_name => G_APP_NAME,
2939 p_msg_name => G_KLE_ID);
2940 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2941 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2942 OKL_API.set_message(p_app_name => G_APP_NAME,
2943 p_msg_name => G_KLE_ID);
2944 RAISE OKL_API.G_EXCEPTION_ERROR;
2945 END IF;
2946 -- Check to see if the Asset Details Records are there
2947 OPEN c_trans_line_dtl_exist(l_talv_rec.id);
2948 FETCH c_trans_line_dtl_exist INTO ln_dummy;
2949 CLOSE c_trans_line_dtl_exist;
2950 IF ln_dummy = 1 THEN
2951 x_return_status := get_txdv_tbl(p_tal_id => l_talv_rec.id,
2952 x_txdv_tbl => l_txdv_tbl);
2953 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2954 OKL_API.set_message(p_app_name => G_APP_NAME,
2955 p_msg_name => G_NO_MATCHING_RECORD,
2956 p_token1 => G_COL_NAME_TOKEN,
2957 p_token1_value => 'OKL_TXD_ASSETS_V record');
2958 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2959 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2960 OKL_API.set_message(p_app_name => G_APP_NAME,
2961 p_msg_name => G_NO_MATCHING_RECORD,
2962 p_token1 => G_COL_NAME_TOKEN,
2963 p_token1_value => 'OKL_TXD_ASSETS_V record');
2964 RAISE OKL_API.G_EXCEPTION_ERROR;
2965 END IF;
2966 IF (l_txdv_tbl.COUNT > 0) THEN
2967 i := l_txdv_tbl.FIRST;
2968 LOOP
2969 l_txdv_tbl(i).asset_number := l_talv_rec.asset_number;
2970 l_txdv_tbl(i).tal_id := x_talv_rec.id;
2971 --Bug# 3657624 : Depreciation Rate should not be multiplied by 100
2972 /*
2973 --Bug# 3621663 : Flat rate support
2974 If nvl(l_txdv_tbl(i).deprn_rate_tax,OKL_API.G_MISS_NUM) <> OKL_API.G_MISS_NUM then
2975 l_txdv_tbl(i).deprn_rate_tax := l_txdv_tbl(i).deprn_rate_tax * 100;
2976 End If;
2977 --Bug# 3621663
2978 */
2979 --Bug# 3657624 End
2980 EXIT WHEN (i = l_txdv_tbl.LAST);
2981 i := l_txdv_tbl.NEXT(i);
2982 END LOOP;
2983 END IF;
2984 Create_asset_line_details(p_api_version => p_api_version,
2985 p_init_msg_list => p_init_msg_list,
2986 x_return_status => x_return_status,
2987 x_msg_count => x_msg_count,
2988 x_msg_data => x_msg_data,
2989 p_txdv_tbl => l_txdv_tbl,
2990 x_txdv_tbl => x_txdv_tbl);
2991 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2992 OKL_API.set_message(p_app_name => G_APP_NAME,
2993 p_msg_name => G_TXD_ID);
2994 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2995 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2996 OKL_API.set_message(p_app_name => G_APP_NAME,
2997 p_msg_name => G_TXD_ID);
2998 RAISE OKL_API.G_EXCEPTION_ERROR;
2999 END IF;
3000 END IF;
3001 OKL_API.END_ACTIVITY (x_msg_count,
3002 x_msg_data );
3003 EXCEPTION
3004 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3005 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3006 l_api_name,
3007 G_PKG_NAME,
3008 'OKL_API.G_RET_STS_ERROR',
3009 x_msg_count,
3010 x_msg_data,
3011 '_PVT');
3012 IF c_trans_line_dtl_exist%ISOPEN THEN
3013 CLOSE c_trans_line_dtl_exist;
3014 END IF;
3015 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3016 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3017 l_api_name,
3018 G_PKG_NAME,
3019 'OKL_API.G_RET_STS_UNEXP_ERROR',
3020 x_msg_count,
3021 x_msg_data,
3022 '_PVT');
3023 WHEN OTHERS THEN
3024 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3025 l_api_name,
3026 G_PKG_NAME,
3027 'OTHERS',
3028 x_msg_count,
3029 x_msg_data,
3030 '_PVT');
3031 IF c_fa_line_id%ISOPEN THEN
3032 CLOSE c_fa_line_id;
3033 END IF;
3034 IF c_trans_line_dtl_exist%ISOPEN THEN
3035 CLOSE c_trans_line_dtl_exist;
3036 END IF;
3037 END Create_Asset_trx_txl_txd;
3038 --------------------------------------------------------------------------------------------------------------
3039 PROCEDURE Create_Asset_trx_txl_For_Loan(
3040 p_api_version IN NUMBER,
3041 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3042 x_return_status OUT NOCOPY VARCHAR2,
3043 x_msg_count OUT NOCOPY NUMBER,
3044 x_msg_data OUT NOCOPY VARCHAR2,
3045 p_cle_id IN OKC_K_LINES_V.ID%TYPE,
3046 p_from_dnz_chr_id IN OKC_K_LINES_V.DNZ_CHR_ID%TYPE,
3047 p_to_dnz_chr_id IN OKC_K_LINES_V.DNZ_CHR_ID%TYPE,
3048 p_fin_cle_id IN OKC_K_LINES_V.ID%TYPE,
3049 p_trans_type IN OKL_TRX_ASSETS.TAS_TYPE%TYPE,
3050 x_trxv_rec OUT NOCOPY trxv_rec_type,
3051 x_talv_rec OUT NOCOPY talv_rec_type,
3052 x_txdv_tbl OUT NOCOPY txdv_tbl_type) IS
3053 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_ASSET_TRX_LOAN';
3054 l_trxv_rec trxv_rec_type;
3055 l_talv_rec talv_rec_type;
3056 l_txdv_tbl txdv_tbl_type;
3057 ln_dummy NUMBER :=0;
3058 i NUMBER :=0;
3059
3060 Cursor get_txl_csr (p_fa_cle_id IN NUMBER,
3061 p_chr_id IN NUMBER) IS
3062 Select fin_tl.name Asset_Number,
3063 fin_tl.item_description description,
3064 mdl_cle.price_unit unit_price,
3065 mdl_cim.number_of_items units,
3066 fin_kle.oec oec,
3067 fa_kle.year_built Year_of_Manufacture
3068 From okc_k_items mdl_cim,
3069 okc_k_lines_b mdl_cle,
3070 okc_line_styles_b mdl_lse,
3071 okl_k_lines fin_kle,
3072 okc_k_lines_tl fin_tl,
3073 okc_k_lines_b fin_cle,
3074 okc_line_styles_b fin_lse,
3075 okl_k_lines fa_kle,
3076 okc_k_lines_b fa_cle,
3077 okc_line_styles_b fa_lse
3078 where mdl_cim.cle_id = mdl_cle.id
3079 and mdl_cim.dnz_chr_id = mdl_cle.dnz_chr_id
3080 and mdl_cle.cle_id = fin_cle.id
3081 and mdl_cle.dnz_chr_id = fin_cle.dnz_chr_id
3082 and mdl_cle.lse_id = mdl_lse.id
3083 and mdl_lse.lty_code = 'ITEM'
3084 and fin_kle.id = fin_cle.id
3085 and fin_tl.id = fin_cle.id
3086 and fin_tl.language = USERENV('LANG')
3087 and fin_cle.lse_id = fin_lse.id
3088 and fin_lse.lty_code = 'FREE_FORM1'
3089 and fin_cle.id = fa_cle.cle_id
3090 and fin_cle.dnz_chr_id = fa_cle.dnz_chr_id
3091 and fa_kle.id = fa_cle.id
3092 and fa_cle.lse_id = fa_lse.id
3093 and fa_lse.lty_code = 'FIXED_ASSET'
3094 and fa_cle.id = p_fa_cle_id
3095 and fa_cle.dnz_chr_id = p_chr_id;
3096
3097 get_txl_rec get_txl_csr%ROWTYPE;
3098
3099 CURSOR try_id_csr(p_try_name OKL_TRX_TYPES_V.NAME%TYPE) IS
3100 SELECT id
3101 FROM OKL_TRX_TYPES_tl
3102 WHERE upper(name) = upper(p_try_name)
3103 AND language = 'US';
3104
3105 l_try_id NUMBER;
3106
3107 CURSOR c_fa_line_id(p_cle_id OKL_K_LINES_V.ID%TYPE
3108 ,p_dnz_chr_id OKC_K_LINES_V.DNZ_CHR_ID%TYPE)
3109 IS
3110 SELECT cle.id
3111 FROM OKC_K_LINES_V cle,
3112 OKC_LINE_STYLES_V lse
3113 WHERE cle.cle_id = p_cle_id
3114 AND cle.dnz_chr_id = p_dnz_chr_id
3115 AND cle.lse_id = lse.id
3116 AND lse.lty_code = G_FA_LINE_LTY_CODE;
3117
3118 --Added by dpsingh for LE uptake
3119 l_cntrct_number OKC_K_HEADERS_B.CONTRACT_NUMBER%TYPE;
3120 l_legal_entity_id NUMBER;
3121
3122 BEGIN
3123 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3124 -- Call start_activity to create savepoint, check compatibility
3125 -- and initialize message list
3126 x_return_status := OKL_API.START_ACTIVITY (
3127 l_api_name
3128 ,p_init_msg_list
3129 ,'_PVT'
3130 ,x_return_status);
3131 -- Check if activity started successfully
3132 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3133 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3134 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3135 RAISE OKL_API.G_EXCEPTION_ERROR;
3136 END IF;
3137
3138 Open get_txl_csr(p_fa_cle_id => p_cle_id,
3139 p_chr_id => p_from_dnz_chr_id);
3140 Fetch get_txl_csr into get_txl_rec;
3141 IF get_txl_csr%NOTFOUND Then
3142 OKL_API.set_message(p_app_name => G_APP_NAME,
3143 p_msg_name => G_NO_MATCHING_RECORD,
3144 p_token1 => G_COL_NAME_TOKEN,
3145 p_token1_value => 'OKL_TXL_ASSETS_V record');
3146 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3147 Else
3148 --get try id
3149 Open try_id_csr(p_try_name => 'Internal Asset Creation');
3150 Fetch try_id_csr into l_try_id;
3151 If try_id_csr%NOTFOUND then
3152 OKL_API.set_message(p_app_name => G_APP_NAME,
3153 p_msg_name => G_NO_MATCHING_RECORD,
3154 p_token1 => G_COL_NAME_TOKEN,
3155 p_token1_value => 'OKL_TRX_TYPES_V.ID');
3156 RAISE OKL_API.G_EXCEPTION_ERROR;
3157 End If;
3158 Close try_id_csr;
3159
3160 l_trxv_rec.try_id := l_try_id;
3161 l_trxv_rec.tas_type := p_trans_type;
3162 l_trxv_rec.tsu_code := 'ENTERED';
3163 l_trxv_rec.date_trans_occurred := sysdate;
3164 --Added by dpsingh for LE Uptake
3165 l_legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_from_dnz_chr_id) ;
3166 IF l_legal_entity_id IS NOT NULL THEN
3167 l_trxv_rec.legal_entity_id := l_legal_entity_id;
3168 ELSE
3169 -- get the contract number
3170 OPEN contract_num_csr(p_from_dnz_chr_id);
3171 FETCH contract_num_csr INTO l_cntrct_number;
3172 CLOSE contract_num_csr;
3173 Okl_Api.set_message(p_app_name => g_app_name,
3174 p_msg_name => 'OKL_LE_NOT_EXIST_CNTRCT',
3175 p_token1 => 'CONTRACT_NUMBER',
3176 p_token1_value => l_cntrct_number);
3177 RAISE OKL_API.G_EXCEPTION_ERROR;
3178 END IF;
3179 -- Now creating the new header record
3180 Create_asset_header(p_api_version => p_api_version,
3181 p_init_msg_list => p_init_msg_list,
3182 x_return_status => x_return_status,
3183 x_msg_count => x_msg_count,
3184 x_msg_data => x_msg_data,
3185 p_trxv_rec => l_trxv_rec,
3186 x_trxv_rec => x_trxv_rec);
3187 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3188 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3189 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3190 RAISE OKL_API.G_EXCEPTION_ERROR;
3191 END IF;
3192
3193 OPEN c_fa_line_id(p_fin_cle_id,
3194 p_to_dnz_chr_id);
3195 FETCH c_fa_line_id INTO l_talv_rec.kle_id;
3196 CLOSE c_fa_line_id;
3197
3198 l_talv_rec.tal_type := p_trans_type;
3199
3200 -- Now we should generate the Asset number
3201 IF p_trans_type NOT IN ('CRB','CRL','CSP','CRV','ALI') THEN
3202 x_return_status := generate_asset_number(x_asset_number => l_talv_rec.asset_number);
3203 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3204 OKL_API.set_message(p_app_name => G_APP_NAME,
3205 p_msg_name => G_GEN_ASSET_NUMBER);
3206 RAISE OKL_API.G_EXCEPTION_ERROR;
3207 END IF;
3208 ELSE
3209 l_talv_rec.asset_number := get_txl_rec.ASSET_NUMBER;
3210 END IF;
3211
3212 l_talv_rec.dnz_khr_id := p_to_dnz_chr_id;
3213 l_talv_rec.tas_id := x_trxv_rec.id;
3214 l_talv_rec.line_number := 1;
3215 l_talv_rec.original_cost := get_txl_rec.OEC;
3216 l_talv_rec.current_units := get_txl_rec.UNITS;
3217 l_talv_rec.year_manufactured := get_txl_rec.Year_of_Manufacture;
3218 l_talv_rec.Depreciation_Cost := get_txl_rec.OEC;
3219
3220 -- Now we are creating the new line record
3221 Create_asset_lines(p_api_version => p_api_version,
3222 p_init_msg_list => p_init_msg_list,
3223 x_return_status => x_return_status,
3224 x_msg_count => x_msg_count,
3225 x_msg_data => x_msg_data,
3226 p_talv_rec => l_talv_rec,
3227 x_talv_rec => x_talv_rec);
3228 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3229 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3230 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3231 RAISE OKL_API.G_EXCEPTION_ERROR;
3232 END IF;
3233 End If;
3234 Close get_txl_csr;
3235 OKL_API.END_ACTIVITY (x_msg_count,
3236 x_msg_data );
3237 EXCEPTION
3238 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3239 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3240 l_api_name,
3241 G_PKG_NAME,
3242 'OKL_API.G_RET_STS_ERROR',
3243 x_msg_count,
3244 x_msg_data,
3245 '_PVT');
3246 IF get_txl_csr%ISOPEN THEN
3247 CLOSE get_txl_csr;
3248 END IF;
3249 IF try_id_csr%ISOPEN THEN
3250 CLOSE try_id_csr;
3251 END IF;
3252 IF c_fa_line_id%ISOPEN THEN
3253 CLOSE c_fa_line_id;
3254 END IF;
3255 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3256 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3257 l_api_name,
3258 G_PKG_NAME,
3259 'OKL_API.G_RET_STS_UNEXP_ERROR',
3260 x_msg_count,
3261 x_msg_data,
3262 '_PVT');
3263 IF get_txl_csr%ISOPEN THEN
3264 CLOSE get_txl_csr;
3265 END IF;
3266 IF try_id_csr%ISOPEN THEN
3267 CLOSE try_id_csr;
3268 END IF;
3269 IF c_fa_line_id%ISOPEN THEN
3270 CLOSE c_fa_line_id;
3271 END IF;
3272
3273 WHEN OTHERS THEN
3274 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3275 l_api_name,
3276 G_PKG_NAME,
3277 'OTHERS',
3278 x_msg_count,
3279 x_msg_data,
3280 '_PVT');
3281 IF get_txl_csr%ISOPEN THEN
3282 CLOSE get_txl_csr;
3283 END IF;
3284 IF try_id_csr%ISOPEN THEN
3285 CLOSE try_id_csr;
3286 END IF;
3287 IF c_fa_line_id%ISOPEN THEN
3288 CLOSE c_fa_line_id;
3289 END IF;
3290 END Create_Asset_trx_txl_For_Loan;
3291 ---19-----------------------------------------------------------------------------------------------------------
3292 -- Local Procedures for creation of Txl Item Instance record
3293 PROCEDURE create_txl_itm_insts(
3294 p_api_version IN NUMBER,
3295 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3296 x_return_status OUT NOCOPY VARCHAR2,
3297 x_msg_count OUT NOCOPY NUMBER,
3298 x_msg_data OUT NOCOPY VARCHAR2,
3299 p_itiv_rec IN itiv_rec_type,
3300 p_trans_type IN OKL_TRX_ASSETS.TAS_TYPE%TYPE,
3301 p_asset_number IN OKL_TXL_ASSETS_B.ASSET_NUMBER%TYPE,
3302 x_trxv_rec OUT NOCOPY trxv_rec_type,
3303 x_itiv_rec OUT NOCOPY itiv_rec_type) IS
3304
3305 l_trxv_rec trxv_rec_type;
3306 l_itiv_rec itiv_rec_type;
3307 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TXL_ITM_INSTS';
3308
3309 --Added by dpsingh for LE uptake
3310 l_chr_id NUMBER;
3311 l_cntrct_number OKC_K_HEADERS_B.CONTRACT_NUMBER%TYPE;
3312 l_legal_entity_id NUMBER;
3313
3314 BEGIN
3315 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3316 -- Call start_activity to create savepoint, check compatibility
3317 -- and initialize message list
3318 x_return_status := OKL_API.START_ACTIVITY (
3319 l_api_name
3320 ,p_init_msg_list
3321 ,'_PVT'
3322 ,x_return_status);
3323 -- Check if activity started successfully
3324 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3325 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3326 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3327 RAISE OKL_API.G_EXCEPTION_ERROR;
3328 END IF;
3329 -- Create New Header record and new Line record
3330 -- Before creating Header record
3331 -- we should make sure atleast the required record is given
3332
3333 x_return_status := get_try_id(p_try_name => G_TRY_NAME,
3334 x_try_id => l_trxv_rec.try_id);
3335 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3336 OKL_API.set_message(p_app_name => G_APP_NAME,
3337 p_msg_name => G_NO_MATCHING_RECORD,
3338 p_token1 => G_COL_NAME_TOKEN,
3339 p_token1_value => 'try id');
3340 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3341 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3342 OKL_API.set_message(p_app_name => G_APP_NAME,
3343 p_msg_name => G_NO_MATCHING_RECORD,
3344 p_token1 => G_COL_NAME_TOKEN,
3345 p_token1_value => 'try id');
3346 RAISE OKL_API.G_EXCEPTION_ERROR;
3347 END IF;
3348 l_trxv_rec.tsu_code := 'ENTERED';
3349 l_trxv_rec.date_trans_occurred := sysdate;
3350 l_trxv_rec.tas_type := p_trans_type;
3351
3352 --Added by dpsingh for LE Uptake
3353 OPEN get_chr_id_csr(p_itiv_rec.kle_id);
3354 FETCH get_chr_id_csr INTO l_chr_id;
3355 CLOSE get_chr_id_csr;
3356 l_legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(l_chr_id) ;
3357 IF l_legal_entity_id IS NOT NULL THEN
3358 l_trxv_rec.legal_entity_id := l_legal_entity_id;
3359 ELSE
3360 -- get the contract number
3361 OPEN contract_num_csr(l_chr_id);
3362 FETCH contract_num_csr INTO l_cntrct_number;
3363 CLOSE contract_num_csr;
3364 Okl_Api.set_message(p_app_name => g_app_name,
3365 p_msg_name => 'OKL_LE_NOT_EXIST_CNTRCT',
3366 p_token1 => 'CONTRACT_NUMBER',
3367 p_token1_value => l_cntrct_number);
3368 RAISE OKL_API.G_EXCEPTION_ERROR;
3369 END IF;
3370 -- Now creating the new header record
3371 Create_asset_header(p_api_version => p_api_version,
3372 p_init_msg_list => p_init_msg_list,
3373 x_return_status => x_return_status,
3374 x_msg_count => x_msg_count,
3375 x_msg_data => x_msg_data,
3376 p_trxv_rec => l_trxv_rec,
3377 x_trxv_rec => x_trxv_rec);
3378 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3379 OKL_API.set_message(p_app_name => G_APP_NAME,
3380 p_msg_name => G_TRX_ID);
3381 l_trxv_rec := x_trxv_rec;
3382 l_trxv_rec.tsu_code := 'ERROR';
3383 Update_asset_header(p_api_version => p_api_version,
3384 p_init_msg_list => p_init_msg_list,
3385 x_return_status => x_return_status,
3386 x_msg_count => x_msg_count,
3387 x_msg_data => x_msg_data,
3388 p_trxv_rec => l_trxv_rec,
3389 x_trxv_rec => x_trxv_rec);
3390 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3391 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3392 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3393 RAISE OKL_API.G_EXCEPTION_ERROR;
3394 END IF;
3395 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3396 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3397 OKL_API.set_message(p_app_name => G_APP_NAME,
3398 p_msg_name => G_TRX_ID);
3399 l_trxv_rec := x_trxv_rec;
3400 l_trxv_rec.tsu_code := 'ERROR';
3401 Update_asset_header(p_api_version => p_api_version,
3402 p_init_msg_list => p_init_msg_list,
3403 x_return_status => x_return_status,
3404 x_msg_count => x_msg_count,
3405 x_msg_data => x_msg_data,
3406 p_trxv_rec => l_trxv_rec,
3407 x_trxv_rec => x_trxv_rec);
3408 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3409 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3410 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3411 RAISE OKL_API.G_EXCEPTION_ERROR;
3412 END IF;
3413 RAISE OKL_API.G_EXCEPTION_ERROR;
3414 END IF;
3415 -- Now we are creating the new line record
3416 l_itiv_rec := p_itiv_rec;
3417 l_itiv_rec.tas_id := x_trxv_rec.id;
3418 IF (l_itiv_rec.tal_type = OKL_API.G_MISS_CHAR OR
3419 l_itiv_rec.tal_type IS NUll) THEN
3420 l_itiv_rec.tal_type := p_trans_type;
3421 END IF;
3422 --Generate the Instance Number IB
3423 x_return_status := generate_instance_number_ib(x_instance_number_ib => l_itiv_rec.instance_number_ib);
3424 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3425 OKL_API.set_message(p_app_name => G_APP_NAME,
3426 p_msg_name => G_GEN_INST_NUM_IB);
3427 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3428 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3429 OKL_API.set_message(p_app_name => G_APP_NAME,
3430 p_msg_name => G_GEN_INST_NUM_IB);
3431 RAISE OKL_API.G_EXCEPTION_ERROR;
3432 END IF;
3433 l_itiv_rec.instance_number_ib := nvl(p_asset_number,null)||'-'||l_itiv_rec.instance_number_ib;
3434 -- evaluate conditions, build outcomes for true conditions and
3435 -- put them on outcome queue
3436 create_txl_iti(p_api_version => p_api_version,
3437 p_init_msg_list => p_init_msg_list,
3438 x_return_status => x_return_status,
3439 x_msg_count => x_msg_count,
3440 x_msg_data => x_msg_data,
3441 p_itiv_rec => l_itiv_rec,
3442 x_itiv_rec => x_itiv_rec);
3443 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3444 OKL_API.set_message(p_app_name => G_APP_NAME,
3445 p_msg_name => G_ITI_ID);
3446 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3447 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3448 OKL_API.set_message(p_app_name => G_APP_NAME,
3449 p_msg_name => G_ITI_ID);
3450 RAISE OKL_API.G_EXCEPTION_ERROR;
3451 END IF;
3452 OKL_API.END_ACTIVITY (x_msg_count,
3453 x_msg_data );
3454 EXCEPTION
3455 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3456 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3457 l_api_name,
3458 G_PKG_NAME,
3459 'OKL_API.G_RET_STS_ERROR',
3460 x_msg_count,
3461 x_msg_data,
3462 '_PVT');
3463 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3464 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3465 l_api_name,
3466 G_PKG_NAME,
3467 'OKL_API.G_RET_STS_UNEXP_ERROR',
3468 x_msg_count,
3469 x_msg_data,
3470 '_PVT');
3471 WHEN OTHERS THEN
3472 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3473 l_api_name,
3474 G_PKG_NAME,
3475 'OTHERS',
3476 x_msg_count,
3477 x_msg_data,
3478 '_PVT');
3479 END create_txl_itm_insts;
3480 -------------------------------------------------------------------------------------------------------
3481 PROCEDURE Create_Asset_header_instance(
3482 p_api_version IN NUMBER,
3483 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3484 x_return_status OUT NOCOPY VARCHAR2,
3485 x_msg_count OUT NOCOPY NUMBER,
3486 x_msg_data OUT NOCOPY VARCHAR2,
3487 p_cle_id IN OKC_K_LINES_V.ID%TYPE,
3488 p_new_cle_id IN OKC_K_LINES_V.ID%TYPE,
3489 p_dnz_chr_id IN OKC_K_LINES_V.DNZ_CHR_ID%TYPE,
3490 p_trans_type IN OKL_TRX_ASSETS.TAS_TYPE%TYPE,
3491 p_asset_number IN OKL_TXL_ASSETS_B.ASSET_NUMBER%TYPE,
3492 p_fin_cle_id IN OKC_K_LINES_V.ID%TYPE,
3493 x_trxv_rec OUT NOCOPY trxv_rec_type,
3494 x_itiv_rec OUT NOCOPY itiv_rec_type)
3495 IS
3496 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_HEADER_LINE_DETAILS';
3497 l_trxv_rec trxv_rec_type;
3498 l_itiv_rec itiv_rec_type;
3499
3500 CURSOR c_ib_line_id(p_cle_id OKL_K_LINES_V.ID%TYPE
3501 ,p_dnz_chr_id OKC_K_LINES_V.DNZ_CHR_ID%TYPE)
3502 IS
3503 SELECT cle.id
3504 FROM OKC_K_LINES_V cle,
3505 OKC_LINE_STYLES_V lse
3506 WHERE cle.dnz_chr_id = p_dnz_chr_id
3507 AND cle.lse_id = lse.id
3508 AND lse.lty_code = G_IB_LINE_LTY_CODE
3509 AND cle.cle_id in (SELECT cle.id
3510 FROM OKC_K_LINES_V cle,
3511 OKC_LINE_STYLES_V lse
3512 WHERE cle.cle_id = p_cle_id
3513 AND cle.lse_id = lse.id
3514 AND lse.lty_code = G_INST_LINE_LTY_CODE
3515 AND cle.dnz_chr_id = p_dnz_chr_id);
3516 --Added by dpsingh for LE uptake
3517 l_cntrct_number OKC_K_HEADERS_B.CONTRACT_NUMBER%TYPE;
3518 l_legal_entity_id NUMBER;
3519
3520 BEGIN
3521 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3522 -- Call start_activity to create savepoint, check compatibility
3523 -- and initialize message list
3524 x_return_status := OKL_API.START_ACTIVITY (
3525 l_api_name
3526 ,p_init_msg_list
3527 ,'_PVT'
3528 ,x_return_status);
3529 -- Check if activity started successfully
3530 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3531 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3532 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3533 RAISE OKL_API.G_EXCEPTION_ERROR;
3534 END IF;
3535 -- Get the TAL Rec
3536 x_return_status := get_itiv_rec(p_kle_id => p_cle_id,
3537 x_itiv_rec => l_itiv_rec);
3538 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3539 OKL_API.set_message(p_app_name => G_APP_NAME,
3540 p_msg_name => G_NO_MATCHING_RECORD,
3541 p_token1 => G_COL_NAME_TOKEN,
3542 p_token1_value => 'OKL_TXL_ITM_INSTS_V record');
3543 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3544 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3545 OKL_API.set_message(p_app_name => G_APP_NAME,
3546 p_msg_name => G_NO_MATCHING_RECORD,
3547 p_token1 => G_COL_NAME_TOKEN,
3548 p_token1_value => 'OKL_TXL_ITM_INSTS_V record');
3549 RAISE OKL_API.G_EXCEPTION_ERROR;
3550 END IF;
3551 -- Since the above get rec itiv will get the old kle_id
3552 -- w.r.t p_from cle_id(top Line).
3553 -- but We have to replace the same with new install base id
3554 -- with respect to new x_cle_id(top line).
3555 OPEN c_ib_line_id(p_fin_cle_id,
3556 p_dnz_chr_id);
3557 FETCH c_ib_line_id INTO l_itiv_rec.kle_id;
3558 CLOSE c_ib_line_id;
3559 -- Get the TRX Rec
3560 x_return_status := get_tasv_rec(p_tas_id => l_itiv_rec.tas_id,
3561 x_trxv_rec => l_trxv_rec);
3562 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3563 OKL_API.set_message(p_app_name => G_APP_NAME,
3564 p_msg_name => G_NO_MATCHING_RECORD,
3565 p_token1 => G_COL_NAME_TOKEN,
3566 p_token1_value => 'OKL_TRX_ASSETS record');
3567 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3568 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3569 OKL_API.set_message(p_app_name => G_APP_NAME,
3570 p_msg_name => G_NO_MATCHING_RECORD,
3571 p_token1 => G_COL_NAME_TOKEN,
3572 p_token1_value => 'OKL_TRX_ASSETS record');
3573 RAISE OKL_API.G_EXCEPTION_ERROR;
3574 END IF;
3575 l_trxv_rec.tsu_code := 'ENTERED';
3576 l_trxv_rec.date_trans_occurred := sysdate;
3577 l_trxv_rec.tas_type := p_trans_type;
3578
3579 --Added by dpsingh for LE Uptake
3580 l_legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_dnz_chr_id) ;
3581 IF l_legal_entity_id IS NOT NULL THEN
3582 l_trxv_rec.legal_entity_id := l_legal_entity_id;
3583 ELSE
3584 -- get the contract number
3585 OPEN contract_num_csr(p_dnz_chr_id);
3586 FETCH contract_num_csr INTO l_cntrct_number;
3587 CLOSE contract_num_csr;
3588 Okl_Api.set_message(p_app_name => g_app_name,
3589 p_msg_name => 'OKL_LE_NOT_EXIST_CNTRCT',
3590 p_token1 => 'CONTRACT_NUMBER',
3591 p_token1_value => l_cntrct_number);
3592 RAISE OKL_API.G_EXCEPTION_ERROR;
3593 END IF;
3594 -- Now creating the new header record
3595 Create_asset_header(p_api_version => p_api_version,
3596 p_init_msg_list => p_init_msg_list,
3597 x_return_status => x_return_status,
3598 x_msg_count => x_msg_count,
3599 x_msg_data => x_msg_data,
3600 p_trxv_rec => l_trxv_rec,
3601 x_trxv_rec => x_trxv_rec);
3602 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3603 OKL_API.set_message(p_app_name => G_APP_NAME,
3604 p_msg_name => G_TRX_ID);
3605 l_trxv_rec := x_trxv_rec;
3606 l_trxv_rec.tsu_code := 'ERROR';
3607 Update_asset_header(p_api_version => p_api_version,
3608 p_init_msg_list => p_init_msg_list,
3609 x_return_status => x_return_status,
3610 x_msg_count => x_msg_count,
3611 x_msg_data => x_msg_data,
3612 p_trxv_rec => l_trxv_rec,
3613 x_trxv_rec => x_trxv_rec);
3614 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3615 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3616 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3617 RAISE OKL_API.G_EXCEPTION_ERROR;
3618 END IF;
3619 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3620 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3621 OKL_API.set_message(p_app_name => G_APP_NAME,
3622 p_msg_name => G_TRX_ID);
3623 l_trxv_rec := x_trxv_rec;
3624 l_trxv_rec.tsu_code := 'ERROR';
3625 Update_asset_header(p_api_version => p_api_version,
3626 p_init_msg_list => p_init_msg_list,
3627 x_return_status => x_return_status,
3628 x_msg_count => x_msg_count,
3629 x_msg_data => x_msg_data,
3630 p_trxv_rec => l_trxv_rec,
3631 x_trxv_rec => x_trxv_rec);
3632 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3633 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3634 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3635 RAISE OKL_API.G_EXCEPTION_ERROR;
3636 END IF;
3637 RAISE OKL_API.G_EXCEPTION_ERROR;
3638 END IF;
3639 l_itiv_rec.tal_type := p_trans_type;
3640 l_itiv_rec.tas_id := x_trxv_rec.id;
3641 --Generate the Instance Number IB
3642 x_return_status := generate_instance_number_ib(x_instance_number_ib => l_itiv_rec.instance_number_ib);
3643 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3644 OKL_API.set_message(p_app_name => G_APP_NAME,
3645 p_msg_name => G_GEN_INST_NUM_IB);
3646 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3647 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3648 OKL_API.set_message(p_app_name => G_APP_NAME,
3649 p_msg_name => G_GEN_INST_NUM_IB);
3650 RAISE OKL_API.G_EXCEPTION_ERROR;
3651 END IF;
3652 l_itiv_rec.kle_id := p_new_cle_id;
3653 l_itiv_rec.dnz_cle_id := p_fin_cle_id;
3654 l_itiv_rec.instance_number_ib := nvl(p_asset_number,null)||'-'||l_itiv_rec.instance_number_ib;
3655 -- Now we are creating the new item instance record
3656 create_txl_iti(p_api_version => p_api_version,
3657 p_init_msg_list => p_init_msg_list,
3658 x_return_status => x_return_status,
3659 x_msg_count => x_msg_count,
3660 x_msg_data => x_msg_data,
3661 p_itiv_rec => l_itiv_rec,
3662 x_itiv_rec => x_itiv_rec);
3663 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3664 OKL_API.set_message(p_app_name => G_APP_NAME,
3665 p_msg_name => G_ITI_ID);
3666 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3667 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3668 OKL_API.set_message(p_app_name => G_APP_NAME,
3669 p_msg_name => G_ITI_ID);
3670 RAISE OKL_API.G_EXCEPTION_ERROR;
3671 END IF;
3672 OKL_API.END_ACTIVITY (x_msg_count,
3673 x_msg_data );
3674 EXCEPTION
3675 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3676 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3677 l_api_name,
3678 G_PKG_NAME,
3679 'OKL_API.G_RET_STS_ERROR',
3680 x_msg_count,
3681 x_msg_data,
3682 '_PVT');
3683 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3684 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3685 l_api_name,
3686 G_PKG_NAME,
3687 'OKL_API.G_RET_STS_UNEXP_ERROR',
3688 x_msg_count,
3689 x_msg_data,
3690 '_PVT');
3691 WHEN OTHERS THEN
3692 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3693 l_api_name,
3694 G_PKG_NAME,
3695 'OTHERS',
3696 x_msg_count,
3697 x_msg_data,
3698 '_PVT');
3699 IF c_ib_line_id%ISOPEN THEN
3700 CLOSE c_ib_line_id;
3701 END IF;
3702 END Create_Asset_header_instance;
3703 ----------------------------------------------------------------------------------------------
3704 --Bug#3143522 : Subsidies
3705 --Name : Copy_Party_Payment_dtls
3706 --Purpose : To copy party payment details linked to a subsidy line
3707 --Copy of aubsidy line vendor payment details
3708 --*******THIS CODE WILL NOT BE CALLED AS Copy of refund details is taken care in OKL
3709 --*******Base COPY API (OKL_COPY_CONTRACT_PUB)
3710 ----------------------------------------------------------------------------------------------
3711 PROCEDURE CREATE_PARTY_PYMT_DTLS (p_api_version in number,
3712 p_init_msg_list in varchar2,
3713 x_return_status out nocopy varchar2,
3714 x_msg_count OUT NOCOPY NUMBER,
3715 x_msg_data OUT NOCOPY VARCHAR2,
3716 p_from_cle_id in number,
3717 p_to_cle_id in number) is
3718
3719 l_return_status VARCHAR2(1) default OKL_API.G_RET_STS_SUCCESS;
3720 l_api_name CONSTANT varchar2(30) := 'CREATE_PARTY_PYMT_DTLS';
3721 l_api_version CONSTANT NUMBER := 1.0;
3722
3723
3724 --cursor to fetch party payment details on source line
3725 cursor l_ppyd_csr (p_from_cle_id in number) is
3726 select ppyd.cpl_id
3727 ,ppyd.vendor_id
3728 ,ppyd.PAY_SITE_ID
3729 ,ppyd.PAYMENT_TERM_ID
3730 ,ppyd.PAYMENT_METHOD_CODE
3731 ,ppyd.PAY_GROUP_CODE
3732 ,ppyd.ATTRIBUTE_CATEGORY
3733 ,ppyd.ATTRIBUTE1
3734 ,ppyd.ATTRIBUTE2
3735 ,ppyd.ATTRIBUTE3
3736 ,ppyd.ATTRIBUTE4
3737 ,ppyd.ATTRIBUTE5
3738 ,ppyd.ATTRIBUTE6
3739 ,ppyd.ATTRIBUTE7
3740 ,ppyd.ATTRIBUTE8
3741 ,ppyd.ATTRIBUTE9
3742 ,ppyd.ATTRIBUTE10
3743 ,ppyd.ATTRIBUTE11
3744 ,ppyd.ATTRIBUTE12
3745 ,ppyd.ATTRIBUTE13
3746 ,ppyd.ATTRIBUTE14
3747 ,ppyd.ATTRIBUTE15
3748 ,cleb_sub.id subsidy_cle_id
3749 from okl_party_payment_dtls ppyd,
3750 okc_k_party_roles_b cplb,
3751 okc_k_lines_b cleb_sub
3752 where ppyd.cpl_id = cplb.id
3753 and cplb.cle_id = cleb_sub.id
3754 and cleb_sub.cle_id = p_from_cle_id
3755 and cleb_sub.sts_code <> 'ABANDONED';
3756
3757 l_ppyd_rec l_ppyd_csr%rowtype;
3758
3759 --cursor to get party role record from new line
3760 cursor l_cplb_csr (p_to_cle_id in number,
3761 p_parent_cle_id in number)is
3762 select cplb.id
3763 from okc_k_party_roles_b cplb,
3764 okc_k_lines_b cleb_sub
3765 where cplb.cle_id = cleb_sub.id
3766 and cleb_sub.cle_id = p_to_cle_id
3767 and cleb_sub.orig_system_id1 = p_parent_cle_id
3768 and cleb_sub.dnz_chr_id = cleb_sub.dnz_chr_id
3769 and cleb_sub.sts_code <> 'ABANDONED';
3770
3771 l_new_cpl_id number;
3772 l_ppydv_rec okl_pyd_pvt.ppydv_rec_type;
3773 x_ppydv_rec okl_pyd_pvt.ppydv_rec_type;
3774
3775 begin
3776
3777 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3778 -- Call start_activity to create savepoint, check compatibility
3779 -- and initialize message list
3780 x_return_status := OKL_API.START_ACTIVITY (
3781 l_api_name
3782 ,p_init_msg_list
3783 ,'_PVT'
3784 ,x_return_status);
3785 -- Check if activity started successfully
3786 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3787 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3788 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3789 RAISE OKL_API.G_EXCEPTION_ERROR;
3790 END IF;
3791
3792
3793 open l_ppyd_csr(p_from_cle_id => p_from_cle_id);
3794 Loop
3795 Fetch l_ppyd_csr into l_ppyd_rec;
3796 Exit when l_ppyd_csr%NOTFOUND;
3797 open l_cplb_csr(p_to_cle_id => p_to_cle_id,
3798 p_parent_cle_id => l_ppyd_rec.subsidy_cle_id);
3799 Fetch l_cplb_csr into l_new_cpl_id;
3800 If l_cplb_csr%NOTFOUND then
3801 null;
3802 Else
3803 l_ppydv_rec.cpl_id := l_new_cpl_id;
3804 l_ppydv_rec.vendor_id := l_ppyd_rec.vendor_id;
3805 l_ppydv_rec.pay_site_id := l_ppyd_rec.pay_site_id;
3806 l_ppydv_rec.PAYMENT_TERM_ID := l_ppyd_rec.PAYMENT_TERM_ID;
3807 l_ppydv_rec.PAYMENT_METHOD_CODE := l_ppyd_rec.PAYMENT_METHOD_CODE;
3808 l_ppydv_rec.PAY_GROUP_CODE := l_ppyd_rec.PAY_GROUP_CODE;
3809 l_ppydv_rec.ATTRIBUTE_CATEGORY := l_ppyd_rec.ATTRIBUTE_CATEGORY;
3810 l_ppydv_rec.ATTRIBUTE1 := l_ppyd_rec.ATTRIBUTE1;
3811 l_ppydv_rec.ATTRIBUTE2 := l_ppyd_rec.ATTRIBUTE2;
3812 l_ppydv_rec.ATTRIBUTE3 := l_ppyd_rec.ATTRIBUTE3;
3813 l_ppydv_rec.ATTRIBUTE4 := l_ppyd_rec.ATTRIBUTE4;
3814 l_ppydv_rec.ATTRIBUTE5 := l_ppyd_rec.ATTRIBUTE5;
3815 l_ppydv_rec.ATTRIBUTE6 := l_ppyd_rec.ATTRIBUTE6;
3816 l_ppydv_rec.ATTRIBUTE7 := l_ppyd_rec.ATTRIBUTE7;
3817 l_ppydv_rec.ATTRIBUTE8 := l_ppyd_rec.ATTRIBUTE8;
3818 l_ppydv_rec.ATTRIBUTE9 := l_ppyd_rec.ATTRIBUTE9;
3819 l_ppydv_rec.ATTRIBUTE10 := l_ppyd_rec.ATTRIBUTE10;
3820 l_ppydv_rec.ATTRIBUTE11 := l_ppyd_rec.ATTRIBUTE11;
3821 l_ppydv_rec.ATTRIBUTE12 := l_ppyd_rec.ATTRIBUTE12;
3822 l_ppydv_rec.ATTRIBUTE13 := l_ppyd_rec.ATTRIBUTE13;
3823 l_ppydv_rec.ATTRIBUTE14 := l_ppyd_rec.ATTRIBUTE14;
3824 l_ppydv_rec.ATTRIBUTE15 := l_ppyd_rec.ATTRIBUTE15;
3825
3826 -------------------------------------------------------
3827 --call API to create record
3828 -------------------------------------------------------
3829 OKL_PYD_PVT.Insert_Row
3830 (p_api_version => p_api_version,
3831 p_init_msg_list => p_init_msg_list,
3832 x_return_status => x_return_status,
3833 x_msg_count => x_msg_count,
3834 x_msg_data => x_msg_data,
3835 p_ppydv_rec => l_ppydv_rec,
3836 x_ppydv_rec => x_ppydv_rec);
3837
3838 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3839 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3840 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3841 RAISE OKL_API.G_EXCEPTION_ERROR;
3842 END IF;
3843 End If;
3844 close l_cplb_csr;
3845 End Loop;
3846 close l_ppyd_csr;
3847 OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
3848 EXCEPTION
3849 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3850 If l_ppyd_csr%ISOPEN then
3851 close l_ppyd_csr;
3852 End If;
3853 If l_cplb_csr%ISOPEN then
3854 close l_cplb_csr;
3855 End If;
3856 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3857 l_api_name,
3858 G_PKG_NAME,
3859 'OKL_API.G_RET_STS_ERROR',
3860 x_msg_count,
3861 x_msg_data,
3862 '_PVT');
3863 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3864 If l_ppyd_csr%ISOPEN then
3865 close l_ppyd_csr;
3866 End If;
3867 If l_cplb_csr%ISOPEN then
3868 close l_cplb_csr;
3869 End If;
3870 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3871 l_api_name,
3872 G_PKG_NAME,
3873 'OKL_API.G_RET_STS_UNEXP_ERROR',
3874 x_msg_count,
3875 x_msg_data,
3876 '_PVT');
3877 WHEN OTHERS THEN
3878 If l_ppyd_csr%ISOPEN then
3879 close l_ppyd_csr;
3880 End If;
3881 If l_cplb_csr%ISOPEN then
3882 close l_cplb_csr;
3883 End If;
3884 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3885 l_api_name,
3886 G_PKG_NAME,
3887 'OTHERS',
3888 x_msg_count,
3889 x_msg_data,
3890 '_PVT');
3891 end create_party_pymt_dtls;
3892 ---------------
3893 --Bug# 2994971
3894 ---------------
3895 PROCEDURE populate_insurance_category(p_api_version IN NUMBER,
3896 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3897 x_return_status OUT NOCOPY VARCHAR2,
3898 x_msg_count OUT NOCOPY NUMBER,
3899 x_msg_data OUT NOCOPY VARCHAR2,
3900 p_cle_id IN NUMBER
3901 ) IS
3902
3903 l_api_name CONSTANT VARCHAR2(30) := 'POPULATE_INS_CATEGORY';
3904
3905 --cursor to get inventory item details
3906 cursor l_cleb_csr (p_cle_id in number) is
3907 select kle_fin.item_insurance_category,
3908 cim_model.object1_id1,
3909 cim_model.object1_id2
3910 from okc_k_items cim_model,
3911 okc_k_lines_b cleb_model,
3912 okc_line_styles_b lseb_model,
3913 okl_k_lines kle_fin
3914 where cim_model.cle_id = cleb_model.id
3915 and cleb_model.cle_id = p_cle_id
3916 and lseb_model.id = cleb_model.lse_id
3917 and lseb_model.lty_code = 'ITEM'
3918 and kle_fin.id = p_cle_id;
3919
3920
3921 l_cleb_rec l_cleb_csr%ROWTYPE;
3922
3923 --cursor to get asset category
3924 cursor l_msi_csr(p_inv_item_id in number,
3925 p_inv_org_id in number) is
3926 select msi.asset_category_id
3927 from mtl_system_items msi
3928 where msi.organization_id = p_inv_org_id
3929 and msi.inventory_item_id = p_inv_item_id;
3930
3931 l_asset_category_id mtl_system_items.asset_category_id%TYPE default NULL;
3932 l_clev_rec okl_okc_migration_pvt.clev_rec_type;
3933 l_klev_rec okl_contract_pub.klev_rec_type;
3934 lx_clev_rec okl_okc_migration_pvt.clev_rec_type;
3935 lx_klev_rec okl_contract_pub.klev_rec_type;
3936
3937 l_inv_item_id number;
3938 l_inv_org_id number;
3939
3940
3941 BEGIN
3942
3943 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3944 -- Call start_activity to create savepoint, check compatibility
3945 -- and initialize message list
3946 x_return_status := OKL_API.START_ACTIVITY (l_api_name
3947 ,p_init_msg_list
3948 ,'_PVT'
3949 ,x_return_status);
3950 -- Check if activity started successfully
3951 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3952 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3953 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3954 RAISE OKL_API.G_EXCEPTION_ERROR;
3955 END IF;
3956
3957 --fetch inv item details
3958 open l_cleb_csr(p_cle_id => p_cle_id);
3959 fetch l_cleb_csr into l_cleb_rec;
3960 if l_cleb_csr%NOTFOUND then
3961 null;
3962 end if;
3963 close l_cleb_csr;
3964
3965 --------------------------------------------------------------------------
3966 --if inv item id and org id are found and item_insurance_category is null :
3967 ---------------------------------------------------------------------------
3968 if nvl(l_cleb_rec.object1_id1,okl_api.g_miss_char) <> OKL_API.G_MISS_CHAR and
3969 nvl(l_cleb_rec.object1_id2,okl_api.g_miss_char) <> OKL_API.G_MISS_CHAR and
3970 nvl(l_cleb_rec.item_insurance_category,okl_api.g_miss_num) = OKL_API.G_MISS_NUM then
3971
3972
3973 l_inv_item_id := to_number(l_cleb_rec.object1_id1);
3974 l_inv_org_id := to_number(l_cleb_rec.object1_id2);
3975
3976 --fetch asset category
3977 l_asset_category_id := NULL;
3978 open l_msi_csr (p_inv_item_id => l_inv_item_id,
3979 p_inv_org_id => l_inv_org_id);
3980 fetch l_msi_csr into l_asset_category_id;
3981 if l_msi_csr%NOTFOUND then
3982 null;
3983 end if;
3984 close l_msi_csr;
3985
3986
3987 l_clev_rec.id := p_cle_id;
3988 l_klev_rec.id := p_cle_id;
3989 l_klev_rec.item_insurance_category := l_asset_category_id;
3990
3991 okl_contract_pub.update_contract_line(
3992 p_api_version => p_api_version,
3993 p_init_msg_list => p_init_msg_list,
3994 x_return_status => x_return_status,
3995 x_msg_count => x_msg_count,
3996 x_msg_data => x_msg_data,
3997 p_clev_rec => l_clev_rec,
3998 p_klev_rec => l_klev_rec,
3999 x_clev_rec => lx_clev_rec,
4000 x_klev_rec => lx_klev_rec
4001 );
4002
4003 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4004 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4005 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4006 RAISE OKL_API.G_EXCEPTION_ERROR;
4007 END IF;
4008 End If;
4009
4010 OKL_API.END_ACTIVITY (x_msg_count,
4011 x_msg_data );
4012 EXCEPTION
4013 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4014 if l_msi_csr%ISOPEN then
4015 close l_msi_csr;
4016 end if;
4017 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4018 l_api_name,
4019 G_PKG_NAME,
4020 'OKL_API.G_RET_STS_ERROR',
4021 x_msg_count,
4022 x_msg_data,
4023 '_PVT');
4024 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4025 if l_msi_csr%ISOPEN then
4026 close l_msi_csr;
4027 end if;
4028 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
4029 l_api_name,
4030 G_PKG_NAME,
4031 'OKL_API.G_RET_STS_UNEXP_ERROR',
4032 x_msg_count,
4033 x_msg_data,
4034 '_PVT');
4035 WHEN OTHERS THEN
4036 if l_msi_csr%ISOPEN then
4037 close l_msi_csr;
4038 end if;
4039 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
4040 l_api_name,
4041 G_PKG_NAME,
4042 'OTHERS',
4043 x_msg_count,
4044 x_msg_data,
4045 '_PVT');
4046 End POPULATE_INSURANCE_CATEGORY;
4047 -------------------
4048 --Bug# 2994971
4049 ------------------
4050
4051 -----------------------------------------------------------------------------------------------
4052 --------------------------- Main Process for Copy of Asset Line -------------------------------
4053 -----------------------------------------------------------------------------------------------
4054 Procedure copy_asset_lines(
4055 p_api_version IN NUMBER,
4056 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4057 x_return_status OUT NOCOPY VARCHAR2,
4058 x_msg_count OUT NOCOPY NUMBER,
4059 x_msg_data OUT NOCOPY VARCHAR2,
4060 P_from_cle_id IN NUMBER,
4061 p_to_cle_id IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
4062 p_to_chr_id IN NUMBER,
4063 p_to_template_yn IN VARCHAR2,
4064 p_copy_reference IN VARCHAR2,
4065 p_copy_line_party_yn IN VARCHAR2,
4066 p_renew_ref_yn IN VARCHAR2,
4067 p_trans_type IN VARCHAR2,
4068 x_cle_id OUT NOCOPY NUMBER) IS
4069 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_COPY_ASSETS';
4070 ln_txl_rec NUMBER := 0;
4071 ln_iti_rec NUMBER := 0;
4072 lv_deal_type OKL_K_HEADERS_V.DEAL_TYPE%TYPE;
4073 ln_oec OKL_K_LINES_V.OEC%TYPE;
4074 l_from_fa_kle_id OKL_K_LINES_V.ID%TYPE;
4075 l_from_ib_kle_id OKL_K_LINES_V.ID%TYPE;
4076 l_from_dnz_chr_id OKC_K_LINES_V.DNZ_CHR_ID%TYPE;
4077 ln_cle_id OKL_K_LINES_V.ID%TYPE;
4078 l_dummy NUMBER := 0;
4079 l_txdv_tbl txdv_tbl_type;
4080 l_talv_rec talv_rec_type;
4081 l_itiv_rec itiv_rec_type;
4082 lx_asset_trxv_rec trxv_rec_type;
4083 lx_instance_trxv_rec trxv_rec_type;
4084 lx_txdv_tbl txdv_tbl_type;
4085 lx_txlv_rec talv_rec_type;
4086 lx_itiv_rec itiv_rec_type;
4087 l_txdv_rec txdv_rec_type;
4088 lx_txdv_rec txdv_rec_type;
4089 l_clev_rec clev_rec_type;
4090 l_klev_rec klev_rec_type;
4091 lx_clev_rec clev_rec_type;
4092 lx_klev_rec klev_rec_type;
4093 l_fa_clev_rec clev_rec_type;
4094 l_fa_klev_rec klev_rec_type;
4095 lx_fa_clev_rec clev_rec_type;
4096 lx_fa_klev_rec klev_rec_type;
4097
4098 ln_txd_line_number NUMBER := 0;
4099 lv_gen_asset_number OKL_TXL_ASSETS_B.ASSET_NUMBER%TYPE;
4100 l_fa_object1_id1 OKC_K_ITEMS_V.OBJECT1_ID1%TYPE;
4101 l_fa_object1_id2 OKC_K_ITEMS_V.OBJECT1_ID2%TYPE;
4102 l_ib_object1_id1 OKC_K_ITEMS_V.OBJECT1_ID1%TYPE;
4103 l_ib_object1_id2 OKC_K_ITEMS_V.OBJECT1_ID2%TYPE;
4104 lt_ib_id_tbl g_ib_id_tbl;
4105 lt_new_ib_id_tbl g_ib_id_tbl;
4106 lt_ib_item_tbl g_ib_item_tbl;
4107 l_cimv_rec cimv_rec_type;
4108 lx_cimv_rec cimv_rec_type;
4109 i NUMBER := 0;
4110 j NUMBER := 0;
4111
4112 CURSOR l_chr_csr( cleId NUMBER ) IS
4113 Select khr.id,
4114 khr.authoring_org_id,
4115 khr.currency_code,
4116 khr.start_date
4117 From OKL_K_LINES_FULL_V kle,
4118 OKL_K_HEADERS_FULL_V KHR
4119 Where kle.id = cleId
4120 and KHR.ID = KLE.DNZ_CHR_ID;
4121
4122 l_chr_rec l_chr_csr%ROWTYPE;
4123 l_func_curr_code OKL_K_HEADERS_FULL_V.CURRENCY_CODE%TYPE;
4124 l_chr_curr_code OKL_K_HEADERS_FULL_V.CURRENCY_CODE%TYPE;
4125
4126 x_contract_currency okl_k_headers_full_v.currency_code%TYPE;
4127 x_currency_conversion_type okl_k_headers_full_v.currency_conversion_type%TYPE;
4128 x_currency_conversion_rate okl_k_headers_full_v.currency_conversion_rate%TYPE;
4129 x_currency_conversion_date okl_k_headers_full_v.currency_conversion_date%TYPE;
4130
4131 CURSOR c_check_txl_rec(p_fa_kle_id OKL_K_LINES_V.ID%TYPE)
4132 IS
4133 SELECT 1
4134 FROM DUAL
4135 WHERE EXISTS (SELECT '1'
4136 FROM OKL_TXL_ASSETS_V
4137 WHERE kle_Id = p_fa_kle_id);
4138
4139 CURSOR c_check_iti_rec(p_ib_kle_id OKL_K_LINES_V.ID%TYPE)
4140 IS
4141 SELECT 1
4142 FROM DUAL
4143 WHERE EXISTS (SELECT '1'
4144 FROM OKL_TXL_ITM_INSTS_V
4145 WHERE kle_id = p_ib_kle_id);
4146
4147 CURSOR c_asset_info(p_object1_id1 OKC_K_ITEMS_V.OBJECT1_ID1%TYPE,
4148 p_object1_id2 OKC_K_ITEMS_V.OBJECT1_ID2%TYPE) IS
4149 SELECT *
4150 FROM OKX_ASSETS_V
4151 WHERE id1 = p_object1_id1
4152 AND id2 = p_object1_id2;
4153
4154 CURSOR c_asset_loc_info(p_asset_id OKX_AST_DST_HST_V.ASSET_ID%TYPE) IS
4155 SELECT location_id
4156 FROM OKX_AST_DST_HST_V
4157 WHERE asset_id = p_asset_id
4158 AND transaction_header_id_out is null
4159 AND sysdate between start_date_active and nvl(end_date_active,sysdate+1)
4160 AND rownum < 2;
4161
4162 CURSOR c_asset_details_info(p_object1_id1 OKX_AST_BKS_V.ID1%TYPE) IS
4163 SELECT *
4164 FROM OKX_AST_BKS_V
4165 WHERE id1 = p_object1_id1
4166 AND book_class = 'TAX';
4167
4168 CURSOR c_ib_info(p_object1_id1 OKC_K_ITEMS_V.OBJECT1_ID1%TYPE,
4169 p_object1_id2 OKC_K_ITEMS_V.OBJECT1_ID2%TYPE) IS
4170 SELECT *
4171 FROM OKX_INSTALL_ITEMS_V
4172 WHERE id1 = p_object1_id1
4173 AND id2 = p_object1_id2;
4174
4175 CURSOR c_new_fa_line_id(p_cle_id OKL_K_LINES_V.ID%TYPE
4176 ,p_dnz_chr_id OKC_K_LINES_V.DNZ_CHR_ID%TYPE)
4177 IS
4178 SELECT cle.id
4179 FROM OKC_K_LINES_V cle,
4180 OKC_LINE_STYLES_V lse
4181 WHERE cle.cle_id = p_cle_id
4182 AND cle.dnz_chr_id = p_dnz_chr_id
4183 AND cle.lse_id = lse.id
4184 AND lse.lty_code = G_FA_LINE_LTY_CODE;
4185
4186 CURSOR c_year_manufactured(p_kle_id OKL_K_LINES_V.ID%TYPE)
4187 IS
4188 SELECT kle.Year_Built
4189 FROM OKL_K_LINES_V kle
4190 WHERE kle.id = p_kle_id;
4191
4192 CURSOR c_new_ib_line_id(p_cle_id OKL_K_LINES_V.ID%TYPE
4193 ,p_dnz_chr_id OKC_K_LINES_V.DNZ_CHR_ID%TYPE)
4194 IS
4195 SELECT cle.id,
4196 cle.dnz_chr_id
4197 FROM OKC_K_LINES_V cle,
4198 OKC_LINE_STYLES_V lse
4199 WHERE cle.dnz_chr_id = p_dnz_chr_id
4200 AND cle.lse_id = lse.id
4201 AND lse.lty_code = G_IB_LINE_LTY_CODE
4202 AND cle.cle_id in (SELECT cle.id
4203 FROM OKC_K_LINES_V cle,
4204 OKC_LINE_STYLES_V lse
4205 WHERE cle.cle_id = p_cle_id
4206 AND cle.lse_id = lse.id
4207 AND lse.lty_code = G_INST_LINE_LTY_CODE
4208 AND cle.dnz_chr_id = p_dnz_chr_id);
4209
4210 CURSOR c_new_model_item_info(p_cle_id OKL_K_LINES_V.ID%TYPE
4211 ,p_dnz_chr_id OKC_K_LINES_V.DNZ_CHR_ID%TYPE)
4212 IS
4213 SELECT cim.object1_id1,
4214 cim.object1_id2
4215 FROM OKC_LINE_STYLES_V lse,
4216 OKC_K_ITEMS_V cim,
4217 OKC_K_LINES_V cle
4218 WHERE cle.dnz_chr_id = p_dnz_chr_id
4219 AND cle.cle_id = p_cle_id
4220 AND cle.id = cim.cle_id
4221 AND cle.dnz_chr_id = cim.dnz_chr_id
4222 AND cle.lse_id = lse.id
4223 AND lse.lty_code = G_MODEL_LINE_LTY_CODE;
4224
4225 CURSOR c_get_iti_object_id1(p_party_site_id HZ_PARTY_SITE_USES.PARTY_SITE_ID%TYPE)
4226 IS
4227 SELECT psu.party_site_use_id
4228 FROM HZ_PARTY_SITE_USES psu,
4229 HZ_PARTY_SITES ps
4230 WHERE ps.party_site_id = psu.party_site_id
4231 AND psu.site_use_type = 'INSTALL_AT'
4232 AND psu.party_site_id = p_party_site_id;
4233
4234 --Bug# 3569441 : Get install location type code
4235 CURSOR l_loc_type_csr(p_instance_id in number) is
4236 SELECT install_location_type_code,
4237 owner_party_id
4238 FROM csi_item_instances
4239 WHERE instance_id = p_instance_id;
4240
4241 l_loc_type_rec l_loc_type_csr%ROWTYPE;
4242
4243 CURSOR l_site_use_csr (p_location_id in number) is
4244 SELECT psu.party_site_use_id
4245 FROM hz_party_site_uses psu,
4246 hz_party_sites ps
4247 WHERE psu.party_site_id = ps.party_site_id
4248 AND psu.site_use_type = 'INSTALL_AT'
4249 AND ps.location_id = p_location_id;
4250
4251 l_site_use_rec l_site_use_csr%ROWTYPE;
4252
4253 --Cursor to get address for error
4254 Cursor l_address_csr (pty_site_id in number ) is
4255 select substr(arp_addr_label_pkg.format_address(null,hl.address1,hl.address2,hl.address3, hl.address4,hl.city,hl.county,hl.state,hl.province,hl.postal_code,null,hl.country,null, null,null,null,null,null,null,'n','n',80,1,1),1,80)
4256 from hz_locations hl,
4257 hz_party_sites ps
4258 where hl.location_id = ps.location_id
4259 and ps.party_site_id = pty_site_id;
4260
4261 Cursor l_address_csr2 (loc_id in number) is
4262 select substr(arp_addr_label_pkg.format_address(null,hl.address1,hl.address2,hl.address3, hl.address4,hl.city,hl.county,hl.state,hl.province,hl.postal_code,null,hl.country,null, null,null,null,null,null,null,'n','n',80,1,1),1,80)
4263 from hz_locations hl
4264 where hl.location_id = loc_id;
4265
4266 l_address varchar2(80);
4267 --End BUG# 3569441
4268
4269
4270 CURSOR c_get_deal_type(p_top_line_id OKL_K_LINES_V.ID%TYPE,
4271 p_dnz_chr_id OKC_K_LINES_V.DNZ_CHR_ID%TYPE)
4272 IS
4273 SELECT khrv.deal_type,
4274 klev.oec
4275 FROM okl_k_headers_v khrv,
4276 okc_subclass_top_line stl,
4277 okc_line_styles_b lse,
4278 okc_k_lines_v cle,
4279 okl_k_lines_v klev
4280 WHERE cle.cle_id is null
4281 AND cle.id = klev.id
4282 AND cle.chr_id = cle.dnz_chr_id
4283 AND cle.lse_id = lse.id
4284 AND lse.lty_code = G_FIN_LINE_LTY_CODE
4285 AND lse.lse_parent_id is null
4286 AND lse.lse_type = G_TLS_TYPE
4287 AND lse.id = stl.lse_Id
4288 AND stl.scs_code in (G_LEASE_SCS_CODE,G_LOAN_SCS_CODE)
4289 AND cle.dnz_chr_id = khrv.id
4290 AND cle.dnz_chr_id = p_dnz_chr_id
4291 AND cle.id = p_top_line_id;
4292
4293 r_asset_info c_asset_info%ROWTYPE;
4294 r_asset_details_info c_asset_details_info%ROWTYPE;
4295 r_ib_info c_ib_info%ROWTYPE;
4296
4297 Cursor deal_type_stscode_csr(p_chr_id IN NUMBER) is
4298 Select deal_type, sts_code
4299 From okl_k_headers_full_v
4300 Where id = p_chr_id;
4301
4302 l_deal_type okl_k_headers_full_v.deal_type%type;
4303 lv_sts_code okl_k_headers_full_v.deal_type%type;
4304
4305 --Bug# 2981308
4306 --cursor to fetch asset key ccid
4307 cursor l_fab_csr(p_asset_id in number) is
4308 select asset_key_ccid
4309 from fa_additions_b
4310 where asset_id = p_asset_id;
4311
4312 --Bug# 3621663 : Flat rate support
4313 cursor l_life_in_months_csr (p_deprn_method in varchar2,
4314 p_life_in_months in number) is
4315 select 'Y'
4316 from fa_methods
4317 where method_code = p_deprn_method
4318 and life_in_months = p_life_in_months
4319 and life_in_months is not null;
4320
4321 l_life_in_months_exists varchar2(1);
4322
4323 cursor l_rate_csr (p_deprn_method in varchar2,
4324 p_rate in number) is
4325 select 'Y'
4326 from fa_flat_rates ffr,
4327 fa_methods fm
4328 where fm.method_code = p_deprn_method
4329 and ffr.method_id = fm.method_id
4330 and ffr.adjusted_rate = p_rate
4331 and ffr.adjusting_rate = 0;
4332
4333 l_rate_exists varchar2(1);
4334 --Bug# 3621663
4335
4336 --Bug# 3877032
4337 l_fin_clev_rec okl_okc_migration_pvt.clev_rec_type;
4338 l_fin_klev_rec okl_contract_pub.klev_rec_type;
4339 lx_fin_clev_rec okl_okc_migration_pvt.clev_rec_type;
4340 lx_fin_klev_rec okl_contract_pub.klev_rec_type;
4341
4342 BEGIN
4343 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4344 -- Call start_activity to create savepoint, check compatibility
4345 -- and initialize message list
4346 x_return_status := OKL_API.START_ACTIVITY (
4347 l_api_name
4348 ,p_init_msg_list
4349 ,'_PVT'
4350 ,x_return_status);
4351 -- Check if activity started successfully
4352 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4353 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4354 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4355 RAISE OKL_API.G_EXCEPTION_ERROR;
4356 END IF;
4357 -- Validating the chr_id and cle_id
4358 validate_from_cle_id(p_cle_id => p_from_cle_id,
4359 x_fa_line_id => l_from_fa_kle_id,
4360 x_ib_id_tbl => lt_ib_id_tbl,
4361 x_dnz_chr_id => l_from_dnz_chr_id,
4362 x_return_status => x_return_status);
4363 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4364 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4365 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4366 RAISE OKL_API.G_EXCEPTION_ERROR;
4367 END IF;
4368 -- since avery validation is passed
4369 -- First to copy a contract line then get the cle id
4370 OKL_COPY_CONTRACT_PUB.COPY_CONTRACT_LINES(
4371 p_api_version => p_api_version,
4372 p_init_msg_list => p_init_msg_list,
4373 x_return_status => x_return_status,
4374 x_msg_count => x_msg_count,
4375 x_msg_data => x_msg_data,
4376 p_from_cle_id => p_from_cle_id,
4377 p_to_cle_id => p_to_cle_id,
4378 p_to_chr_id => p_to_chr_id,
4379 p_to_template_yn => p_to_template_yn,
4380 p_copy_reference => p_copy_reference,
4381 p_copy_line_party_yn => p_copy_line_party_yn,
4382 p_renew_ref_yn => p_renew_ref_yn,
4383 x_cle_id => x_cle_id);
4384 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4385 OKL_API.set_message(p_app_name => G_APP_NAME,
4386 p_msg_name => G_COPY_LINE);
4387 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4388 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4389 OKL_API.set_message(p_app_name => G_APP_NAME,
4390 p_msg_name => G_COPY_LINE);
4391 RAISE OKL_API.G_EXCEPTION_ERROR;
4392 END IF;
4393
4394 ln_cle_id := x_cle_id;
4395 -- We need to update the asset number
4396 -- Fixed asset item info
4397 x_return_status := validate_items_ids(p_cle_id => l_from_fa_kle_id,
4398 p_dnz_chr_id => l_from_dnz_chr_id,
4399 x_object1_id1 => l_fa_object1_id1,
4400 x_object1_id2 => l_fa_object1_id2);
4401 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4402 OKL_API.set_message(p_app_name => G_APP_NAME,
4403 p_msg_name => G_ITEM_RECORD);
4404 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4405 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4406 OKL_API.set_message(p_app_name => G_APP_NAME,
4407 p_msg_name => G_ITEM_RECORD);
4408 -- TO put error message
4409 RAISE OKL_API.G_EXCEPTION_ERROR;
4410 END IF;
4411 -- Install Base Item info
4412 IF lt_ib_id_tbl.COUNT > 0 THEN
4413 i := lt_ib_id_tbl.FIRST;
4414 LOOP
4415 x_return_status := validate_items_ids(p_cle_id => lt_ib_id_tbl(i).id,
4416 p_dnz_chr_id => l_from_dnz_chr_id,
4417 x_object1_id1 => lt_ib_item_tbl(i).object1_id1,
4418 x_object1_id2 => lt_ib_item_tbl(i).object1_id2);
4419 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4420 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4421 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4422 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4423 END IF;
4424 EXIT WHEN (i = lt_ib_id_tbl.LAST);
4425 i := lt_ib_id_tbl.NEXT(i);
4426 END LOOP;
4427 ELSE
4428 OKL_API.set_message(p_app_name => G_APP_NAME,
4429 p_msg_name => G_LINE_RECORD);
4430 RAISE OKL_API.G_EXCEPTION_ERROR;
4431 END IF;
4432 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4433 OKL_API.set_message(p_app_name => G_APP_NAME,
4434 p_msg_name => G_ITEM_RECORD);
4435 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4436 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4437 OKL_API.set_message(p_app_name => G_APP_NAME,
4438 p_msg_name => G_ITEM_RECORD);
4439 RAISE OKL_API.G_EXCEPTION_ERROR;
4440 END IF;
4441 IF (l_fa_object1_id1 IS NULL OR
4442 l_fa_object1_id1 = OKL_API.G_MISS_CHAR) AND
4443 (l_fa_object1_id2 IS NULL OR
4444 l_fa_object1_id2 = OKL_API.G_MISS_CHAR) THEN
4445
4446 --check if it is a 'LOAN' contract
4447 Open deal_type_stscode_csr(p_chr_id => l_from_dnz_chr_id);
4448 Fetch deal_type_stscode_csr into l_deal_type, lv_sts_code;
4449 Close deal_type_stscode_csr;
4450
4451 IF (l_deal_type in ('LOAN','LOAN-REVOLVING') AND lv_sts_code = 'BOOKED') THEN
4452 Create_Asset_trx_txl_For_Loan(p_api_version => p_api_version,
4453 p_init_msg_list => p_init_msg_list,
4454 x_return_status => x_return_status,
4455 x_msg_count => x_msg_count,
4456 x_msg_data => x_msg_data,
4457 p_cle_id => l_from_fa_kle_id,
4458 p_fin_cle_id => ln_cle_id,
4459 p_from_dnz_chr_id => l_from_dnz_chr_id,
4460 p_to_dnz_chr_id => p_to_chr_id,
4461 p_trans_type => p_trans_type,
4462 x_trxv_rec => lx_asset_trxv_rec,
4463 x_talv_rec => lx_txlv_rec,
4464 x_txdv_tbl => lx_txdv_tbl);
4465 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4466 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4467 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4468 RAISE OKL_API.G_EXCEPTION_ERROR;
4469 END IF;
4470 lv_gen_asset_number := lx_txlv_rec.asset_number;
4471 ELSE
4472 -- Check to see if the txl info is there or not
4473 OPEN c_check_txl_rec(l_from_fa_kle_id);
4474 IF c_check_txl_rec%NOTFOUND THEN
4475 OKL_API.set_message(p_app_name => G_APP_NAME,
4476 p_msg_name => G_NO_MATCHING_RECORD,
4477 p_token1 => G_COL_NAME_TOKEN,
4478 p_token1_value => 'OKL_TXL_ASSETS_V.KLE_ID');
4479 RAISE OKL_API.G_EXCEPTION_ERROR;
4480 END IF;
4481 FETCH c_check_txl_rec INTO ln_txl_rec;
4482 CLOSE c_check_txl_rec;
4483
4484 IF ln_txl_rec = 1 THEN
4485 -- Copy the Asset Info
4486 Create_Asset_trx_txl_txd(p_api_version => p_api_version,
4487 p_init_msg_list => p_init_msg_list,
4488 x_return_status => x_return_status,
4489 x_msg_count => x_msg_count,
4490 x_msg_data => x_msg_data,
4491 p_cle_id => l_from_fa_kle_id,
4492 p_fin_cle_id => x_cle_id,
4493 p_dnz_chr_id => p_to_chr_id,
4494 p_trans_type => p_trans_type,
4495 x_trxv_rec => lx_asset_trxv_rec,
4496 x_talv_rec => lx_txlv_rec,
4497 x_txdv_tbl => lx_txdv_tbl);
4498 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4499 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4500 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4501 RAISE OKL_API.G_EXCEPTION_ERROR;
4502 END IF;
4503 lv_gen_asset_number := lx_txlv_rec.asset_number;
4504 ELSE
4505 RAISE OKL_API.G_EXCEPTION_ERROR;
4506 END IF;
4507 END IF;
4508 -- Calling the api to copy the Supplier Invoice Details info
4509 create_supp_invoice_dtls(p_api_version => p_api_version,
4510 p_init_msg_list => p_init_msg_list,
4511 x_return_status => x_return_status,
4512 x_msg_count => x_msg_count,
4513 x_msg_data => x_msg_data,
4514 p_cle_id => p_from_cle_id,
4515 p_fin_cle_id => x_cle_id);
4516 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4517 OKL_API.set_message(p_app_name => G_APP_NAME,
4518 p_msg_name => ' Error in copy Supplier Invoice Details');
4519 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4520 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4521 OKL_API.set_message(p_app_name => G_APP_NAME,
4522 p_msg_name => ' Error in copy Supplier Invoice Details');
4523 RAISE OKL_API.G_EXCEPTION_ERROR;
4524 END IF;
4525 ELSIF (l_fa_object1_id1 IS NOT NULL OR
4526 l_fa_object1_id1 <> OKL_API.G_MISS_CHAR) AND
4527 (l_fa_object1_id2 IS NOT NULL OR
4528 l_fa_object1_id2 <> OKL_API.G_MISS_CHAR) THEN
4529 -- Now we have to create txl assets info for existing FA asset
4530 OPEN c_asset_info(p_object1_id1 => l_fa_object1_id1,
4531 p_object1_id2 => l_fa_object1_id2);
4532 FETCH c_asset_info into r_asset_info;
4533 CLOSE c_asset_info;
4534 OPEN c_asset_loc_info(p_asset_id => l_fa_object1_id1);
4535 FETCH c_asset_loc_info into l_talv_rec.fa_location_id;
4536 CLOSE c_asset_loc_info;
4537 --we have to populate the txl with the existing asset info
4538 OPEN c_new_fa_line_id(p_cle_id => x_cle_id,
4539 p_dnz_chr_id => p_to_chr_id);
4540 IF c_new_fa_line_id%NOTFOUND THEN
4541 OKL_API.set_message(p_app_name => G_APP_NAME,
4542 p_msg_name => G_NO_MATCHING_RECORD,
4543 p_token1 => G_COL_NAME_TOKEN,
4544 p_token1_value => 'New Fa Line Id');
4545 -- TO put error message
4546 RAISE OKL_API.G_EXCEPTION_ERROR;
4547 END IF;
4548 FETCH c_new_fa_line_id into l_talv_rec.kle_id;
4549 CLOSE c_new_fa_line_id;
4550
4551 OPEN c_year_manufactured(p_kle_id =>l_talv_rec.kle_id);
4552 IF c_year_manufactured%NOTFOUND THEN
4553 OKL_API.set_message(p_app_name => G_APP_NAME,
4554 p_msg_name => G_NO_MATCHING_RECORD,
4555 p_token1 => G_COL_NAME_TOKEN,
4556 p_token1_value => 'New kle Fa Line Id');
4557 -- TO put error message
4558 RAISE OKL_API.G_EXCEPTION_ERROR;
4559 END IF;
4560 FETCH c_year_manufactured into l_talv_rec.year_manufactured;
4561 CLOSE c_year_manufactured;
4562 l_talv_rec.dnz_khr_id := p_to_chr_id;
4563 ----------------------------------------------------------------------
4564 --Bug# 3562847 : Removed org_id assignment below
4565 -- verified l_talv_rec.org_id not being used anywhere in
4566 -- processing of l_talv_rec transaction record
4567 ---------------------------------------------------------------------
4568 --l_talv_rec.org_id := r_asset_info.org_id;
4569 l_talv_rec.asset_number := r_asset_info.asset_number;
4570 l_talv_rec.description := r_asset_info.description;
4571
4572 OPEN c_get_deal_type(p_top_line_id => x_cle_id,
4573 p_dnz_chr_id => p_to_chr_id);
4574 IF c_get_deal_type%NOTFOUND THEN
4575 OKL_API.set_message(p_app_name => G_APP_NAME,
4576 p_msg_name => G_NO_MATCHING_RECORD,
4577 p_token1 => G_COL_NAME_TOKEN,
4578 p_token1_value => 'New Top line Id');
4579 RAISE OKL_API.G_EXCEPTION_ERROR;
4580 END IF;
4581 FETCH c_get_deal_type INTO lv_deal_type,
4582 ln_oec;
4583 CLOSE c_get_deal_type;
4584 --bug# 2769267 : contract is active cost should be taken from fa
4585 --l_talv_rec.original_cost := ln_oec;
4586 --l_talv_rec.depreciation_cost := ln_oec;
4587 --open cursor to get currency parameters from contract header
4588 OPEN l_chr_csr( p_from_cle_id );
4589 FETCH l_chr_csr INTO l_chr_rec;
4590 CLOSE l_chr_csr;
4591 --get the functional currency code
4592 l_chr_curr_code := l_chr_rec.CURRENCY_CODE;
4593 l_func_curr_code := OKL_ACCOUNTING_UTIL.get_func_curr_code;
4594 If (l_chr_curr_code <> l_func_curr_code) Then
4595 l_talv_rec.original_cost := NULL;
4596 okl_accounting_util.convert_to_contract_currency(
4597 p_khr_id => l_chr_rec.id,
4598 p_from_currency => l_func_curr_code,
4599 p_transaction_date => l_chr_rec.start_date,
4600 p_amount => r_asset_info.cost,
4601 x_contract_currency => x_contract_currency,
4602 x_currency_conversion_type => x_currency_conversion_type,
4603 x_currency_conversion_rate => x_currency_conversion_rate,
4604 x_currency_conversion_date => x_currency_conversion_date,
4605 x_converted_amount => l_talv_rec.original_cost);
4606 IF (r_asset_info.cost >= 0) and (l_talv_rec.original_cost < 0) then
4607 --currency conversion rate was not found in Oracle GL
4608 OKC_API.set_message(p_app_name => G_APP_NAME,
4609 p_msg_name => G_CONV_RATE_NOT_FOUND,
4610 p_token1 => G_FROM_CURRENCY_TOKEN,
4611 p_token1_value => x_contract_currency,
4612 p_token2 => G_TO_CURRENCY_TOKEN,
4613 p_token2_value => l_func_curr_code,
4614 p_token3 => G_CONV_TYPE_TOKEN,
4615 p_token3_value => x_currency_conversion_type,
4616 p_token4 => G_CONV_DATE_TOKEN,
4617 p_token4_value => to_char(x_currency_conversion_date,'DD-MON-YYYY'));
4618 RAISE OKL_API.G_EXCEPTION_ERROR;
4619 End If;
4620 l_talv_rec.depreciation_cost := l_talv_rec.original_cost;
4621 Else--currencies are same
4622 l_talv_rec.original_cost := r_asset_info.cost;
4623 l_talv_rec.depreciation_cost := r_asset_info.cost;
4624 End If;
4625 --bug# 2769267
4626 l_talv_rec.current_units := r_asset_info.current_units;
4627 l_talv_rec.manufacturer_name := r_asset_info.manufacturer_name;
4628 IF upper(r_asset_info.new_used) = 'NEW' THEN
4629 l_talv_rec.used_asset_yn := null;
4630 ELSIF (r_asset_info.new_used IS NULL OR
4631 r_asset_info.new_used = OKL_API.G_MISS_CHAR) THEN
4632 l_talv_rec.used_asset_yn := null;
4633 ELSE
4634 l_talv_rec.used_asset_yn := 'Y';
4635 END IF;
4636 l_talv_rec.tag_number := r_asset_info.tag_number;
4637 l_talv_rec.model_number := r_asset_info.model_number;
4638
4639 l_talv_rec.corporate_book := r_asset_info.corporate_book;
4640 l_talv_rec.in_service_date := r_asset_info.in_service_date;
4641 l_talv_rec.life_in_months := r_asset_info.life_in_months;
4642 l_talv_rec.depreciation_id := r_asset_info.depreciation_category;
4643 l_talv_rec.deprn_method := r_asset_info.deprn_method_code;
4644 l_talv_rec.deprn_rate := r_asset_info.adjusted_rate;
4645
4646 --Bug# 3621663 : Flat rate method support
4647 l_life_in_months_exists := 'N';
4648 Open l_life_in_months_csr(p_deprn_method => r_asset_info.deprn_method_code,
4649 p_life_in_months => r_asset_info.life_in_months);
4650 Fetch l_life_in_months_csr into l_life_in_months_exists;
4651 If l_life_in_months_csr%NOTFOUND then
4652 null;
4653 End If;
4654 Close l_life_in_months_csr;
4655
4656 If l_life_in_months_exists = 'Y' then
4657 l_talv_rec.life_in_months := r_asset_info.life_in_months;
4658 l_talv_rec.deprn_rate := null;
4659 ElsIf l_life_in_months_exists = 'N' then
4660 l_rate_exists := 'N';
4661 Open l_rate_csr (p_deprn_method => r_asset_info.deprn_method_code,
4662 p_rate => r_asset_info.adjusted_rate);
4663 Fetch l_rate_csr into l_rate_exists;
4664 If l_rate_csr%NOTFOUND then
4665 Null;
4666 End If;
4667 Close l_rate_csr;
4668 If l_rate_exists = 'Y' then
4669 --Bug# 3657624 : Depreciation Rate should not be multiplied by 100
4670 --l_talv_rec.deprn_rate := r_asset_info.adjusted_rate*100;
4671 l_talv_rec.deprn_rate := r_asset_info.adjusted_rate;
4672 l_talv_rec.life_in_months := Null;
4673 End If;
4674 End If;
4675 --Bug# 3621663 : End
4676
4677 --Bug# 2769267
4678 --ssiruvol currency conversion while copying from FA onto contract lines.
4679 --OPEN l_chr_csr( p_from_cle_id );
4680 --FETCH l_chr_csr INTO l_chr_rec;
4681 --CLOSE l_chr_csr;
4682
4683 --l_chr_curr_code := l_chr_rec.CURRENCY_CODE;
4684 --l_func_curr_code := OKC_CURRENCY_API.GET_OU_CURRENCY(l_chr_rec.authoring_org_id);
4685
4686 -- Bug# 3950089
4687 -- Populate either Salvage percent or Salvage value in okl_txl_assets_b
4688 IF (r_asset_info.percent_salvage_value IS NULL) THEN
4689
4690 IF ( l_chr_curr_code <> l_func_curr_code ) Then
4691 l_talv_rec.salvage_value := NULL;
4692 okl_accounting_util.convert_to_contract_currency(
4693 p_khr_id => l_chr_rec.id,
4694 p_from_currency => l_func_curr_code,
4695 p_transaction_date => l_chr_rec.start_date,
4696 p_amount => r_asset_info.salvage_value,
4697 x_contract_currency => x_contract_currency,
4698 x_currency_conversion_type => x_currency_conversion_type,
4699 x_currency_conversion_rate => x_currency_conversion_rate,
4700 x_currency_conversion_date => x_currency_conversion_date,
4701 x_converted_amount => l_talv_rec.salvage_value);
4702 IF (r_asset_info.salvage_value >= 0) and (l_talv_rec.salvage_value < 0) then
4703 --currency conversion rate was not found in Oracle GL
4704 OKC_API.set_message(p_app_name => G_APP_NAME,
4705 p_msg_name => G_CONV_RATE_NOT_FOUND,
4706 p_token1 => G_FROM_CURRENCY_TOKEN,
4707 p_token1_value => x_contract_currency,
4708 p_token2 => G_TO_CURRENCY_TOKEN,
4709 p_token2_value => l_func_curr_code,
4710 p_token3 => G_CONV_TYPE_TOKEN,
4711 p_token3_value => x_currency_conversion_type,
4712 p_token4 => G_CONV_DATE_TOKEN,
4713 p_token4_value => to_char(x_currency_conversion_date,'DD-MON-YYYY'));
4714 RAISE OKL_API.G_EXCEPTION_ERROR;
4715 End If;
4716 Else
4717 l_talv_rec.salvage_value := r_asset_info.salvage_value;
4718 End If;
4719
4720 ELSE
4721 --Bug# 3950089
4722 l_talv_rec.percent_salvage_value := r_asset_info.percent_salvage_value * 100;
4723 END IF;
4724
4725 --Bug# 2981308 : fetch asset asset key ccid from FA and assign
4726 open l_fab_csr (p_asset_id => r_asset_info.asset_id);
4727 fetch l_fab_csr into l_talv_rec.asset_key_id;
4728 if l_fab_csr%NOTFOUND then
4729 Null;
4730 end if;
4731 close l_fab_csr;
4732 --End Bug# 2981308
4733
4734 -- Now we are going to the txl info with the fixed asset info for the asset number
4735 Create_asset_lines(p_api_version => p_api_version,
4736 p_init_msg_list => p_init_msg_list,
4737 x_return_status => x_return_status,
4738 x_msg_count => x_msg_count,
4739 x_msg_data => x_msg_data,
4740 p_talv_rec => l_talv_rec,
4741 p_trans_type => p_trans_type,
4742 x_trxv_rec => lx_asset_trxv_rec,
4743 x_talv_rec => lx_txlv_rec);
4744 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4745 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4746 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4747 RAISE OKL_API.G_EXCEPTION_ERROR;
4748 END IF;
4749 lv_gen_asset_number := lx_txlv_rec.asset_number;
4750
4751 -- We have to create Txd info if the Asset has tax book info we need to load the txd also
4752 -- Since We will have more than one row we need to load the values thru loop
4753 FOR r_asset_details_info IN c_asset_details_info(p_object1_id1 => l_fa_object1_id1) LOOP
4754 -- Loading the txd info
4755 l_txdv_rec.tal_id := lx_txlv_rec.id;
4756 l_txdv_rec.line_detail_number := ln_txd_line_number;
4757 -- l_txdv_rec.asset_number := r_asset_details_info.asset_number;
4758 l_txdv_rec.asset_number := lv_gen_asset_number;
4759 l_txdv_rec.description := r_asset_details_info.description;
4760 l_txdv_rec.quantity := r_asset_details_info.current_units;
4761 --Bug# 2769267 : commented the code below
4762 /*
4763 --IF r_asset_details_info.cost = 0 THEN
4764 -- Based on the deal type we need populate the original_cost as price_unit of line
4765 -- which is oec/current_units for the line
4766 -- OPEN c_get_deal_type(p_top_line_id => x_cle_id,
4767 -- p_dnz_chr_id => p_to_chr_id);
4768 -- IF c_get_deal_type%NOTFOUND THEN
4769 -- OKL_API.set_message(p_app_name => G_APP_NAME,
4770 -- p_msg_name => G_NO_MATCHING_RECORD,
4771 -- p_token1 => G_COL_NAME_TOKEN,
4772 -- p_token1_value => 'New Top line Id');
4773 -- RAISE OKL_API.G_EXCEPTION_ERROR;
4774 -- END IF;
4775 -- FETCH c_get_deal_type INTO lv_deal_type,
4776 -- ln_oec;
4777 -- CLOSE c_get_deal_type;
4778 -- IF lv_deal_type in ('LEASEDF','LEASEST') THEN
4779 -- l_txdv_rec.cost := ln_oec;
4780 -- ELSE
4781 -- l_txdv_rec.cost := r_asset_details_info.cost;
4782 -- END IF;
4783 -- ELSE
4784 -- l_txdv_rec.cost := r_asset_details_info.cost;
4785 -- END IF;
4786 -- */
4787 --Bug# 2769267 : active contracts costs should be taken from FA and converted if required
4788 If (l_chr_curr_code <> l_func_curr_code) Then
4789 l_txdv_rec.cost := NULL;
4790 okl_accounting_util.convert_to_contract_currency(
4791 p_khr_id => l_chr_rec.id,
4792 p_from_currency => l_func_curr_code,
4793 p_transaction_date => l_chr_rec.start_date,
4794 p_amount => r_asset_details_info.cost,
4795 x_contract_currency => x_contract_currency,
4796 x_currency_conversion_type => x_currency_conversion_type,
4797 x_currency_conversion_rate => x_currency_conversion_rate,
4798 x_currency_conversion_date => x_currency_conversion_date,
4799 x_converted_amount => l_txdv_rec.cost);
4800 IF (r_asset_details_info.cost >= 0) and (l_txdv_rec.cost < 0) then
4801 --currency conversion rate was not found in Oracle GL
4802 OKC_API.set_message(p_app_name => G_APP_NAME,
4803 p_msg_name => G_CONV_RATE_NOT_FOUND,
4804 p_token1 => G_FROM_CURRENCY_TOKEN,
4805 p_token1_value => x_contract_currency,
4806 p_token2 => G_TO_CURRENCY_TOKEN,
4807 p_token2_value => l_func_curr_code,
4808 p_token3 => G_CONV_TYPE_TOKEN,
4809 p_token3_value => x_currency_conversion_type,
4810 p_token4 => G_CONV_DATE_TOKEN,
4811 p_token4_value => to_char(x_currency_conversion_date,'DD-MON-YYYY'));
4812 RAISE OKL_API.G_EXCEPTION_ERROR;
4813 End If;
4814 Else
4815 l_txdv_rec.cost := r_asset_details_info.cost;
4816 End If;
4817 --Bug# 2769627 End
4818 l_txdv_rec.tax_book := r_asset_details_info.book_type_code;
4819 l_txdv_rec.life_in_months_tax := r_asset_details_info.life_in_months;
4820 l_txdv_rec.deprn_method_tax := r_asset_details_info.deprn_method_code;
4821 l_txdv_rec.deprn_rate_tax := r_asset_details_info.adjusted_rate;
4822 l_txdv_rec.salvage_value := r_asset_details_info.salvage_value;
4823
4824 --Bug# 3621663 : Flat rate method support
4825 l_life_in_months_exists := 'N';
4826 Open l_life_in_months_csr(p_deprn_method => r_asset_details_info.deprn_method_code,
4827 p_life_in_months => r_asset_details_info.life_in_months);
4828 Fetch l_life_in_months_csr into l_life_in_months_exists;
4829 If l_life_in_months_csr%NOTFOUND then
4830 null;
4831 End If;
4832 Close l_life_in_months_csr;
4833
4834 If l_life_in_months_exists = 'Y' then
4835 l_txdv_rec.life_in_months_tax := r_asset_details_info.life_in_months;
4836 l_txdv_rec.deprn_rate_tax := null;
4837 ElsIf l_life_in_months_exists = 'N' then
4838 l_rate_exists := 'N';
4839 Open l_rate_csr (p_deprn_method => r_asset_details_info.deprn_method_code,
4840 p_rate => r_asset_details_info.adjusted_rate);
4841 Fetch l_rate_csr into l_rate_exists;
4842 If l_rate_csr%NOTFOUND then
4843 Null;
4844 End If;
4845 Close l_rate_csr;
4846 If l_rate_exists = 'Y' then
4847 --Bug# 3657624 : Depreciation Rate should not be multiplied by 100
4848 --l_txdv_rec.deprn_rate_tax := r_asset_details_info.adjusted_rate*100;
4849 l_txdv_rec.deprn_rate_tax := r_asset_details_info.adjusted_rate;
4850 l_txdv_rec.life_in_months_tax := Null;
4851 End If;
4852 End If;
4853 --Bug# 3621663 : End
4854 -- We are going to Create teh Asset Details info
4855 Create_asset_line_details(p_api_version => p_api_version,
4856 p_init_msg_list => p_init_msg_list,
4857 x_return_status => x_return_status,
4858 x_msg_count => x_msg_count,
4859 x_msg_data => x_msg_data,
4860 p_txdv_rec => l_txdv_rec,
4861 x_txdv_rec => lx_txdv_rec);
4862 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4863 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4864 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4865 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4866 END IF;
4867 ln_txd_line_number := ln_txd_line_number + 1;
4868 END LOOP;
4869 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4870 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4871 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4872 RAISE OKL_API.G_EXCEPTION_ERROR;
4873 END IF;
4874 -- we have to null out the object1_id1 and object1_id2 in okc_k_items
4875 -- since the copy lines are for a new contract
4876 x_return_status := get_rec_cimv(lx_txlv_rec.kle_id,
4877 p_to_chr_id,
4878 l_cimv_rec);
4879 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4880 OKL_API.set_message(p_app_name => G_APP_NAME,
4881 p_msg_name => G_NO_MATCHING_RECORD,
4882 p_token1 => G_COL_NAME_TOKEN,
4883 p_token1_value => 'OKC_K_ITEMS_V record');
4884 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4885 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4886 OKL_API.set_message(p_app_name => G_APP_NAME,
4887 p_msg_name => G_NO_MATCHING_RECORD,
4888 p_token1 => G_COL_NAME_TOKEN,
4889 p_token1_value => 'OKC_K_ITEMS_V record');
4890 RAISE OKL_API.G_EXCEPTION_ERROR;
4891 END IF;
4892 IF l_cimv_rec.cle_id <> lx_txlv_rec.kle_id THEN
4893 OKL_API.set_message(p_app_name => G_APP_NAME,
4894 p_msg_name => G_NO_MATCHING_RECORD,
4895 p_token1 => G_COL_NAME_TOKEN,
4896 p_token1_value => 'OKC_K_ITEMS_V.CLE_ID');
4897 RAISE OKL_API.G_EXCEPTION_ERROR;
4898 END IF;
4899 IF l_cimv_rec.dnz_chr_id <> p_to_chr_id THEN
4900 OKL_API.set_message(p_app_name => G_APP_NAME,
4901 p_msg_name => G_NO_MATCHING_RECORD,
4902 p_token1 => G_COL_NAME_TOKEN,
4903 p_token1_value => 'OKC_K_ITEMS_V.DNZ_CHR_ID');
4904 RAISE OKL_API.G_EXCEPTION_ERROR;
4905 END IF;
4906 l_cimv_rec.object1_id1 := null;
4907 l_cimv_rec.object1_id2 := null;
4908 -- Updating of Item Record for the above record information
4909 OKL_OKC_MIGRATION_PVT.update_contract_item(p_api_version => p_api_version,
4910 p_init_msg_list => p_init_msg_list,
4911 x_return_status => x_return_status,
4912 x_msg_count => x_msg_count,
4913 x_msg_data => x_msg_data,
4914 p_cimv_rec => l_cimv_rec,
4915 x_cimv_rec => lx_cimv_rec);
4916 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4917 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4918 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4919 RAISE OKL_API.G_EXCEPTION_ERROR;
4920 END IF;
4921 -- Calling the api to copy the Supplier Invoice Details info
4922 create_supp_invoice_dtls(p_api_version => p_api_version,
4923 p_init_msg_list => p_init_msg_list,
4924 x_return_status => x_return_status,
4925 x_msg_count => x_msg_count,
4926 x_msg_data => x_msg_data,
4927 p_cle_id => p_from_cle_id,
4928 p_fin_cle_id => x_cle_id);
4929 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4930 OKL_API.set_message(p_app_name => G_APP_NAME,
4931 p_msg_name => ' Error in copy Supplier Invoice Details');
4932 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4933 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4934 OKL_API.set_message(p_app_name => G_APP_NAME,
4935 p_msg_name => ' Error in copy Supplier Invoice Details');
4936 RAISE OKL_API.G_EXCEPTION_ERROR;
4937 END IF;
4938 ELSE
4939 OKL_API.set_message(p_app_name => G_APP_NAME,
4940 p_msg_name => G_ITEM_RECORD);
4941 RAISE OKL_API.G_EXCEPTION_ERROR;
4942 END IF;
4943 x_return_status := get_rec_clev(x_cle_id,
4944 l_clev_rec);
4945 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4946 OKL_API.set_message(p_app_name => G_APP_NAME,
4947 p_msg_name => G_FETCHING_INFO,
4948 p_token1 => G_REC_NAME_TOKEN,
4949 p_token1_value => 'OKC_K_LINES_V Record');
4950 RAISE G_EXCEPTION_HALT_VALIDATION;
4951 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4952 OKL_API.set_message(p_app_name => G_APP_NAME,
4953 p_msg_name => G_FETCHING_INFO,
4954 p_token1 => G_REC_NAME_TOKEN,
4955 p_token1_value => 'OKC_K_LINES_V Record');
4956 RAISE G_EXCEPTION_HALT_VALIDATION;
4957 END IF;
4958 -- To Get the kle top Line Record
4959 x_return_status := get_rec_klev(x_cle_id,
4960 l_klev_rec);
4961 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4962 OKL_API.set_message(p_app_name => G_APP_NAME,
4963 p_msg_name => G_FETCHING_INFO,
4964 p_token1 => G_REC_NAME_TOKEN,
4965 p_token1_value => 'OKL_K_LINES_V Record');
4966 RAISE G_EXCEPTION_HALT_VALIDATION;
4967 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4968 OKL_API.set_message(p_app_name => G_APP_NAME,
4969 p_msg_name => G_FETCHING_INFO,
4970 p_token1 => G_REC_NAME_TOKEN,
4971 p_token1_value => 'OKL_K_LINES_V Record');
4972 RAISE G_EXCEPTION_HALT_VALIDATION;
4973 END IF;
4974 IF l_klev_rec.id <> l_clev_rec.id THEN
4975 OKL_API.set_message(p_app_name => G_APP_NAME,
4976 p_msg_name => G_LINE_RECORD);
4977 RAISE G_EXCEPTION_HALT_VALIDATION;
4978 END IF;
4979 l_clev_rec.name := lv_gen_asset_number;
4980 OKL_CONTRACT_PUB.update_contract_line(p_api_version => p_api_version,
4981 p_init_msg_list => p_init_msg_list,
4982 x_return_status => x_return_status,
4983 x_msg_count => x_msg_count,
4984 x_msg_data => x_msg_data,
4985 p_clev_rec => l_clev_rec,
4986 p_klev_rec => l_klev_rec,
4987 x_clev_rec => lx_clev_rec,
4988 x_klev_rec => lx_klev_rec);
4989 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4990 OKL_API.set_message(p_app_name => G_APP_NAME,
4991 p_msg_name => G_UPDATING_FIN_LINE);
4992 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4993 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4994 OKL_API.set_message(p_app_name => G_APP_NAME,
4995 p_msg_name => G_UPDATING_FIN_LINE);
4996 RAISE OKL_API.G_EXCEPTION_ERROR;
4997 END IF;
4998 -- Ib Line creation/copy
4999 FOR r_new_ib_line_id IN c_new_ib_line_id(p_cle_id => x_cle_id,
5000 p_dnz_chr_id => p_to_chr_id) LOOP
5001 IF c_new_ib_line_id%NOTFOUND THEN
5002 x_return_status := OKL_API.G_RET_STS_ERROR;
5003 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
5004 END IF;
5005 lt_new_ib_id_tbl(j).id := r_new_ib_line_id.id;
5006 lt_new_ib_id_tbl(j).dnz_chr_id := r_new_ib_line_id.dnz_chr_id;
5007 j := j + 1;
5008 END LOOP;
5009 IF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5010 OKL_API.set_message(p_app_name => G_APP_NAME,
5011 p_msg_name => G_NO_MATCHING_RECORD,
5012 p_token1 => G_COL_NAME_TOKEN,
5013 p_token1_value => 'New ib Line Id');
5014 RAISE OKL_API.G_EXCEPTION_ERROR;
5015 END IF;
5016 IF lt_new_ib_id_tbl.COUNT <> lt_ib_id_tbl.COUNT THEN
5017 OKL_API.set_message(p_app_name => G_APP_NAME,
5018 p_msg_name => G_LINE_RECORD);
5019 RAISE OKL_API.G_EXCEPTION_ERROR;
5020 END IF;
5021 -- Install Base Item info
5022 IF lt_ib_id_tbl.COUNT > 0 THEN
5023 i := lt_ib_id_tbl.FIRST;
5024 j := lt_new_ib_id_tbl.FIRST;
5025 LOOP
5026 IF (lt_ib_item_tbl(i).object1_id1 IS NULL OR
5027 lt_ib_item_tbl(i).object1_id1 = OKL_API.G_MISS_CHAR) AND
5028 (lt_ib_item_tbl(i).object1_id2 IS NULL OR
5029 lt_ib_item_tbl(i).object1_id2 = OKL_API.G_MISS_CHAR) THEN
5030 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5031 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
5032 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5033 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
5034 END IF;
5035 -- Check to see if the iti info is there or not
5036 OPEN c_check_iti_rec(lt_ib_id_tbl(i).id);
5037 IF c_check_iti_rec%NOTFOUND THEN
5038 OKL_API.set_message(p_app_name => G_APP_NAME,
5039 p_msg_name => G_NO_MATCHING_RECORD,
5040 p_token1 => G_COL_NAME_TOKEN,
5041 p_token1_value => 'OKL_TXL_ITM_INSTS_V.KLE_ID');
5042 x_return_status := OKL_API.G_RET_STS_ERROR;
5043 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
5044 END IF;
5045 FETCH c_check_iti_rec INTO ln_iti_rec;
5046 CLOSE c_check_iti_rec;
5047 IF ln_iti_rec = 1 THEN
5048 -- Copy the Instance rec
5049 Create_Asset_header_instance(p_api_version => p_api_version,
5050 p_init_msg_list => p_init_msg_list,
5051 x_return_status => x_return_status,
5052 x_msg_count => x_msg_count,
5053 x_msg_data => x_msg_data,
5054 p_cle_id => lt_ib_id_tbl(i).id,
5055 p_new_cle_id => lt_new_ib_id_tbl(j).id,
5056 p_fin_cle_id => x_cle_id,
5057 p_dnz_chr_id => p_to_chr_id,
5058 p_trans_type => p_trans_type,
5059 p_asset_number => lx_txlv_rec.asset_number,
5060 x_trxv_rec => lx_instance_trxv_rec,
5061 x_itiv_rec => lx_itiv_rec);
5062 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5063 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
5064 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5065 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
5066 END IF;
5067 ELSE
5068 x_return_status := OKL_API.G_RET_STS_ERROR;
5069 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
5070 END IF;
5071 ELSIF (lt_ib_item_tbl(i).object1_id1 IS NOT NULL OR
5072 lt_ib_item_tbl(i).object1_id1 <> OKL_API.G_MISS_CHAR) AND
5073 (lt_ib_item_tbl(i).object1_id2 IS NOT NULL OR
5074 lt_ib_item_tbl(i).object1_id2 <> OKL_API.G_MISS_CHAR) THEN
5075 -- to get the item info to populate the inventory item id and inventory org id
5076 -- into the txl itm insts table
5077
5078 OPEN c_new_model_item_info(p_cle_id => x_cle_id,
5079 p_dnz_chr_id => p_to_chr_id);
5080 IF c_new_model_item_info%NOTFOUND THEN
5081 x_return_status := OKL_API.G_RET_STS_ERROR;
5082 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
5083 END IF;
5084 FETCH c_new_model_item_info INTO l_itiv_rec.inventory_item_id,
5085 l_itiv_rec.inventory_org_id;
5086 CLOSE c_new_model_item_info;
5087
5088 OPEN c_ib_info(lt_ib_item_tbl(i).object1_id1,
5089 lt_ib_item_tbl(i).object1_id2);
5090 IF c_ib_info%NOTFOUND THEN
5091 OKL_API.set_message(p_app_name => G_APP_NAME,
5092 p_msg_name => G_NO_MATCHING_RECORD,
5093 p_token1 => G_COL_NAME_TOKEN,
5094 p_token1_value => 'OKX_INSTALL_ITEMS_V.OBJECT1_ID1');
5095 x_return_status := OKL_API.G_RET_STS_ERROR;
5096 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
5097 END IF;
5098 FETCH c_ib_info INTO r_ib_info;
5099 CLOSE c_ib_info;
5100 l_itiv_rec.object_id2_new := G_ID2;
5101 l_itiv_rec.jtot_object_code_new := 'OKX_PARTSITE';
5102 l_itiv_rec.instance_number_ib := r_ib_info.name;
5103 l_itiv_rec.line_number := 1;
5104 IF lt_ib_id_tbl.COUNT > 0 AND
5105 r_ib_info.serial_number IS NOT NULL THEN
5106 l_itiv_rec.mfg_serial_number_yn := 'Y';
5107 l_itiv_rec.serial_number := r_ib_info.serial_number;
5108
5109 ELSE
5110 l_itiv_rec.mfg_serial_number_yn := 'N';
5111 l_itiv_rec.serial_number := r_ib_info.serial_number;
5112 END IF;
5113 l_itiv_rec.kle_id := lt_new_ib_id_tbl(j).id;
5114 l_itiv_rec.dnz_cle_id := x_cle_id;
5115
5116 --Bug# 3569441 :
5117 OPEN l_loc_type_csr(p_instance_id => r_ib_info.id1);
5118 Fetch l_loc_type_csr into l_loc_type_rec;
5119 If l_loc_type_csr%NOTFOUND then
5120 Null;
5121 End If;
5122 CLOSE l_loc_type_csr;
5123
5124 If nvl(l_loc_type_rec.install_location_type_code,OKL_API.G_MISS_CHAR) not in ('HZ_PARTY_SITES','HZ_LOCATIONS') then
5125
5126 --Raise Error
5127 OKL_API.Set_Message(p_app_name => G_APP_NAME,
5128 p_msg_name => G_INVALID_INSTALL_LOC_TYPE,
5129 p_token1 => G_LOCATION_TYPE_TOKEN,
5130 p_token1_value => l_loc_type_rec.install_location_type_code,
5131 p_token2 => G_LOC_TYPE1_TOKEN,
5132 p_token2_value => 'HZ_PARTY_SITES',
5133 p_token3 => G_LOC_TYPE2_TOKEN,
5134 p_token3_value => 'HZ_LOCATIONS');
5135 x_return_status := OKL_API.G_RET_STS_ERROR;
5136 RAISE OKL_API.G_EXCEPTION_ERROR;
5137
5138 Elsif nvl(l_loc_type_rec.install_location_type_code,OKL_API.G_MISS_CHAR) = 'HZ_PARTY_SITES' then
5139
5140 OPEN c_get_iti_object_id1(r_ib_info.install_location_id);
5141 FETCH c_get_iti_object_id1 INTO l_itiv_rec.object_id1_new;
5142 IF c_get_iti_object_id1%NOTFOUND THEN
5143 Open l_address_csr(pty_site_id => r_ib_info.install_location_id);
5144 Fetch l_address_csr into l_address;
5145 Close l_address_csr;
5146 --Raise Error : not defined as install_at
5147 OKL_API.Set_Message(p_app_name => G_APP_NAME,
5148 p_msg_name => G_MISSING_USAGE,
5149 p_token1 => G_USAGE_TYPE_TOKEN,
5150 p_token1_value => 'INSTALL_AT',
5151 p_token2 => G_ADDRESS_TOKEN,
5152 p_token2_value => l_address,
5153 p_token3 => G_INSTANCE_NUMBER_TOKEN,
5154 p_token3_value => r_ib_info.instance_number);
5155 x_return_status := OKL_API.G_RET_STS_ERROR;
5156 RAISE OKL_API.G_EXCEPTION_ERROR;
5157 END IF;
5158 CLOSE c_get_iti_object_id1;
5159
5160 Elsif nvl(l_loc_type_rec.install_location_type_code,OKL_API.G_MISS_CHAR) = 'HZ_LOCATIONS' then
5161
5162 OPEN l_site_use_csr(r_ib_info.install_location_id);
5163 FETCH l_site_use_csr INTO l_site_use_rec;
5164 IF l_site_use_csr%NOTFOUND THEN
5165 open l_address_csr2(loc_id => r_ib_info.install_location_id);
5166 fetch l_address_csr2 into l_address;
5167 close l_address_csr2;
5168 --Raise Error : not defined as install_at
5169 OKL_API.Set_Message(p_app_name => G_APP_NAME,
5170 p_msg_name => G_MISSING_USAGE,
5171 p_token1 => G_USAGE_TYPE_TOKEN,
5172 p_token1_value => 'INSTALL_AT',
5173 p_token2 => G_ADDRESS_TOKEN,
5174 p_token2_value => l_address,
5175 p_token3 => G_INSTANCE_NUMBER_TOKEN,
5176 p_token3_value => r_ib_info.instance_number);
5177 x_return_status := OKL_API.G_RET_STS_ERROR;
5178 RAISE OKL_API.G_EXCEPTION_ERROR;
5179
5180 END IF;
5181 l_itiv_rec.object_id1_new := l_site_use_rec.party_site_use_id;
5182 CLOSE l_site_use_csr;
5183
5184 End If;
5185 --End Bug# 3569441 :
5186
5187 create_txl_itm_insts(p_api_version => p_api_version,
5188 p_init_msg_list => p_init_msg_list,
5189 x_return_status => x_return_status,
5190 x_msg_count => x_msg_count,
5191 x_msg_data => x_msg_data,
5192 p_itiv_rec => l_itiv_rec,
5193 p_trans_type => p_trans_type,
5194 p_asset_number => lx_txlv_rec.asset_number,
5195 x_trxv_rec => lx_instance_trxv_rec,
5196 x_itiv_rec => lx_itiv_rec);
5197 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5198 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
5199 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5200 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
5201 END IF;
5202
5203 -- we have to null out the object1_id1 and object1_id2 in okc_k_items
5204 -- since the copy lines are for a new contract
5205 x_return_status := get_rec_cimv(lx_itiv_rec.kle_id,
5206 p_to_chr_id,
5207 l_cimv_rec);
5208 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5209 OKL_API.set_message(p_app_name => G_APP_NAME,
5210 p_msg_name => G_NO_MATCHING_RECORD,
5211 p_token1 => G_COL_NAME_TOKEN,
5212 p_token1_value => 'OKC_K_ITEMS_V record');
5213 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5214 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5215 OKL_API.set_message(p_app_name => G_APP_NAME,
5216 p_msg_name => G_NO_MATCHING_RECORD,
5217 p_token1 => G_COL_NAME_TOKEN,
5218 p_token1_value => 'OKC_K_ITEMS_V record');
5219 RAISE OKL_API.G_EXCEPTION_ERROR;
5220 END IF;
5221 IF l_cimv_rec.cle_id <> lx_itiv_rec.kle_id THEN
5222 OKL_API.set_message(p_app_name => G_APP_NAME,
5223 p_msg_name => G_NO_MATCHING_RECORD,
5224 p_token1 => G_COL_NAME_TOKEN,
5225 p_token1_value => 'KLE_ID');
5226 RAISE OKL_API.G_EXCEPTION_ERROR;
5227 END IF;
5228 l_cimv_rec.object1_id1 := null;
5229 l_cimv_rec.object1_id2 := null;
5230 -- Updating of Item Record for the above record information
5231 OKL_OKC_MIGRATION_PVT.update_contract_item(p_api_version => p_api_version,
5232 p_init_msg_list => p_init_msg_list,
5233 x_return_status => x_return_status,
5234 x_msg_count => x_msg_count,
5235 x_msg_data => x_msg_data,
5236 p_cimv_rec => l_cimv_rec,
5237 x_cimv_rec => lx_cimv_rec);
5238 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5239 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5240 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5241 RAISE OKL_API.G_EXCEPTION_ERROR;
5242 END IF;
5243 ELSE
5244 OKL_API.set_message(p_app_name => G_APP_NAME,
5245 p_msg_name => G_ITEM_RECORD);
5246 x_return_status := OKL_API.G_RET_STS_ERROR;
5247 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
5248 END IF;
5249 EXIT WHEN (i = lt_ib_id_tbl.LAST);
5250 i := lt_ib_id_tbl.NEXT(i);
5251 j := lt_new_ib_id_tbl.NEXT(j);
5252 END LOOP;
5253 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5254 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5255 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5256 RAISE OKL_API.G_EXCEPTION_ERROR;
5257 END IF;
5258 ELSE
5259 OKL_API.set_message(p_app_name => G_APP_NAME,
5260 p_msg_name => G_LINE_RECORD);
5261 RAISE OKL_API.G_EXCEPTION_ERROR;
5262 END IF;
5263
5264
5265 /*-----------------------------------------------------------
5266 --This code commented as Copy refund details has been moved
5267 --to OKL base COPY API (OKL_COPY_CONTRACT_PUB)
5268 --This code put into copy contract
5269 --Bug # 3143522: Subsidies - copy subsidy line payment details
5270 --CREATE_PARTY_PYMT_DTLS (p_api_version => p_api_version,
5271 --p_init_msg_list => p_init_msg_list,
5272 --x_return_status => x_return_status,
5273 --x_msg_count => x_msg_count,
5274 --x_msg_data => x_msg_data,
5275 --p_from_cle_id => p_from_cle_id,
5276 --p_to_cle_id => x_cle_id);
5277
5278 --IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5279 --RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5280 --ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5281 --RAISE OKL_API.G_EXCEPTION_ERROR;
5282 --END IF;
5283 --End Bug# : Subsidies enhancement
5284 --This code put into copy contract
5285 -------------------------------------------------------------*/
5286
5287 --------------
5288 --bug# 2994971
5289 --------------
5290 populate_insurance_category(p_api_version => p_api_version,
5291 p_init_msg_list => p_init_msg_list,
5292 x_return_status => x_return_status,
5293 x_msg_count => x_msg_count,
5294 x_msg_data => x_msg_data,
5295 p_cle_id => x_cle_id
5296 );
5297
5298 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5299 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5300 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5301 RAISE OKL_API.G_EXCEPTION_ERROR;
5302 END IF;
5303 --------------
5304 --bug# 2994971
5305 --------------
5306
5307 --bug# 3877032
5308 ---------------------------
5309 --recalculate capital amount
5310 ---------------------------
5311 OKL_EXECUTE_FORMULA_PUB.execute(p_api_version => p_api_version,
5312 p_init_msg_list => p_init_msg_list,
5313 x_return_status => x_return_status,
5314 x_msg_count => x_msg_count,
5315 x_msg_data => x_msg_data,
5316 p_formula_name => 'LINE_CAP_AMNT',
5317 p_contract_id => p_to_chr_id,
5318 p_line_id => x_cle_id,
5319 x_value => l_fin_klev_rec.capital_amount);
5320 If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
5321 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5322 Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
5323 raise OKC_API.G_EXCEPTION_ERROR;
5324 End If;
5325
5326 l_fin_klev_rec.id := x_cle_id;
5327 l_fin_clev_rec.id := x_cle_id;
5328
5329 okl_contract_pub.update_contract_line(p_api_version => p_api_version,
5330 p_init_msg_list => p_init_msg_list,
5331 x_return_status => x_return_status,
5332 x_msg_count => x_msg_count,
5333 x_msg_data => x_msg_data,
5334 p_clev_rec => l_fin_clev_rec,
5335 p_klev_rec => l_fin_klev_rec,
5336 x_clev_rec => lx_fin_clev_rec,
5337 x_klev_rec => lx_fin_klev_rec);
5338 If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
5339 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5340 Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
5341 raise OKC_API.G_EXCEPTION_ERROR;
5342 End If;
5343 ---------------------------
5344 --recalculate capital amount
5345 ---------------------------
5346
5347
5348
5349 OKL_API.END_ACTIVITY (x_msg_count,
5350 x_msg_data );
5351 EXCEPTION
5352 WHEN OKL_API.G_EXCEPTION_ERROR THEN
5353 IF c_year_manufactured%ISOPEN THEN
5354 CLOSE c_year_manufactured;
5355 END IF;
5356 IF c_get_deal_type%ISOPEN THEN
5357 CLOSE c_get_deal_type;
5358 END IF;
5359 IF c_check_txl_rec%ISOPEN THEN
5360 CLOSE c_check_txl_rec;
5361 END IF;
5362 IF c_check_iti_rec%ISOPEN THEN
5363 CLOSE c_check_iti_rec;
5364 END IF;
5365 IF c_asset_info%ISOPEN THEN
5366 CLOSE c_asset_info;
5367 END IF;
5368 IF c_asset_loc_info%ISOPEN THEN
5369 CLOSE c_asset_loc_info;
5370 END IF;
5371 IF c_asset_details_info%ISOPEN THEN
5372 CLOSE c_asset_details_info;
5373 END IF;
5374 IF c_ib_info%ISOPEN THEN
5375 CLOSE c_ib_info;
5376 END IF;
5377 IF c_new_fa_line_id%ISOPEN THEN
5378 CLOSE c_new_fa_line_id;
5379 END IF;
5380 IF c_new_ib_line_id%ISOPEN THEN
5381 CLOSE c_new_ib_line_id;
5382 END IF;
5383 IF c_new_model_item_info%ISOPEN THEN
5384 CLOSE c_new_model_item_info;
5385 END IF;
5386 IF c_get_iti_object_id1%ISOPEN THEN
5387 CLOSE c_get_iti_object_id1;
5388 END IF;
5389 --Bug# 2981308 :
5390 IF l_fab_csr%ISOPEN then
5391 close l_fab_csr;
5392 END IF;
5393 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5394 l_api_name,
5395 G_PKG_NAME,
5396 'OKL_API.G_RET_STS_ERROR',
5397 x_msg_count,
5398 x_msg_data,
5399 '_PVT');
5400 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5401 IF c_year_manufactured%ISOPEN THEN
5402 CLOSE c_year_manufactured;
5403 END IF;
5404 IF c_get_deal_type%ISOPEN THEN
5405 CLOSE c_get_deal_type;
5406 END IF;
5407 IF c_get_iti_object_id1%ISOPEN THEN
5408 CLOSE c_get_iti_object_id1;
5409 END IF;
5410 IF c_check_txl_rec%ISOPEN THEN
5411 CLOSE c_check_txl_rec;
5412 END IF;
5413 IF c_check_iti_rec%ISOPEN THEN
5414 CLOSE c_check_iti_rec;
5415 END IF;
5416 IF c_asset_loc_info%ISOPEN THEN
5417 CLOSE c_asset_loc_info;
5418 END IF;
5419 IF c_asset_info%ISOPEN THEN
5420 CLOSE c_asset_info;
5421 END IF;
5422 IF c_asset_details_info%ISOPEN THEN
5423 CLOSE c_asset_details_info;
5424 END IF;
5425 IF c_ib_info%ISOPEN THEN
5426 CLOSE c_ib_info;
5427 END IF;
5428 IF c_new_fa_line_id%ISOPEN THEN
5429 CLOSE c_new_fa_line_id;
5430 END IF;
5431 IF c_new_ib_line_id%ISOPEN THEN
5432 CLOSE c_new_ib_line_id;
5433 END IF;
5434 IF c_new_model_item_info%ISOPEN THEN
5435 CLOSE c_new_model_item_info;
5436 END IF;
5437 --Bug# 2981308 :
5438 IF l_fab_csr%ISOPEN then
5439 close l_fab_csr;
5440 END IF;
5441 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
5442 l_api_name,
5443 G_PKG_NAME,
5444 'OKL_API.G_RET_STS_UNEXP_ERROR',
5445 x_msg_count,
5446 x_msg_data,
5447 '_PVT');
5448 WHEN OTHERS THEN
5449 IF c_year_manufactured%ISOPEN THEN
5450 CLOSE c_year_manufactured;
5451 END IF;
5452 IF c_get_deal_type%ISOPEN THEN
5453 CLOSE c_get_deal_type;
5454 END IF;
5455 IF c_get_iti_object_id1%ISOPEN THEN
5456 CLOSE c_get_iti_object_id1;
5457 END IF;
5458 IF c_check_txl_rec%ISOPEN THEN
5459 CLOSE c_check_txl_rec;
5460 END IF;
5461 IF c_check_iti_rec%ISOPEN THEN
5462 CLOSE c_check_iti_rec;
5463 END IF;
5464 IF c_asset_info%ISOPEN THEN
5465 CLOSE c_asset_info;
5466 END IF;
5467 IF c_asset_loc_info%ISOPEN THEN
5468 CLOSE c_asset_loc_info;
5469 END IF;
5470 IF c_asset_details_info%ISOPEN THEN
5471 CLOSE c_asset_details_info;
5472 END IF;
5473 IF c_ib_info%ISOPEN THEN
5474 CLOSE c_ib_info;
5475 END IF;
5476 IF c_new_fa_line_id%ISOPEN THEN
5477 CLOSE c_new_fa_line_id;
5478 END IF;
5479 IF c_new_ib_line_id%ISOPEN THEN
5480 CLOSE c_new_ib_line_id;
5481 END IF;
5482 IF c_new_model_item_info%ISOPEN THEN
5483 CLOSE c_new_model_item_info;
5484 END IF;
5485 --Bug# 2981308 :
5486 IF l_fab_csr%ISOPEN then
5487 close l_fab_csr;
5488 END IF;
5489 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
5490 l_api_name,
5491 G_PKG_NAME,
5492 'OTHERS',
5493 x_msg_count,
5494 x_msg_data,
5495 '_PVT');
5496 END copy_asset_lines;
5497 -----------------------------------------------------------------------------------------------
5498 --------------------------- Main Process for Copy of Asset Line -------------------------------
5499 -----------------------------------------------------------------------------------------------
5500 Procedure copy_asset_lines(
5501 p_api_version IN NUMBER,
5502 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5503 x_return_status OUT NOCOPY VARCHAR2,
5504 x_msg_count OUT NOCOPY NUMBER,
5505 x_msg_data OUT NOCOPY VARCHAR2,
5506 p_from_cle_id_tbl IN klev_tbl_type,
5507 p_to_cle_id IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
5508 p_to_chr_id IN NUMBER,
5509 p_to_template_yn IN VARCHAR2,
5510 p_copy_reference IN VARCHAR2,
5511 p_copy_line_party_yn IN VARCHAR2,
5512 p_renew_ref_yn IN VARCHAR2,
5513 p_trans_type IN VARCHAR2,
5514 x_cle_id_tbl OUT NOCOPY klev_tbl_type)
5515 IS
5516 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_COPY_ASSETS';
5517 l_api_version CONSTANT NUMBER := 1;
5518 i NUMBER := 0;
5519 BEGIN
5520 OKL_API.init_msg_list(p_init_msg_list);
5521 -- Make sure PL/SQL table has records in it before passing
5522 IF (p_from_cle_id_tbl.COUNT > 0) THEN
5523 i := p_from_cle_id_tbl.FIRST;
5524 LOOP
5525 copy_asset_lines(p_api_version => p_api_version,
5526 p_init_msg_list => p_init_msg_list,
5527 x_return_status => x_return_status,
5528 x_msg_count => x_msg_count,
5529 x_msg_data => x_msg_data,
5530 P_from_cle_id => p_from_cle_id_tbl(i).id,
5531 p_to_cle_id => p_to_cle_id,
5532 p_to_chr_id => p_to_chr_id,
5533 p_to_template_yn => p_to_template_yn,
5534 p_copy_reference => p_copy_reference,
5535 p_copy_line_party_yn => p_copy_line_party_yn,
5536 p_renew_ref_yn => p_renew_ref_yn,
5537 p_trans_type => p_trans_type,
5538 x_cle_id => x_cle_id_tbl(i).id);
5539 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5540 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
5541 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5542 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
5543 END IF;
5544 EXIT WHEN (i = p_from_cle_id_tbl.LAST);
5545 i := p_from_cle_id_tbl.NEXT(i);
5546 END LOOP;
5547 END IF;
5548 EXCEPTION
5549 WHEN OKL_API.G_EXCEPTION_ERROR THEN
5550 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5551 l_api_name,
5552 G_PKG_NAME,
5553 'OKL_API.G_RET_STS_ERROR',
5554 x_msg_count,
5555 x_msg_data,
5556 '_PVT');
5557 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5558 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
5559 l_api_name,
5560 G_PKG_NAME,
5561 'OKL_API.G_RET_STS_UNEXP_ERROR',
5562 x_msg_count,
5563 x_msg_data,
5564 '_PVT');
5565 WHEN OTHERS THEN
5566 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
5567 l_api_name,
5568 G_PKG_NAME,
5569 'OTHERS',
5570 x_msg_count,
5571 x_msg_data,
5572 '_PVT');
5573 END copy_asset_lines;
5574 -----------------------------------------------------------------------------------------------------
5575 PROCEDURE link_cov_asst(p_api_version IN NUMBER,
5576 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5577 x_return_status OUT NOCOPY VARCHAR2,
5578 x_msg_count OUT NOCOPY NUMBER,
5579 x_msg_data OUT NOCOPY VARCHAR2,
5580 p_orig_lnk_cle_id IN NUMBER,
5581 p_new_lnk_cim_id IN NUMBER,
5582 p_object_code IN VARCHAR2,
5583 p_new_chr_id IN NUMBER) IS
5584 l_api_name VARCHAR2(30) := 'LINK_COV_ASSET';
5585 l_new_cle_id OKC_K_LINES_B.ID%TYPE;
5586 l_new_lnk_cim_id NUMBER;
5587 l_cimv_rec OKL_OKC_MIGRATION_PVT.cimv_rec_type;
5588 lx_cimv_rec OKL_OKC_MIGRATION_PVT.cimv_rec_type;
5589 --cursor to fetch original fin linked asset line id
5590 CURSOR l_orig_ast_csr(p_orig_lnk_cle_id IN NUMBER,
5591 p_new_chr_id IN NUMBER) IS
5592 SELECT new_cle.id
5593 FROM OKC_K_LINES_B new_cle,
5594 OKC_K_ITEMS orig_lnk_cim
5595 WHERE
5596 --Bug# 2998115 :
5597 --Bug# 3868709 : Query fixed for Performance issue
5598 ((new_cle.ORIG_SYSTEM_ID1 = orig_lnk_cim.object1_id1)
5599 OR
5600 exists (select null
5601 from OKC_K_LINES_B rbk_cle
5602 where rbk_cle.id = orig_lnk_cim.object1_id1
5603 AND rbk_cle.ORIG_SYSTEM_ID1 = new_cle.id)
5604 )
5605 AND new_cle.chr_id = p_new_chr_id
5606 AND orig_lnk_cim.cle_id = p_orig_lnk_cle_id
5607 AND orig_lnk_cim.jtot_object1_code = 'OKX_COVASST'
5608 AND not exists (select null
5609 from OKC_K_LINES_B another_cle
5610 where another_cle.orig_system_id1 = new_cle.orig_system_id1
5611 and another_cle.lse_id = new_cle.lse_id
5612 and another_cle.chr_id = new_cle.chr_id
5613 and another_cle.id <> new_cle.id);
5614
5615 --Bug# 3877032 : CAP AMNT
5616 cursor l_cap_amnt_csr(p_cim_id in number) is
5617 select cov_ast_cim.object1_id1,
5618 cov_ast_cim.dnz_chr_id
5619 from okc_k_lines_b cov_ast_cleb,
5620 okc_line_styles_b cov_ast_lseb,
5621 okl_k_lines fee_kle,
5622 okc_k_items cov_ast_cim
5623 where fee_kle.id = cov_ast_cleb.cle_id
5624 and fee_kle.fee_type = 'CAPITALIZED'
5625 and cov_ast_lseb.id = cov_ast_cleb.lse_id
5626 and cov_ast_lseb.lty_code = 'LINK_FEE_ASSET'
5627 and cov_ast_cleb.id = cov_ast_cim.cle_id
5628 and cov_ast_cim.id = p_cim_id
5629 and cov_ast_cim.jtot_object1_code = 'OKX_COVASST'
5630 --Bug# 4057305 : exclude the linked asset lines for which the asset does not
5631 -- exist on the same contract
5632 and exists (select '1'
5633 from okc_k_lines_b fin_ast_cleb,
5634 okc_line_styles_b fin_ast_lseb
5635 where fin_ast_cleb.id = cov_ast_cim.object1_id1
5636 and fin_ast_cleb.lse_id = fin_ast_lseb.id
5637 and fin_ast_lseb.lty_code = 'FREE_FORM1'
5638 and fin_ast_cleb.dnz_chr_id = cov_ast_cim.dnz_chr_id);
5639
5640
5641 l_fin_clev_rec okl_okc_migration_pvt.clev_rec_type;
5642 l_fin_klev_rec okl_contract_pub.klev_rec_type;
5643 lx_fin_clev_rec okl_okc_migration_pvt.clev_rec_type;
5644 lx_fin_klev_rec okl_contract_pub.klev_rec_type;
5645
5646 BEGIN
5647 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5648 l_new_lnk_cim_id := p_new_lnk_cim_id;
5649 IF p_object_code in ('OKL_USAGE','OKX_LEASE') THEN --for covered usage contract and syndicated contract
5650 l_cimv_rec.id := l_new_lnk_cim_id;
5651 l_cimv_rec.object1_id1 := OKL_API.G_MISS_CHAR;
5652 l_cimv_rec.object1_id2 := OKL_API.G_MISS_CHAR;
5653 l_cimv_rec.jtot_object1_code := OKL_API.G_MISS_CHAR;
5654 Else --for covered asset
5655 OPEN l_orig_ast_csr(p_orig_lnk_cle_id => p_orig_lnk_cle_id,
5656 p_new_chr_id => p_new_chr_id);
5657 FETCH l_orig_ast_csr into l_new_cle_id;
5658 IF l_orig_ast_csr%NOTFOUND THEN
5659 --null out the new link
5660 l_cimv_rec.id := l_new_lnk_cim_id;
5661 l_cimv_rec.object1_id1 := OKL_API.G_MISS_CHAR;
5662 l_cimv_rec.object1_id2 := OKL_API.G_MISS_CHAR;
5663 l_cimv_rec.jtot_object1_code := OKL_API.G_MISS_CHAR;
5664 ELSE
5665 --update the new link with new asset
5666 l_cimv_rec.id := l_new_lnk_cim_id;
5667 l_cimv_rec.object1_id1 := to_char(l_new_cle_id);
5668 END IF;
5669 CLOSE l_orig_ast_csr;
5670 END IF;
5671 --update link contract item accordingly
5672 okl_okc_migration_pvt.update_contract_item(p_api_version => p_api_version,
5673 p_init_msg_list => p_init_msg_list,
5674 x_return_status => x_return_status,
5675 x_msg_count => x_msg_count,
5676 x_msg_data => x_msg_data,
5677 p_cimv_rec => l_cimv_rec,
5678 x_cimv_rec => lx_cimv_rec);
5679 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5680 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5681 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5682 RAISE OKL_API.G_EXCEPTION_ERROR;
5683 END IF;
5684
5685 --Bug# 3877032
5686 If nvl(lx_cimv_rec.object1_id1,okl_api.g_miss_char) <> okl_api.g_miss_char then
5687 for l_cap_amnt_rec in l_cap_amnt_csr(lx_cimv_rec.id)
5688 Loop
5689 l_fin_klev_rec.id := to_number(l_cap_amnt_rec.object1_id1);
5690 l_fin_clev_rec.dnz_chr_id := l_cap_amnt_rec.dnz_chr_id;
5691 l_fin_clev_rec.id := to_number(l_cap_amnt_rec.object1_id1);
5692 OKL_EXECUTE_FORMULA_PUB.execute(p_api_version => p_api_version,
5693 p_init_msg_list => p_init_msg_list,
5694 x_return_status => x_return_status,
5695 x_msg_count => x_msg_count,
5696 x_msg_data => x_msg_data,
5697 p_formula_name => 'LINE_CAP_AMNT',
5698 p_contract_id => l_fin_clev_rec.dnz_chr_id,
5699 p_line_id => to_number(l_fin_klev_rec.id),
5700 x_value => l_fin_klev_rec.capital_amount);
5701 If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
5702 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5703 Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
5704 raise OKC_API.G_EXCEPTION_ERROR;
5705 End If;
5706
5707
5708 okl_contract_pub.update_contract_line(p_api_version => p_api_version,
5709 p_init_msg_list => p_init_msg_list,
5710 x_return_status => x_return_status,
5711 x_msg_count => x_msg_count,
5712 x_msg_data => x_msg_data,
5713 p_clev_rec => l_fin_clev_rec,
5714 p_klev_rec => l_fin_klev_rec,
5715 x_clev_rec => lx_fin_clev_rec,
5716 x_klev_rec => lx_fin_klev_rec);
5717 If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
5718 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5719 Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
5720 raise OKC_API.G_EXCEPTION_ERROR;
5721 End If;
5722 End Loop;
5723 End If;
5724
5725 EXCEPTION
5726 WHEN OKL_API.G_EXCEPTION_ERROR THEN
5727 IF l_orig_ast_csr%ISOPEN THEN
5728 CLOSE l_orig_ast_csr;
5729 END IF;
5730 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5731 l_api_name,
5732 G_PKG_NAME,
5733 'OKL_API.G_RET_STS_ERROR',
5734 x_msg_count,
5735 x_msg_data,
5736 '_PVT');
5737 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5738 IF l_orig_ast_csr%ISOPEN THEN
5739 CLOSE l_orig_ast_csr;
5740 END IF;
5741 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
5742 l_api_name,
5743 G_PKG_NAME,
5744 'OKL_API.G_RET_STS_UNEXP_ERROR',
5745 x_msg_count,
5746 x_msg_data,
5747 '_PVT');
5748 WHEN OTHERS THEN
5749 IF l_orig_ast_csr%ISOPEN THEN
5750 CLOSE l_orig_ast_csr;
5751 END IF;
5752 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
5753 l_api_name,
5754 G_PKG_NAME,
5755 'OTHERS',
5756 x_msg_count,
5757 x_msg_data,
5758 '_PVT');
5759 END link_cov_asst;
5760
5761 --
5762 -- NAME: copy_service_line_link
5763 --
5764 -- DESCRIPTION: This process copies records from OKC_K_REL_OBJS
5765 -- in case a linked service line exists at copied contract.
5766 --
5767 PROCEDURE copy_service_line_link(
5768 x_return_status OUT NOCOPY VARCHAR2,
5769 x_msg_count OUT NOCOPY NUMBER,
5770 x_msg_data OUT NOCOPY VARCHAR2,
5771 p_to_chr_id IN OKC_K_HEADERS_B.ID%TYPE,
5772 p_from_line_id IN OKC_K_LINES_B.ID%TYPE
5773 ) IS
5774 CURSOR line_style_csr(p_top_line_id OKC_K_LINES_B.ID%TYPE) IS
5775 SELECT lse.lty_code,
5776 cle.dnz_chr_id
5777 FROM okc_line_styles_b lse,
5778 okc_k_lines_b cle
5779 WHERE cle.id = p_top_line_id
5780 AND cle.lse_id = lse.id
5781 AND lse.lse_parent_id is null
5782 AND lse.lse_type = G_TLS_TYPE;
5783
5784 CURSOR h_new_link_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
5785 SELECT 'Y'
5786 FROM okc_k_rel_objs
5787 WHERE chr_id = p_chr_id
5788 AND cle_id IS NULL
5789 AND rty_code = 'OKLSRV'
5790 AND jtot_object1_code = 'OKL_SERVICE';
5791
5792 CURSOR h_old_link_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
5793 SELECT cle_id,
5794 chr_id,
5795 rty_code,
5796 object1_id1,
5797 object1_id2,
5798 jtot_object1_code
5799 FROM okc_k_rel_objs
5800 WHERE chr_id = p_chr_id
5801 AND cle_id IS NULL
5802 AND rty_code = 'OKLSRV'
5803 AND jtot_object1_code = 'OKL_SERVICE';
5804
5805 --
5806 -- returns linked service top line
5807 -- and its sub-lines
5808 --
5809 CURSOR srv_link_csr (p_srv_top_line_id OKC_K_LINES_V.ID%TYPE) IS
5810 SELECT rel.id,
5811 rel.cle_id,
5812 rel.chr_id,
5813 rel.rty_code,
5814 rel.object1_id1,
5815 rel.object1_id2,
5816 rel.jtot_object1_code
5817 FROM okc_k_rel_objs rel
5818 WHERE rty_code = 'OKLSRV'
5819 AND cle_id is not null
5820 AND jtot_object1_code = 'OKL_SERVICE_LINE'
5821 AND cle_id = p_srv_top_line_id
5822 UNION
5823 SELECT rel.id,
5824 rel.cle_id,
5825 rel.chr_id,
5826 rel.rty_code,
5827 rel.object1_id1,
5828 rel.object1_id2,
5829 rel.jtot_object1_code
5830 FROM okc_k_rel_objs rel,
5831 okc_k_lines_b line
5832 WHERE rty_code = 'OKLSRV'
5833 AND rel.cle_id is not null
5834 AND rel.jtot_object1_code = 'OKL_COV_PROD'
5835 AND rel.cle_id = line.id
5836 AND line.cle_id = p_srv_top_line_id;
5837
5838 CURSOR copy_line_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
5839 p_line_id OKC_K_LINES_V.ID%TYPE) IS
5840 SELECT id
5841 FROM okc_k_lines_b
5842 WHERE orig_system_id1 = p_line_id
5843 AND dnz_chr_id = p_chr_id;
5844
5845 copy_service_failed EXCEPTION;
5846 l_lty_code OKC_LINE_STYLES_B.LTY_CODE%TYPE;
5847 l_from_chr_id OKC_K_HEADERS_B.ID%TYPE;
5848 l_h_link_exist VARCHAR2(1) := 'N';
5849 l_to_line_id OKC_K_LINES_V.ID%TYPE;
5850
5851 l_crjv_rec OKC_K_REL_OBJS_PUB.crjv_rec_type;
5852 x_crjv_rec OKC_K_REL_OBJS_PUB.crjv_rec_type;
5853
5854 BEGIN
5855
5856 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5857
5858 l_lty_code := '?';
5859 OPEN line_style_csr(p_from_line_id);
5860 IF line_style_csr%NOTFOUND THEN
5861 OKL_API.set_message(p_app_name => G_APP_NAME,
5862 p_msg_name => G_LINE_RECORD);
5863 -- halt validation
5864 RAISE copy_service_failed;
5865 END IF;
5866
5867 FETCH line_style_csr INTO l_lty_code,
5868 l_from_chr_id;
5869 CLOSE line_style_csr;
5870
5871 --
5872 -- Copy link only in case of SERVICE line
5873 --
5874 IF (l_lty_code = G_SER_LINE_LTY_CODE) THEN -- SERVICE LINE
5875
5876 FOR h_old_link_rec IN h_old_link_csr(l_from_chr_id)
5877 LOOP
5878 --
5879 -- Link exist for this contract
5880 -- so, check for header link after copy
5881 -- if no link exists, create one
5882 --
5883 l_h_link_exist := '?';
5884 OPEN h_new_link_csr(p_to_chr_id);
5885 FETCH h_new_link_csr INTO l_h_link_exist;
5886 CLOSE h_new_link_csr;
5887
5888 IF (l_h_link_exist <> 'Y') THEN -- create header link first
5889 l_crjv_rec := NULL;
5890 l_crjv_rec.chr_id := p_to_chr_id;
5891 l_crjv_rec.cle_id := NULL;
5892 l_crjv_rec.rty_code := h_old_link_rec.rty_code;
5893 l_crjv_rec.object1_id1 := h_old_link_rec.object1_id1;
5894 l_crjv_rec.object1_id2 := h_old_link_rec.object1_id2;
5895 l_crjv_rec.jtot_object1_code := h_old_link_rec.jtot_object1_code;
5896
5897 OKC_K_REL_OBJS_PUB.create_row (
5898 p_api_version => 1.0,
5899 p_init_msg_list => OKC_API.G_FALSE,
5900 x_return_status => x_return_status,
5901 x_msg_count => x_msg_count,
5902 x_msg_data => x_msg_data,
5903 p_crjv_rec => l_crjv_rec,
5904 x_crjv_rec => x_crjv_rec
5905 );
5906
5907 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
5908 RAISE OKC_API.G_EXCEPTION_ERROR;
5909 END IF;
5910 END IF; -- l_h_link_exist = 'Y'
5911
5912 --
5913 -- Now check for service line link
5914 -- If link exists for this service top line
5915 -- create links for the top as well as sub-lines
5916 --
5917 FOR srv_link_rec IN srv_link_csr (p_from_line_id)
5918 LOOP
5919 l_crjv_rec := NULL;
5920 l_crjv_rec.chr_id := p_to_chr_id;
5921 l_crjv_rec.rty_code := srv_link_rec.rty_code;
5922 l_crjv_rec.object1_id1 := srv_link_rec.object1_id1;
5923 l_crjv_rec.object1_id2 := srv_link_rec.object1_id2;
5924 l_crjv_rec.jtot_object1_code := srv_link_rec.jtot_object1_code;
5925
5926 IF (srv_link_rec.cle_id IS NOT NULL) THEN -- get corresponding copied line ID
5927 OPEN copy_line_csr(p_to_chr_id,
5928 srv_link_rec.cle_id);
5929 FETCH copy_line_csr INTO l_to_line_id;
5930 CLOSE copy_line_csr;
5931
5932 l_crjv_rec.cle_id := l_to_line_id;
5933 END IF;
5934
5935 OKC_K_REL_OBJS_PUB.create_row (
5936 p_api_version => 1.0,
5937 p_init_msg_list => OKC_API.G_FALSE,
5938 x_return_status => x_return_status,
5939 x_msg_count => x_msg_count,
5940 x_msg_data => x_msg_data,
5941 p_crjv_rec => l_crjv_rec,
5942 x_crjv_rec => x_crjv_rec
5943 );
5944
5945 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
5946 RAISE OKC_API.G_EXCEPTION_ERROR;
5947 END IF;
5948
5949 END LOOP;
5950 END LOOP; -- h_old_link_csr
5951 END IF;
5952
5953 EXCEPTION
5954 WHEN copy_service_failed THEN
5955 x_return_status := OKL_API.G_RET_STS_ERROR;
5956 END copy_service_line_link;
5957
5958 -----------------------------------------------------------------------------------------------
5959 --------------------------- Main Process for Copy of All Lines --------------------------------
5960 -----------------------------------------------------------------------------------------------
5961 Procedure copy_all_lines(
5962 p_api_version IN NUMBER,
5963 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5964 x_return_status OUT NOCOPY VARCHAR2,
5965 x_msg_count OUT NOCOPY NUMBER,
5966 x_msg_data OUT NOCOPY VARCHAR2,
5967 p_from_cle_id_tbl IN klev_tbl_type,
5968 p_to_cle_id IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
5969 p_to_chr_id IN NUMBER,
5970 p_to_template_yn IN VARCHAR2,
5971 p_copy_reference IN VARCHAR2,
5972 p_copy_line_party_yn IN VARCHAR2,
5973 p_renew_ref_yn IN VARCHAR2,
5974 p_trans_type IN VARCHAR2,
5975 x_cle_id_tbl OUT NOCOPY klev_tbl_type)
5976 IS
5977 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_COPY_ASSETS';
5978 l_api_version CONSTANT NUMBER := 1;
5979 i NUMBER := 0;
5980 lv_lty_code OKC_LINE_STYLES_B.LTY_CODE%TYPE;
5981 lx_cle_id_tbl klev_tbl_type;
5982 l_new_lnk_cle_id OKC_K_LINES_B.ID%TYPE;
5983 l_orig_lnk_cle_id OKC_K_LINES_B.ID%TYPE;
5984 l_new_lnk_cim_id OKC_K_ITEMS.ID%TYPE;
5985 l_jtot_object1_code OKC_K_ITEMS.JTOT_OBJECT1_CODE%TYPE;
5986 l_object1_id1 OKC_K_ITEMS.OBJECT1_ID1%TYPE;
5987 l_object1_id2 OKC_K_ITEMS.OBJECT1_ID2%TYPE;
5988 l_cle_id OKC_K_LINES_B.ID%TYPE;
5989 l_dnz_chr_id OKC_K_LINES_B.DNZ_CHR_ID%TYPE;
5990 l_level NUMBER;
5991 l_orig_system_id1 OKC_K_LINES_B.ORIG_SYSTEM_ID1%TYPE;
5992
5993 lsx_cle_id_tbl klev_tbl_type;
5994 j NUMBER := 0;
5995 k NUMBER := 0;
5996 m NUMBER := 0;
5997 ln_old_chr_id OKC_K_HEADERS_B.ID%TYPE;
5998
5999 CURSOR c_get_lty_code(p_top_line_id OKC_K_LINES_B.ID%TYPE) IS
6000
6001 SELECT lse.lty_code,
6002 cle.dnz_chr_id
6003 FROM okc_line_styles_b lse,
6004 okc_k_lines_b cle
6005 WHERE cle.id = p_top_line_id
6006 AND cle.lse_id = lse.id
6007 AND lse.lse_parent_id is null
6008 AND lse.lse_type = G_TLS_TYPE;
6009
6010 CURSOR c_get_tls_spk(p_dnz_chr_id OKC_K_LINES_B.DNZ_CHR_ID%TYPE)
6011 IS
6012 SELECT cle.id top_line_id
6013 FROM okc_line_styles_b lse,
6014 okc_k_lines_b cle
6015 WHERE cle.dnz_chr_id = p_dnz_chr_id
6016 AND cle.lse_id = lse.id
6017 AND lse.lse_parent_id is null
6018 AND lse.lse_type = G_TLS_TYPE
6019 AND lse.lty_code in (G_FEE_LINE_LTY_CODE,G_SER_LINE_LTY_CODE,G_UBB_LINE_LTY_CODE);
6020
6021 --cursor to fetch all the lines under a top line
6022 cursor l_cle_csr(p_cle_id IN NUMBER) IS
6023 SELECT level,
6024 id,
6025 dnz_chr_id,
6026 orig_system_id1
6027 FROM okc_k_lines_b
6028 CONNECT BY PRIOR id = cle_id
6029 START WITH id = p_cle_id;
6030
6031 --cursor to fetch copied link lines for fixing
6032 Cursor l_lnk_csr (p_cle_id IN NUMBER) is
6033 SELECT new_lnk_cle.id,
6034 new_lnk_cle.orig_system_id1,
6035 new_lnk_cim.id,
6036 new_lnk_cim.jtot_object1_code,
6037 new_lnk_cim.object1_id1,
6038 new_lnk_cim.object1_id2
6039 FROM okc_k_items new_lnk_cim,
6040 okc_k_lines_b new_lnk_cle
6041 WHERE new_lnk_cim.cle_id = new_lnk_cle.id
6042 AND new_lnk_cim.dnz_chr_id = new_lnk_cle.dnz_chr_id
6043 --Bug# 4899328
6044 -- To link cov assets when copying only sub-lines
6045 --AND new_lnk_cle.cle_id = p_cle_id;
6046 AND new_lnk_cle.id = p_cle_id;
6047
6048 -- Get contract context
6049 CURSOR h_context_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
6050 SELECT authoring_org_id,
6051 inv_organization_id
6052 FROM okc_k_headers_b
6053 WHERE id = p_chr_id;
6054
6055 l_auth_org_id OKC_K_HEADERS_V.AUTHORING_ORG_ID%TYPE;
6056 l_inv_org_id OKC_K_HEADERS_V.INV_ORGANIZATION_ID%TYPE;
6057
6058 BEGIN
6059 OKL_API.init_msg_list(p_init_msg_list);
6060 -- Make sure PL/SQL table has records in it before passing
6061
6062 --
6063 -- Set the context once again
6064 --
6065 OPEN h_context_csr (p_to_chr_id);
6066 FETCH h_context_csr INTO l_auth_org_id,
6067 l_inv_org_id;
6068 CLOSE h_context_csr;
6069
6070 OKL_CONTEXT.SET_OKC_ORG_CONTEXT(l_auth_org_id,l_inv_org_id);
6071
6072
6073 IF (p_from_cle_id_tbl.COUNT > 0) THEN
6074 i := p_from_cle_id_tbl.FIRST;
6075 LOOP
6076 OPEN c_get_lty_code(p_from_cle_id_tbl(i).id);
6077 IF c_get_lty_code%NOTFOUND THEN
6078 OKL_API.set_message(p_app_name => G_APP_NAME,
6079 p_msg_name => G_LINE_RECORD);
6080 -- halt validation
6081 RAISE G_EXCEPTION_HALT_VALIDATION;
6082 END IF;
6083 FETCH c_get_lty_code INTO lv_lty_code,
6084 ln_old_chr_id;
6085 CLOSE c_get_lty_code;
6086 IF lv_lty_code = G_FIN_LINE_LTY_CODE THEN
6087 copy_asset_lines(p_api_version => p_api_version,
6088 p_init_msg_list => p_init_msg_list,
6089 x_return_status => x_return_status,
6090 x_msg_count => x_msg_count,
6091 x_msg_data => x_msg_data,
6092 P_from_cle_id => p_from_cle_id_tbl(i).id,
6093 p_to_cle_id => p_to_cle_id,
6094 p_to_chr_id => p_to_chr_id,
6095 p_to_template_yn => p_to_template_yn,
6096 p_copy_reference => p_copy_reference,
6097 p_copy_line_party_yn => p_copy_line_party_yn,
6098 p_renew_ref_yn => p_renew_ref_yn,
6099 p_trans_type => p_trans_type,
6100 x_cle_id => x_cle_id_tbl(i).id);
6101 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6102 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6103 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6104 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6105 END IF;
6106 ELSE
6107 OKL_COPY_CONTRACT_PUB.COPY_CONTRACT_LINES(
6108 p_api_version => p_api_version,
6109 p_init_msg_list => p_init_msg_list,
6110 x_return_status => x_return_status,
6111 x_msg_count => x_msg_count,
6112 x_msg_data => x_msg_data,
6113 p_from_cle_id => p_from_cle_id_tbl(i).id,
6114 p_to_cle_id => p_to_cle_id,
6115 p_to_chr_id => p_to_chr_id,
6116 p_to_template_yn => p_to_template_yn,
6117 p_copy_reference => p_copy_reference,
6118 p_copy_line_party_yn => p_copy_line_party_yn,
6119 p_renew_ref_yn => p_renew_ref_yn,
6120 x_cle_id => x_cle_id_tbl(i).id);
6121 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6122 OKL_API.set_message(p_app_name => G_APP_NAME,
6123 p_msg_name => G_COPY_LINE);
6124 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6125 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6126 OKL_API.set_message(p_app_name => G_APP_NAME,
6127 p_msg_name => G_COPY_LINE);
6128 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6129 END IF;
6130
6131 --Bug# 2872267:
6132 /*-----------------------------------------------------------------
6133 --
6134 -- Copy Link detail from OKC_K_REL_OBJS
6135 -- in case of Service Integration, where
6136 -- OKL service line(s) is/are linked with OKS Service contract
6137 --
6138 --copy_service_line_link(
6139 --x_return_status => x_return_status,
6140 --x_msg_count => x_msg_count,
6141 --x_msg_data => x_msg_data,
6142 --p_to_chr_id => p_to_chr_id,
6143 --p_from_line_id => p_from_cle_id_tbl(i).id
6144 --);
6145
6146 --IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6147 --RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6148 --ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6149 --RAISE OKL_API.G_EXCEPTION_ERROR;
6150 --END IF;
6151 ---------------------------------------------------------------------*/
6152
6153 END IF;
6154 EXIT WHEN (i = p_from_cle_id_tbl.LAST);
6155 i := p_from_cle_id_tbl.NEXT(i);
6156 END LOOP;
6157 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6158 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6159 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6160 RAISE OKL_API.G_EXCEPTION_ERROR;
6161 END IF;
6162 END IF;
6163 lx_cle_id_tbl := x_cle_id_tbl;
6164 -- We need to do this only for split contract cases where in we need the other toplines
6165 -- fee, service, usage. Since the UI will collect only the asset lines and not other lines.
6166 IF p_trans_type = 'CSP' THEN
6167 FOR r_get_tls_spk IN c_get_tls_spk(p_dnz_chr_id => ln_old_chr_id) LOOP
6168 OKL_COPY_CONTRACT_PUB.COPY_CONTRACT_LINES(
6169 p_api_version => p_api_version,
6170 p_init_msg_list => p_init_msg_list,
6171 x_return_status => x_return_status,
6172 x_msg_count => x_msg_count,
6173 x_msg_data => x_msg_data,
6174 p_from_cle_id => r_get_tls_spk.top_line_id,
6175 p_to_cle_id => p_to_cle_id,
6176 p_to_chr_id => p_to_chr_id,
6177 p_to_template_yn => p_to_template_yn,
6178 p_copy_reference => p_copy_reference,
6179 p_copy_line_party_yn => p_copy_line_party_yn,
6180 p_renew_ref_yn => p_renew_ref_yn,
6181 x_cle_id => lsx_cle_id_tbl(j).id);
6182 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6183 OKL_API.set_message(p_app_name => G_APP_NAME,
6184 p_msg_name => G_COPY_LINE);
6185 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6186 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6187 OKL_API.set_message(p_app_name => G_APP_NAME,
6188 p_msg_name => G_COPY_LINE);
6189 EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6190 END IF;
6191 j := j + 1 ;
6192 END LOOP;
6193 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6194 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6195 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6196 RAISE OKL_API.G_EXCEPTION_ERROR;
6197 END IF;
6198 END IF;
6199 IF lx_cle_id_tbl.COUNT > 0 AND
6200 lsx_cle_id_tbl.COUNT > 0 THEN
6201 k := lx_cle_id_tbl.LAST;
6202 k := k + 1;
6203 m := lsx_cle_id_tbl.FIRST;
6204 LOOP
6205 lx_cle_id_tbl(k).id := lsx_cle_id_tbl(m).id;
6206 EXIT WHEN (m = lsx_cle_id_tbl.LAST);
6207 m := lsx_cle_id_tbl.NEXT(m);
6208 k := k + 1;
6209 END LOOP;
6210 x_cle_id_tbl := lx_cle_id_tbl;
6211 END IF;
6212 ---------------------------------------------------------------------------
6213 --special process to change the linked line links for covered asset
6214 ---------------------------------------------------------------------------
6215 IF lx_cle_id_tbl.LAST is NOT NULL THEN
6216 FOR j in 1..lx_cle_id_tbl.last LOOP
6217 OPEN l_cle_csr(lx_cle_id_tbl(j).id);
6218 LOOP
6219 Fetch l_cle_csr INTO l_level,
6220 l_cle_id,
6221 l_dnz_chr_id,
6222 l_orig_system_id1;
6223 EXIT when l_cle_csr%NOTFOUND;
6224 OPEN l_lnk_csr(p_cle_id => l_cle_id);
6225 LOOP
6226 FETCH l_lnk_csr INTO
6227 l_new_lnk_cle_id,
6228 l_orig_lnk_cle_id,
6229 l_new_lnk_cim_id,
6230 l_jtot_object1_code,
6231 l_object1_id1,
6232 l_object1_id2;
6233 EXIT when l_lnk_csr%NOTFOUND;
6234 IF l_jtot_object1_code in ('OKX_COVASST', 'OKL_USAGE', 'OKX_LEASE') AND
6235 (l_object1_id1 is not null) THEN
6236 link_cov_asst(p_api_version => p_api_version,
6237 p_init_msg_list => p_init_msg_list,
6238 x_return_status => x_return_status,
6239 x_msg_count => x_msg_count,
6240 x_msg_data => x_msg_data,
6241 p_orig_lnk_cle_id => l_orig_lnk_cle_id,
6242 p_new_lnk_cim_id => l_new_lnk_cim_id,
6243 p_object_code => l_jtot_object1_code,
6244 p_new_chr_id => l_dnz_chr_id );
6245 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6246 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6247 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6248 RAISE OKL_API.G_EXCEPTION_ERROR;
6249 END IF;
6250 END IF;
6251 END LOOP;
6252 CLOSE l_lnk_csr;
6253 END LOOP;
6254 CLOSE l_cle_csr;
6255 END LOOP;
6256 END IF;
6257 -------------------------------------------------------------------------
6258 --end of special processing for fixing linked lines
6259 -------------------------------------------------------------------------
6260 EXCEPTION
6261 WHEN OKL_API.G_EXCEPTION_ERROR THEN
6262 IF c_get_lty_code%ISOPEN THEN
6263 CLOSE c_get_lty_code;
6264 END IF;
6265 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6266 l_api_name,
6267 G_PKG_NAME,
6268 'OKL_API.G_RET_STS_ERROR',
6269 x_msg_count,
6270 x_msg_data,
6271 '_PVT');
6272 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6273 IF c_get_lty_code%ISOPEN THEN
6274 CLOSE c_get_lty_code;
6275 END IF;
6276 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
6277 l_api_name,
6278 G_PKG_NAME,
6279 'OKL_API.G_RET_STS_UNEXP_ERROR',
6280 x_msg_count,
6281 x_msg_data,
6282 '_PVT');
6283 WHEN OTHERS THEN
6284 IF c_get_lty_code%ISOPEN THEN
6285 CLOSE c_get_lty_code;
6286 END IF;
6287 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
6288 l_api_name,
6289 G_PKG_NAME,
6290 'OTHERS',
6291 x_msg_count,
6292 x_msg_data,
6293 '_PVT');
6294 END copy_all_lines;
6295 End okl_copy_asset_pvt;