[Home] [Help]
PACKAGE BODY: APPS.IEX_REPOSSESS_PVT
Source
1 PACKAGE BODY IEX_REPOSSESS_PVT AS
2 /* $Header: iexrrepb.pls 120.7 2008/07/03 11:36:13 ehuh ship $ */
3
4 ---------------------------------------------------------------------------
5 -- Procedures and Functions
6 ---------------------------------------------------------------------------
7
8 ---------------------------------------------------------------------------
9 -- PROCEDURE create_repossess_request
10 ---------------------------------------------------------------------------
11
12 PROCEDURE create_repossess_request(
13 p_api_version IN NUMBER,
14 p_init_msg_list IN VARCHAR2 ,
15 p_repv_rec IN repv_rec_type,
16 p_date_repossession_required IN DATE,
17 p_date_hold_until IN DATE,
18 p_relocate_asset_yn IN VARCHAR2,
19 x_repv_rec OUT NOCOPY repv_rec_type,
20 x_return_status OUT NOCOPY VARCHAR2,
21 x_msg_count OUT NOCOPY NUMBER,
22 x_msg_data OUT NOCOPY VARCHAR2) AS
23
24 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
25 l_api_version CONSTANT NUMBER := 1;
26 l_api_name CONSTANT VARCHAR2(30) := 'create_repossess_request';
27
28 G_REPOS_REQUEST_EXCEPTION EXCEPTION;
29
30 lp_repv_rec repv_rec_type;
31 lx_repv_rec repv_rec_type;
32
33 --record type to create a return request in OKL_ASSET_RETURNS_B
34 lp_artv_rec okl_am_asset_return_pub.artv_rec_type;
35 lx_artv_rec okl_am_asset_return_pub.artv_rec_type;
36
37
38 --BEGIN for bug 4610223 -jsanju 09/14/05
39 --Cursor to get the contract line id of the financial asset
40 /*
41 CURSOR l_kle_csr(cp_repossession_id IN IEX_REPOSSESSIONS.REPOSSESSION_ID%TYPE
42 ,cp_asset_id IN OKX_ASSET_LINES_V.ASSET_ID%TYPE) IS
43 SELECT irp.delinquency_id
44 ,ico.cas_id
45 ,ico.object_id contract_id
46 ,alv.asset_id
47 ,alv.parent_line_id
48 FROM iex_repossessions irp
49 ,iex_delinquencies_all ida
50 ,iex_case_objects ico
51 ,okx_asset_lines_v alv
52 ,okl_cnsld_ar_strms_b stream
53 WHERE irp.repossession_id = cp_repossession_id
54 AND irp.delinquency_id = ida.delinquency_id
55 and ida.transaction_id =stream.RECEIVABLES_INVOICE_ID
56 and stream.khr_id=ico.object_id
57 AND ico.object_id = alv.dnz_chr_id
58 AND alv.asset_id = cp_asset_id;
59
60 --END for bug 4610223 -jsanju 09/14/05
61 */
62 CURSOR l_kle_csr(cp_repossession_id in IEX_REPOSSESSIONS.REPOSSESSION_ID%TYPE
63 ,cp_asset_id in OKX_ASSET_LINES_V.ASSET_ID%TYPE) is
64 select alv.parent_line_id from iex_repossessions irp, okx_asset_lines_v alv
65 where alv.asset_id = cp_asset_id
66 and irp.repossession_id = cp_repossession_id
67 and alv.dnz_chr_id = irp.contract_id;
68
69 BEGIN
70 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
71 G_PKG_NAME,
72 p_init_msg_list,
73 l_api_version,
74 p_api_version,
75 '_PVT',
76 l_return_status);
77
78 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
79 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
80 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
81 RAISE OKL_API.G_EXCEPTION_ERROR;
82 END IF;
83
84 -- Processing starts
85 lp_repv_rec := p_repv_rec;
86
87 FOR cur IN l_kle_csr(lp_repv_rec.repossession_id, lp_repv_rec.asset_id) LOOP
88 lp_artv_rec.kle_id := cur.parent_line_id;
89 --dbms_output.put_line('kle id : ' || lp_artv_rec.kle_id);
90 EXIT;
91 END LOOP;
92
93 lp_artv_rec.ars_code := G_ARS_CODE;
94 lp_artv_rec.art1_code := G_ART_CODE;
95 lp_artv_rec.rna_id := lp_repv_rec.rna_id;
96 lp_artv_rec.date_repossession_required := p_date_repossession_required;
97 lp_artv_rec.date_repossession_actual := p_date_repossession_required;
98 lp_artv_rec.date_hold_until := p_date_hold_until;
99 lp_artv_rec.relocate_asset_yn := p_relocate_asset_yn;
100
101 --Insert repossession request into okl_asset_returns_b
102 okl_am_asset_return_pub.create_asset_return(
103 p_api_version => p_api_version,
104 p_init_msg_list => p_init_msg_list,
105 x_return_status => l_return_status,
106 x_msg_count => x_msg_count,
107 x_msg_data => x_msg_data,
108 p_artv_rec => lp_artv_rec,
109 x_artv_rec => lx_artv_rec);
110 /*
111 IF (l_return_status <> okl_api.G_RET_STS_SUCCESS) THEN
112 OKL_API.SET_MESSAGE(p_app_name => G_APP_NAME,
113 p_msg_name => G_RET_REQ_ERROR);
114 RAISE G_REPOS_REQUEST_EXCEPTION;
115 END IF;
116 */
117 --Update request id
118 lp_repv_rec.art_id := lx_artv_rec.id;
119 -- Moac Changes. Get the Current org Id. Start.
120 -- lp_repv_rec.org_id := fnd_profile.value('ORG_ID');
121 lp_repv_rec.org_id := mo_global.get_current_org_id;
122 -- Moac Changes. get the current org_id. End.
123
124 --Insert record into iex_repos_objects
125 iex_repos_objects_pub.insert_repos_objects(
126 p_api_version => p_api_version
127 ,p_init_msg_list => p_init_msg_list
128 ,x_return_status => l_return_status
129 ,x_msg_count => x_msg_count
130 ,x_msg_data => x_msg_data
131 ,p_repv_rec => lp_repv_rec
132 ,x_repv_rec => lx_repv_rec);
133
134 x_repv_rec := lx_repv_rec;
135
136 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
137 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
138 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
139 RAISE okl_api.G_EXCEPTION_ERROR;
140 END IF;
141
142 -- Processing ends
143
144 x_return_status := l_return_status;
145 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
146 EXCEPTION
147 WHEN OKL_API.G_EXCEPTION_ERROR THEN
148 x_return_status := OKL_API.HANDLE_EXCEPTIONS
149 (
150 l_api_name,
151 G_PKG_NAME,
152 'OKL_API.G_RET_STS_ERROR',
153 x_msg_count,
154 x_msg_data,
155 '_PVT'
156 );
157 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
158 x_return_status := OKL_API.HANDLE_EXCEPTIONS
159 (
160 l_api_name,
161 G_PKG_NAME,
162 'OKL_API.G_RET_STS_UNEXP_ERROR',
163 x_msg_count,
164 x_msg_data,
165 '_PVT'
166 );
167 WHEN OTHERS THEN
168 x_return_status := OKL_API.HANDLE_EXCEPTIONS
169 (
170 l_api_name,
171 G_PKG_NAME,
172 'OTHERS',
173 x_msg_count,
174 x_msg_data,
175 '_PVT'
176 );
177 END create_repossess_request;
178
179 ---------------------------------------------------------------------------
180 -- PROCEDURE create_repossess_request
181 ---------------------------------------------------------------------------
182 PROCEDURE create_repossess_request(
183 p_api_version IN NUMBER,
184 p_init_msg_list IN VARCHAR2 ,
185 p_repv_tbl IN repv_tbl_type,
186 p_date_repossession_required IN DATE,
187 p_date_hold_until IN DATE,
188 p_relocate_asset_yn IN VARCHAR2,
189 x_repv_tbl OUT NOCOPY repv_tbl_type,
190 x_return_status OUT NOCOPY VARCHAR2,
191 x_msg_count OUT NOCOPY NUMBER,
192 x_msg_data OUT NOCOPY VARCHAR2) IS
193
194 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
195 l_api_version CONSTANT NUMBER := 1;
196 l_api_name CONSTANT VARCHAR2(30) := 'create_repossess_request';
197
198 lp_repv_tbl repv_tbl_type;
199 lx_repv_tbl repv_tbl_type;
200
201 lp_repv_rec repv_rec_type;
202 lx_repv_rec repv_rec_type;
203
204 i NUMBER := 0;
205 BEGIN
206 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
207 G_PKG_NAME,
208 p_init_msg_list,
209 l_api_version,
210 p_api_version,
211 '_PVT',
212 l_return_status);
213
214 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
215 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
216 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
217 RAISE OKL_API.G_EXCEPTION_ERROR;
218 END IF;
219
220 -- Processing starts
221 lp_repv_tbl := p_repv_tbl;
222
223 IF (lp_repv_tbl.count > 0) THEN
224 i := lp_repv_tbl.first;
225 loop
226 lp_repv_rec := lp_repv_tbl(i);
227
228 create_repossess_request(
229 p_api_version => p_api_version,
230 p_init_msg_list => p_init_msg_list,
231 p_repv_rec => lp_repv_rec,
232 p_date_repossession_required => p_date_repossession_required,
233 p_date_hold_until => p_date_hold_until,
234 p_relocate_asset_yn => p_relocate_asset_yn,
235 x_repv_rec => lx_repv_rec,
236 x_return_status => l_return_status,
237 x_msg_count => x_msg_count,
238 x_msg_data => x_msg_data);
239
240 IF (l_return_status <> okl_api.G_RET_STS_SUCCESS) THEN
241 exit;
242 END IF;
243
244 i := lp_repv_tbl.next(i);
245 exit when i IS NULL;
246 end loop;
247
248 IF (l_return_status = okl_api.G_RET_STS_SUCCESS) THEN
249 commit;
250 END IF;
251 END IF;
252
253 -- Processing ends
254
255 x_return_status := l_return_status;
256 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
257 EXCEPTION
258 WHEN OKL_API.G_EXCEPTION_ERROR THEN
259 x_return_status := OKL_API.HANDLE_EXCEPTIONS
260 (
261 l_api_name,
262 G_PKG_NAME,
263 'OKL_API.G_RET_STS_ERROR',
264 x_msg_count,
265 x_msg_data,
266 '_PVT'
267 );
268 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
269 x_return_status := OKL_API.HANDLE_EXCEPTIONS
270 (
271 l_api_name,
272 G_PKG_NAME,
273 'OKL_API.G_RET_STS_UNEXP_ERROR',
274 x_msg_count,
275 x_msg_data,
276 '_PVT'
277 );
278 WHEN OTHERS THEN
279 x_return_status := OKL_API.HANDLE_EXCEPTIONS
280 (
281 l_api_name,
282 G_PKG_NAME,
283 'OTHERS',
284 x_msg_count,
285 x_msg_data,
286 '_PVT'
287 );
288 END create_repossess_request;
289
290 END IEX_REPOSSESS_PVT;