[Home] [Help]
PACKAGE BODY: APPS.IEX_REPOSSESS_PVT
Source
1 PACKAGE BODY IEX_REPOSSESS_PVT AS
2 /* $Header: iexrrepb.pls 120.6 2008/06/25 21:41:55 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 mo_global.set_policy_context('S',7746); -- bug 6911936
102
103 --Insert repossession request into okl_asset_returns_b
104 okl_am_asset_return_pub.create_asset_return(
105 p_api_version => p_api_version,
106 p_init_msg_list => p_init_msg_list,
107 x_return_status => l_return_status,
108 x_msg_count => x_msg_count,
109 x_msg_data => x_msg_data,
110 p_artv_rec => lp_artv_rec,
111 x_artv_rec => lx_artv_rec);
112
113 IEX_DEBUG_PUB.logMessage('EEEEE === '||l_return_status);
114
115
116 /*
117 IF (l_return_status <> okl_api.G_RET_STS_SUCCESS) THEN
118 OKL_API.SET_MESSAGE(p_app_name => G_APP_NAME,
119 p_msg_name => G_RET_REQ_ERROR);
120 RAISE G_REPOS_REQUEST_EXCEPTION;
121 END IF;
122 */
123 --Update request id
124 lp_repv_rec.art_id := lx_artv_rec.id;
125 -- Moac Changes. Get the Current org Id. Start.
126 -- lp_repv_rec.org_id := fnd_profile.value('ORG_ID');
127 lp_repv_rec.org_id := mo_global.get_current_org_id;
128 -- Moac Changes. get the current org_id. End.
129
130 --Insert record into iex_repos_objects
131 iex_repos_objects_pub.insert_repos_objects(
132 p_api_version => p_api_version
133 ,p_init_msg_list => p_init_msg_list
134 ,x_return_status => l_return_status
135 ,x_msg_count => x_msg_count
136 ,x_msg_data => x_msg_data
137 ,p_repv_rec => lp_repv_rec
138 ,x_repv_rec => lx_repv_rec);
139
140 x_repv_rec := lx_repv_rec;
141
142 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
143 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
144 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
145 RAISE okl_api.G_EXCEPTION_ERROR;
146 END IF;
147
148 -- Processing ends
149
150 x_return_status := l_return_status;
151 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
152 EXCEPTION
153 WHEN OKL_API.G_EXCEPTION_ERROR THEN
154 x_return_status := OKL_API.HANDLE_EXCEPTIONS
155 (
156 l_api_name,
157 G_PKG_NAME,
158 'OKL_API.G_RET_STS_ERROR',
159 x_msg_count,
160 x_msg_data,
161 '_PVT'
162 );
163 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
164 x_return_status := OKL_API.HANDLE_EXCEPTIONS
165 (
166 l_api_name,
167 G_PKG_NAME,
168 'OKL_API.G_RET_STS_UNEXP_ERROR',
169 x_msg_count,
170 x_msg_data,
171 '_PVT'
172 );
173 WHEN OTHERS THEN
174 x_return_status := OKL_API.HANDLE_EXCEPTIONS
175 (
176 l_api_name,
177 G_PKG_NAME,
178 'OTHERS',
179 x_msg_count,
180 x_msg_data,
181 '_PVT'
182 );
183 END create_repossess_request;
184
185 ---------------------------------------------------------------------------
186 -- PROCEDURE create_repossess_request
187 ---------------------------------------------------------------------------
188 PROCEDURE create_repossess_request(
189 p_api_version IN NUMBER,
190 p_init_msg_list IN VARCHAR2 ,
191 p_repv_tbl IN repv_tbl_type,
192 p_date_repossession_required IN DATE,
193 p_date_hold_until IN DATE,
194 p_relocate_asset_yn IN VARCHAR2,
195 x_repv_tbl OUT NOCOPY repv_tbl_type,
196 x_return_status OUT NOCOPY VARCHAR2,
197 x_msg_count OUT NOCOPY NUMBER,
198 x_msg_data OUT NOCOPY VARCHAR2) IS
199
200 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
201 l_api_version CONSTANT NUMBER := 1;
202 l_api_name CONSTANT VARCHAR2(30) := 'create_repossess_request';
203
204 lp_repv_tbl repv_tbl_type;
205 lx_repv_tbl repv_tbl_type;
206
207 lp_repv_rec repv_rec_type;
208 lx_repv_rec repv_rec_type;
209
210 i NUMBER := 0;
211 BEGIN
212 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
213 G_PKG_NAME,
214 p_init_msg_list,
215 l_api_version,
216 p_api_version,
217 '_PVT',
218 l_return_status);
219
220 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
221 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
222 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
223 RAISE OKL_API.G_EXCEPTION_ERROR;
224 END IF;
225
226 -- Processing starts
227 lp_repv_tbl := p_repv_tbl;
228
229 IF (lp_repv_tbl.count > 0) THEN
230 i := lp_repv_tbl.first;
231 loop
232 lp_repv_rec := lp_repv_tbl(i);
233
234 create_repossess_request(
235 p_api_version => p_api_version,
236 p_init_msg_list => p_init_msg_list,
237 p_repv_rec => lp_repv_rec,
238 p_date_repossession_required => p_date_repossession_required,
239 p_date_hold_until => p_date_hold_until,
240 p_relocate_asset_yn => p_relocate_asset_yn,
241 x_repv_rec => lx_repv_rec,
242 x_return_status => l_return_status,
243 x_msg_count => x_msg_count,
244 x_msg_data => x_msg_data);
245
246 IF (l_return_status <> okl_api.G_RET_STS_SUCCESS) THEN
247 exit;
248 END IF;
249
250 i := lp_repv_tbl.next(i);
251 exit when i IS NULL;
252 end loop;
253
254 IF (l_return_status = okl_api.G_RET_STS_SUCCESS) THEN
255 commit;
256 END IF;
257 END IF;
258
259 -- Processing ends
260
261 x_return_status := l_return_status;
262 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
263 EXCEPTION
264 WHEN OKL_API.G_EXCEPTION_ERROR THEN
265 x_return_status := OKL_API.HANDLE_EXCEPTIONS
266 (
267 l_api_name,
268 G_PKG_NAME,
269 'OKL_API.G_RET_STS_ERROR',
270 x_msg_count,
271 x_msg_data,
272 '_PVT'
273 );
274 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
275 x_return_status := OKL_API.HANDLE_EXCEPTIONS
276 (
277 l_api_name,
278 G_PKG_NAME,
279 'OKL_API.G_RET_STS_UNEXP_ERROR',
280 x_msg_count,
281 x_msg_data,
282 '_PVT'
283 );
284 WHEN OTHERS THEN
285 x_return_status := OKL_API.HANDLE_EXCEPTIONS
286 (
287 l_api_name,
288 G_PKG_NAME,
289 'OTHERS',
290 x_msg_count,
291 x_msg_data,
292 '_PVT'
293 );
294 END create_repossess_request;
295
296 END IEX_REPOSSESS_PVT;