DBA Data[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;