DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_COPY_ASSET_PUB

Source


1 Package body okl_copy_asset_PUB as
2 /* $Header: OKLPCALB.pls 115.7 2004/04/13 10:34:35 rnaik noship $ */
3   subtype trxv_rec_type is OKL_TRX_ASSETS_PUB.thpv_rec_type;
4   subtype trxv_tbl_type is OKL_TRX_ASSETS_PUB.thpv_tbl_type;
5   subtype talv_rec_type is OKL_TXL_ASSETS_PUB.tlpv_rec_type;
6   subtype talv_tbl_type is OKL_TXL_ASSETS_PUB.tlpv_tbl_type;
7   subtype txdv_tbl_type is OKL_TXD_ASSETS_PUB.adpv_tbl_type;
8   subtype itiv_rec_type is OKL_TXL_ITM_INSTS_PUB.iipv_rec_type;
9   subtype itiv_tbl_type is OKL_TXL_ITM_INSTS_PUB.iipv_tbl_type;
10 -------------------------------------------------------------------------------------------------
11 -- GLOBAL MESSAGE CONSTANTS
12 -------------------------------------------------------------------------------------------------
13   G_NO_PARENT_RECORD            CONSTANT  VARCHAR2(200) := 'OKC_NO_PARENT_RECORD';
14   G_FND_APP                     CONSTANT  VARCHAR2(200) := OKC_API.G_FND_APP;
15   G_FORM_UNABLE_TO_RESERVE_REC  CONSTANT  VARCHAR2(200) := OKC_API.G_FORM_UNABLE_TO_RESERVE_REC;
16   G_FORM_RECORD_DELETED	        CONSTANT  VARCHAR2(200) := OKC_API.G_FORM_RECORD_DELETED;
17   G_FORM_RECORD_CHANGED	        CONSTANT  VARCHAR2(200) := OKC_API.G_FORM_RECORD_CHANGED;
18   G_RECORD_LOGICALLY_DELETED    CONSTANT  VARCHAR2(200) := OKC_API.G_RECORD_LOGICALLY_DELETED;
19   G_REQUIRED_VALUE              CONSTANT  VARCHAR2(200) := OKC_API.G_REQUIRED_VALUE;
20   G_INVALID_VALUE               CONSTANT  VARCHAR2(200) := OKC_API.G_INVALID_VALUE;
21   G_COL_NAME_TOKEN              CONSTANT  VARCHAR2(200) := OKC_API.G_COL_NAME_TOKEN;
22   G_PARENT_TABLE_TOKEN	        CONSTANT  VARCHAR2(200) := OKC_API.G_PARENT_TABLE_TOKEN;
23   G_CHILD_TABLE_TOKEN	        CONSTANT  VARCHAR2(200) := OKC_API.G_CHILD_TABLE_TOKEN;
24   G_UNEXPECTED_ERROR            CONSTANT  VARCHAR2(200) := 'OKC_CONTRACTS_UNEXP_ERROR';
25   G_SQLERRM_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLerrm';
26   G_SQLCODE_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLcode';
27   G_UPPERCASE_REQUIRED	        CONSTANT  VARCHAR2(200) := 'OKL_CONTRACTS_UPPERCASE_REQ';
28 -------------------------------------------------------------------------------------------------
29 -- GLOBAL EXCEPTION
30 -------------------------------------------------------------------------------------------------
31   G_EXCEPTION_HALT_VALIDATION             EXCEPTION;
32   G_EXCEPTION_STOP_VALIDATION             EXCEPTION;
33   G_API_TYPE                    CONSTANT  VARCHAR2(4) := '_PUB';
34   G_API_VERSION                 CONSTANT  NUMBER := 1.0;
35   G_SCOPE                       CONSTANT  VARCHAR2(4) := '_PUB';
36 -------------------------------------------------------------------------------------------------
37 -- GLOBAL VARIABLES
38 -------------------------------------------------------------------------------------------------
39   G_PKG_NAME	                CONSTANT  VARCHAR2(200) := 'OKL_COPY_ASSET_PUB';
40   G_APP_NAME		        CONSTANT  VARCHAR2(3)   :=  OKC_API.G_APP_NAME;
41   G_FIN_LINE_LTY_CODE                     OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'FREE_FORM1';
42   G_FA_LINE_LTY_CODE                      OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'FIXED_ASSET';
43   G_ID2                         CONSTANT  VARCHAR2(200) := '#';
44   G_TLS_TYPE                              OKC_LINE_STYLES_V.LSE_TYPE%TYPE := 'TLS';
45   G_SLS_TYPE                              OKC_LINE_STYLES_V.LSE_TYPE%TYPE := 'SLS';
46 -----------------------------------------------------------------------------------------------
47 --------------------------- Main Process for Copy of Asset Line -------------------------------
48 -----------------------------------------------------------------------------------------------
49   Procedure copy_asset_lines(
50             p_api_version        IN  NUMBER,
51             p_init_msg_list      IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
52             x_return_status      OUT NOCOPY VARCHAR2,
53             x_msg_count          OUT NOCOPY NUMBER,
54             x_msg_data           OUT NOCOPY VARCHAR2,
55             P_from_cle_id        IN  NUMBER,
56             p_to_cle_id          IN  NUMBER DEFAULT OKL_API.G_MISS_NUM,
57             p_to_chr_id          IN  NUMBER,
58             p_to_template_yn	 IN  VARCHAR2,
59             p_copy_reference	 IN  VARCHAR2,
60             p_copy_line_party_yn IN  VARCHAR2,
61             p_renew_ref_yn       IN  VARCHAR2,
62             p_trans_type         IN  VARCHAR2,
63             x_cle_id             OUT NOCOPY NUMBER)
64   IS
65     l_api_name               CONSTANT VARCHAR2(30) := 'COPY_ASSET_LINES';
66     l_api_version            CONSTANT NUMBER := 1;
67     l_from_cle_id            OKC_K_LINES_V.CLE_ID%TYPE;
68     l_to_cle_id              OKC_K_LINES_V.CLE_ID%TYPE;
69     l_to_chr_id              OKC_K_LINES_V.CHR_ID%TYPE;
70     l_to_template_yn	     VARCHAR2(3);
71     l_copy_reference	     VARCHAR2(30);
72     l_copy_line_party_yn     VARCHAR2(3);
73     l_renew_ref_yn           VARCHAR2(3);
74 
75   BEGIN
76     savepoint copy_asset_lines_pub;
77     x_return_status     := FND_API.G_RET_STS_SUCCESS;
78     -- Standard call to check for call compatibility.
79     IF NOT (FND_API.Compatible_API_Call (l_api_version,
80 	                                 p_api_version,
81 			                 l_api_name,
82 		                         G_PKG_NAME)) THEN
83        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
84     END IF;
85     -- Initialize message list if p_init_msg_list is set to TRUE.
86     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
87        FND_MSG_PUB.initialize;
88     END IF;
89     l_from_cle_id        := p_from_cle_id;
90     l_to_cle_id          := p_to_cle_id;
91     l_to_chr_id          := p_to_chr_id;
92     l_to_template_yn     := p_to_template_yn;
93     l_copy_reference	 := p_copy_reference;
94     l_copy_line_party_yn := p_copy_line_party_yn;
95     l_renew_ref_yn       := p_renew_ref_yn;
96 
97     g_from_cle_id        := p_from_cle_id;
98     g_to_cle_id          := p_to_cle_id;
99     g_to_chr_id          := p_to_chr_id;
100     g_to_template_yn     := p_to_template_yn;
101     g_copy_reference	 := p_copy_reference;
102     g_copy_line_party_yn := p_copy_line_party_yn;
103     g_renew_ref_yn       := p_renew_ref_yn;
104     --  Customer pre processing  section
105     -- 	Verticle industry pre- processing section
106     -- Business API call  section
107     OKL_COPY_ASSET_PVT.copy_asset_lines(p_api_version        => p_api_version,
108                                         p_init_msg_list      => p_init_msg_list,
109                                         x_return_status      => x_return_status,
110                                         x_msg_count          => x_msg_count,
111                                         x_msg_data           => x_msg_data,
112                                         P_from_cle_id        => P_from_cle_id,
113                                         p_to_cle_id          => p_to_cle_id,
114                                         p_to_chr_id          => p_to_chr_id,
115                                         p_to_template_yn     => p_to_template_yn,
116                                         p_copy_reference     => p_copy_reference,
117                                         p_copy_line_party_yn => p_copy_line_party_yn,
118                                         p_renew_ref_yn       => p_renew_ref_yn,
119                                         p_trans_type         => p_trans_type,
120                                         x_cle_id             => x_cle_id);
121     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
122        RAISE FND_API.G_EXC_ERROR;
123     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
124        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
125     END IF;
126     --	Verticle industry post- processing section
127     --  Customer post processing  section
128   EXCEPTION
129     When FND_API.G_EXC_ERROR  then
130       ROLLBACK TO copy_asset_lines_pub;
131       x_return_status := FND_API.G_RET_STS_ERROR;
132       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
133                                  p_data  => x_msg_data);
134     When FND_API.G_EXC_UNEXPECTED_ERROR  then
135       ROLLBACK TO copy_asset_lines_pub;
136       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
137       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
138                                  p_data  => x_msg_data);
139     When OTHERS  then
140       ROLLBACK TO copy_asset_lines_pub;
141       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
142       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_COPY_ASSET_PUB');
143       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
144                                  p_count   => x_msg_count,
145                                  p_data    => x_msg_data);
146 
147   END copy_asset_lines;
148 
149 -----------------------------------------------------------------------------------------------
150 --------------------------- Main Process for Copy of Asset Line -------------------------------
151 -----------------------------------------------------------------------------------------------
152   Procedure copy_asset_lines(
153             p_api_version        IN  NUMBER,
154             p_init_msg_list      IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
155             x_return_status      OUT NOCOPY VARCHAR2,
156             x_msg_count          OUT NOCOPY NUMBER,
157             x_msg_data           OUT NOCOPY VARCHAR2,
158             p_from_cle_id_tbl    IN  klev_tbl_type,
159             p_to_cle_id          IN  NUMBER DEFAULT OKL_API.G_MISS_NUM,
160             p_to_chr_id          IN  NUMBER,
161             p_to_template_yn	 IN  VARCHAR2,
162             p_copy_reference	 IN  VARCHAR2,
163             p_copy_line_party_yn IN  VARCHAR2,
164             p_renew_ref_yn       IN  VARCHAR2,
165             p_trans_type         IN  VARCHAR2,
166             x_cle_id_tbl         OUT NOCOPY klev_tbl_type)
167   IS
168     l_api_name               CONSTANT VARCHAR2(30) := 'COPY_ASSET_LINES';
169     l_api_version            CONSTANT NUMBER := 1;
170     i                              NUMBER := 0;
171   BEGIN
172     x_return_status := FND_API.G_RET_STS_SUCCESS;
173     IF p_from_cle_id_tbl.COUNT > 0 THEN
174       i := p_from_cle_id_tbl.FIRST;
175       LOOP
176         copy_asset_lines(p_api_version        => p_api_version,
177                          p_init_msg_list      => p_init_msg_list,
178                          x_return_status      => x_return_status,
179                          x_msg_count          => x_msg_count,
180                          x_msg_data           => x_msg_data,
181                          P_from_cle_id        => p_from_cle_id_tbl(i).ID,
182                          p_to_cle_id          => p_to_cle_id,
183                          p_to_chr_id          => p_to_chr_id,
184                          p_to_template_yn     => p_to_template_yn,
185                          p_copy_reference     => p_copy_reference,
186                          p_copy_line_party_yn => p_copy_line_party_yn,
187                          p_renew_ref_yn       => p_renew_ref_yn,
188                          p_trans_type         => p_trans_type,
189                          x_cle_id             => x_cle_id_tbl(i).ID);
190         EXIT WHEN (i = p_from_cle_id_tbl.LAST);
191         i := p_from_cle_id_tbl.NEXT(i);
192       END LOOP;
193     END IF;
194   EXCEPTION
195     When FND_API.G_EXC_ERROR  then
196       ROLLBACK TO copy_asset_lines_pub;
197       x_return_status := FND_API.G_RET_STS_ERROR;
198       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
199                                  p_data  => x_msg_data);
200     When FND_API.G_EXC_UNEXPECTED_ERROR  then
201       ROLLBACK TO copy_asset_lines_pub;
202       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
203       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
204                                  p_data  => x_msg_data);
205     When OTHERS  then
206       ROLLBACK TO copy_asset_lines_pub;
207       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
208       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_COPY_ASSET_PUB');
209       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
210                                  p_count   => x_msg_count,
211                                  p_data    => x_msg_data);
212 
213   END copy_asset_lines;
214 -----------------------------------------------------------------------------------------------
215 --------------------------- Main Process for Copy All Line ------------------------------------
216 -----------------------------------------------------------------------------------------------
217   Procedure copy_all_lines(
218             p_api_version        IN  NUMBER,
219             p_init_msg_list      IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
220             x_return_status      OUT NOCOPY VARCHAR2,
221             x_msg_count          OUT NOCOPY NUMBER,
222             x_msg_data           OUT NOCOPY VARCHAR2,
223             p_from_cle_id_tbl    IN  klev_tbl_type,
224             p_to_cle_id          IN  NUMBER DEFAULT OKL_API.G_MISS_NUM,
225             p_to_chr_id          IN  NUMBER,
226             p_to_template_yn	 IN  VARCHAR2,
227             p_copy_reference	 IN  VARCHAR2,
228             p_copy_line_party_yn IN  VARCHAR2,
229             p_renew_ref_yn       IN  VARCHAR2,
230             p_trans_type         IN  VARCHAR2,
231             x_cle_id_tbl         OUT NOCOPY klev_tbl_type)
232   IS
233     l_api_name               CONSTANT VARCHAR2(30) := 'COPY_ALL_LINES';
234     l_api_version            CONSTANT NUMBER := 1;
235     l_from_cle_id_tbl        klev_tbl_type;
236     l_to_cle_id              OKC_K_LINES_V.CLE_ID%TYPE;
237     l_to_chr_id              OKC_K_LINES_V.CHR_ID%TYPE;
238     l_to_template_yn	     VARCHAR2(3);
239     l_copy_reference	     VARCHAR2(30);
240     l_copy_line_party_yn     VARCHAR2(3);
241     l_renew_ref_yn           VARCHAR2(3);
242 
243   BEGIN
244     savepoint copy_all_lines_pub;
245     x_return_status     := FND_API.G_RET_STS_SUCCESS;
246     -- Standard call to check for call compatibility.
247     IF NOT (FND_API.Compatible_API_Call (l_api_version,
248 	                                 p_api_version,
249 			                 l_api_name,
250 		                         G_PKG_NAME)) THEN
251        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
252     END IF;
253     -- Initialize message list if p_init_msg_list is set to TRUE.
254     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
255        FND_MSG_PUB.initialize;
256     END IF;
257     l_from_cle_id_tbl    := p_from_cle_id_tbl;
258     l_to_cle_id          := p_to_cle_id;
259     l_to_chr_id          := p_to_chr_id;
260     l_to_template_yn     := p_to_template_yn;
261     l_copy_reference	 := p_copy_reference;
262     l_copy_line_party_yn := p_copy_line_party_yn;
263     l_renew_ref_yn       := p_renew_ref_yn;
264 
265     g_from_cle_id_tbl    := p_from_cle_id_tbl;
266     g_to_cle_id          := p_to_cle_id;
267     g_to_chr_id          := p_to_chr_id;
268     g_to_template_yn     := p_to_template_yn;
269     g_copy_reference	 := p_copy_reference;
270     g_copy_line_party_yn := p_copy_line_party_yn;
271     g_renew_ref_yn       := p_renew_ref_yn;
272     --  Customer pre processing  section
273     -- 	Verticle industry pre- processing section
274     -- Business API call  section
275     OKL_COPY_ASSET_PVT.copy_all_lines(p_api_version        => p_api_version,
276                                       p_init_msg_list      => p_init_msg_list,
277                                       x_return_status      => x_return_status,
278                                       x_msg_count          => x_msg_count,
279                                       x_msg_data           => x_msg_data,
280                                       p_from_cle_id_tbl    => l_from_cle_id_tbl,
281                                       p_to_cle_id          => l_to_cle_id,
282                                       p_to_chr_id          => l_to_chr_id,
283                                       p_to_template_yn     => l_to_template_yn,
284                                       p_copy_reference     => l_copy_reference,
285                                       p_copy_line_party_yn => l_copy_line_party_yn,
286                                       p_renew_ref_yn       => l_renew_ref_yn,
287                                       p_trans_type         => p_trans_type,
288                                       x_cle_id_tbl         => x_cle_id_tbl);
289     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
290        RAISE FND_API.G_EXC_ERROR;
291     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
292        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
293     END IF;
294     --	Verticle industry post- processing section
295     --  Customer post processing  section
296   EXCEPTION
297     When FND_API.G_EXC_ERROR  then
298       ROLLBACK TO copy_all_lines_pub;
299       x_return_status := FND_API.G_RET_STS_ERROR;
300       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
301                                  p_data  => x_msg_data);
302     When FND_API.G_EXC_UNEXPECTED_ERROR  then
303       ROLLBACK TO copy_all_lines_pub;
304       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
305       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
306                                  p_data  => x_msg_data);
307     When OTHERS  then
308       ROLLBACK TO copy_all_lines_pub;
309       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
310       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_COPY_ASSET_PUB');
311       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
312                                  p_count   => x_msg_count,
313                                  p_data    => x_msg_data);
314 
315   END copy_all_lines;
316 End okl_copy_asset_PUB;