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