[Home] [Help]
PACKAGE BODY: APPS.OKL_AM_SEND_FULFILLMENT_PVT
Source
1 PACKAGE BODY OKL_AM_SEND_FULFILLMENT_PVT AS
2 /* $Header: OKLRSFWB.pls 115.13 2002/08/23 17:26:41 rmunjulu noship $ */
3
4
5 -- Start of comments
6 --
7 -- Procedure Name : send_fulfillment
8 -- Description : Generic procedure which can be called from any AM screen
9 -- to launch fulfillment
10 -- Business Rules :
11 -- Parameters :
12 -- Version : 1.0
13 --
14 -- End of comments
15 PROCEDURE send_fulfillment (
16 p_api_version IN NUMBER,
17 p_init_msg_list IN VARCHAR2,
18 x_return_status OUT NOCOPY VARCHAR2,
19 x_msg_count OUT NOCOPY NUMBER,
20 x_msg_data OUT NOCOPY VARCHAR2,
21 p_send_rec IN full_rec_type,
22 x_send_rec OUT NOCOPY full_rec_type) IS
23
24
25 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
26 l_api_name CONSTANT VARCHAR2(30):= 'send_fulfillment';
27 l_api_version CONSTANT NUMBER := 1;
28 l_recipient_type VARCHAR2(3);
29 l_pt_bind_names JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
30 l_pt_bind_values JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
31 l_pt_bind_types JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
32 lp_send_rec full_rec_type := p_send_rec;
33 lx_send_rec full_rec_type := p_send_rec;
34
35 BEGIN
36
37
38 -- ***************************************************************
39 -- Check API version, initialize message list and create savepoint
40 -- ***************************************************************
41
42 --Check API version, initialize message list and create savepoint.
43 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
44 G_PKG_NAME,
45 p_init_msg_list,
46 l_api_version,
47 p_api_version,
48 '_PVT',
49 x_return_status);
50
51 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
52 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
53 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
54 RAISE OKL_API.G_EXCEPTION_ERROR;
55 END IF;
56
57
58 -- ****************************************************
59 -- Set In Parameters for Send Fulfillment
60 -- ****************************************************
61
62 -- Set the recipient type
63 IF UPPER(lp_send_rec.p_recipient_type) = 'OKX_PARTY' THEN
64 l_recipient_type := 'P';
65 ELSIF UPPER(lp_send_rec.p_recipient_type) = 'OKX_PARTYSITE' THEN
66 l_recipient_type := 'PS';
67 ELSIF UPPER(lp_send_rec.p_recipient_type) = 'OKX_PCONTACT' THEN
68 l_recipient_type := 'PC';
69 ELSIF UPPER(lp_send_rec.p_recipient_type) = 'OKX_VENDOR' THEN
70 l_recipient_type := 'V';
71 ELSIF UPPER(lp_send_rec.p_recipient_type) = 'OKX_VENDORSITE' THEN
72 l_recipient_type := 'VS';
73 ELSIF UPPER(lp_send_rec.p_recipient_type) = 'OKX_VCONTACT' THEN
74 l_recipient_type := 'VC';
75 ELSIF UPPER(lp_send_rec.p_recipient_type) = 'OKX_OPERUNIT' THEN
76 l_recipient_type := 'O';
77 ELSE -- default is PARTY
78 l_recipient_type := 'P';
79 END IF;
80
81 -- Initialize tbl types
82 l_pt_bind_types(1) := OKL_API.G_MISS_CHAR;
83 l_pt_bind_values(1) := OKL_API.G_MISS_CHAR;
84 l_pt_bind_types(1) := OKL_API.G_MISS_CHAR;
85
86
87 -- *****************
88 -- Call Fulfillment
89 -- *****************
90
91 -- Call the fulfillment link from AM
92 OKL_AM_UTIL_PVT.execute_fulfillment_request(
93 p_api_version => p_api_version,
94 x_return_status => l_return_status,
95 x_msg_count => x_msg_count,
96 x_msg_data => x_msg_data,
97 p_ptm_code => lp_send_rec.p_ptm_code,
98 p_agent_id => lp_send_rec.p_agent_id,
99 p_transaction_id => lp_send_rec.p_transaction_id,
100 p_recipient_type => l_recipient_type,
101 p_recipient_id => lp_send_rec.p_recipient_id,
102 p_recipient_email => lp_send_rec.p_recipient_email,
103 p_pt_bind_names => l_pt_bind_names,
104 p_pt_bind_values => l_pt_bind_values,
105 p_pt_bind_types => l_pt_bind_types);
106
107 -- Raise exception when error
108 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
109 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
110 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
111 RAISE OKL_API.G_EXCEPTION_ERROR;
112 END IF;
113
114
115 -- *******************
116 -- Set Out Parameters
117 -- *******************
118
119 x_return_status := l_return_status;
120 x_send_rec := lx_send_rec;
121
122
123 -- *****************
124 -- End Transaction
125 -- *****************
126
127 -- end the transaction
128 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
129
130 EXCEPTION
131 WHEN OKL_API.G_EXCEPTION_ERROR THEN
132 x_return_status := OKL_API.HANDLE_EXCEPTIONS
133 (
134 l_api_name,
135 G_PKG_NAME,
136 'OKL_API.G_RET_STS_ERROR',
137 x_msg_count,
138 x_msg_data,
139 '_PVT'
140 );
141 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
142 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
143 (
144 l_api_name,
145 G_PKG_NAME,
146 'OKL_API.G_RET_STS_UNEXP_ERROR',
147 x_msg_count,
148 x_msg_data,
149 '_PVT'
150 );
151 WHEN OTHERS THEN
152 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
153 (
154 l_api_name,
155 G_PKG_NAME,
156 'OTHERS',
157 x_msg_count,
158 x_msg_data,
159 '_PVT'
160 );
161 END send_fulfillment;
162
163
164
165 -- Start of comments
166 --
167 -- Procedure Name : send_fulfillment
168 -- Description : Generic procedure which can be called from any AM screen
169 -- to launch fulfillment. Can be used to send fulfullment to
170 -- multiple parties/contacts/vendors simultaneously
171 -- Business Rules :
172 -- Parameters :
173 -- Version : 1.0
174 --
175 -- End of comments
176 PROCEDURE send_fulfillment (
177 p_api_version IN NUMBER,
178 p_init_msg_list IN VARCHAR2,
179 x_return_status OUT NOCOPY VARCHAR2,
180 x_msg_count OUT NOCOPY NUMBER,
181 x_msg_data OUT NOCOPY VARCHAR2,
182 p_send_tbl IN full_tbl_type,
183 x_send_tbl OUT NOCOPY full_tbl_type) IS
184
185
186 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
187 l_api_name CONSTANT VARCHAR2(30):= 'send_fulfillment';
188 l_api_version CONSTANT NUMBER := 1;
189 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
190 i NUMBER;
191 lp_send_tbl full_tbl_type := p_send_tbl;
192 lx_send_tbl full_tbl_type := p_send_tbl;
193
194 BEGIN
195
196
197 -- ***************************************************************
198 -- Check API version, initialize message list and create savepoint
199 -- ***************************************************************
200
201 --Check API version, initialize message list and create savepoint.
202 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
203 G_PKG_NAME,
204 p_init_msg_list,
205 l_api_version,
206 p_api_version,
207 '_PVT',
208 x_return_status);
209
210 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
211 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
212 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
213 RAISE OKL_API.G_EXCEPTION_ERROR;
214 END IF;
215
216
217 -- *****************
218 -- Call Fulfillment
219 -- *****************
220
221 -- Call the rec type procedure
222 IF (p_send_tbl.COUNT > 0) THEN
223 i := p_send_tbl.FIRST;
224 LOOP
225 send_fulfillment (
226 p_api_version => p_api_version,
227 p_init_msg_list => OKL_API.G_FALSE,
228 x_return_status => l_return_status,
229 x_msg_count => x_msg_count,
230 x_msg_data => x_msg_data,
231 p_send_rec => lp_send_tbl(i),
232 x_send_rec => lx_send_tbl(i));
233
234 -- Set the overall status
235 IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
236 l_overall_status := l_return_status;
237 END IF;
238
239 EXIT WHEN (i = lp_send_tbl.LAST);
240
241 i := lp_send_tbl.NEXT(i);
242 END LOOP;
243 END IF;
244
245
246 -- *******************
247 -- Set Out Parameters
248 -- *******************
249
250 -- Set the return status
251 x_return_status := l_overall_status;
252 x_send_tbl := lx_send_tbl;
253
254
255 -- *****************
256 -- End Transaction
257 -- *****************
258
259 -- end the transaction
260 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
261
262 EXCEPTION
263 WHEN OKL_API.G_EXCEPTION_ERROR THEN
264 x_return_status := OKL_API.HANDLE_EXCEPTIONS
265 (
266 l_api_name,
267 G_PKG_NAME,
268 'OKL_API.G_RET_STS_ERROR',
269 x_msg_count,
270 x_msg_data,
271 '_PVT'
272 );
273 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
274 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
275 (
276 l_api_name,
277 G_PKG_NAME,
278 'OKL_API.G_RET_STS_UNEXP_ERROR',
279 x_msg_count,
280 x_msg_data,
281 '_PVT'
282 );
283 WHEN OTHERS THEN
284 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
285 (
286 l_api_name,
287 G_PKG_NAME,
288 'OTHERS',
289 x_msg_count,
290 x_msg_data,
291 '_PVT'
292 );
293 END send_fulfillment;
294
295
296 -- Start of comments
297 --
298 -- Procedure Name : send_terminate_quote
299 -- Description : Procedure to send the party or contact info or contact point info
300 -- Business Rules :
301 -- Parameters :
302 -- Version : 1.0
303 --
304 -- End of comments
305 PROCEDURE send_terminate_quote (
306 p_api_version IN NUMBER,
307 p_init_msg_list IN VARCHAR2,
308 x_return_status OUT NOCOPY VARCHAR2,
309 x_msg_count OUT NOCOPY NUMBER,
310 x_msg_data OUT NOCOPY VARCHAR2,
311 p_party_tbl IN q_party_uv_tbl_type,
312 x_party_tbl OUT NOCOPY q_party_uv_tbl_type,
313 p_qtev_rec IN qtev_rec_type,
314 x_qtev_rec OUT NOCOPY qtev_rec_type) IS
315
316
317 lp_party_tbl q_party_uv_tbl_type := p_party_tbl;
318 lx_party_tbl q_party_uv_tbl_type := p_party_tbl;
319 lp_send_tbl full_tbl_type;
320 lx_send_tbl full_tbl_type;
321
322 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
323 l_api_name CONSTANT VARCHAR2(30):= 'send_terminate_quote';
324 l_api_version CONSTANT NUMBER := 1;
325 l_recipient_type VARCHAR2(3);
326 i NUMBER;
327 l_ptm_code CONSTANT VARCHAR2(200) := 'AMTER';
328 l_agent_id CONSTANT NUMBER := FND_GLOBAL.user_id;
329
330 BEGIN
331
332 -- ***************************************************************
333 -- Check API version, initialize message list and create savepoint
334 -- ***************************************************************
335
336 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
337 G_PKG_NAME,
338 p_init_msg_list,
339 l_api_version,
340 p_api_version,
341 '_PVT',
342 x_return_status);
343
344 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
345 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
346 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
347 RAISE OKL_API.G_EXCEPTION_ERROR;
348 END IF;
349
350
351 -- ****************************************************
352 -- Validate and Set In Parameters for Send Fulfillment
353 -- ****************************************************
354
355 i := lp_party_tbl.FIRST;
356 LOOP
357
358 -- If no party details then error
359 IF lp_party_tbl(i).po_party_id1 IS NULL
360 OR lp_party_tbl(i).po_party_id1 = OKL_API.G_MISS_CHAR THEN
361
362 -- Invalid value for po_party_id1.
363 OKL_API.SET_MESSAGE(p_app_name => OKC_API.G_APP_NAME,
364 p_msg_name => OKC_API.G_INVALID_VALUE,
365 p_token1 => G_COL_NAME_TOKEN,
366 p_token1_value => 'po_party_id1');
367
368 RAISE OKL_API.G_EXCEPTION_ERROR;
369
370 END IF;
371
372 -- If no party details then error
373 IF lp_party_tbl(i).po_party_object IS NULL
374 OR lp_party_tbl(i).po_party_object = OKL_API.G_MISS_CHAR THEN
375
376 -- Invalid value for po_party_object.
377 OKL_API.SET_MESSAGE(p_app_name => OKC_API.G_APP_NAME,
378 p_msg_name => OKC_API.G_INVALID_VALUE,
379 p_token1 => G_COL_NAME_TOKEN,
380 p_token1_value => 'po_party_object');
381
382 RAISE OKL_API.G_EXCEPTION_ERROR;
383
384 END IF;
385
386 -- If party object passed then make sure party name is also passed
387 IF NVL(lp_party_tbl(i).po_party_object, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR
388 AND NVL(lp_party_tbl(i).po_party_name, OKL_API.G_MISS_CHAR) = OKL_API.G_MISS_CHAR THEN
389
390 -- Required value for po_party_name.
391 OKL_API.SET_MESSAGE(p_app_name => OKC_API.G_APP_NAME,
392 p_msg_name => OKC_API.G_REQUIRED_VALUE,
393 p_token1 => G_COL_NAME_TOKEN,
394 p_token1_value => 'po_party_name');
395
396 RAISE OKL_API.G_EXCEPTION_ERROR;
397
398 END IF;
399
400 -- If contact object passed then make sure contact name is also passed
401 IF NVL(lp_party_tbl(i).co_contact_object, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR
402 AND NVL(lp_party_tbl(i).co_contact_name, OKL_API.G_MISS_CHAR) = OKL_API.G_MISS_CHAR THEN
403
404 -- Required value for po_party_name.
405 OKL_API.SET_MESSAGE(p_app_name => OKC_API.G_APP_NAME,
406 p_msg_name => OKC_API.G_REQUIRED_VALUE,
407 p_token1 => G_COL_NAME_TOKEN,
408 p_token1_value => 'co_contact_name');
409
410 RAISE OKL_API.G_EXCEPTION_ERROR;
411
412 END IF;
413
414 -- If po_party_id1 not null and po_party_object not null and
415 -- co_contact_id null then party/vendor details so recipient is po_party
416 IF NVL(lp_party_tbl(i).po_party_id1, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR
417 AND NVL(lp_party_tbl(i).po_party_object, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR
418 AND NVL(lp_party_tbl(i).co_contact_id1, OKL_API.G_MISS_CHAR) = OKL_API.G_MISS_CHAR
419 AND NVL(lp_party_tbl(i).co_contact_object, OKL_API.G_MISS_CHAR) = OKL_API.G_MISS_CHAR
420 AND NVL(lp_party_tbl(i).cp_point_id, OKL_API.G_MISS_NUM) = OKL_API.G_MISS_NUM THEN
421
422 IF NVL(lp_party_tbl(i).cp_email, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR THEN
423
424 -- PARTY WITH EMAIL--
425 lp_send_tbl(i).p_recipient_type := lp_party_tbl(i).po_party_object;
426 lp_send_tbl(i).p_recipient_id := lp_party_tbl(i).po_party_id1;
427 lp_send_tbl(i).p_recipient_email:= lp_party_tbl(i).cp_email;
428
429 ELSE
430
431 IF NVL(lp_party_tbl(i).co_contact_name, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR THEN
432
433 -- Email Id does not exist for the contact CONTACT_NAME for party PARTY_NAME,
434 -- unable to process fulfillment request.
435 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
436 p_msg_name => 'OKL_AM_FUL_EMAIL_ERR',
437 p_token1 => 'CONTACT_NAME',
438 p_token1_value => lp_party_tbl(i).co_contact_name,
439 p_token2 => 'PARTY_NAME',
440 p_token2_value => lp_party_tbl(i).po_party_name);
441
442 RAISE OKL_API.G_EXCEPTION_ERROR;
443
444 ELSE
445
446 -- Email Id does not exist for the party PARTY_NAME,
447 -- unable to process fulfillment request.
448 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
449 p_msg_name => 'OKL_AM_FUL_EMAIL_MSG',
450 p_token1 => 'PARTY_NAME',
451 p_token1_value => lp_party_tbl(i).po_party_name);
452
453 RAISE OKL_API.G_EXCEPTION_ERROR;
454
455 END IF;
456
457 END IF;
458
459 -- If co_contact_id1 not null and co_contact_object not null and
460 -- cp_point_id null then contact details so recipient is co_contact
461 ELSIF NVL(lp_party_tbl(i).co_contact_id1, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR
462 AND NVL(lp_party_tbl(i).co_contact_object, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR
463 AND NVL(lp_party_tbl(i).cp_point_id, OKL_API.G_MISS_NUM) = OKL_API.G_MISS_NUM
464 AND NVL(lp_party_tbl(i).cp_email, OKL_API.G_MISS_CHAR) = OKL_API.G_MISS_CHAR THEN
465
466 IF NVL(lp_party_tbl(i).co_email, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR THEN
467
468 -- CONTACT WITH EMAIL--
469 lp_send_tbl(i).p_recipient_type := lp_party_tbl(i).co_contact_object;
470 lp_send_tbl(i).p_recipient_id := lp_party_tbl(i).co_contact_id1;
471 lp_send_tbl(i).p_recipient_email:= lp_party_tbl(i).co_email;
472
473 ELSE
474
475 IF NVL(lp_party_tbl(i).co_contact_name, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR THEN
476
477 -- Email Id does not exist for the contact CONTACT_NAME for party PARTY_NAME,
478 -- unable to process fulfillment request.
479 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
480 p_msg_name => 'OKL_AM_FUL_EMAIL_ERR',
481 p_token1 => 'CONTACT_NAME',
482 p_token1_value => lp_party_tbl(i).co_contact_name,
483 p_token2 => 'PARTY_NAME',
484 p_token2_value => lp_party_tbl(i).po_party_name);
485
486 RAISE OKL_API.G_EXCEPTION_ERROR;
487
488 ELSE
489
490 -- Email Id does not exist for the party PARTY_NAME,
491 -- unable to process fulfillment request.
492 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
493 p_msg_name => 'OKL_AM_FUL_EMAIL_MSG',
494 p_token1 => 'PARTY_NAME',
495 p_token1_value => lp_party_tbl(i).po_party_name);
496
497 RAISE OKL_API.G_EXCEPTION_ERROR;
498
499 END IF;
500
501 END IF;
502
503 -- If cp_point_id not null and cp_email not null
504 -- then contact point details so recipient is co_contact
505 ELSIF NVL(lp_party_tbl(i).cp_point_id, OKL_API.G_MISS_NUM) <> OKL_API.G_MISS_NUM THEN
506 IF NVL(lp_party_tbl(i).cp_email, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR THEN
507
508 -- CONTACT POINT WITH EMAIL--
509 lp_send_tbl(i).p_recipient_type := lp_party_tbl(i).co_contact_object;
510 lp_send_tbl(i).p_recipient_id := lp_party_tbl(i).co_contact_id1;
511 lp_send_tbl(i).p_recipient_email:= lp_party_tbl(i).cp_email;
512
513 ELSE
514
515 IF NVL(lp_party_tbl(i).co_contact_name, OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR THEN
516
517 -- Email Id does not exist for the contact CONTACT_NAME for party PARTY_NAME,
518 -- unable to process fulfillment request.
519 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
520 p_msg_name => 'OKL_AM_FUL_EMAIL_ERR',
521 p_token1 => 'CONTACT_NAME',
522 p_token1_value => lp_party_tbl(i).co_contact_name,
523 p_token2 => 'PARTY_NAME',
524 p_token2_value => lp_party_tbl(i).po_party_name);
525
526 RAISE OKL_API.G_EXCEPTION_ERROR;
527
528 ELSE
529
530 -- Email Id does not exist for the party PARTY_NAME,
531 -- unable to process fulfillment request.
532 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
533 p_msg_name => 'OKL_AM_FUL_EMAIL_MSG',
534 p_token1 => 'PARTY_NAME',
535 p_token1_value => lp_party_tbl(i).po_party_name);
536
537 RAISE OKL_API.G_EXCEPTION_ERROR;
538
539 END IF;
540
541 END IF;
542
543 ELSE -- Some values missing or not a proper party/contact/contactpoint
544
545 -- Invalid value passed to fulfillment server, unable to process fulfillment request.
546 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
547 p_msg_name => 'OKL_AM_FUL_REQUEST_ERR');
548
549 RAISE OKL_API.G_EXCEPTION_ERROR;
550
551 END IF;
552
553
554 lp_send_tbl(i).p_ptm_code := l_ptm_code;
555 lp_send_tbl(i).p_agent_id := l_agent_id;
556 lp_send_tbl(i).p_transaction_id := lp_party_tbl(i).quote_id;
557
558
559 EXIT WHEN (i = lp_party_tbl.LAST);
560 i := lp_party_tbl.NEXT(i);
561 END LOOP;
562
563
564 -- *****************
565 -- Call Fulfillment
566 -- *****************
567
568 send_fulfillment (
569 p_api_version => p_api_version,
570 p_init_msg_list => OKL_API.G_FALSE,
571 x_return_status => l_return_status,
572 x_msg_count => x_msg_count,
573 x_msg_data => x_msg_data,
574 p_send_tbl => lp_send_tbl,
575 x_send_tbl => lx_send_tbl);
576
577
578 -- Raise exception when error
579 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
580 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
581 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
582 RAISE OKL_API.G_EXCEPTION_ERROR;
583 END IF;
584
585
586 -- *******************
587 -- Set Out Parameters
588 -- *******************
589
590 x_return_status := l_return_status;
591 x_party_tbl := lx_party_tbl;
592
593
594 -- *****************
595 -- End Transaction
596 -- *****************
597
598 -- end the transaction
599 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
600
601 EXCEPTION
602 WHEN OKL_API.G_EXCEPTION_ERROR THEN
603 x_return_status := OKL_API.HANDLE_EXCEPTIONS
604 (
605 l_api_name,
606 G_PKG_NAME,
607 'OKL_API.G_RET_STS_ERROR',
608 x_msg_count,
609 x_msg_data,
610 '_PVT'
611 );
612 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
613 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
614 (
615 l_api_name,
616 G_PKG_NAME,
617 'OKL_API.G_RET_STS_UNEXP_ERROR',
618 x_msg_count,
619 x_msg_data,
620 '_PVT'
621 );
622 WHEN OTHERS THEN
623 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
624 (
625 l_api_name,
626 G_PKG_NAME,
627 'OTHERS',
628 x_msg_count,
629 x_msg_data,
630 '_PVT'
631 );
632 END send_terminate_quote;
633
634
635 -- Start of comments
636 --
637 -- Procedure Name : send_repurchase_quote
638 -- Description : Procedure to launch fulfillment from repurchase asset scrn
639 -- Business Rules :
640 -- Parameters :
641 -- Version : 1.0
642 --
643 -- End of comments
644
645 PROCEDURE send_repurchase_quote (
646 p_api_version IN NUMBER,
647 p_init_msg_list IN VARCHAR2,
648 x_return_status OUT NOCOPY VARCHAR2,
649 x_msg_count OUT NOCOPY NUMBER,
650 x_msg_data OUT NOCOPY VARCHAR2,
651 p_send_tbl IN full_tbl_type,
652 x_send_tbl OUT NOCOPY full_tbl_type,
653 p_qtev_rec IN qtev_rec_type,
654 x_qtev_rec OUT NOCOPY qtev_rec_type) IS
655
656
657 -- Get the recipient for the quote who is a vendor
658 CURSOR okl_get_vendor_for_q_csr ( p_qte_id IN NUMBER) IS
659 SELECT OQPV.qp_party_id1 recipient_id,
660 OQPV.qp_party_object recipient_type
661 FROM OKL_AM_QUOTE_PARTIES_UV OQPV
662 WHERE OQPV.quote_id = p_qte_id
663 AND OQPV.qp_role_code = 'RECIPIENT';
664
665 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
666 l_api_name CONSTANT VARCHAR2(30):= 'send_repurchase_quote';
667 l_api_version CONSTANT NUMBER := 1;
668 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
669 l_recipient_id VARCHAR2(200);
670 l_recipient_type VARCHAR2(200);
671 l_ptm_code VARCHAR2(200);
672 l_pt_bind_names JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
673 l_pt_bind_values JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
674 l_pt_bind_types JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
675 i NUMBER;
676 lp_send_tbl full_tbl_type := p_send_tbl;
677 lx_send_tbl full_tbl_type := p_send_tbl;
678 lp_qtev_rec qtev_rec_type := p_qtev_rec;
679 lx_qtev_rec qtev_rec_type := p_qtev_rec;
680
681 BEGIN
682
683
684 -- ***************************************************************
685 -- Check API version, initialize message list and create savepoint
686 -- ***************************************************************
687
688 --Check API version, initialize message list and create savepoint.
689 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
690 G_PKG_NAME,
691 p_init_msg_list,
692 l_api_version,
693 p_api_version,
694 '_PVT',
695 x_return_status);
696
697 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
698 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
699 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
700 RAISE OKL_API.G_EXCEPTION_ERROR;
701 END IF;
702
703
704 -- ****************************************************
705 -- Set In Parameters for Send Fulfillment
706 -- ****************************************************
707
708 -- Set the ptm code for fulfillment api
709 l_ptm_code := 'AMREP'; -- for repurchase quote
710
711 -- For each recipient set the fulfillment record
712 IF lp_send_tbl.COUNT > 0 THEN
713 i := lp_send_tbl.FIRST;
714 LOOP
715
716 -- Get the vendor id for the quote id(transaction id)
717 OPEN okl_get_vendor_for_q_csr ( lp_send_tbl(i).p_transaction_id);
718 FETCH okl_get_vendor_for_q_csr INTO l_recipient_id, l_recipient_type;
719 CLOSE okl_get_vendor_for_q_csr;
720
721 lp_send_tbl(i).p_ptm_code := l_ptm_code;
722 lp_send_tbl(i).p_recipient_id := l_recipient_id;
723 lp_send_tbl(i).p_recipient_type := l_recipient_type;
724
725 EXIT WHEN (i = lp_send_tbl.LAST);
726 i := lp_send_tbl.NEXT(i);
727 END LOOP;
728 END IF;
729
730
731
732 -- *****************
733 -- Call Fulfillment
734 -- *****************
735
736 IF lp_send_tbl.COUNT > 0 THEN
737
738 -- Call the send fulfillment procedure
739 send_fulfillment(
740 p_api_version => p_api_version,
741 p_init_msg_list => OKL_API.G_FALSE,
742 x_return_status => l_return_status,
743 x_msg_count => x_msg_count,
744 x_msg_data => x_msg_data,
745 p_send_tbl => lp_send_tbl,
746 x_send_tbl => lx_send_tbl);
747
748 -- Raise exception when error
749 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
750 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
751 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
752 RAISE OKL_API.G_EXCEPTION_ERROR;
753 END IF;
754 END IF;
755
756
757 -- *******************
758 -- Set Out Parameters
759 -- *******************
760
761 x_return_status := l_return_status;
762 x_send_tbl := lx_send_tbl;
763 x_qtev_rec := lx_qtev_rec;
764
765
766 -- *****************
767 -- End Transaction
768 -- *****************
769
770 -- end the transaction
771 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
772
773 EXCEPTION
774 WHEN OKL_API.G_EXCEPTION_ERROR THEN
775 IF okl_get_vendor_for_q_csr%ISOPEN THEN
776 CLOSE okl_get_vendor_for_q_csr;
777 END IF;
778 x_return_status := OKL_API.HANDLE_EXCEPTIONS
779 (
780 l_api_name,
781 G_PKG_NAME,
782 'OKL_API.G_RET_STS_ERROR',
783 x_msg_count,
784 x_msg_data,
785 '_PVT'
786 );
787 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
788 IF okl_get_vendor_for_q_csr%ISOPEN THEN
789 CLOSE okl_get_vendor_for_q_csr;
790 END IF;
791 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
792 (
793 l_api_name,
794 G_PKG_NAME,
795 'OKL_API.G_RET_STS_UNEXP_ERROR',
796 x_msg_count,
797 x_msg_data,
798 '_PVT'
799 );
800 WHEN OTHERS THEN
801 IF okl_get_vendor_for_q_csr%ISOPEN THEN
802 CLOSE okl_get_vendor_for_q_csr;
803 END IF;
804 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
805 (
806 l_api_name,
807 G_PKG_NAME,
808 'OTHERS',
809 x_msg_count,
810 x_msg_data,
811 '_PVT'
812 );
813 END send_repurchase_quote;
814
815
816 -- Start of comments
817 --
818 -- Procedure Name : send_restructure_quote
819 -- Description : Procedure to launch fulfillment from restructure quote screen
820 -- Business Rules :
821 -- Parameters :
822 -- Version : 1.0
823 --
824 -- End of comments
825 PROCEDURE send_restructure_quote (
826 p_api_version IN NUMBER,
827 p_init_msg_list IN VARCHAR2,
828 x_return_status OUT NOCOPY VARCHAR2,
829 x_msg_count OUT NOCOPY NUMBER,
830 x_msg_data OUT NOCOPY VARCHAR2,
831 p_send_tbl IN full_tbl_type,
832 x_send_tbl OUT NOCOPY full_tbl_type,
833 p_qtev_rec IN qtev_rec_type,
834 x_qtev_rec OUT NOCOPY qtev_rec_type) IS
835
836
837
838 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
839 l_api_name CONSTANT VARCHAR2(30):= 'send_restructure_quote';
840 l_api_version CONSTANT NUMBER := 1;
841 i NUMBER;
842 lp_send_tbl full_tbl_type := p_send_tbl;
843 lx_send_tbl full_tbl_type := p_send_tbl;
844 lp_qtev_rec qtev_rec_type := p_qtev_rec;
845 lx_qtev_rec qtev_rec_type := p_qtev_rec;
846
847 BEGIN
848
849
850 -- ***************************************************************
851 -- Check API version, initialize message list and create savepoint
852 -- ***************************************************************
853
854 --Check API version, initialize message list and create savepoint.
855 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
856 G_PKG_NAME,
857 p_init_msg_list,
858 l_api_version,
859 p_api_version,
860 '_PVT',
861 x_return_status);
862
863 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
864 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
865 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
866 RAISE OKL_API.G_EXCEPTION_ERROR;
867 END IF;
868
869
870 -- *****************
871 -- Call Fulfillment
872 -- *****************
873
874 -- Call the send fulfillment procedure
875 send_fulfillment(
876 p_api_version => p_api_version,
877 p_init_msg_list => OKL_API.G_FALSE,
878 x_return_status => l_return_status,
879 x_msg_count => x_msg_count,
880 x_msg_data => x_msg_data,
881 p_send_tbl => lp_send_tbl,
882 x_send_tbl => lx_send_tbl);
883
884 -- Raise exception when error
885 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
886 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
887 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
888 RAISE OKL_API.G_EXCEPTION_ERROR;
889 END IF;
890
891
892 -- *******************
893 -- Set Out Parameters
894 -- *******************
895
896 x_return_status := l_return_status;
897 x_send_tbl := lx_send_tbl;
898 x_qtev_rec := lx_qtev_rec;
899
900
901 -- *****************
902 -- End Transaction
903 -- *****************
904
905 -- end the transaction
906 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
907
908 EXCEPTION
909 WHEN OKL_API.G_EXCEPTION_ERROR THEN
910 x_return_status := OKL_API.HANDLE_EXCEPTIONS
911 (
912 l_api_name,
913 G_PKG_NAME,
914 'OKL_API.G_RET_STS_ERROR',
915 x_msg_count,
916 x_msg_data,
917 '_PVT'
918 );
919 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
920 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
921 (
922 l_api_name,
923 G_PKG_NAME,
924 'OKL_API.G_RET_STS_UNEXP_ERROR',
925 x_msg_count,
926 x_msg_data,
927 '_PVT'
928 );
929 WHEN OTHERS THEN
930 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
931 (
932 l_api_name,
933 G_PKG_NAME,
934 'OTHERS',
935 x_msg_count,
936 x_msg_data,
937 '_PVT'
938 );
939 END send_restructure_quote;
940
941
942
943 -- Start of comments
944 --
945 -- Procedure Name : send_consolidate_quote
946 -- Description : Procedure to launch fulfillment from consolidate quote screen
947 -- Business Rules :
948 -- Parameters :
949 -- Version : 1.0
950 --
951 -- End of comments
952 PROCEDURE send_consolidate_quote (
953 p_api_version IN NUMBER,
954 p_init_msg_list IN VARCHAR2,
955 x_return_status OUT NOCOPY VARCHAR2,
956 x_msg_count OUT NOCOPY NUMBER,
957 x_msg_data OUT NOCOPY VARCHAR2,
958 p_send_tbl IN full_tbl_type,
959 x_send_tbl OUT NOCOPY full_tbl_type,
960 p_qtev_rec IN qtev_rec_type,
961 x_qtev_rec OUT NOCOPY qtev_rec_type) IS
962
963
964
965 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
966 l_api_name CONSTANT VARCHAR2(30):= 'send_consolidate_quote';
967 l_api_version CONSTANT NUMBER := 1;
968 i NUMBER;
969 lp_send_tbl full_tbl_type := p_send_tbl;
970 lx_send_tbl full_tbl_type := p_send_tbl;
971 lp_qtev_rec qtev_rec_type := p_qtev_rec;
972 lx_qtev_rec qtev_rec_type := p_qtev_rec;
973
974 BEGIN
975
976
977 -- ***************************************************************
978 -- Check API version, initialize message list and create savepoint
979 -- ***************************************************************
980
981 --Check API version, initialize message list and create savepoint.
982 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
983 G_PKG_NAME,
984 p_init_msg_list,
985 l_api_version,
986 p_api_version,
987 '_PVT',
988 x_return_status);
989
990 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
991 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
992 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
993 RAISE OKL_API.G_EXCEPTION_ERROR;
994 END IF;
995
996
997 -- *****************
998 -- Call Fulfillment
999 -- *****************
1000
1001 -- Call the send fulfillment procedure
1002 send_fulfillment(
1003 p_api_version => p_api_version,
1004 p_init_msg_list => OKL_API.G_FALSE,
1005 x_return_status => l_return_status,
1006 x_msg_count => x_msg_count,
1007 x_msg_data => x_msg_data,
1008 p_send_tbl => lp_send_tbl,
1009 x_send_tbl => lx_send_tbl);
1010
1011 -- Raise exception when error
1012 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1013 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1014 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1015 RAISE OKL_API.G_EXCEPTION_ERROR;
1016 END IF;
1017
1018
1019 -- *******************
1020 -- Set Out Parameters
1021 -- *******************
1022
1023 x_return_status := l_return_status;
1024 x_send_tbl := lx_send_tbl;
1025 x_qtev_rec := lx_qtev_rec;
1026
1027
1028 -- *****************
1029 -- End Transaction
1030 -- *****************
1031
1032 -- end the transaction
1033 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1034
1035 EXCEPTION
1036 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1037 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1038 (
1039 l_api_name,
1040 G_PKG_NAME,
1041 'OKL_API.G_RET_STS_ERROR',
1042 x_msg_count,
1043 x_msg_data,
1044 '_PVT'
1045 );
1046 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1047 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1048 (
1049 l_api_name,
1050 G_PKG_NAME,
1051 'OKL_API.G_RET_STS_UNEXP_ERROR',
1052 x_msg_count,
1053 x_msg_data,
1054 '_PVT'
1055 );
1056 WHEN OTHERS THEN
1057 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1058 (
1059 l_api_name,
1060 G_PKG_NAME,
1061 'OTHERS',
1062 x_msg_count,
1063 x_msg_data,
1064 '_PVT'
1065 );
1066 END send_consolidate_quote;
1067
1068
1069 END OKL_AM_SEND_FULFILLMENT_PVT;