[Home] [Help]
PACKAGE BODY: APPS.OE_BLANKET_UTIL
Source
1 PACKAGE BODY OE_Blanket_util AS
2 /* $Header: OEXUBSOB.pls 120.31.12020000.5 2013/01/08 10:22:09 sipillut ship $ */
3 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_Blanket_Util';
4
5 PROCEDURE Insert_History_Records
6 (p_header_rec IN OUT NOCOPY OE_Blanket_PUB.Header_Rec_Type
7 ,p_line_tbl IN OUT NOCOPY OE_Blanket_PUB.Line_Tbl_Type
8 ,p_version_flag in varchar2 := null
9 ,p_phase_change_flag in varchar2 := null
10 ,x_return_status IN OUT NOCOPY VARCHAR2
11 );
12
13 PROCEDURE Validate_Min_Max_Range (p_min_value IN NUMBER, p_max_value IN NUMBER, p_attribute IN VARCHAR2, x_return_status IN OUT NOCOPY VARCHAR2);
14
15 PROCEDURE Lock_Blanket
16 ( x_return_status OUT NOCOPY VARCHAR2
17 , p_blanket_id IN NUMBER
18 , p_blanket_line_id IN NUMBER
19 , p_x_lock_control IN OUT NOCOPY NUMBER
20 );
21
22 -- ER 5743580
23 --Added for Bug 9027699
24 FUNCTION is_end_date_operation
25 ( p_line_rec IN OE_Blanket_PUB.line_rec_type,
26 p_old_line_rec IN OE_Blanket_PUB.line_rec_type)
27 RETURN BOOLEAN
28 IS
29 l_dummy VARCHAR2(10);
30 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
31 l_return_status varchar2(1);
32
33 BEGIN
34 IF l_debug_level > 0 then
35 oe_debug_pub.add('Entering is_end_date_operation ');
36 end if;
37 IF p_line_rec.operation = oe_globals.g_opr_update AND p_line_rec.end_date_active = trunc(sysdate) AND
38 NOT OE_GLOBALS.Equal(p_line_rec.end_date_active, p_old_line_rec.end_date_active) THEN
39
40 IF p_line_rec.override_blanket_controls_flag = 'N' THEN
41 IF nvl(p_line_rec.released_amount,0) < p_line_rec.blanket_min_amount THEN
42 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_CLOSE_MIN_VALUES');
43 OE_MSG_PUB.ADD;
44 if l_debug_level > 0 then
45 oe_debug_pub.add('Blanket line close min amount ');
46 end if;
47 -- return false; This is a warning..hence not returning ..
48
49 ELSIF nvl(p_line_rec.released_quantity,0) < p_line_rec.blanket_min_quantity THEN
50 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_CLOSE_MIN_VALUES');
51 OE_MSG_PUB.ADD;
52 if l_debug_level > 0 then
53 oe_debug_pub.add('Blanket line close min quantity ');
54 end if;
55 --return false; This is a warning..hence not returning ..
56 END IF;
57 END IF;
58
59
60 BEGIN
61 SELECT 'ERROR'
62 INTO l_dummy
63 FROM OE_ORDER_LINES
64 WHERE trunc(request_date) > trunc(p_line_rec.end_date_active)
65 --- Bug 14487632, FP of 14469059 Start
66 AND OPEN_FLAG = 'Y'
67 --- Bug 14487632, FP of 14469059 End
68 AND BLANKET_NUMBER = p_line_rec.order_number
69 AND BLANKET_LINE_NUMBER = p_line_rec.line_number
70 AND ROWNUM = 1;
71
72 IF l_dummy = 'ERROR' THEN
73 fnd_message.set_name('ONT', 'OE_BLKT_LINE_RELEASE_END_DATE');
74 OE_MSG_PUB.Add;
75 return false;
76 END IF;
77
78 EXCEPTION
79 WHEN NO_DATA_FOUND THEN
80 NULL; --no rows with conflicting end dates
81 END;
82
83
84 --validate item uniqueness
85 -- This is called just to make sure that a delayed request is logged..else validate_entity was being called again
86 -- from process_object
87 OE_Delayed_Requests_Pvt.Log_Request(p_Entity_Code =>
88 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE ,
89 p_Entity_Id => p_line_rec.line_id,
90 p_requesting_entity_code =>
91 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
92 p_requesting_entity_id => p_line_rec.line_id,
93 p_request_type => 'VALIDATE_BLANKET_INV_ITEM',
94 p_param1 => p_line_rec.inventory_item_id,
95 p_param2 => p_line_rec.header_id,
96 p_param3 => p_line_rec.item_identifier_type,
97 p_param4 => p_line_rec.ordered_item_id, --bug6826787
98 p_param5 => p_line_rec.ordered_item, --bug6826787
99 p_date_param1 => p_line_rec.start_date_active,
100 p_date_param2 => p_line_rec.end_date_active,
101 x_return_status => l_return_status);
102
103 return true;
104
105
106 ELSE
107 return false;
108 END IF;
109
110 END is_end_date_operation;
111
112
113 FUNCTION Validate_Ship_to_Org
114 ( p_ship_to_org_id IN NUMBER
115 , p_sold_to_org_id IN NUMBER)
116 RETURN BOOLEAN
117 IS
118 l_dummy VARCHAR2(10);
119 l_site_use_code VARCHAR2(30) := 'SHIP_TO';
120 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
121
122 BEGIN
123 IF l_debug_level > 0 then
124 oe_debug_pub.add('Entering Validate_ship_to_org',1);
125 oe_debug_pub.add('ship_to_org_id :'||to_char(p_ship_to_org_id),2);
126 END IF;
127
128 IF g_customer_relations = 'N' THEN
129
130 Select 'VALID'
131 Into l_dummy
132 From oe_ship_to_orgs_v
133 Where customer_id = p_sold_to_org_id
134 AND site_use_id = p_ship_to_org_id
135 AND status = 'A'
136 AND address_status ='A'; --bug 2752321
137 IF l_debug_level > 0 then
138 oe_debug_pub.add('Exiting Validate_ship_to_org',1);
139 END IF;
140 RETURN TRUE;
141 ELSIF g_customer_relations = 'Y' THEN
142 IF l_debug_level > 0 then
143 oe_debug_pub.add ('Cr: Yes Line Ship',2);
144 END IF;
145
146 SELECT /* MOAC_SQL_CHANGE */ 'VALID'
147 Into l_dummy
148 FROM HZ_CUST_SITE_USES_ALL SITE,
149 HZ_CUST_ACCT_SITES ACCT_SITE
150 WHERE SITE.SITE_USE_ID = p_ship_to_org_id
151 AND SITE.SITE_USE_CODE = l_site_use_code
152 AND SITE.CUST_ACCT_SITE_ID = ACCT_SITE.CUST_ACCT_SITE_ID
153 AND SITE.STATUS = 'A'
154 AND ACCT_SITE.STATUS ='A' AND --bug 2752321
155 ACCT_SITE.CUST_ACCOUNT_ID in (
156 SELECT p_sold_to_org_id FROM DUAL
157 UNION
158 SELECT CUST_ACCOUNT_ID FROM
159 HZ_CUST_ACCT_RELATE_ALL h WHERE
160 RELATED_CUST_ACCOUNT_ID = p_sold_to_org_id
161 and h.org_id=acct_site.org_id
162 and ship_to_flag = 'Y' and status = 'A')
163 AND EXISTS(SELECT 1 FROM HZ_CUST_ACCOUNTS WHERE CUST_ACCOUNT_ID =
164 ACCT_SITE.CUST_ACCOUNT_ID AND STATUS='A')
165 AND ROWNUM = 1;
166 RETURN TRUE;
167 ELSIF g_customer_relations = 'A' THEN
168 SELECT 'VALID'
169 INTO l_dummy
170 FROM OE_SHIP_TO_ORGS_V SHP
171 WHERE SHP.ORGANIZATION_ID =p_ship_to_org_id
172 AND SHP.STATUS = 'A'
173 AND SHP.ADDRESS_STATUS ='A' --bug 2752321
174 AND SYSDATE BETWEEN NVL(SHP.START_DATE_ACTIVE, SYSDATE)
175 AND NVL(SHP.END_DATE_ACTIVE, SYSDATE);
176
177 RETURN TRUE;
178
179 END IF;
180 RETURN TRUE;
181
182
183 EXCEPTION
184
185 WHEN OTHERS THEN
186 RETURN FALSE;
187
188 END Validate_Ship_To_Org;
189
190
191 FUNCTION Validate_Deliver_To_Org
192 ( p_deliver_to_org_id IN NUMBER
193 , p_sold_to_org_id IN NUMBER)
194 RETURN BOOLEAN
195 IS
196 l_dummy VARCHAR2(10);
197 l_site_use_code VARCHAR2(30) := 'DELIVER_TO';
198
199 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
200 BEGIN
201 IF l_debug_level > 0 then
202 oe_debug_pub.add('Entering OE_VALIDATE_LINE.Validate_Deliver_To_Org',1);
203 oe_debug_pub.add('deliver_to_org_id :'||to_char(p_deliver_to_org_id),2);
204 END IF;
205
206
207 IF g_customer_relations = 'N' THEN
208 SELECT 'VALID'
209 INTO l_dummy
210 FROM oe_deliver_to_orgs_v
211 WHERE customer_id = p_sold_to_org_id
212 AND site_use_id = p_deliver_to_org_id
213 AND status = 'A'
214 AND address_status ='A';--bug 2752321
215 IF l_debug_level > 0 then
216 oe_debug_pub.add('Exiting OE_VALIDATE_LINE.Validate_Deliver_To_Org',1);
217 END IF;
218 RETURN TRUE;
219
220 ELSIF g_customer_relations = 'Y' THEN
221 IF l_debug_level > 0 then
222 oe_debug_pub.add('Cr: Yes Line Deliver',2);
223 END IF;
224
225 SELECT /* MOAC_SQL_CHANGE */ 'VALID'
226 Into l_dummy
227 FROM HZ_CUST_SITE_USES_ALL SITE,
228 HZ_CUST_ACCT_SITES ACCT_SITE
229 WHERE SITE.SITE_USE_ID = p_deliver_to_org_id
230 AND SITE.SITE_USE_CODE = l_site_use_code
231 AND SITE.CUST_ACCT_SITE_ID = ACCT_SITE.CUST_ACCT_SITE_ID
232 AND SITE.STATUS = 'A'
233 AND ACCT_SITE.STATUS ='A' AND
234 ACCT_SITE.CUST_ACCOUNT_ID in (
235 SELECT p_sold_to_org_id FROM DUAL
236 UNION
237 SELECT CUST_ACCOUNT_ID FROM
238 HZ_CUST_ACCT_RELATE_ALL h WHERE
239 RELATED_CUST_ACCOUNT_ID = p_sold_to_org_id
240 and h.org_id=acct_site.org_id
241 and ship_to_flag = 'Y' and status='A')
242 AND EXISTS(SELECT 1 FROM HZ_CUST_ACCOUNTS WHERE CUST_ACCOUNT_ID =
243 ACCT_SITE.CUST_ACCOUNT_ID AND STATUS='A')
244 AND ROWNUM = 1;
245
246 IF l_debug_level > 0 then
247 oe_debug_pub.add('Exiting OE_VALIDATE_LINE.Validate_Deliver_To_Org',1);
248 END IF;
249 RETURN TRUE;
250
251 ELSIF g_customer_relations = 'A' THEN
252
253 SELECT 'VALID'
254 INTO l_dummy
255 FROM OE_DELIVER_TO_ORGS_V DEL
256 WHERE DEL.ORGANIZATION_ID =p_deliver_to_org_id
257 AND DEL.STATUS = 'A'
258 AND DEL.ADDRESS_STATUS ='A' --bug 2752321
259 AND SYSDATE BETWEEN NVL(DEL.START_DATE_ACTIVE, SYSDATE)
260 AND NVL(DEL.END_DATE_ACTIVE, SYSDATE);
261 IF l_debug_level > 0 then
262 oe_debug_pub.add('Exiting OE_VALIDATE_LINE.Validate_Deliver_To_Org',1);
263 END IF;
264 RETURN TRUE;
265
266
267 END IF;
268 IF l_debug_level > 0 then
269 oe_debug_pub.add('Exiting OE_VALIDATE_LINE.Validate_Deliver_To_Org',1);
270 END IF;
271 RETURN TRUE;
272
273 EXCEPTION
274
275 WHEN OTHERS THEN
276 RETURN FALSE;
277
278 END Validate_Deliver_To_Org;
279
280
281 FUNCTION Validate_Invoice_To_Org
282 ( p_Invoice_to_org_id IN NUMBER
283 , p_sold_to_org_id IN NUMBER)
284 RETURN BOOLEAN
285 IS
286 l_dummy VARCHAR2(10);
287 l_site_use_code VARCHAR2(30) := 'BILL_TO';
288
289 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
290 BEGIN
291 IF l_debug_level > 0 then
292 oe_debug_pub.add('Entering Validate_Invoice_To_Org',1);
293 oe_debug_pub.add('Invoice_to_org_id :'||to_char(p_Invoice_to_org_id),2);
294 END IF;
295
296
297 IF g_customer_relations = 'N' THEN
298
299 Select 'VALID'
300 Into l_dummy
301 From oe_invoice_to_orgs_v
302 Where customer_id = p_sold_to_org_id
303 And site_use_id = p_invoice_to_org_id
304 and status='A'
305 and address_status ='A';
306 RETURN TRUE;
307
308 ELSIF g_customer_relations = 'Y' THEN
309 IF l_debug_level > 0 then
310 oe_debug_pub.add('Cr: Yes Line Inv',2);
311 END IF;
312
313 SELECT /* MOAC_SQL_CHANGE */ 'VALID'
314 Into l_dummy
315 FROM HZ_CUST_SITE_USES_ALL SITE,
316 HZ_CUST_ACCT_SITES ACCT_SITE
317 WHERE SITE.SITE_USE_ID = p_invoice_to_org_id
318 AND SITE.SITE_USE_CODE = l_site_use_code
319 AND SITE.CUST_ACCT_SITE_ID = ACCT_SITE.CUST_ACCT_SITE_ID
320 AND SITE.STATUS = 'A'
321 AND ACCT_SITE.STATUS ='A' AND
322 ACCT_SITE.CUST_ACCOUNT_ID in (
323 SELECT p_sold_to_org_id FROM DUAL
324 UNION
325 SELECT CUST_ACCOUNT_ID FROM
326 HZ_CUST_ACCT_RELATE_ALL h WHERE
327 RELATED_CUST_ACCOUNT_ID = p_sold_to_org_id
328 and h.org_id=acct_site.org_id
329 and bill_to_flag = 'Y' and status='A')
330 AND EXISTS(SELECT 1 FROM HZ_CUST_ACCOUNTS WHERE CUST_ACCOUNT_ID = ACCT_SITE.CUST_ACCOUNT_ID AND STATUS='A')
331 AND ROWNUM = 1;
332
333 RETURN TRUE;
334 END IF;
335 RETURN TRUE;
336
337 EXCEPTION
338 WHEN OTHERS THEN
339 RETURN FALSE;
340 END Validate_Invoice_To_Org;
341 -- End ER 5743580
342
343
344 PROCEDURE create_price_list(
345 p_index in NUMBER,
346 x_return_status OUT NOCOPY varchar2)
347 IS
348 gpr_return_status varchar2(1) := NULL;
349 gpr_msg_count number := 0;
350 gpr_msg_data varchar2(2000);
351 gpr_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
352 gpr_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
353 gpr_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
354 gpr_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
355 gpr_qualifiers_tbl QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
356 l_qualifiers_tbl QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
357 gpr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type;
358 gpr_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
359 gpr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
360 ppr_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
361 ppr_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
362 ppr_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
363 ppr_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
364 ppr_qualifiers_tbl QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
365 ppr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type;
366 ppr_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
367 ppr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
368 xpr_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
369 xpr_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
370 xpr_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
371 xpr_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
372 xpr_qualifiers_tbl QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
373 xpr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type;
374 xpr_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
375 xpr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
376 K number := 1;
377 j number := 1;
378 I number := p_Index;
379 lheader_id number;
380 l_list_line_seq NUMBER;
381 ind NUMBER := 1;
382 --
383 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
384 --
385 l_user_precedence NUMBER; --Bug#8468331
386
387 BEGIN
388 /* set the list_header_id to g_miss_num */
389
390 if l_debug_level > 0 then
391 oe_debug_pub.add('Blanket In create price list');
392 end if;
393 IF oe_delayed_requests_pvt.g_delayed_requests(I).param1 IS NULL THEN
394 RETURN;
395 END IF;
396
397 gpr_price_list_rec.list_header_id := FND_API.G_MISS_NUM;
398 gpr_price_list_rec.name := oe_delayed_requests_pvt.g_delayed_requests(I).param1;
399 gpr_price_list_rec.list_type_code := 'PRL';
400 gpr_price_list_rec.list_source_code := 'BLKT';
401 -- gpr_price_list_rec.description := oe_delayed_requests_pvt.g_delayed_requests(I).paramtext1;
402 gpr_price_list_rec.currency_code := oe_delayed_requests_pvt.g_delayed_requests(I).param2;
403 --11i10 Pricing Changes Start
404 if oe_code_control.get_code_release_level >= '110510' then
405 gpr_price_list_rec.list_source_code := 'BSO';
406 gpr_price_list_rec.orig_system_header_ref :=
407 oe_delayed_requests_pvt.g_delayed_requests(I).entity_id;
408 gpr_price_list_rec.shareable_flag := 'N';
409 gpr_price_list_rec.sold_to_org_id :=
410 oe_delayed_requests_pvt.g_delayed_requests(I).param7;
411 -- Add blanket header qualifier
412 l_qualifiers_tbl(1).excluder_flag := 'N';
413 l_qualifiers_tbl(1).comparison_operator_code := '=';
414 l_qualifiers_tbl(1).qualifier_context := 'ORDER';
415 --Bug#8468331
416 /*The precedence with which pricing was being called was hardcoded as 700(the seeded value)
417 so even if this value is changed in Pricing Setup the price list being created via BSO has
418 the precedence as 700 and not the user updated value.*/
419 SELECT a.user_precedence INTO l_user_precedence
420 FROM qp_segments_v a,
421 qp_prc_contexts_b b,
422 qp_pte_segments c
423 WHERE
424 b.prc_context_type = 'QUALIFIER' and
425 b.prc_context_code = 'ORDER' and
426 b.prc_context_id = a.prc_context_id and
427 a.segment_mapping_column = 'QUALIFIER_ATTRIBUTE5' and
428 a.segment_id = c.segment_id and
429 c.pte_code = 'ORDFUL';
430 --Bug#8468331
431 --l_qualifiers_tbl(1).qualifier_precedence := 700; --commented Bug#8468331
432 l_qualifiers_tbl(1).qualifier_precedence := l_user_precedence; --Bug#8468331
433
434 l_qualifiers_tbl(1).qualifier_attribute := 'QUALIFIER_ATTRIBUTE5';
435 -- Blanket Header ID is the qualifier attribute value
436 l_qualifiers_tbl(1).qualifier_attr_value :=
437 oe_delayed_requests_pvt.g_delayed_requests(I).entity_id;
438 l_qualifiers_tbl(1).qualifier_grouping_no := 1;
439 l_qualifiers_tbl(1).operation := QP_GLOBALS.G_OPR_CREATE;
440 end if;
441 --11i10 Pricing Changes End
442
443 gpr_price_list_rec.operation := QP_GLOBALS.G_OPR_CREATE;
444 --MOAC changes to force the PL tobe created in a ORG
445 gpr_price_list_rec.org_id := mo_global.get_current_org_id;
446 gpr_price_list_rec.global_flag := 'N';
447 lheader_id := oe_delayed_requests_pvt.g_delayed_requests(I).entity_id;
448
449 I := oe_delayed_requests_pvt.g_delayed_requests.first;
450
451 WHILE I IS NOT NULL
452 LOOP
453 IF oe_delayed_requests_pvt.g_delayed_requests(I).request_type = 'CREATE_BLANKET_PRICE_LIST'
454 AND
455 oe_delayed_requests_pvt.g_delayed_requests(I).entity_code =
456 oe_blanket_pub.g_entity_blanket_LINE THEN
457 if l_debug_level > 0 then
458 oe_debug_pub.add('Blanket In create price list - line');
459 end if;
460 IF oe_delayed_requests_pvt.g_delayed_requests(I).param1 IS NULL THEN
461 if l_debug_level > 0 then
462 oe_debug_pub.add('Blanket In Skip');
463 end if;
464 GOTO SKIP_LINE;
465 END IF;
466 g_line_id_tbl(ind).line_id := oe_delayed_requests_pvt.g_delayed_requests(I).entity_id;
467
468 select QP_LIST_LINES_S.NEXTVAL into l_list_line_seq from dual; --bug8344368
469 gpr_price_list_line_tbl(ind).list_line_id := l_list_line_seq;
470 gpr_price_list_line_tbl(ind).list_line_type_code := 'PLL';
471 gpr_price_list_line_tbl(ind).operation := QP_GLOBALS.G_OPR_CREATE;
472 gpr_price_list_line_tbl(ind).operand := oe_delayed_requests_pvt.g_delayed_requests(I).param1;
473 gpr_price_list_line_tbl(ind).arithmetic_operator := 'UNIT_PRICE';
474
475 -- Bug 3209215, Issue 9.1
476 -- Pass precedence value on price list lines
477 gpr_price_list_line_tbl(ind).product_precedence := 1;
478
479 gpr_pricing_attr_tbl(K).pricing_attribute_id := FND_API.G_MISS_NUM;
480 gpr_pricing_attr_tbl(K).list_line_id := FND_API.G_MISS_NUM;
481 gpr_pricing_attr_tbl(K).PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM';
482
483
484 IF oe_delayed_requests_pvt.g_delayed_requests(I).param4 = 'CAT' THEN
485
486 gpr_pricing_attr_tbl(K).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE2';
487 gpr_pricing_attr_tbl(K).PRODUCT_ATTR_VALUE := oe_delayed_requests_pvt.g_delayed_requests(I).param3;
488
489 ELSIF oe_delayed_requests_pvt.g_delayed_requests(I).param4 = 'ALL' THEN
490
491 gpr_pricing_attr_tbl(K).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE3';
492 gpr_pricing_attr_tbl(K).PRODUCT_ATTR_VALUE := 'ALL';
493
494 ELSE
495
496 gpr_pricing_attr_tbl(K).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1';
497 gpr_pricing_attr_tbl(K).PRODUCT_ATTR_VALUE := oe_delayed_requests_pvt.g_delayed_requests(I).param3;
498
499 -- 11i10 Pricing Change
500 -- Send customer item on price list line record
501 IF oe_delayed_requests_pvt.g_delayed_requests(I).param4 = 'CUST'
502 AND OE_Code_Control.Get_Code_Release_Level >= '110510'
503 THEN
504 gpr_price_list_line_tbl(ind).customer_item_id :=
505 oe_delayed_requests_pvt.g_delayed_requests(I).param8;
506 oe_debug_pub.add('sending cust item id :'||
507 gpr_price_list_line_tbl(ind).customer_item_id);
508 END IF;
509
510 END IF;
511
512
513
514 gpr_pricing_attr_tbl(K).PRODUCT_UOM_CODE := oe_delayed_requests_pvt.g_delayed_requests(I).param2;
515 gpr_pricing_attr_tbl(K).EXCLUDER_FLAG := 'N';
516 gpr_pricing_attr_tbl(K).ATTRIBUTE_GROUPING_NO := 1;
517 gpr_pricing_attr_tbl(K).list_line_id := l_list_line_seq;
518 gpr_pricing_attr_tbl(K).operation := QP_GLOBALS.G_OPR_CREATE;
519
520 --Added for bug8344368
521 k:= K+1;
522
523 gpr_pricing_attr_tbl(K).pricing_attribute_id := FND_API.G_MISS_NUM;
524 gpr_pricing_attr_tbl(K).list_line_id := l_list_line_seq;
525 gpr_pricing_attr_tbl(K).operation := QP_GLOBALS.G_OPR_CREATE;
526 gpr_pricing_attr_tbl(K).pricing_attribute_context := 'QP_INTERNAL';
527 gpr_pricing_attr_tbl(K).pricing_attribute := 'PRICING_ATTRIBUTE1';
528 gpr_pricing_attr_tbl(K).pricing_attr_value_from := l_list_line_seq;
529 gpr_pricing_attr_tbl(K).comparison_operator_code := '=';
530
531
532 k:= k+1;
533 ind := ind+1;
534
535 << SKIP_LINE >>
536 oe_delayed_requests_pvt.g_delayed_requests.delete(I);
537 END IF;
538 I := oe_delayed_requests_pvt.g_delayed_requests.next(I);
539
540 END LOOP;
541
542 /*
543 -- 11i10 Pricing Changes
544 IF OE_Code_Control.Get_Code_Release_Level >= '110510' THEN
545 -----------------------------------------------------------
546 -- Set up the blanket line qualifier record
547 -----------------------------------------------------------
548 gpr_qualifiers_tbl(K).qualifier_grouping_no := 1;
549 gpr_qualifiers_tbl(K).excluder_flag := 'N';
550 gpr_qualifiers_tbl(K).qualifier_precedence := 700;
551 gpr_qualifiers_tbl(K).qualifier_context := 'ORDER';
552 gpr_qualifiers_tbl(K).qualifier_attribute := 'QUALIFIER_ATTRIBUTE6';
553 gpr_qualifiers_tbl(K).comparison_operator_code := '=';
554 -- Blanket Line ID is the qualifier attribute value
555 gpr_qualifiers_tbl(K).qualifier_attr_value := oe_delayed_requests_pvt.g_delayed_requests(I).entity_id;
556 oe_debug_pub.add('entity id :'||oe_delayed_requests_pvt.g_delayed_requests(I).entity_id);
557 gpr_qualifiers_tbl(K).operation := QP_GLOBALS.G_OPR_CREATE;
558 END IF;
559 */
560
561 QP_PRICE_LIST_GRP.Process_Price_List
562 ( p_api_version_number => 1
563 , p_init_msg_list => FND_API.G_FALSE
564 , p_return_values => FND_API.G_FALSE
565 , p_commit => FND_API.G_FALSE
566 , x_return_status => x_return_status
567 , x_msg_count => gpr_msg_count
568 , x_msg_data => gpr_msg_data
569 , p_PRICE_LIST_rec => gpr_price_list_rec
570 , p_PRICE_LIST_LINE_tbl => gpr_price_list_line_tbl
571 , p_PRICING_ATTR_tbl => gpr_pricing_attr_tbl
572 , p_qualifiers_tbl => l_qualifiers_tbl
573 , x_PRICE_LIST_rec => ppr_price_list_rec
574 , x_PRICE_LIST_val_rec => ppr_price_list_val_rec
575 , x_PRICE_LIST_LINE_tbl => ppr_price_list_line_tbl
576 , x_PRICE_LIST_LINE_val_tbl => ppr_price_list_line_val_tbl
577 , x_QUALIFIERS_tbl => ppr_qualifiers_tbl
578 , x_QUALIFIERS_val_tbl => ppr_qualifiers_val_tbl
579 , x_PRICING_ATTR_tbl => ppr_pricing_attr_tbl
580 , x_PRICING_ATTR_val_tbl => ppr_pricing_attr_val_tbl
581 );
582
583
584 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
585
586 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
587
588 END IF;
589
590 --Removed for bug8344368
591 /*IF OE_Code_Control.Code_Release_Level >= '110510' THEN
592
593 gpr_pricing_attr_tbl.delete;
594 K := ppr_price_list_line_tbl.first;
595 WHILE K is not null LOOP
596 gpr_pricing_attr_tbl(K).list_line_id :=
597 ppr_price_list_line_tbl(K).list_line_id;
598 gpr_pricing_attr_tbl(K).operation := QP_GLOBALS.G_OPR_CREATE;
599 gpr_pricing_attr_tbl(K).pricing_attribute_context := 'QP_INTERNAL';
600 gpr_pricing_attr_tbl(K).pricing_attribute := 'PRICING_ATTRIBUTE1';
601 gpr_pricing_attr_tbl(K).pricing_attr_value_from :=
602 ppr_price_list_line_tbl(K).list_line_id;
603 gpr_pricing_attr_tbl(K).comparison_operator_code := '=';
604 if l_debug_level > 0 then
605 oe_debug_pub.add('pricing attr id :'||
606 gpr_pricing_attr_tbl(K).pricing_attribute_id);
607 oe_debug_pub.add('list line id :'||
608 gpr_pricing_attr_tbl(K).pricing_attr_value_from);
609 end if;
610 K := ppr_price_list_line_tbl.next(K);
611 END LOOP;
612
613 QP_PRICE_LIST_GRP.Process_Price_List
614 ( p_api_version_number => 1
615 , p_init_msg_list => FND_API.G_FALSE
616 , p_return_values => FND_API.G_FALSE
617 , p_commit => FND_API.G_FALSE
618 , x_return_status => x_return_status
619 , x_msg_count => gpr_msg_count
620 , x_msg_data => gpr_msg_data
621 , p_PRICING_ATTR_tbl => gpr_pricing_attr_tbl
622 , x_PRICE_LIST_rec => xpr_price_list_rec
623 , x_PRICE_LIST_val_rec => xpr_price_list_val_rec
624 , x_PRICE_LIST_LINE_tbl => xpr_price_list_line_tbl
625 , x_PRICE_LIST_LINE_val_tbl => xpr_price_list_line_val_tbl
626 , x_QUALIFIERS_tbl => xpr_qualifiers_tbl
627 , x_QUALIFIERS_val_tbl => xpr_qualifiers_val_tbl
628 , x_PRICING_ATTR_tbl => xpr_pricing_attr_tbl
629 , x_PRICING_ATTR_val_tbl => xpr_pricing_attr_val_tbl
630 );
631
632 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
633 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
634 END IF;
635
636 END IF; -- end if code release level check to create pricing attributes
637
638 */
639
640 --11i10 Pricing Changes Start
641 if oe_code_control.get_code_release_level >= '110510' then
642 Update oe_blanket_headers
643 set lock_control = lock_control + 1
644 ,last_updated_by = fnd_global.user_id
645 ,last_update_date = sysdate
646 where header_id = lheader_id ;
647 Update oe_blanket_headers_ext
648 set new_price_list_id = ppr_price_list_rec.list_header_id
649 where order_number = (select /* MOAC_SQL_CHANGE */ order_number
650 from oe_blanket_headers_all
651 where header_id = lheader_id);
652 g_header_rec.new_price_list_id := ppr_price_list_rec.list_header_id;
653 --for bug 3285562
654 IF g_header_rec.price_list_id is NULL
655 THEN
656 Update oe_blanket_headers
657 set price_list_id = ppr_price_list_rec.list_header_id
658 where header_id = lheader_id;
659 g_header_rec.price_list_id := ppr_price_list_rec.list_header_id;
660 END IF;
661 --End bug 3285562
662 else
663 Update oe_blanket_headers
664 set --qp_list_header_id = ppr_price_list_rec.list_header_id,
665 price_list_id = ppr_price_list_rec.list_header_id ,
666 lock_control = lock_control + 1
667 where header_id = lheader_id ;
668 g_header_rec.price_list_id := ppr_price_list_rec.list_header_id;
669 end if;
670 --11i10 Pricing Changes End
671
672 K := ppr_price_list_line_tbl.first;
673 WHILE K is not null
674 LOOP
675
676 Update oe_blanket_lines
677 set
678 price_list_id = ppr_price_list_rec.list_header_id,
679 lock_control = lock_control + 1
680 WHERE
681 line_id = g_line_id_tbl(K).line_id ;
682
683 UPDATE oe_blanket_lines_ext
684 SET
685 qp_list_line_id = ppr_price_list_line_tbl(K).list_line_id
686 WHERE
687 line_id = g_line_id_tbl(K).line_id ;
688
689 K := ppr_price_list_line_tbl.next(K);
690 END LOOP;
691
692 OE_GLOBALS.G_CASCADING_REQUEST_LOGGED := TRUE;
693 g_new_price_list := false;
694 EXCEPTION
695
696 WHEN FND_API.G_EXC_ERROR THEN
697
698 x_return_status := FND_API.G_RET_STS_ERROR;
699
700 -- Get message count and data
701
702
703 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
704
705 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
706
707
708 WHEN OTHERS THEN
709
710 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
711
712 END create_price_list;
713
714 PROCEDURE Add_price_list_line
715 (p_req_ind IN NUMBER
716 ,x_return_status OUT NOCOPY varchar2)
717 IS
718 gpr_return_status varchar2(1) := NULL;
719 gpr_msg_count number := 0;
720 gpr_msg_data varchar2(2000);
721 gpr_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
722 gpr_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
723 gpr_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
724 gpr_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
725 gpr_qualifiers_tbl QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
726 gpr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type;
727 gpr_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
728 gpr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
729 ppr_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
730 ppr_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
731 ppr_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
732 ppr_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
733 ppr_qualifiers_tbl QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
734 ppr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type;
735 ppr_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
736 ppr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
737 xpr_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
738 xpr_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
739 xpr_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
740 xpr_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
741 xpr_qualifiers_tbl QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
742 xpr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type;
743 xpr_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
744 xpr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
745 K number := 1;
746 j number := 1;
747 I number := p_req_ind;
748 lheader_id number;
749 l_list_line_seq NUMBER;
750
751 --
752 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
753 --
754 BEGIN
755 --begin commented the below if statement for bug 4762658
756 /*IF oe_delayed_requests_pvt.g_delayed_requests(I).param3 IS NULL THEN
757 RETURN;
758 END IF;*/
759 --end for bug 4762658
760 --for bug 3229225
761 IF (oe_delayed_requests_pvt.g_delayed_requests(I).param1 IS NULL OR oe_delayed_requests_pvt.g_delayed_requests(I).param1=FND_API.G_MISS_NUM)
762 THEN
763 IF l_debug_level > 0
764 THEN
765 oe_debug_pub.add('Skip for null values');
766 END IF;
767 oe_delayed_requests_pvt.g_delayed_requests.delete(I);
768 GOTO SKIP_LINE1;
769 END IF;
770
771 select QP_LIST_LINES_S.NEXTVAL into l_list_line_seq from dual; --bug8344368
772 gpr_price_list_line_tbl(k).list_line_id := l_list_line_seq;
773 gpr_price_list_line_tbl(k).list_line_type_code := 'PLL';
774 gpr_price_list_line_tbl(k).operation := QP_GLOBALS.G_OPR_CREATE;
775 gpr_price_list_line_tbl(k).operand := oe_delayed_requests_pvt.g_delayed_requests(I).param1;
776 gpr_price_list_line_tbl(k).arithmetic_operator := 'UNIT_PRICE';
777 gpr_price_list_line_tbl(k).list_header_id :=
778 oe_delayed_requests_pvt.g_delayed_requests(I).param5 ;
779 -- Bug 3209215, Issue 9.1
780 -- Pass precedence value on price list lines
781 gpr_price_list_line_tbl(k).product_precedence := 1;
782
783 gpr_pricing_attr_tbl(K).pricing_attribute_id := FND_API.G_MISS_NUM;
784 gpr_pricing_attr_tbl(K).list_line_id := FND_API.G_MISS_NUM;
785 gpr_pricing_attr_tbl(K).list_header_id :=
786 oe_delayed_requests_pvt.g_delayed_requests(I).param5;
787 gpr_pricing_attr_tbl(K).PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM';
788
789 IF oe_delayed_requests_pvt.g_delayed_requests(I).param4 = 'CAT' THEN
790
791 gpr_pricing_attr_tbl(K).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE2';
792 gpr_pricing_attr_tbl(K).PRODUCT_ATTR_VALUE := oe_delayed_requests_pvt.g_delayed_requests(I).param3;
793
794 ELSIF oe_delayed_requests_pvt.g_delayed_requests(I).param4 = 'ALL' THEN
795
796 gpr_pricing_attr_tbl(K).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE3';
797 gpr_pricing_attr_tbl(K).PRODUCT_ATTR_VALUE := 'ALL';
798
799 ELSE
800
801 gpr_pricing_attr_tbl(K).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1';
802 gpr_pricing_attr_tbl(K).PRODUCT_ATTR_VALUE := oe_delayed_requests_pvt.g_delayed_requests(I).param3;
803
804 -- 11i10 Pricing Change
805 -- Send customer item on price list line record
806 IF oe_delayed_requests_pvt.g_delayed_requests(I).param4 = 'CUST'
807 AND OE_Code_Control.Get_Code_Release_Level >= '110510'
808 THEN
809 gpr_price_list_line_tbl(k).customer_item_id :=
810 oe_delayed_requests_pvt.g_delayed_requests(I).param8;
811 oe_debug_pub.add('sending cust item id :'||
812 gpr_price_list_line_tbl(k).customer_item_id);
813 END IF;
814
815 END IF;
816
817 gpr_pricing_attr_tbl(K).PRODUCT_UOM_CODE := oe_delayed_requests_pvt.g_delayed_requests(I).param2;
818 gpr_pricing_attr_tbl(K).EXCLUDER_FLAG := 'N';
819 gpr_pricing_attr_tbl(K).ATTRIBUTE_GROUPING_NO := 1;
820 gpr_pricing_attr_tbl(K).list_line_id := l_list_line_seq;
821 gpr_pricing_attr_tbl(K).operation := QP_GLOBALS.G_OPR_CREATE;
822
823 --Added for bug8344368
824 k:= K+1;
825
826 gpr_pricing_attr_tbl(K).pricing_attribute_id := FND_API.G_MISS_NUM;
827 gpr_pricing_attr_tbl(K).list_line_id := l_list_line_seq;
828 gpr_pricing_attr_tbl(K).operation := QP_GLOBALS.G_OPR_CREATE;
829 gpr_pricing_attr_tbl(K).pricing_attribute_context := 'QP_INTERNAL';
830 gpr_pricing_attr_tbl(K).pricing_attribute := 'PRICING_ATTRIBUTE1';
831 gpr_pricing_attr_tbl(K).pricing_attr_value_from := l_list_line_seq;--bug8344368
832 gpr_pricing_attr_tbl(K).comparison_operator_code := '=';
833
834
835 --oe_delayed_requests_pvt.g_delayed_requests.delete(I);
836
837 QP_PRICE_LIST_GRP.Process_Price_List
838 ( p_api_version_number => 1
839 , p_init_msg_list => FND_API.G_FALSE
840 , p_return_values => FND_API.G_FALSE
841 , p_commit => FND_API.G_FALSE
842 , x_return_status => x_return_status
843 , x_msg_count => gpr_msg_count
844 , x_msg_data => gpr_msg_data
845 , p_PRICE_LIST_rec => gpr_price_list_rec
846 , p_PRICE_LIST_LINE_tbl => gpr_price_list_line_tbl
847 , p_PRICING_ATTR_tbl => gpr_pricing_attr_tbl
848 , x_PRICE_LIST_rec => ppr_price_list_rec
849 , x_PRICE_LIST_val_rec => ppr_price_list_val_rec
850 , x_PRICE_LIST_LINE_tbl => ppr_price_list_line_tbl
851 , x_PRICE_LIST_LINE_val_tbl => ppr_price_list_line_val_tbl
852 , x_QUALIFIERS_tbl => ppr_qualifiers_tbl
853 , x_QUALIFIERS_val_tbl => ppr_qualifiers_val_tbl
854 , x_PRICING_ATTR_tbl => ppr_pricing_attr_tbl
855 , x_PRICING_ATTR_val_tbl => ppr_pricing_attr_val_tbl
856 );
857
858
859 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
860
861 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
862
863 END IF;
864
865 -- removed for bug8344368
866 /* IF OE_Code_Control.Code_Release_Level >= '110510' THEN
867
868 gpr_pricing_attr_tbl.delete;
869 K := ppr_price_list_line_tbl.first;
870 WHILE K is not null LOOP
871 gpr_pricing_attr_tbl(K).list_line_id :=
872 ppr_price_list_line_tbl(K).list_line_id;
873 gpr_pricing_attr_tbl(K).operation := QP_GLOBALS.G_OPR_CREATE;
874 gpr_pricing_attr_tbl(K).pricing_attribute_context := 'QP_INTERNAL';
875 gpr_pricing_attr_tbl(K).pricing_attribute := 'PRICING_ATTRIBUTE1';
876 gpr_pricing_attr_tbl(K).pricing_attr_value_from :=
877 ppr_price_list_line_tbl(K).list_line_id;
878 gpr_pricing_attr_tbl(K).comparison_operator_code := '=';
879 if l_debug_level > 0 then
880 oe_debug_pub.add('pricing attr id :'||
881 gpr_pricing_attr_tbl(K).pricing_attribute_id);
882 oe_debug_pub.add('list line id :'||
883 gpr_pricing_attr_tbl(K).pricing_attr_value_from);
884 end if;
885 K := ppr_price_list_line_tbl.next(K);
886 END LOOP;
887
888 QP_PRICE_LIST_GRP.Process_Price_List
889 ( p_api_version_number => 1
890 , p_init_msg_list => FND_API.G_FALSE
891 , p_return_values => FND_API.G_FALSE
892 , p_commit => FND_API.G_FALSE
893 , x_return_status => x_return_status
894 , x_msg_count => gpr_msg_count
895 , x_msg_data => gpr_msg_data
896 , p_PRICING_ATTR_tbl => gpr_pricing_attr_tbl
897 , x_PRICE_LIST_rec => xpr_price_list_rec
898 , x_PRICE_LIST_val_rec => xpr_price_list_val_rec
899 , x_PRICE_LIST_LINE_tbl => xpr_price_list_line_tbl
900 , x_PRICE_LIST_LINE_val_tbl => xpr_price_list_line_val_tbl
901 , x_QUALIFIERS_tbl => xpr_qualifiers_tbl
902 , x_QUALIFIERS_val_tbl => xpr_qualifiers_val_tbl
903 , x_PRICING_ATTR_tbl => xpr_pricing_attr_tbl
904 , x_PRICING_ATTR_val_tbl => xpr_pricing_attr_val_tbl
905 );
906
907 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
908 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
909 END IF;
910
911 END IF; -- end if code release level check to create pricing attributes
912 */
913
914 Update oe_blanket_lines
915 set
916 price_list_id = ppr_price_list_line_tbl(1).list_header_id,
917 lock_control = lock_control + 1
918 WHERE
919 line_id =
920 oe_delayed_requests_pvt.g_delayed_requests(I).entity_id ;
921
922 Update oe_blanket_lines_ext
923 set qp_list_line_id = ppr_price_list_line_tbl(1).list_line_id
924 WHERE
925 line_id =
926 oe_delayed_requests_pvt.g_delayed_requests(I).entity_id ;
927
928 << SKIP_LINE1 >>
929 g_new_price_list := false;
930 EXCEPTION
931
932 WHEN FND_API.G_EXC_ERROR THEN
933
934 x_return_status := FND_API.G_RET_STS_ERROR;
935
936 -- Get message count and data
937
938
939 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
940
941 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
942
943
944 WHEN OTHERS THEN
945
946 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
947
948 NULL;
949 END Add_price_list_line;
950
951
952 --for bug 3309427
953 --To clear the List Line ID if the user swaps from inline Pricelist to standard Pricelist
954 PROCEDURE Clear_Price_List_Line
955 (p_req_ind IN NUMBER
956 ,x_return_status OUT NOCOPY varchar2)
957 IS
958 --
959 gpr_return_status varchar2(1) := NULL;
960 gpr_msg_count number := 0;
961 gpr_msg_data varchar2(2000);
962 gpr_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
963 gpr_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
964 gpr_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
965 gpr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
966 ppr_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
967 ppr_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
968 ppr_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
969 ppr_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
970 ppr_qualifiers_tbl QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
971 ppr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type;
972 ppr_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
973 ppr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
974 k number := 1;
975 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
976 --
977 BEGIN
978 x_return_status:= FND_API.G_RET_STS_SUCCESS;
979 gpr_price_list_line_tbl(K).list_line_id := oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).Param1 ;
980 gpr_price_list_line_tbl(K).operation := QP_GLOBALS.G_OPR_UPDATE;
981 gpr_price_list_line_tbl(K).list_header_id :=
982 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).param2;
983 gpr_price_list_line_tbl(K).end_date_active :=sysdate;
984
985 IF((NOT IS_BLANKET_PRICE_LIST(p_price_list_id => oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).Param3
986 ,p_blanket_header_id =>oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).Param4 ))
987 AND (gpr_price_list_line_tbl(K).list_line_id is not null))
988 THEN
989 QP_PRICE_LIST_GRP.Process_Price_List
990 ( p_api_version_number => 1
991 , p_init_msg_list => FND_API.G_FALSE
992 , p_return_values => FND_API.G_FALSE
993 , p_commit => FND_API.G_FALSE
994 , x_return_status => x_return_status
995 , x_msg_count => gpr_msg_count
996 , x_msg_data => gpr_msg_data
997 , p_PRICE_LIST_rec => gpr_price_list_rec
998 , p_PRICE_LIST_LINE_tbl => gpr_price_list_line_tbl
999 , p_PRICING_ATTR_tbl => gpr_pricing_attr_tbl
1000 , x_PRICE_LIST_rec => ppr_price_list_rec
1001 , x_PRICE_LIST_val_rec => ppr_price_list_val_rec
1002 , x_PRICE_LIST_LINE_tbl => ppr_price_list_line_tbl
1003 , x_PRICE_LIST_LINE_val_tbl => ppr_price_list_line_val_tbl
1004 , x_QUALIFIERS_tbl => ppr_qualifiers_tbl
1005 , x_QUALIFIERS_val_tbl => ppr_qualifiers_val_tbl
1006 , x_PRICING_ATTR_tbl => ppr_pricing_attr_tbl
1007 , x_PRICING_ATTR_val_tbl => ppr_pricing_attr_val_tbl
1008 );
1009
1010
1011 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1012 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1013 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
1014 RAISE FND_API.G_EXC_ERROR;
1015 END IF;
1016
1017 Update oe_blanket_lines_ext
1018 set qp_list_line_id = Null
1019 WHERE line_id = oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).entity_id ;
1020 END IF;
1021
1022
1023 EXCEPTION
1024
1025 WHEN FND_API.G_EXC_ERROR THEN
1026
1027 IF l_debug_level > 0 THEN
1028 OE_DEBUG_PUB.Add('Expected Error in Clear_Blanket_List_line...',4);
1029 END IF;
1030 x_return_status := FND_API.G_RET_STS_ERROR;
1031
1032
1033 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1034
1035 IF l_debug_level > 0 THEN
1036 OE_DEBUG_PUB.Add('UnExpected Error in Clear_Blanket_list_line...'||sqlerrm,4);
1037 END IF;
1038 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1039
1040
1041 WHEN OTHERS THEN
1042
1043 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1044
1045 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1046 THEN
1047 OE_MSG_PUB.Add_Exc_Msg
1048 ( G_PKG_NAME
1049 ,'Validate Attributes'
1050 );
1051 END IF;
1052 END Clear_price_list_line;
1053
1054 PROCEDURE Validate_Attributes
1055 ( p_x_header_rec IN OUT NOCOPY OE_Blanket_PUB.Header_rec_type
1056 , p_old_header_rec IN OE_Blanket_PUB.Header_rec_type
1057 , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1058 , x_return_status OUT NOCOPY VARCHAR2
1059 ) IS
1060 l_dummy VARCHAR2(10);
1061 --
1062 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1063 --
1064 BEGIN
1065
1066 if l_debug_level > 0 then
1067 oe_debug_pub.add('Entering OE_BLANKET_UTIL.VALIDATE_ATTRIBUTES',1);
1068 end if;
1069 x_return_status := FND_API.G_RET_STS_SUCCESS;
1070
1071 -- Validate header attributes
1072
1073 IF p_x_header_rec.accounting_rule_id IS NOT NULL AND
1074 ( p_x_header_rec.accounting_rule_id <>
1075 p_old_header_rec.accounting_rule_id OR
1076 p_old_header_rec.accounting_rule_id IS NULL )
1077 THEN
1078
1079 IF NOT OE_Validate.Accounting_Rule(p_x_header_rec.accounting_rule_id)
1080 THEN
1081 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1082 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1083 p_x_header_rec.accounting_rule_id := NULL;
1084 ELSE
1085 x_return_status := FND_API.G_RET_STS_ERROR;
1086 END IF;
1087 END IF;
1088
1089 END IF;
1090
1091 IF p_x_header_rec.freight_terms_code IS NOT NULL AND
1092 ( p_x_header_rec.freight_terms_code <>
1093 p_old_header_rec.freight_terms_code OR
1094 p_old_header_rec.freight_terms_code IS NULL )
1095 THEN
1096
1097 IF NOT OE_Validate.Freight_Terms(p_x_header_rec.freight_terms_code)
1098 THEN
1099 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1100 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1101 p_x_header_rec.freight_terms_code := NULL;
1102 ELSE
1103 x_return_status := FND_API.G_RET_STS_ERROR;
1104 END IF;
1105 END IF;
1106
1107 END IF;
1108
1109 IF p_x_header_rec.invoicing_rule_id IS NOT NULL AND
1110 ( p_x_header_rec.invoicing_rule_id <>
1111 p_old_header_rec.invoicing_rule_id OR
1112 p_old_header_rec.invoicing_rule_id IS NULL )
1113 THEN
1114
1115 IF NOT OE_Validate.Invoicing_Rule(p_x_header_rec.invoicing_rule_id)
1116 THEN
1117 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1118 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1119 p_x_header_rec.invoicing_rule_id := NULL;
1120 ELSE
1121 x_return_status := FND_API.G_RET_STS_ERROR;
1122 END IF;
1123 END IF;
1124
1125 END IF;
1126
1127 IF p_x_header_rec.order_type_id IS NOT NULL AND
1128 ( p_x_header_rec.order_type_id <>
1129 p_old_header_rec.order_type_id OR
1130 p_old_header_rec.order_type_id IS NULL )
1131 THEN
1132 BEGIN
1133
1134 SELECT 'VALID' into l_dummy
1135 FROM oe_transaction_types_vl
1136 WHERE SALES_DOCUMENT_TYPE_CODE = 'B'
1137 AND transaction_type_id = p_x_header_rec.order_type_id
1138 AND trunc(sysdate) between start_date_Active and
1139 nvl(end_date_active,trunc(sysdate));
1140
1141 EXCEPTION
1142 WHEN OTHERS THEN
1143 x_return_status := FND_API.G_RET_STS_ERROR;
1144 END;
1145 END IF;
1146
1147 IF p_x_header_rec.payment_term_id IS NOT NULL AND
1148 ( p_x_header_rec.payment_term_id <>
1149 p_old_header_rec.payment_term_id OR
1150 p_old_header_rec.payment_term_id IS NULL )
1151 THEN
1152 IF NOT OE_Validate.Payment_Term(p_x_header_rec.payment_term_id)
1153 THEN
1154 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1155 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1156 p_x_header_rec.payment_term_id := NULL;
1157 ELSE
1158 x_return_status := FND_API.G_RET_STS_ERROR;
1159 END IF;
1160 END IF;
1161
1162 END IF;
1163
1164 IF p_x_header_rec.price_list_id IS NOT NULL AND
1165 ( p_x_header_rec.price_list_id <>
1166 p_old_header_rec.price_list_id OR
1167 p_old_header_rec.price_list_id IS NULL )
1168 THEN
1169 IF NOT OE_Validate.Price_List(p_x_header_rec.price_list_id)
1170 THEN
1171 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1172 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1173 p_x_header_rec.price_list_id := NULL;
1174 ELSE
1175 x_return_status := FND_API.G_RET_STS_ERROR;
1176 END IF;
1177 END IF;
1178
1179 END IF;
1180
1181 IF p_x_header_rec.shipping_method_code IS NOT NULL AND
1182 ( p_x_header_rec.shipping_method_code <>
1183 p_old_header_rec.shipping_method_code OR
1184 p_old_header_rec.shipping_method_code IS NULL )
1185 THEN
1186
1187 IF NOT OE_Validate.Shipping_Method(p_x_header_rec.shipping_method_code)
1188 THEN
1189 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1190 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1191 p_x_header_rec.shipping_method_code := NULL;
1192 ELSE
1193 x_return_status := FND_API.G_RET_STS_ERROR;
1194 END IF;
1195 END IF;
1196
1197 END IF;
1198
1199 IF p_x_header_rec.ship_from_org_id IS NOT NULL AND
1200 ( p_x_header_rec.ship_from_org_id <>
1201 p_old_header_rec.ship_from_org_id OR
1202 p_old_header_rec.ship_from_org_id IS NULL )
1203 THEN
1204
1205 IF NOT OE_Validate.Ship_From_Org(p_x_header_rec.ship_from_org_id)
1206 THEN
1207 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1208 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1209 p_x_header_rec.ship_from_org_id := NULL;
1210 ELSE
1211 x_return_status := FND_API.G_RET_STS_ERROR;
1212 END IF;
1213 END IF;
1214
1215 END IF;
1216
1217 IF p_x_header_rec.sold_to_org_id IS NOT NULL AND
1218 ( p_x_header_rec.sold_to_org_id <>
1219 p_old_header_rec.sold_to_org_id OR
1220 p_old_header_rec.sold_to_org_id IS NULL )
1221 THEN
1222
1223 IF NOT OE_Validate.Sold_To_Org(p_x_header_rec.sold_to_org_id)
1224 THEN
1225 x_return_status := FND_API.G_RET_STS_ERROR;
1226
1227 END IF;
1228
1229 END IF;
1230
1231 -- hashraf start of pack J
1232 IF p_x_header_rec.sold_to_site_use_id IS NOT NULL AND
1233 ( p_x_header_rec.sold_to_site_use_id <>
1234 p_old_header_rec.sold_to_site_use_id OR
1235 p_old_header_rec.sold_to_site_use_id IS NULL )
1236 THEN
1237
1238 IF NOT OE_Validate.Customer_Location(p_x_header_rec.sold_to_site_use_id)
1239 THEN
1240 x_return_status := FND_API.G_RET_STS_ERROR;
1241
1242 END IF;
1243
1244 END IF;
1245
1246 -- hashraf end of pack J
1247
1248 IF p_x_header_rec.invoice_to_org_id IS NOT NULL AND
1249 ( p_x_header_rec.invoice_to_org_id <>
1250 p_old_header_rec.invoice_to_org_id OR
1251 p_old_header_rec.invoice_to_org_id IS NULL )
1252 THEN
1253
1254 IF NOT OE_Validate.Invoice_To_Org(p_x_header_rec.invoice_to_org_id)
1255 THEN
1256 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1257 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1258 p_x_header_rec.invoice_to_org_id := NULL;
1259 ELSE
1260 x_return_status := FND_API.G_RET_STS_ERROR;
1261 END IF;
1262 END IF;
1263
1264 END IF;
1265
1266 IF p_x_header_rec.ship_to_org_id IS NOT NULL AND
1267 ( p_x_header_rec.ship_to_org_id <>
1268 p_old_header_rec.ship_to_org_id OR
1269 p_old_header_rec.ship_to_org_id IS NULL )
1270 THEN
1271
1272 IF NOT OE_Validate.Ship_To_Org(p_x_header_rec.ship_to_org_id)
1273 THEN
1274 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1275 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1276 p_x_header_rec.ship_to_org_id := NULL;
1277 ELSE
1278 x_return_status := FND_API.G_RET_STS_ERROR;
1279 END IF;
1280 END IF;
1281
1282 END IF;
1283
1284 IF p_x_header_rec.transactional_curr_code IS NOT NULL AND
1285 ( p_x_header_rec.transactional_curr_code <>
1286 p_old_header_rec.transactional_curr_code OR
1287 p_old_header_rec.transactional_curr_code IS NULL )
1288 THEN
1289
1290 IF NOT OE_Validate.Transactional_Curr
1291 (p_x_header_rec.transactional_curr_code)
1292 THEN
1293 x_return_status := FND_API.G_RET_STS_ERROR;
1294 END IF;
1295
1296 END IF;
1297
1298 -- Salesrep_id
1299 IF p_x_header_rec.salesrep_id IS NOT NULL AND
1300 ( p_x_header_rec.salesrep_id <>
1301 p_old_header_rec.salesrep_id OR
1302 p_old_header_rec.salesrep_id IS NULL )
1303 THEN
1304
1305 IF NOT OE_Validate.salesrep(p_x_header_rec.salesrep_id)
1306 THEN
1307 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1308 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1309 p_x_header_rec.salesrep_id := NULL;
1310 ELSE
1311 x_return_status := FND_API.G_RET_STS_ERROR;
1312 END IF;
1313 END IF;
1314
1315 END IF;
1316
1317 -- Validate descriptive flex
1318
1319 IF p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE OR
1320
1321 ( p_x_header_rec.operation = OE_GLOBALS.G_OPR_UPDATE AND
1322 (p_x_header_rec.attribute1 IS NOT NULL AND
1323 ( p_x_header_rec.attribute1 <>
1324 p_old_header_rec.attribute1 OR
1325 p_old_header_rec.attribute1 IS NULL ))
1326 OR (p_x_header_rec.attribute10 IS NOT NULL AND
1327 ( p_x_header_rec.attribute10 <>
1328 p_old_header_rec.attribute10 OR
1329 p_old_header_rec.attribute10 IS NULL ))
1330 OR (p_x_header_rec.attribute11 IS NOT NULL AND
1331 ( p_x_header_rec.attribute11 <>
1332 p_old_header_rec.attribute11 OR
1333 p_old_header_rec.attribute11 IS NULL ))
1334 OR (p_x_header_rec.attribute12 IS NOT NULL AND
1335 ( p_x_header_rec.attribute12 <>
1336 p_old_header_rec.attribute12 OR
1337 p_old_header_rec.attribute12 IS NULL ))
1338 OR (p_x_header_rec.attribute13 IS NOT NULL AND
1339 ( p_x_header_rec.attribute13 <>
1340 p_old_header_rec.attribute13 OR
1341 p_old_header_rec.attribute13 IS NULL ))
1342 OR (p_x_header_rec.attribute14 IS NOT NULL AND
1343 ( p_x_header_rec.attribute14 <>
1344 p_old_header_rec.attribute14 OR
1345 p_old_header_rec.attribute14 IS NULL ))
1346 OR (p_x_header_rec.attribute15 IS NOT NULL AND
1347 ( p_x_header_rec.attribute15 <>
1348 p_old_header_rec.attribute15 OR
1349 p_old_header_rec.attribute15 IS NULL ))
1350 OR (p_x_header_rec.attribute16 IS NOT NULL AND --For bug 2184255
1351 ( p_x_header_rec.attribute16 <>
1352 p_old_header_rec.attribute16 OR
1353 p_old_header_rec.attribute16 IS NULL ))
1354 OR (p_x_header_rec.attribute17 IS NOT NULL AND
1355 ( p_x_header_rec.attribute17 <>
1356 p_old_header_rec.attribute17 OR
1357 p_old_header_rec.attribute17 IS NULL ))
1358 OR (p_x_header_rec.attribute18 IS NOT NULL AND
1359 ( p_x_header_rec.attribute18 <>
1360 p_old_header_rec.attribute18 OR
1361 p_old_header_rec.attribute18 IS NULL ))
1362 OR (p_x_header_rec.attribute19 IS NOT NULL AND
1363 ( p_x_header_rec.attribute19 <>
1364 p_old_header_rec.attribute19 OR
1365 p_old_header_rec.attribute19 IS NULL ))
1366 OR (p_x_header_rec.attribute2 IS NOT NULL AND
1367 ( p_x_header_rec.attribute2 <>
1368 p_old_header_rec.attribute2 OR
1369 p_old_header_rec.attribute2 IS NULL ))
1370 OR (p_x_header_rec.attribute20 IS NOT NULL AND -- for bug 2184255
1371 ( p_x_header_rec.attribute20 <>
1372 p_old_header_rec.attribute20 OR
1373 p_old_header_rec.attribute20 IS NULL ))
1374 OR (p_x_header_rec.attribute3 IS NOT NULL AND
1375 ( p_x_header_rec.attribute3 <>
1376 p_old_header_rec.attribute3 OR
1377 p_old_header_rec.attribute3 IS NULL ))
1378 OR (p_x_header_rec.attribute4 IS NOT NULL AND
1379 ( p_x_header_rec.attribute4 <>
1380 p_old_header_rec.attribute4 OR
1381 p_old_header_rec.attribute4 IS NULL ))
1382 OR (p_x_header_rec.attribute5 IS NOT NULL AND
1383 ( p_x_header_rec.attribute5 <>
1384 p_old_header_rec.attribute5 OR
1385 p_old_header_rec.attribute5 IS NULL ))
1386 OR (p_x_header_rec.attribute6 IS NOT NULL AND
1387 ( p_x_header_rec.attribute6 <>
1388 p_old_header_rec.attribute6 OR
1389 p_old_header_rec.attribute6 IS NULL ))
1390 OR (p_x_header_rec.attribute7 IS NOT NULL AND
1391 ( p_x_header_rec.attribute7 <>
1392 p_old_header_rec.attribute7 OR
1393 p_old_header_rec.attribute7 IS NULL ))
1394 OR (p_x_header_rec.attribute8 IS NOT NULL AND
1395 ( p_x_header_rec.attribute8 <>
1396 p_old_header_rec.attribute8 OR
1397 p_old_header_rec.attribute8 IS NULL ))
1398 OR (p_x_header_rec.attribute9 IS NOT NULL AND
1399 ( p_x_header_rec.attribute9 <>
1400 p_old_header_rec.attribute9 OR
1401 p_old_header_rec.attribute9 IS NULL ))
1402 OR (p_x_header_rec.context IS NOT NULL AND
1403 ( p_x_header_rec.context <>
1404 p_old_header_rec.context OR
1405 p_old_header_rec.context IS NULL )))
1406 THEN
1407
1408
1409 oe_debug_pub.add('Before calling header_desc_flex',2);
1410 IF OE_ORDER_CACHE.IS_FLEX_ENABLED('OE_BLKT_HEADER_ATTRIBUTES') = 'Y' THEN
1411
1412 IF NOT OE_VALIDATE.Header_Desc_Flex
1413 (p_context => p_x_header_rec.context
1414 ,p_attribute1 => p_x_header_rec.attribute1
1415 ,p_attribute2 => p_x_header_rec.attribute2
1416 ,p_attribute3 => p_x_header_rec.attribute3
1417 ,p_attribute4 => p_x_header_rec.attribute4
1418 ,p_attribute5 => p_x_header_rec.attribute5
1419 ,p_attribute6 => p_x_header_rec.attribute6
1420 ,p_attribute7 => p_x_header_rec.attribute7
1421 ,p_attribute8 => p_x_header_rec.attribute8
1422 ,p_attribute9 => p_x_header_rec.attribute9
1423 ,p_attribute10 => p_x_header_rec.attribute10
1424 ,p_attribute11 => p_x_header_rec.attribute11
1425 ,p_attribute12 => p_x_header_rec.attribute12
1426 ,p_attribute13 => p_x_header_rec.attribute13
1427 ,p_attribute14 => p_x_header_rec.attribute14
1428 ,p_attribute15 => p_x_header_rec.attribute15
1429 ,p_attribute16 => p_x_header_rec.attribute16 -- for bug 2184255
1430 ,p_attribute17 => p_x_header_rec.attribute17
1431 ,p_attribute18 => p_x_header_rec.attribute18
1432 ,p_attribute19 => p_x_header_rec.attribute19
1433 ,p_attribute20 => p_x_header_rec.attribute20
1434 ,p_document_type => 'BLANKET')
1435 THEN
1436
1437 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1438 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE
1439 THEN
1440 p_x_header_rec.context := null;
1441 p_x_header_rec.attribute1 := null;
1442 p_x_header_rec.attribute2 := null;
1443 p_x_header_rec.attribute3 := null;
1444 p_x_header_rec.attribute4 := null;
1445 p_x_header_rec.attribute5 := null;
1446 p_x_header_rec.attribute6 := null;
1447 p_x_header_rec.attribute7 := null;
1448 p_x_header_rec.attribute8 := null;
1449 p_x_header_rec.attribute9 := null;
1450 p_x_header_rec.attribute10 := null;
1451 p_x_header_rec.attribute11 := null;
1452 p_x_header_rec.attribute12 := null;
1453 p_x_header_rec.attribute13 := null;
1454 p_x_header_rec.attribute14 := null;
1455 p_x_header_rec.attribute15 := null;
1456 p_x_header_rec.attribute16 := null; -- for bug 2184255
1457 p_x_header_rec.attribute17 := null;
1458 p_x_header_rec.attribute18 := null;
1459 p_x_header_rec.attribute19 := null;
1460 p_x_header_rec.attribute20 := null;
1461
1462
1463 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF AND
1464 p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE
1465 THEN
1466 p_x_header_rec.context := FND_API.G_MISS_CHAR;
1467 p_x_header_rec.attribute1 := FND_API.G_MISS_CHAR;
1468 p_x_header_rec.attribute2 := FND_API.G_MISS_CHAR;
1469 p_x_header_rec.attribute3 := FND_API.G_MISS_CHAR;
1470 p_x_header_rec.attribute4 := FND_API.G_MISS_CHAR;
1471 p_x_header_rec.attribute5 := FND_API.G_MISS_CHAR;
1472 p_x_header_rec.attribute6 := FND_API.G_MISS_CHAR;
1473 p_x_header_rec.attribute7 := FND_API.G_MISS_CHAR;
1474 p_x_header_rec.attribute8 := FND_API.G_MISS_CHAR;
1475 p_x_header_rec.attribute9 := FND_API.G_MISS_CHAR;
1476 p_x_header_rec.attribute10 := FND_API.G_MISS_CHAR;
1477 p_x_header_rec.attribute11 := FND_API.G_MISS_CHAR;
1478 p_x_header_rec.attribute12 := FND_API.G_MISS_CHAR;
1479 p_x_header_rec.attribute13 := FND_API.G_MISS_CHAR;
1480 p_x_header_rec.attribute14 := FND_API.G_MISS_CHAR;
1481 p_x_header_rec.attribute15 := FND_API.G_MISS_CHAR;
1482 p_x_header_rec.attribute16 := FND_API.G_MISS_CHAR; -- for bug 2184255
1483 p_x_header_rec.attribute17 := FND_API.G_MISS_CHAR;
1484 p_x_header_rec.attribute18 := FND_API.G_MISS_CHAR;
1485 p_x_header_rec.attribute19 := FND_API.G_MISS_CHAR;
1486 p_x_header_rec.attribute20 := FND_API.G_MISS_CHAR;
1487
1488
1489 ELSE
1490 x_return_status := FND_API.G_RET_STS_ERROR;
1491 END IF;
1492 ELSE -- if the flex validation is successfull
1493 -- For bug 2511313
1494 IF p_x_header_rec.context IS NULL
1495 OR p_x_header_rec.context = FND_API.G_MISS_CHAR THEN
1496 p_x_header_rec.context := oe_validate.g_context;
1497 END IF;
1498
1499 IF p_x_header_rec.attribute1 IS NULL
1500 OR p_x_header_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1501 p_x_header_rec.attribute1 := oe_validate.g_attribute1;
1502 END IF;
1503
1504 IF p_x_header_rec.attribute2 IS NULL
1505 OR p_x_header_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1506 p_x_header_rec.attribute2 := oe_validate.g_attribute2;
1507 END IF;
1508
1509 IF p_x_header_rec.attribute3 IS NULL
1510 OR p_x_header_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1511 p_x_header_rec.attribute3 := oe_validate.g_attribute3;
1512 END IF;
1513
1514 IF p_x_header_rec.attribute4 IS NULL
1515 OR p_x_header_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1516 p_x_header_rec.attribute4 := oe_validate.g_attribute4;
1517 END IF;
1518
1519 IF p_x_header_rec.attribute5 IS NULL
1520 OR p_x_header_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1521 p_x_header_rec.attribute5 := oe_validate.g_attribute5;
1522 END IF;
1523
1524 IF p_x_header_rec.attribute6 IS NULL
1525 OR p_x_header_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1526 p_x_header_rec.attribute6 := oe_validate.g_attribute6;
1527 END IF;
1528
1529 IF p_x_header_rec.attribute7 IS NULL
1530 OR p_x_header_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1531 p_x_header_rec.attribute7 := oe_validate.g_attribute7;
1532 END IF;
1533
1534 IF p_x_header_rec.attribute8 IS NULL
1535 OR p_x_header_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1536 p_x_header_rec.attribute8 := oe_validate.g_attribute8;
1537 END IF;
1538
1539 IF p_x_header_rec.attribute9 IS NULL
1540 OR p_x_header_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1541 p_x_header_rec.attribute9 := oe_validate.g_attribute9;
1542 END IF;
1543
1544 IF p_x_header_rec.attribute10 IS NULL
1545 OR p_x_header_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1546 p_x_header_rec.attribute10 := Oe_validate.G_attribute10;
1547 End IF;
1548
1549 IF p_x_header_rec.attribute11 IS NULL
1550 OR p_x_header_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1551 p_x_header_rec.attribute11 := oe_validate.g_attribute11;
1552 END IF;
1553
1554 IF p_x_header_rec.attribute12 IS NULL
1555 OR p_x_header_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1556 p_x_header_rec.attribute12 := oe_validate.g_attribute12;
1557 END IF;
1558
1559 IF p_x_header_rec.attribute13 IS NULL
1560 OR p_x_header_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1561 p_x_header_rec.attribute13 := oe_validate.g_attribute13;
1562 END IF;
1563
1564 IF p_x_header_rec.attribute14 IS NULL
1565 OR p_x_header_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1566 p_x_header_rec.attribute14 := oe_validate.g_attribute14;
1567 END IF;
1568
1569 IF p_x_header_rec.attribute15 IS NULL
1570 OR p_x_header_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1571 p_x_header_rec.attribute15 := oe_validate.g_attribute15;
1572 END IF;
1573
1574 IF p_x_header_rec.attribute16 IS NULL -- for bug 2184255
1575 OR p_x_header_rec.attribute16 = FND_API.G_MISS_CHAR THEN
1576 p_x_header_rec.attribute16 := oe_validate.g_attribute16;
1577 END IF;
1578
1579 IF p_x_header_rec.attribute17 IS NULL
1580 OR p_x_header_rec.attribute17 = FND_API.G_MISS_CHAR THEN
1581 p_x_header_rec.attribute17 := oe_validate.g_attribute17;
1582 END IF;
1583
1584 IF p_x_header_rec.attribute18 IS NULL
1585 OR p_x_header_rec.attribute18 = FND_API.G_MISS_CHAR THEN
1586 p_x_header_rec.attribute18 := oe_validate.g_attribute18;
1587 END IF;
1588
1589 IF p_x_header_rec.attribute19 IS NULL
1590 OR p_x_header_rec.attribute19 = FND_API.G_MISS_CHAR THEN
1591 p_x_header_rec.attribute19 := oe_validate.g_attribute19;
1592 END IF;
1593
1594 IF p_x_header_rec.attribute20 IS NULL
1595 OR p_x_header_rec.attribute20 = FND_API.G_MISS_CHAR THEN
1596 p_x_header_rec.attribute20 := oe_validate.g_attribute20;
1597 END IF;
1598
1599 -- end of assignments, bug 2511313
1600 END IF;
1601 END IF ; -- If flex enabled
1602 END IF;
1603
1604 if l_debug_level > 0 then
1605 oe_debug_pub.add('After blanket header_desc_flex ' || x_return_status,2);
1606 oe_debug_pub.add('Exiting OE_BLANKET_UTIL.VALIDATE_ATTRIBUTES',1);
1607 end if;
1608 EXCEPTION
1609
1610 WHEN FND_API.G_EXC_ERROR THEN
1611 x_return_status := FND_API.G_RET_STS_ERROR;
1612
1613 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1614 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1615
1616 WHEN OTHERS THEN
1617 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1618
1619 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1620 THEN
1621 OE_MSG_PUB.Add_Exc_Msg
1622 ( G_PKG_NAME
1623 ,'Validate Attributes'
1624 );
1625 END IF;
1626
1627 END Validate_Attributes;
1628
1629 PROCEDURE Validate_Attributes
1630 ( p_x_line_rec IN OUT NOCOPY OE_Blanket_PUB.line_rec_type
1631 , p_old_line_rec IN OE_Blanket_PUB.line_rec_type
1632 , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1633 , x_return_status OUT NOCOPY VARCHAR2
1634 ) IS
1635 --{ Bug # 5562785
1636
1637 l_context_required_flag fnd_descriptive_flexs_vl.context_required_flag%TYPE;
1638 l_default_context_field_name fnd_descriptive_flexs_vl.default_context_field_name%TYPE;
1639 l_validate_line VARCHAR2(1) := 'Y';
1640
1641 CURSOR c_check_context(l_flex_name fnd_descriptive_flexs_vl.descriptive_flexfield_name%TYPE) IS
1642 SELECT context_required_flag, default_context_field_name
1643 FROM FND_DESCRIPTIVE_FLEXS_VL
1644 WHERE (application_id = 660)
1645 AND (descriptive_flexfield_name = l_flex_name);
1646 -- Bug # 5562785}
1647 --
1648 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1649 --
1650 BEGIN
1651
1652 if l_debug_level > 0 then
1653 oe_debug_pub.add('Enter procedure OE_blanket_util.validate line Attributes',1);
1654 end if;
1655
1656 x_return_status := FND_API.G_RET_STS_SUCCESS;
1657 -- Compare line attributes with header record if the header record is
1658 -- created in the same call to process_order. If they match
1659 -- then no need to re-validate line attributes.
1660
1661
1662 -- Validate line attributes
1663
1664 IF p_x_line_rec.accounting_rule_id IS NOT NULL AND
1665 ( p_x_line_rec.accounting_rule_id <>
1666 p_old_line_rec.accounting_rule_id OR
1667 p_old_line_rec.accounting_rule_id IS NULL )
1668 THEN
1669 if l_debug_level > 0 then
1670 oe_debug_pub.add('Calling OE_VALIDATE for accounting_rule',1);
1671 end if;
1672 IF NOT OE_Validate.Accounting_Rule(p_x_line_rec.accounting_rule_id) THEN
1673 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1674 p_x_line_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1675 p_x_line_rec.accounting_rule_id := NULL;
1676 ELSE
1677 x_return_status := FND_API.G_RET_STS_ERROR;
1678 END IF;
1679 END IF;
1680 END IF;
1681
1682 IF p_x_line_rec.freight_terms_code IS NOT NULL AND
1683 ( p_x_line_rec.freight_terms_code <>
1684 p_old_line_rec.freight_terms_code OR
1685 p_old_line_rec.freight_terms_code IS NULL )
1686 THEN
1687
1688 IF NOT OE_Validate.Freight_Terms(p_x_line_rec.freight_terms_code) THEN
1689 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1690 p_x_line_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1691 p_x_line_rec.freight_terms_code := NULL;
1692 ELSE
1693 x_return_status := FND_API.G_RET_STS_ERROR;
1694 END IF;
1695 END IF;
1696 END IF;
1697
1698 IF p_x_line_rec.invoicing_rule_id IS NOT NULL AND
1699 ( p_x_line_rec.invoicing_rule_id <>
1700 p_old_line_rec.invoicing_rule_id OR
1701 p_old_line_rec.invoicing_rule_id IS NULL )
1702 THEN
1703 IF NOT OE_Validate.Invoicing_Rule(p_x_line_rec.invoicing_rule_id) THEN
1704 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1705 p_x_line_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1706 p_x_line_rec.invoicing_rule_id := NULL;
1707 ELSE
1708 x_return_status := FND_API.G_RET_STS_ERROR;
1709 END IF;
1710 END IF;
1711 END IF;
1712
1713 IF p_x_line_rec.item_type_code IS NOT NULL AND
1714 ( p_x_line_rec.item_type_code <>
1715 p_old_line_rec.item_type_code OR
1716 p_old_line_rec.item_type_code IS NULL )
1717 THEN
1718 IF NOT OE_Validate.Item_Type(p_x_line_rec.item_type_code) THEN
1719 x_return_status := FND_API.G_RET_STS_ERROR;
1720 END IF;
1721 END IF;
1722
1723
1724 IF p_x_line_rec.payment_term_id IS NOT NULL AND
1725 ( p_x_line_rec.payment_term_id <>
1726 p_old_line_rec.payment_term_id OR
1727 p_old_line_rec.payment_term_id IS NULL )
1728 THEN
1729 IF NOT OE_Validate.Payment_Term(p_x_line_rec.payment_term_id) THEN
1730 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1731 p_x_line_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1732 p_x_line_rec.payment_term_id := NULL;
1733 ELSE
1734 x_return_status := FND_API.G_RET_STS_ERROR;
1735 END IF;
1736 END IF;
1737 END IF;
1738
1739 IF p_x_line_rec.price_list_id IS NOT NULL AND
1740 ( p_x_line_rec.price_list_id <>
1741 p_old_line_rec.price_list_id OR
1742 p_old_line_rec.price_list_id IS NULL )
1743 THEN
1744 IF NOT OE_Validate.Price_List(p_x_line_rec.price_list_id) THEN
1745 x_return_status := FND_API.G_RET_STS_ERROR;
1746 END IF;
1747 END IF;
1748
1749 IF p_x_line_rec.shipping_method_code IS NOT NULL AND
1750 ( p_x_line_rec.shipping_method_code <>
1751 p_old_line_rec.shipping_method_code OR
1752 p_old_line_rec.shipping_method_code IS NULL )
1753 THEN
1754 IF NOT OE_Validate.Shipping_Method(p_x_line_rec.shipping_method_code) THEN
1755 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1756 p_x_line_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1757 p_x_line_rec.shipping_method_code := NULL;
1758 ELSE
1759 x_return_status := FND_API.G_RET_STS_ERROR;
1760 END IF;
1761 END IF;
1762 END IF;
1763
1764 IF p_x_line_rec.ship_from_org_id IS NOT NULL AND
1765 ( p_x_line_rec.ship_from_org_id <>
1766 p_old_line_rec.ship_from_org_id OR
1767 p_old_line_rec.ship_from_org_id IS NULL )
1768 THEN
1769 IF NOT OE_Validate.Ship_From_Org(p_x_line_rec.ship_from_org_id) THEN
1770 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1771 p_x_line_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1772 p_x_line_rec.ship_from_org_id := NULL;
1773 ELSE
1774 x_return_status := FND_API.G_RET_STS_ERROR;
1775 END IF;
1776 END IF;
1777 END IF;
1778
1779 IF p_x_line_rec.salesrep_id IS NOT NULL AND
1780 ( p_x_line_rec.salesrep_id <>
1781 p_old_line_rec.salesrep_id OR
1782 p_old_line_rec.salesrep_id IS NULL )
1783 THEN
1784 IF NOT OE_Validate.salesrep(p_x_line_rec.salesrep_id) THEN
1785 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1786 p_x_line_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1787 p_x_line_rec.salesrep_id := NULL;
1788 ELSE
1789 x_return_status := FND_API.G_RET_STS_ERROR;
1790 END IF;
1791 END IF;
1792 END IF;
1793
1794 --{ Bug # 5562785
1795
1796 OPEN c_check_context('OE_BLKT_LINE_ATTRIBUTES');
1797 FETCH c_check_context INTO l_context_required_flag,l_default_context_field_name;
1798 CLOSE c_check_context;
1799
1800 oe_debug_pub.add('Maitrayee: Entering the code change in Validate_Attributes');
1801 -- Skip the Validation if not changes are made in the DFF from the UI.
1802
1803 IF l_context_required_flag = 'Y' AND ( p_x_line_rec.context IS NULL OR p_x_line_rec.context = FND_API.G_MISS_CHAR ) AND (OE_GLOBALS.G_UI_FLAG) THEN
1804
1805 l_validate_line := 'N';
1806 IF l_debug_level > 0 then
1807 oe_debug_pub.add('Skipping Validation');
1808 END IF;
1809
1810 ELSIF l_context_required_flag = 'Y' AND ( p_x_line_rec.context IS NULL OR p_x_line_rec.context = FND_API.G_MISS_CHAR ) AND NOT (OE_GLOBALS.G_UI_FLAG) THEN
1811
1812 -- Show Error message if appropriate context value is not passed
1813 -- from the Process Order Call and if the Context field is required.
1814
1815 FND_MESSAGE.SET_NAME('FND', 'ONT_BLKT_CONTEXT_NOT_FOUND');
1816
1817 OE_MSG_PUB.ADD;
1818 IF l_debug_level > 0 THEN
1819 oe_debug_pub.add( 'Context not set for OE_BLKT_LINE_ATTRIBUTES DFF ' ) ;
1820 END IF;
1821 RAISE FND_API.G_EXC_ERROR;
1822 ELSE
1823
1824 -- Validate the DFF in all other cases.
1825
1826 l_validate_line := 'Y';
1827
1828 IF l_debug_level > 0 then
1829 oe_debug_pub.add('Validating the Flex Field');
1830 END IF;
1831
1832 END IF;
1833
1834 -- Bug # 5562785)
1835
1836 IF(l_validate_line = 'Y') THEN -- Bug # 5562785
1837
1838 IF p_x_line_rec.operation = oe_globals.g_opr_create OR
1839 (p_x_line_rec.operation = oe_globals.g_opr_update AND
1840 (p_x_line_rec.attribute1 IS NOT NULL AND
1841 ( p_x_line_rec.attribute1 <>
1842 p_old_line_rec.attribute1 OR
1843 p_old_line_rec.attribute1 IS NULL ))
1844 OR (p_x_line_rec.attribute10 IS NOT NULL AND
1845 ( p_x_line_rec.attribute10 <>
1846 p_old_line_rec.attribute10 OR
1847 p_old_line_rec.attribute10 IS NULL ))
1848 OR (p_x_line_rec.attribute11 IS NOT NULL AND
1849 ( p_x_line_rec.attribute11 <>
1850 p_old_line_rec.attribute11 OR
1851 p_old_line_rec.attribute11 IS NULL ))
1852 OR (p_x_line_rec.attribute12 IS NOT NULL AND
1853 ( p_x_line_rec.attribute12 <>
1854 p_old_line_rec.attribute12 OR
1855 p_old_line_rec.attribute12 IS NULL ))
1856 OR (p_x_line_rec.attribute13 IS NOT NULL AND
1857 ( p_x_line_rec.attribute13 <>
1858 p_old_line_rec.attribute13 OR
1859 p_old_line_rec.attribute13 IS NULL ))
1860 OR (p_x_line_rec.attribute14 IS NOT NULL AND
1861 ( p_x_line_rec.attribute14 <>
1862 p_old_line_rec.attribute14 OR
1863 p_old_line_rec.attribute14 IS NULL ))
1864 OR (p_x_line_rec.attribute15 IS NOT NULL AND
1865 ( p_x_line_rec.attribute15 <>
1866 p_old_line_rec.attribute15 OR
1867 p_old_line_rec.attribute15 IS NULL ))
1868 OR (p_x_line_rec.attribute16 IS NOT NULL AND -- For bug 2184255
1869 ( p_x_line_rec.attribute16 <>
1870 p_old_line_rec.attribute16 OR
1871 p_old_line_rec.attribute16 IS NULL ))
1872 OR (p_x_line_rec.attribute17 IS NOT NULL AND
1873 ( p_x_line_rec.attribute17 <>
1874 p_old_line_rec.attribute17 OR
1875 p_old_line_rec.attribute17 IS NULL ))
1876 OR (p_x_line_rec.attribute18 IS NOT NULL AND
1877 ( p_x_line_rec.attribute18 <>
1878 p_old_line_rec.attribute18 OR
1879 p_old_line_rec.attribute18 IS NULL ))
1880 OR (p_x_line_rec.attribute19 IS NOT NULL AND
1881 ( p_x_line_rec.attribute19 <>
1882 p_old_line_rec.attribute19 OR
1883 p_old_line_rec.attribute19 IS NULL ))
1884 OR (p_x_line_rec.attribute2 IS NOT NULL AND
1885 ( p_x_line_rec.attribute2 <>
1886 p_old_line_rec.attribute2 OR
1887 p_old_line_rec.attribute2 IS NULL ))
1888 OR (p_x_line_rec.attribute20 IS NOT NULL AND
1889 ( p_x_line_rec.attribute20 <>
1890 p_old_line_rec.attribute20 OR
1891 p_old_line_rec.attribute20 IS NULL ))
1892 OR (p_x_line_rec.attribute3 IS NOT NULL AND
1893 ( p_x_line_rec.attribute3 <>
1894 p_old_line_rec.attribute3 OR
1895 p_old_line_rec.attribute3 IS NULL ))
1896 OR (p_x_line_rec.attribute4 IS NOT NULL AND
1897 ( p_x_line_rec.attribute4 <>
1898 p_old_line_rec.attribute4 OR
1899 p_old_line_rec.attribute4 IS NULL ))
1900 OR (p_x_line_rec.attribute5 IS NOT NULL AND
1901 ( p_x_line_rec.attribute5 <>
1902 p_old_line_rec.attribute5 OR
1903 p_old_line_rec.attribute5 IS NULL ))
1904 OR (p_x_line_rec.attribute6 IS NOT NULL AND
1905 ( p_x_line_rec.attribute6 <>
1906 p_old_line_rec.attribute6 OR
1907 p_old_line_rec.attribute6 IS NULL ))
1908 OR (p_x_line_rec.attribute7 IS NOT NULL AND
1909 ( p_x_line_rec.attribute7 <>
1910 p_old_line_rec.attribute7 OR
1911 p_old_line_rec.attribute7 IS NULL ))
1912 OR (p_x_line_rec.attribute8 IS NOT NULL AND
1913 ( p_x_line_rec.attribute8 <>
1914 p_old_line_rec.attribute8 OR
1915 p_old_line_rec.attribute8 IS NULL ))
1916 OR (p_x_line_rec.attribute9 IS NOT NULL AND
1917 ( p_x_line_rec.attribute9 <>
1918 p_old_line_rec.attribute9 OR
1919 p_old_line_rec.attribute9 IS NULL ))
1920 OR (p_x_line_rec.context IS NOT NULL AND
1921 ( p_x_line_rec.context <>
1922 p_old_line_rec.context OR
1923 p_old_line_rec.context IS NULL )))
1924 THEN
1925
1926 oe_debug_pub.add('Before calling line_desc_flex',2);
1927 IF Oe_Order_Cache.IS_FLEX_ENABLED('OE_BLKT_LINE_ATTRIBUTES') = 'Y' THEN
1928
1929 IF NOT OE_VALIDATE.Line_Desc_Flex
1930 (p_context => p_x_line_rec.context
1931 ,p_attribute1 => p_x_line_rec.attribute1
1932 ,p_attribute2 => p_x_line_rec.attribute2
1933 ,p_attribute3 => p_x_line_rec.attribute3
1934 ,p_attribute4 => p_x_line_rec.attribute4
1935 ,p_attribute5 => p_x_line_rec.attribute5
1936 ,p_attribute6 => p_x_line_rec.attribute6
1937 ,p_attribute7 => p_x_line_rec.attribute7
1938 ,p_attribute8 => p_x_line_rec.attribute8
1939 ,p_attribute9 => p_x_line_rec.attribute9
1940 ,p_attribute10 => p_x_line_rec.attribute10
1941 ,p_attribute11 => p_x_line_rec.attribute11
1942 ,p_attribute12 => p_x_line_rec.attribute12
1943 ,p_attribute13 => p_x_line_rec.attribute13
1944 ,p_attribute14 => p_x_line_rec.attribute14
1945 ,p_attribute15 => p_x_line_rec.attribute15
1946 ,p_attribute16 => p_x_line_rec.attribute16 -- for bug 2184255
1947 ,p_attribute17 => p_x_line_rec.attribute17
1948 ,p_attribute18 => p_x_line_rec.attribute18
1949 ,p_attribute19 => p_x_line_rec.attribute19
1950 ,p_attribute20 => p_x_line_rec.attribute20
1951 ,p_document_type => 'BLANKET' ) THEN -- Bug # 5562785
1952
1953 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL AND
1954 p_x_line_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
1955
1956 p_x_line_rec.context := null;
1957 p_x_line_rec.attribute1 := null;
1958 p_x_line_rec.attribute2 := null;
1959 p_x_line_rec.attribute3 := null;
1960 p_x_line_rec.attribute4 := null;
1961 p_x_line_rec.attribute5 := null;
1962 p_x_line_rec.attribute6 := null;
1963 p_x_line_rec.attribute7 := null;
1964 p_x_line_rec.attribute8 := null;
1965 p_x_line_rec.attribute9 := null;
1966 p_x_line_rec.attribute10 := null;
1967 p_x_line_rec.attribute11 := null;
1968 p_x_line_rec.attribute12 := null;
1969 p_x_line_rec.attribute13 := null;
1970 p_x_line_rec.attribute14 := null;
1971 p_x_line_rec.attribute15 := null;
1972 p_x_line_rec.attribute16 := null; -- for bug 2184255
1973 p_x_line_rec.attribute17 := null;
1974 p_x_line_rec.attribute18 := null;
1975 p_x_line_rec.attribute19 := null;
1976 p_x_line_rec.attribute20 := null;
1977
1978 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF AND
1979 p_x_line_rec.operation =OE_GLOBALS.G_OPR_CREATE THEN
1980
1981 p_x_line_rec.context := FND_API.G_MISS_CHAR;
1982 p_x_line_rec.attribute1 := FND_API.G_MISS_CHAR;
1983 p_x_line_rec.attribute2 := FND_API.G_MISS_CHAR;
1984 p_x_line_rec.attribute3 := FND_API.G_MISS_CHAR;
1985 p_x_line_rec.attribute4 := FND_API.G_MISS_CHAR;
1986 p_x_line_rec.attribute5 := FND_API.G_MISS_CHAR;
1987 p_x_line_rec.attribute6 := FND_API.G_MISS_CHAR;
1988 p_x_line_rec.attribute7 := FND_API.G_MISS_CHAR;
1989 p_x_line_rec.attribute8 := FND_API.G_MISS_CHAR;
1990 p_x_line_rec.attribute9 := FND_API.G_MISS_CHAR;
1991 p_x_line_rec.attribute10 := FND_API.G_MISS_CHAR;
1992 p_x_line_rec.attribute11 := FND_API.G_MISS_CHAR;
1993 p_x_line_rec.attribute12 := FND_API.G_MISS_CHAR;
1994 p_x_line_rec.attribute13 := FND_API.G_MISS_CHAR;
1995 p_x_line_rec.attribute14 := FND_API.G_MISS_CHAR;
1996 p_x_line_rec.attribute15 := FND_API.G_MISS_CHAR;
1997 p_x_line_rec.attribute16 := FND_API.G_MISS_CHAR; -- for bug 2184255
1998 p_x_line_rec.attribute17 := FND_API.G_MISS_CHAR;
1999 p_x_line_rec.attribute18 := FND_API.G_MISS_CHAR;
2000 p_x_line_rec.attribute19 := FND_API.G_MISS_CHAR;
2001 p_x_line_rec.attribute20 := FND_API.G_MISS_CHAR;
2002
2003 ELSIF p_validation_level = FND_API.G_VALID_LEVEL_NONE THEN
2004 NULL;
2005
2006 ELSE
2007 x_return_status := FND_API.G_RET_STS_ERROR;
2008 END IF;
2009
2010 ELSE -- if the flex validation is successfull
2011 -- For bug 2511313
2012 IF p_x_line_rec.context IS NULL
2013 OR p_x_line_rec.context = FND_API.G_MISS_CHAR THEN
2014 p_x_line_rec.context := oe_validate.g_context;
2015 END IF;
2016
2017 IF p_x_line_rec.attribute1 IS NULL
2018 OR p_x_line_rec.attribute1 = FND_API.G_MISS_CHAR THEN
2019 p_x_line_rec.attribute1 := oe_validate.g_attribute1;
2020 END IF;
2021
2022 IF p_x_line_rec.attribute2 IS NULL
2023 OR p_x_line_rec.attribute2 = FND_API.G_MISS_CHAR THEN
2024 p_x_line_rec.attribute2 := oe_validate.g_attribute2;
2025 END IF;
2026
2027 IF p_x_line_rec.attribute3 IS NULL
2028 OR p_x_line_rec.attribute3 = FND_API.G_MISS_CHAR THEN
2029 p_x_line_rec.attribute3 := oe_validate.g_attribute3;
2030 END IF;
2031
2032 IF p_x_line_rec.attribute4 IS NULL
2033 OR p_x_line_rec.attribute4 = FND_API.G_MISS_CHAR THEN
2034 p_x_line_rec.attribute4 := oe_validate.g_attribute4;
2035 END IF;
2036
2037 IF p_x_line_rec.attribute5 IS NULL
2038 OR p_x_line_rec.attribute5 = FND_API.G_MISS_CHAR THEN
2039 p_x_line_rec.attribute5 := oe_validate.g_attribute5;
2040 END IF;
2041
2042 IF p_x_line_rec.attribute6 IS NULL
2043 OR p_x_line_rec.attribute6 = FND_API.G_MISS_CHAR THEN
2044 p_x_line_rec.attribute6 := oe_validate.g_attribute6;
2045 END IF;
2046
2047 IF p_x_line_rec.attribute7 IS NULL
2048 OR p_x_line_rec.attribute7 = FND_API.G_MISS_CHAR THEN
2049 p_x_line_rec.attribute7 := oe_validate.g_attribute7;
2050 END IF;
2051
2052 IF p_x_line_rec.attribute8 IS NULL
2053 OR p_x_line_rec.attribute8 = FND_API.G_MISS_CHAR THEN
2054 p_x_line_rec.attribute8 := oe_validate.g_attribute8;
2055 END IF;
2056
2057 IF p_x_line_rec.attribute9 IS NULL
2058 OR p_x_line_rec.attribute9 = FND_API.G_MISS_CHAR THEN
2059 p_x_line_rec.attribute9 := oe_validate.g_attribute9;
2060 END IF;
2061
2062 IF p_x_line_rec.attribute10 IS NULL
2063 OR p_x_line_rec.attribute10 = FND_API.G_MISS_CHAR THEN
2064 p_x_line_rec.attribute10 := Oe_validate.G_attribute10;
2065 End IF;
2066
2067 IF p_x_line_rec.attribute11 IS NULL
2068 OR p_x_line_rec.attribute11 = FND_API.G_MISS_CHAR THEN
2069 p_x_line_rec.attribute11 := oe_validate.g_attribute11;
2070 END IF;
2071
2072 IF p_x_line_rec.attribute12 IS NULL
2073 OR p_x_line_rec.attribute12 = FND_API.G_MISS_CHAR THEN
2074 p_x_line_rec.attribute12 := oe_validate.g_attribute12;
2075 END IF;
2076
2077 IF p_x_line_rec.attribute13 IS NULL
2078 OR p_x_line_rec.attribute13 = FND_API.G_MISS_CHAR THEN
2079 p_x_line_rec.attribute13 := oe_validate.g_attribute13;
2080 END IF;
2081
2082 IF p_x_line_rec.attribute14 IS NULL
2083 OR p_x_line_rec.attribute14 = FND_API.G_MISS_CHAR THEN
2084 p_x_line_rec.attribute14 := oe_validate.g_attribute14;
2085 END IF;
2086
2087 IF p_x_line_rec.attribute15 IS NULL
2088 OR p_x_line_rec.attribute15 = FND_API.G_MISS_CHAR THEN
2089 p_x_line_rec.attribute15 := oe_validate.g_attribute15;
2090 END IF;
2091 IF p_x_line_rec.attribute16 IS NULL -- for bug 2184255
2092 OR p_x_line_rec.attribute16 = FND_API.G_MISS_CHAR THEN
2093 p_x_line_rec.attribute16 := oe_validate.g_attribute16;
2094 END IF;
2095
2096 IF p_x_line_rec.attribute17 IS NULL
2097 OR p_x_line_rec.attribute17 = FND_API.G_MISS_CHAR THEN
2098 p_x_line_rec.attribute17 := oe_validate.g_attribute17;
2099 END IF;
2100
2101 IF p_x_line_rec.attribute18 IS NULL
2102 OR p_x_line_rec.attribute18 = FND_API.G_MISS_CHAR THEN
2103 p_x_line_rec.attribute18 := oe_validate.g_attribute18;
2104 END IF;
2105
2106 IF p_x_line_rec.attribute19 IS NULL
2107 OR p_x_line_rec.attribute19 = FND_API.G_MISS_CHAR THEN
2108 p_x_line_rec.attribute19 := oe_validate.g_attribute19;
2109 END IF;
2110
2111 IF p_x_line_rec.attribute20 IS NULL -- for bug 2184255
2112 OR p_x_line_rec.attribute20 = FND_API.G_MISS_CHAR THEN
2113 p_x_line_rec.attribute20 := oe_validate.g_attribute20;
2114 END IF;
2115
2116 -- end of assignments, bug 2511313
2117 END IF; -- Flex Validation successfull
2118 END IF; -- Is flex enabled
2119
2120 oe_debug_pub.add('After line_desc_flex ' || x_return_status,2);
2121
2122 END IF; -- For Additional Line Information
2123
2124 END IF; -- 5562785
2125
2126 if l_debug_level > 0 then
2127 oe_debug_pub.add('Exiting procedure OE_BLANKET_UTIL.Validate Line Attributes',1);
2128 end if;
2129
2130 EXCEPTION
2131
2132 WHEN FND_API.G_EXC_ERROR THEN
2133
2134 x_return_status := FND_API.G_RET_STS_ERROR;
2135
2136 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2137
2138 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2139
2140 WHEN OTHERS THEN
2141
2142 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2143
2144 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2145 THEN
2146 OE_MSG_PUB.Add_Exc_Msg
2147 ( G_PKG_NAME
2148 , 'Validate Attributes'
2149 );
2150 END IF;
2151
2152 END Validate_Attributes;
2153
2154 FUNCTION Validate_Item_Fields(
2155 p_item_identifier_type IN VARCHAR2,
2156 p_inventory_item_id IN NUMBER,
2157 p_sold_to_org_id IN NUMBER,
2158 p_ordered_item_id IN NUMBER,
2159 p_ordered_item IN VARCHAR2
2160 )
2161 RETURN BOOLEAN
2162 IS
2163 l_dummy VARCHAR2(240);
2164
2165 --code taken from OE_validate_line.validate_item_fields
2166 /* added for 2219230 */
2167 l_org_flag NUMBER := 2;
2168 item_val_org NUMBER := to_number(OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID'));
2169
2170 CURSOR xref IS
2171 SELECT DECODE(items.org_independent_flag, 'Y', 1,
2172 DECODE(items.organization_id, item_val_org, 1, 2))
2173 FROM mtl_cross_reference_types types
2174 , mtl_cross_references items
2175 , mtl_system_items_vl sitems
2176 WHERE types.cross_reference_type = items.cross_reference_type
2177 AND items.inventory_item_id = sitems.inventory_item_id
2178 AND sitems.organization_id = item_val_org
2179 AND sitems.inventory_item_id = p_inventory_item_id
2180 AND items.cross_reference_type = p_item_identifier_type
2181 AND items.cross_reference = p_ordered_item
2182 ORDER BY 1;
2183 /* end of code added for 2219230 */
2184
2185 --
2186 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2187 --
2188 BEGIN
2189 if l_debug_level > 0 then
2190 oe_debug_pub.add('In validate Item Fields', 1);
2191
2192 oe_debug_pub.add('item identifier type :'||p_item_identifier_type);
2193 oe_debug_pub.add('inventory item id :'||p_inventory_item_id);
2194 oe_debug_pub.add('ordered item id :'||p_ordered_item_id);
2195 oe_debug_pub.add('ordered item :'||p_ordered_item);
2196 oe_debug_pub.add('sold to org id :'||p_sold_to_org_id);
2197 end if;
2198 --perform validation of inventory_item_id based on context
2199 IF p_item_identifier_type = 'INT' THEN --validate inventory_item_id
2200 if l_debug_level > 0 then
2201 oe_debug_pub.add('Blanket In validate INT');
2202 end if;
2203 SELECT 'valid'
2204 INTO l_dummy
2205 FROM mtl_system_items_b
2206 WHERE inventory_item_id = p_inventory_item_id
2207 AND organization_id = OE_Sys_Parameters.VALUE_WNPS('MASTER_ORGANIZATION_ID')
2208 AND customer_order_enabled_flag = 'Y';
2209
2210 ELSIF p_item_identifier_type = 'CUST' THEN
2211 if l_debug_level > 0 then
2212 oe_debug_pub.add('Blanket In validate CUST',1);
2213 end if;
2214 SELECT 'valid'
2215 INTO l_dummy
2216 FROM mtl_customer_items citems
2217 ,mtl_customer_item_xrefs cxref
2218 ,mtl_system_items_vl sitems
2219 WHERE citems.customer_item_id = cxref.customer_item_id
2220 AND cxref.inventory_item_id = sitems.inventory_item_id
2221 AND sitems.inventory_item_id = p_inventory_item_id
2222 AND sitems.organization_id =
2223 OE_Sys_Parameters.VALUE_WNPS('MASTER_ORGANIZATION_ID')
2224 AND citems.customer_item_id = p_ordered_item_id
2225 AND citems.customer_id = p_sold_to_org_id
2226 AND citems.inactive_flag = 'N'
2227 AND cxref.inactive_flag = 'N';
2228
2229 ELSIF p_item_identifier_type = 'CAT' THEN
2230 if l_debug_level > 0 then
2231 oe_debug_pub.add('Blanket In validate CAT');
2232 end if;
2233 SELECT 'VALID'
2234 INTO l_dummy
2235 FROM MTL_CATEGORIES_VL
2236 WHERE CATEGORY_ID = p_inventory_item_id
2237 AND ENABLED_FLAG = 'Y';
2238
2239 ELSE
2240 if l_debug_level > 0 then
2241 oe_debug_pub.add('Blanket In validate generic');
2242 end if;
2243 --code taken from OE_validate_line.validate_item_fields
2244 /* SELECT replaced for with the following for 2219230 */
2245 if l_debug_level > 0 then
2246 oe_debug_pub.add('Validating generic item, item_val_org:'||to_char(item_val_org),5);
2247 end if;
2248 OPEN xref;
2249 FETCH xref INTO l_org_flag;
2250 IF xref%NOTFOUND OR l_org_flag <> 1 THEN
2251 if l_debug_level > 0 then
2252 oe_debug_pub.add('Blanket Invalid Generic Item', 1);
2253 end if;
2254 CLOSE xref;
2255 END IF;
2256 CLOSE xref;
2257
2258 END IF;
2259
2260 RETURN TRUE;
2261
2262 EXCEPTION
2263 WHEN NO_DATA_FOUND THEN
2264 if l_debug_level > 0 then
2265 oe_debug_pub.add('Validate Item based on context: No data found',1);
2266 end if;
2267 RETURN FALSE;
2268 WHEN OTHERS THEN
2269 if l_debug_level > 0 then
2270 oe_debug_pub.add('Validate_Item_Fields: When Others',1);
2271 end if;
2272 RETURN FALSE;
2273 END Validate_Item_Fields;
2274
2275 --PP Revenue Recognition
2276 --bug 4893057
2277 FUNCTION Validate_Accounting_Rule(
2278 p_inventory_item_id IN NUMBER,
2279 p_accounting_rule_id IN NUMBER
2280 )
2281 RETURN BOOLEAN
2282 IS
2283 l_rule_type VARCHAR2(10);
2284 l_item_org NUMBER := to_number(OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID'));
2285 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2286 l_service_item_flag VARCHAR2(1);
2287 l_bom_item_type NUMBER;
2288 l_dummy VARCHAR2(25);
2289
2290 BEGIN
2291 if l_debug_level > 0 then
2292 oe_debug_pub.add('In validate accounting rule', 1);
2293 oe_debug_pub.add('inventory item id :'||p_inventory_item_id);
2294 oe_debug_pub.add('l_item_org :'||l_item_org);
2295 end if;
2296 --Bug 5169363
2297 --bug5220335 moved the query under BEGIN-EXCEPTION-END
2298 BEGIN
2299 SELECT 'VALID'
2300 INTO l_dummy
2301 FROM MTL_CATEGORIES_VL
2302 WHERE CATEGORY_ID = p_inventory_item_id
2303 AND ENABLED_FLAG = 'Y';
2304 EXCEPTION
2305 WHEN OTHERS THEN
2306 l_dummy := null;
2307 END;
2308
2309 IF OE_GLOBALS.Equal(l_dummy,'VALID') THEN
2310 RETURN TRUE;
2311 ELSE
2312 IF p_inventory_item_id IS NOT NULL THEN
2313 select service_item_flag,bom_item_type
2314 into l_service_item_flag, l_bom_item_type
2315 from MTL_SYSTEM_ITEMS
2316 where inventory_item_id = p_inventory_item_id
2317 AND organization_id = l_item_org;
2318 END IF;
2319
2320 IF NOT (l_bom_item_type = 4 and l_service_item_flag = 'Y') THEN -- not service
2321 IF p_accounting_rule_id <> FND_API.G_MISS_NUM AND
2322 p_accounting_rule_id IS NOT NULL THEN
2323 IF l_debug_level > 0 THEN
2324 oe_debug_pub.add('Getting accounting rule type');
2325 END IF;
2326 SELECT type
2327 INTO l_rule_type
2328 FROM ra_rules
2329 WHERE rule_id = p_accounting_rule_id;
2330 IF l_debug_level > 0 THEN
2331 oe_debug_pub.add('Rule Type is :'||l_rule_type);
2332 END IF;
2333 IF l_rule_type = 'PP_DR_ALL' or l_rule_type = 'PP_DR_PP' THEN
2334 RETURN FALSE;
2335 END IF; --End of rule type
2336 END IF;--End of accounting type id is not null
2337 END IF; --End of item type not Service
2338
2339 RETURN TRUE;
2340 END IF;
2341 --Bug 5169363
2342
2343 EXCEPTION
2344 WHEN OTHERS THEN
2345 if l_debug_level > 0 then
2346 oe_debug_pub.add('Validate_Accounting Rule: When Others',1);
2347 oe_debug_pub.add('Error message...'||sqlerrm);
2348 end if;
2349 RETURN FALSE;
2350 END Validate_Accounting_Rule;
2351 --bug 4893057
2352
2353
2354 PROCEDURE Validate_Entity
2355 ( p_line_rec IN OUT NOCOPY OE_Blanket_PUB.line_rec_type
2356 , p_old_line_rec IN OE_Blanket_PUB.Line_rec_type := OE_Blanket_PUB.G_MISS_BLANKET_LINE_REC
2357 , x_return_status OUT NOCOPY VARCHAR2
2358 )IS
2359
2360 l_dummy varchar2(30);
2361 l_valid_line_number varchar2(1);
2362 l_old_line_rec OE_Blanket_PUB.Line_rec_type := p_old_line_rec;
2363 l_site_use_code VARCHAR2(30);
2364 l_return_status varchar2(1);
2365
2366 --
2367 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2368 --
2369 l_list_line_exists VARCHAR2(1) := 'N';
2370 l_temp varchar2(100);
2371 BEGIN
2372
2373 x_return_status := FND_API.G_RET_STS_SUCCESS;
2374
2375
2376
2377 if l_debug_level > 0 then
2378 oe_debug_pub.add('Enter OE_BLANKET_UTIL.Validate ENTITY - Line',1);
2379 oe_debug_pub.add('Operation : '||p_line_rec.operation);
2380 oe_debug_pub.add('Price List ID : '||p_line_rec.price_list_id);
2381 oe_debug_pub.add('Unit List Price : '||p_line_rec.unit_list_price);
2382 oe_debug_pub.add('Line end date : '||p_line_rec.end_date_active);
2383 oe_debug_pub.add('Header end date : '||g_header_rec.end_date_active);
2384 end if;
2385
2386 -- Load old line rec if not passed
2387 IF p_line_rec.operation = oe_globals.g_opr_update THEN
2388 IF l_old_line_rec.line_id is null THEN
2389 l_old_line_rec := Query_Row(p_line_id => p_line_rec.line_id);
2390 END IF;
2391 END IF;
2392
2393 -- Validate Last Updated By values.
2394 -- Added for bug #6270818.
2395 IF p_line_rec.operation = oe_globals.g_opr_update
2396 THEN
2397 If p_line_rec.last_updated_by <> FND_GLOBAL.USER_ID or
2398 l_old_line_rec.last_updated_by <> FND_GLOBAL.USER_ID
2399 THEN
2400 p_line_rec.last_updated_by := FND_GLOBAL.USER_ID;
2401 l_old_line_rec.last_updated_by := FND_GLOBAL.USER_ID;
2402 END IF;
2403 p_line_rec.last_update_date := sysdate;
2404 l_old_line_rec.last_update_date := sysdate;
2405 END IF;
2406
2407
2408 -- Load header
2409 Load_Header(p_header_id => p_line_rec.header_id,
2410 x_return_status => l_return_status);
2411 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2412 x_return_status := l_return_status;
2413 END IF;
2414
2415 -- Versioning/Reasons changes (moved to beginning for bug 3775937
2416 if OE_CODE_CONTROL.Code_Release_Level >= '110510' AND
2417 OE_GLOBALS.G_CAPTURED_REASON = 'V' THEN
2418 OE_GLOBALS.G_REASON_CODE := p_line_rec.revision_change_reason_code;
2419 OE_GLOBALS.G_REASON_COMMENTS := p_line_rec.revision_change_comments;
2420 OE_GLOBALS.G_CAPTURED_REASON := 'Y';
2421 end if;
2422
2423 -- added for bug 3443777 need to call validate entity for reasons capture
2424 IF (p_line_rec.operation <> OE_GLOBALS.g_opr_delete)
2425 and not OE_BLANKET_UTIL.is_end_date_operation(p_line_rec, l_old_line_rec) -- Added for bug 9027699
2426
2427 THEN
2428
2429 /* IF p_line_rec.operation = oe_globals.g_opr_update AND p_line_rec.end_date_active = trunc(sysdate) AND
2430 NOT OE_GLOBALS.Equal(p_line_rec.end_date_active, p_old_line_rec.end_date_active) THEN
2431
2432 null;
2433
2434 else*/
2435 -----------------------------------------------------------
2436 -- Check required attributes.
2437 -----------------------------------------------------------
2438
2439 if l_debug_level > 0 then
2440 oe_debug_pub.add('Blanket In validate entity 1');
2441 oe_debug_pub.add('1 '||x_return_status, 1);
2442 end if;
2443
2444 IF p_line_rec.line_id IS NULL
2445 THEN
2446
2447 x_return_status := FND_API.G_RET_STS_ERROR;
2448
2449 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
2450 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2451 OE_Order_UTIL.Get_Attribute_Name('line_id'));
2452 OE_MSG_PUB.Add;
2453
2454 END IF;
2455
2456 IF p_line_rec.item_identifier_type IS NULL
2457 THEN
2458
2459 x_return_status := FND_API.G_RET_STS_ERROR;
2460
2461 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
2462 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2463 OE_Order_UTIL.Get_Attribute_Name('ITEM_IDENTIFIER_TYPE'));
2464 OE_MSG_PUB.Add;
2465
2466 ELSIF p_line_rec.item_identifier_type <> 'ALL'
2467 AND p_line_rec.inventory_item_id IS NULL
2468 THEN
2469
2470 x_return_status := FND_API.G_RET_STS_ERROR;
2471
2472 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
2473 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2474 OE_Order_UTIL.Get_Attribute_Name('INVENTORY_ITEM_ID'));
2475 OE_MSG_PUB.Add;
2476
2477 END IF;
2478
2479 IF p_line_rec.start_date_active IS NULL
2480 THEN
2481
2482 x_return_status := FND_API.G_RET_STS_ERROR;
2483
2484 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
2485 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Activation Date');
2486 OE_MSG_PUB.Add;
2487
2488 END IF;
2489
2490 -- Return Error if a required attribute is missing.
2491
2492 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2493
2494 RAISE FND_API.G_EXC_ERROR;
2495
2496 END IF;
2497
2498 if l_debug_level > 0 then
2499 oe_debug_pub.add('Blanket In validate entity 2');
2500 end if;
2501
2502 -- Customer Item Validation
2503 IF (p_line_rec.operation = oe_globals.g_opr_update or p_line_rec.operation = oe_globals.g_opr_create) AND
2504 p_line_rec.ITEM_IDENTIFIER_TYPE = 'CUST' then
2505 oe_blanket_util.Get_Inventory_Item(p_x_line_rec => p_line_rec,
2506 x_return_status => l_return_status);
2507 END if;
2508 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2509 oe_debug_pub.add('Raise and Error in Customer ITem Validation oe_blanket_util.Get_Inventory_Item');
2510 RAISE FND_API.G_EXC_ERROR;
2511 END IF;
2512 --PP Revenue Recognition
2513 --bug 4893057
2514 IF NOT Validate_Accounting_Rule
2515 (p_line_rec.inventory_item_id,
2516 p_line_rec.accounting_rule_id)
2517 THEN
2518 x_return_status := FND_API.G_RET_STS_ERROR;
2519 FND_MESSAGE.Set_Name('ONT','OE_INVALID_ATTRIBUTE');
2520 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2521 OE_Order_Util.Get_Attribute_Name('ACCOUNTING_RULE_ID'));
2522 OE_MSG_PUB.ADD;
2523 END IF;
2524
2525
2526 ---------------------------------------------------------------------
2527 -- Validate attribute dependencies here.
2528 ---------------------------------------------------------------------
2529
2530 -- Log request to validate line number if line number changed
2531
2532 IF NOT OE_GLOBALS.Equal
2533 (p_line_rec.line_number,l_old_line_rec.line_number)
2534 THEN
2535 --some fields not allowed to update if release exists against line
2536 IF (p_line_rec.released_amount > 0) THEN
2537 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_LINE_ATTRIBUTE');
2538 fnd_message.set_token('ATTRIBUTE',
2539 OE_Order_UTIL.Get_Attribute_Name('LINE_NUMBER'));
2540 OE_MSG_PUB.Add;
2541 ELSE
2542 oe_delayed_requests_pvt.Log_request(p_Entity_Code =>
2543 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
2544 p_Entity_Id => p_line_rec.line_id,
2545 p_requesting_entity_code =>
2546 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
2547 p_requesting_entity_id => p_line_rec.line_id,
2548 p_request_type => 'VALIDATE_BLANKET_LINE_NUMBER',
2549 p_param1 => p_line_rec.header_id,
2550 p_param2 => p_line_rec.line_number,
2551 x_return_status => l_return_status);
2552 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2553 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2554 END IF;
2555 END IF;
2556 END IF;
2557
2558
2559 -- Inventory Item Validations
2560
2561 IF NOT OE_GLOBALS.Equal
2562 (p_line_rec.item_identifier_type,l_old_line_rec.item_identifier_type)
2563 OR NOT OE_GLOBALS.Equal
2564 (p_line_rec.inventory_item_id,l_old_line_rec.inventory_item_id)
2565 OR NOT OE_GLOBALS.Equal
2566 (p_line_rec.end_date_active,l_old_line_rec.end_date_active)
2567 OR NOT OE_GLOBALS.Equal
2568 (p_line_rec.start_date_active,l_old_line_rec.start_date_active)
2569 THEN
2570 --fields not allowed to update if releases exist against this line
2571 IF (p_line_rec.released_amount > 0) AND
2572 (NOT OE_GLOBALS.Equal
2573 (p_line_rec.inventory_item_id,l_old_line_rec.inventory_item_id)) THEN
2574
2575 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_LINE_ATTRIBUTE');
2576 fnd_message.set_token('ATTRIBUTE',
2577 OE_Order_UTIL.Get_Attribute_Name('INVENTORY_ITEM_ID'));
2578 OE_MSG_PUB.add;
2579 x_return_status := FND_API.G_RET_STS_ERROR;
2580
2581 ELSIF (p_line_rec.released_amount > 0) AND
2582 (NOT OE_GLOBALS.Equal
2583 (p_line_rec.item_identifier_type,l_old_line_rec.item_identifier_type)) THEN
2584 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_LINE_ATTRIBUTE');
2585 fnd_message.set_token('ATTRIBUTE',
2586 OE_Order_UTIL.Get_Attribute_Name('ITEM_IDENTIFIER_TYPE'));
2587 OE_MSG_PUB.add;
2588 x_return_status := FND_API.G_RET_STS_ERROR;
2589
2590 ELSE
2591
2592 -- Inventory Item ID should be null for 'ALL Item' Context
2593 IF p_line_rec.item_identifier_type = 'ALL' THEN
2594
2595 IF p_line_rec.inventory_item_id IS NOT NULL THEN
2596 x_return_status := FND_API.G_RET_STS_ERROR;
2597 fnd_message.set_name('ONT', 'OE_ITEM_VALIDATION_FAILED');
2598 OE_MSG_PUB.add;
2599 END IF;
2600
2601 -- For all other context values, validate item id
2602 ELSE
2603
2604 IF NOT Validate_Item_Fields
2605 ( p_line_rec.item_identifier_type,
2606 p_line_rec.inventory_item_id,
2607 p_line_rec.sold_to_org_id,
2608 p_line_rec.ordered_item_id,
2609 p_line_rec.ordered_item
2610 ) THEN
2611 x_return_status := FND_API.G_RET_STS_ERROR;
2612 fnd_message.set_name('ONT', 'OE_ITEM_VALIDATION_FAILED');
2613 OE_MSG_PUB.add;
2614 END IF;
2615
2616 END IF;
2617
2618 if l_debug_level > 0 then
2619 oe_debug_pub.add('before logging request for item uniqueness');
2620 end if;
2621
2622 --validate item uniqueness
2623 OE_Delayed_Requests_Pvt.Log_Request(p_Entity_Code =>
2624 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE ,
2625 p_Entity_Id => p_line_rec.line_id,
2626 p_requesting_entity_code =>
2627 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
2628 p_requesting_entity_id => p_line_rec.line_id,
2629 p_request_type => 'VALIDATE_BLANKET_INV_ITEM',
2630 p_param1 => p_line_rec.inventory_item_id,
2631 p_param2 => p_line_rec.header_id,
2632 p_param3 => p_line_rec.item_identifier_type,
2633 p_param4 => p_line_rec.ordered_item_id, --bug6826787
2634 p_param5 => p_line_rec.ordered_item, --bug6826787
2635 p_date_param1 => p_line_rec.start_date_active,
2636 p_date_param2 => p_line_rec.end_date_active,
2637 x_return_status => l_return_status);
2638 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2639 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2640 END IF;
2641
2642
2643
2644 END IF; --if released amount
2645
2646 END IF; --if item changing
2647
2648
2649 -- Validate Ship to
2650
2651 IF p_line_rec.ship_to_org_id IS NOT NULL AND
2652 ( NOT OE_GLOBALS.EQUAL(p_line_rec.ship_to_org_id ,l_old_line_rec.ship_to_org_id) OR
2653 NOT OE_GLOBALS.EQUAL(p_line_rec.sold_to_org_id ,l_old_line_rec.sold_to_org_id)) THEN
2654 -- ER 5743580
2655 IF ( NOT Validate_Ship_To_Org(p_line_rec.ship_to_org_id,
2656 p_line_rec.sold_to_org_id )) THEN
2657 if l_debug_level > 0 then
2658 oe_debug_pub.add ('Blanket In: No data found',2);
2659 end if;
2660 x_return_status := FND_API.G_RET_STS_ERROR;
2661 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
2662 FND_MESSAGE.SET_TOKEN('ATTRIBUTE'
2663 , OE_Order_Util.Get_Attribute_Name('ship_to_org_id'));
2664 OE_MSG_PUB.Add;
2665 END IF;
2666 END IF; -- Ship to
2667
2668 -- Deliver to Org id depends on sold to org.
2669 if l_debug_level > 0 then
2670 oe_debug_pub.add('Validating deliver_to_org_id :'|| to_char(p_line_rec.deliver_to_org_id),2);
2671 oe_debug_pub.add(' Customer Relations :'|| g_customer_relations, 1);
2672 end if;
2673 IF p_line_rec.deliver_to_org_id IS NOT NULL AND
2674 ( NOT OE_GLOBALS.EQUAL(p_line_rec.deliver_to_org_id,l_old_line_rec.deliver_to_org_id) OR
2675 NOT OE_GLOBALS.EQUAL(p_line_rec.sold_to_org_id ,l_old_line_rec.sold_to_org_id)) THEN
2676 -- ER 5743580
2677 IF NOT (Validate_Deliver_To_Org(p_line_rec.deliver_to_org_id,
2678 p_line_rec.sold_to_org_id )) THEN
2679
2680 x_return_status := FND_API.G_RET_STS_ERROR;
2681 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
2682 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2683 OE_Order_Util.Get_Attribute_Name('deliver_to_org_id'));
2684 OE_MSG_PUB.Add;
2685 END IF;
2686
2687 END IF; -- Deliver to
2688
2689 -- Invoice to Org id depends on sold to org.
2690
2691 IF p_line_rec.invoice_to_org_id IS NOT NULL AND
2692 ( NOT OE_GLOBALS.EQUAL(p_line_rec.invoice_to_org_id ,l_old_line_rec.invoice_to_org_id) OR
2693 NOT OE_GLOBALS.EQUAL(p_line_rec.sold_to_org_id ,l_old_line_rec.sold_to_org_id)) THEN
2694 -- ER 5743580
2695 IF NOT ( Validate_Invoice_To_Org ( p_line_rec.invoice_to_org_id,
2696 p_line_rec.sold_to_org_id )) THEN
2697 x_return_status := FND_API.G_RET_STS_ERROR;
2698 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
2699 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2700 OE_Order_Util.Get_Attribute_Name('invoice_to_org_id'));
2701 OE_MSG_PUB.Add;
2702 END IF;
2703 END IF; -- Invoice to org
2704
2705 if l_debug_level > 0 then
2706 oe_debug_pub.add('Blanket In validate entity 3');
2707 end if;
2708
2709
2710 -- Date Validations
2711 --Changes made for Bug No 5528599 start
2712 if (p_line_rec.end_date_active is not NULL and
2713 (p_line_rec.start_date_active)
2714 > (p_line_rec.end_date_active)) THEN
2715 if ( nvl(p_line_rec.source_document_type_id,0) = 2 --bug#5528507
2716 AND p_line_rec.operation = OE_GLOBALS.G_OPR_CREATE)
2717 then
2718 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_DATE_RANGE');
2719 OE_MSG_PUB.ADD;
2720 oe_debug_pub.add('1: Not Setting Error',1);
2721
2722 else
2723 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_DATE_RANGE');
2724 OE_MSG_PUB.ADD;
2725 oe_debug_pub.add('1: Setting Error',1);
2726 x_return_status := FND_API.G_RET_STS_ERROR;
2727 end if;
2728 --Changes made for Bug No 5528599
2729 end if;
2730
2731 --line start date must be after header date range
2732 if (p_line_rec.start_date_active < g_header_rec.start_date_active)
2733 then
2734 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_END_DATE_CONFLICT');
2735 OE_MSG_PUB.ADD;
2736 x_return_status := FND_API.G_RET_STS_ERROR;
2737 end if;
2738
2739 -- if header end date exists, line end date cannot be null
2740 -- and it cannot be greater than header end date
2741 if g_header_rec.end_date_active is not NULL then
2742 if p_line_rec.end_date_active is NULL
2743 or (p_line_rec.end_date_active
2744 > g_header_rec.end_date_active)
2745 then
2746 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_END_DATE_CONFLICT');
2747 OE_MSG_PUB.ADD;
2748 x_return_status := FND_API.G_RET_STS_ERROR;
2749 end if;
2750 end if;
2751
2752 if l_debug_level > 0 then
2753 oe_debug_pub.add('Blanket In validate entity 4, status :'||
2754 x_return_status);
2755 end if;
2756
2757 -- pricing uom is required if it is a blanket price list
2758 -- and ordered UOM is null
2759 IF p_line_rec.order_quantity_uom IS NULL THEN
2760 IF (g_new_price_list AND (p_line_rec.pricing_uom IS NULL)) THEN
2761 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
2762 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2763 OE_Order_Util.Get_Attribute_Name('PRICING_QUANTITY_UOM'));
2764 OE_MSG_PUB.Add;
2765 ELSIF p_line_rec.price_list_id IS NOT NULL THEN
2766 IF IS_BLANKET_PRICE_LIST(p_price_list_id => p_line_rec.price_list_id)
2767 AND p_line_rec.pricing_uom IS NULL THEN
2768 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
2769 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2770 OE_Order_Util.Get_Attribute_Name('PRICING_QUANTITY_UOM'));
2771 OE_MSG_PUB.Add;
2772 END IF;
2773 END IF;
2774 END IF;
2775
2776 IF NOT g_new_price_list AND
2777 p_line_rec.price_list_id IS NULL AND
2778 (p_line_rec.enforce_price_list_flag = 'Y') THEN
2779 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
2780 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2781 OE_Order_UTIL.Get_Attribute_Name('PRICE_LIST_ID'));
2782 OE_MSG_PUB.ADD;
2783 x_return_status := FND_API.G_RET_STS_ERROR;
2784 END IF;
2785
2786 -- UOM is required if any of the quantities are given on the blanket line
2787 IF p_line_rec.order_quantity_uom IS NULL AND
2788 (p_line_rec.Blanket_Min_Quantity IS NOT NULL
2789 OR p_line_rec.Blanket_Max_Quantity IS NOT NULL
2790 OR p_line_rec.Min_Release_Quantity IS NOT NULL
2791 OR p_line_rec.Max_Release_Quantity IS NOT NULL) THEN
2792 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_QUANTITY_UOM');
2793 OE_MSG_PUB.ADD;
2794 x_return_status := FND_API.G_RET_STS_ERROR;
2795
2796 END IF;
2797
2798 -- Bug 8770382 Start
2799
2800 If (p_line_rec.blanket_max_quantity < p_line_rec.released_quantity)
2801 and ((l_old_line_rec.blanket_max_quantity >= l_old_line_rec.released_quantity)
2802 or (Nvl(l_old_line_rec.blanket_max_quantity,0) = 0))
2803 and (p_line_rec.override_blanket_controls_flag = 'N') then
2804
2805 fnd_message.set_name('ONT','OE_BSA_REL_QUANTITY');
2806 FND_MESSAGE.SET_TOKEN('VALUE',l_old_line_rec.released_quantity);
2807 OE_MSG_PUB.ADD;
2808 x_return_status := FND_API.G_RET_STS_ERROR;
2809
2810 elsif (p_line_rec.blanket_max_amount < p_line_rec.released_amount)
2811 and ((l_old_line_rec.blanket_max_amount >= l_old_line_rec.released_amount)
2812 or (nvl(l_old_line_rec.blanket_max_amount,0) = 0))
2813 and (p_line_rec.override_blanket_controls_flag = 'N') then
2814
2815 fnd_message.set_name('ONT','OE_BSA_REL_AMOUNT');
2816 FND_MESSAGE.SET_TOKEN('VALUE',l_old_line_rec.released_amount);
2817 OE_MSG_PUB.ADD;
2818 x_return_status := FND_API.G_RET_STS_ERROR;
2819
2820
2821 end if;
2822
2823 -- Bug 8770382 End
2824
2825
2826
2827 -- Validate min/max limits
2828 Validate_Min_Max_Range(p_line_rec.Blanket_Min_Quantity,
2829 p_line_rec.blanket_max_quantity,
2830 'BLANKET_LINE_QUANTITY', x_return_status);
2831 Validate_Min_Max_Range(p_line_rec.Min_release_quantity,
2832 p_line_rec.Max_release_quantity,
2833 'BLANKET_LINE_RELEASE_QUANTITY', x_return_status);
2834 Validate_Min_Max_Range(p_line_rec.Min_release_amount,
2835 p_line_rec.Max_release_amount,
2836 'BLANKET_LINE_RELEASE_AMOUNT', x_return_status);
2837 Validate_Min_Max_Range(p_line_rec.blanket_min_amount,
2838 p_line_rec.blanket_max_amount,
2839 'BLANKET_LINE_AMOUNT', x_return_status);
2840 /*
2841 IF p_line_rec.blanket_max_amount > g_header_rec.blanket_max_amount THEN
2842 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_LINE_MIN_MAX_VALUES');
2843 OE_MSG_PUB.ADD;
2844 x_return_status := FND_API.G_RET_STS_ERROR;
2845 END IF;
2846 */
2847 IF p_line_rec.min_release_amount > p_line_rec.blanket_max_amount OR
2848 p_line_rec.max_release_amount > p_line_rec.blanket_max_amount THEN
2849 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_LINE_MAX_AMOUNT');
2850 OE_MSG_PUB.ADD;
2851 x_return_status := FND_API.G_RET_STS_ERROR;
2852
2853 END IF;
2854
2855 IF p_line_rec.min_release_quantity > p_line_rec.blanket_max_quantity OR
2856 p_line_rec.max_release_quantity > p_line_rec.blanket_max_quantity THEN
2857 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_LINE_MAX_QUANTITY');
2858 OE_MSG_PUB.ADD;
2859 x_return_status := FND_API.G_RET_STS_ERROR;
2860
2861 END IF;
2862
2863 IF p_line_rec.operation = oe_globals.g_opr_update THEN
2864
2865 if l_debug_level > 0 then
2866 oe_debug_pub.add('Blanket In validate entity 4: update');
2867 end if;
2868
2869 --not allowed to change any attributes on a previously closed blanket
2870 IF p_line_rec.end_date_active < trunc(sysdate) and
2871 l_old_line_rec.end_date_active < trunc(sysdate) THEN
2872 x_return_status := FND_API.G_RET_STS_ERROR;
2873 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_ATTR_CLOSED');
2874 OE_MSG_PUB.Add;
2875 END IF;
2876 --Srini
2877 --oe_blanket_util.Get_Inventory_Item(p_x_line_rec => p_line_rec,
2878 -- x_return_status => l_return_status);
2879 --End srini
2880 --display warning if we haven't fulfilled minimum requirements
2881
2882
2883 IF NOT OE_GLOBALS.Equal(p_line_rec.end_date_active, l_old_line_rec.end_date_active) AND
2884 p_line_rec.end_date_active <= trunc(sysdate) AND
2885 p_line_rec.override_blanket_controls_flag = 'N' THEN
2886 IF nvl(p_line_rec.released_amount,0) < p_line_rec.blanket_min_amount THEN
2887 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_CLOSE_MIN_VALUES');
2888 OE_MSG_PUB.ADD;
2889 if l_debug_level > 0 then
2890 oe_debug_pub.add('Blanket line close min amount ');
2891 end if;
2892
2893 ELSIF nvl(p_line_rec.released_quantity,0) < p_line_rec.blanket_min_quantity THEN
2894 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_CLOSE_MIN_VALUES');
2895 OE_MSG_PUB.ADD;
2896 if l_debug_level > 0 then
2897 oe_debug_pub.add('Blanket line close min quantity ');
2898 end if;
2899 END IF;
2900 END IF;
2901
2902 --some fields are not allowed to update if release exists against line
2903 IF (p_line_rec.released_amount > 0) THEN
2904 IF NOT OE_GLOBALS.Equal (p_line_rec.order_quantity_uom,
2905 l_old_line_rec.order_quantity_uom) THEN
2906 x_return_status := FND_API.G_RET_STS_ERROR;
2907 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_LINE_ATTRIBUTE');
2908 fnd_message.set_token('ATTRIBUTE',
2909 OE_Order_UTIL.Get_Attribute_Name('ORDER_QUANTITY_UOM'));
2910 OE_MSG_PUB.Add;
2911 END IF;
2912 END IF;
2913
2914 /* IF NOT OE_GLOBALS.EQUAL (p_line_rec.end_date_active, l_old_line_rec.end_date_active) THEN
2915 --validate item uniqueness
2916 OE_Delayed_Requests_Pvt.Log_Request(p_Entity_Code =>
2917 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE ,
2918 p_Entity_Id => p_line_rec.line_id,
2919 p_requesting_entity_code =>
2920 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
2921 p_requesting_entity_id => p_line_rec.line_id,
2922 p_request_type => 'VALIDATE_BLANKET_INV_ITEM',
2923 p_param1 => p_line_rec.inventory_item_id,
2924 p_param2 => p_line_rec.header_id,
2925 p_param3 => p_line_rec.item_identifier_type,
2926 p_param4 => p_line_rec.ordered_item_id, --bug6826787
2927 p_param5 => p_line_rec.ordered_item, --bug6826787
2928 p_date_param1 => p_line_rec.start_date_active,
2929 p_date_param2 => p_line_rec.end_date_active,
2930 x_return_status => l_return_status);
2931
2932 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2933 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2934 END IF;
2935
2936 END IF;*/
2937
2938 IF p_line_rec.end_date_active IS NOT NULL THEN
2939 BEGIN
2940 SELECT 'ERROR'
2941 INTO l_dummy
2942 FROM OE_ORDER_LINES
2943 WHERE trunc(request_date) > trunc(p_line_rec.end_date_active)
2944 --- Bug 14487632, FP of 14469059 Start
2945 AND OPEN_FLAG = 'Y'
2946 --- Bug 14487632, FP of 14469059 End
2947 AND BLANKET_NUMBER = p_line_rec.order_number
2948 AND BLANKET_LINE_NUMBER = p_line_rec.line_number
2949 AND ROWNUM = 1;
2950
2951 IF l_dummy = 'ERROR' THEN
2952 x_return_status := FND_API.G_RET_STS_ERROR;
2953 fnd_message.set_name('ONT', 'OE_BLKT_LINE_RELEASE_END_DATE');
2954 OE_MSG_PUB.Add;
2955 END IF;
2956
2957 EXCEPTION
2958 WHEN NO_DATA_FOUND THEN
2959 NULL; --no rows with conflicting end dates
2960 END;
2961 END IF;
2962
2963 /*
2964 -- Bug 2792852 => pricing uom is not stored on the blanket line, it
2965 -- is derived from the list_line_id in the forms post-query.
2966 -- So it will always be null on the old rec thus this check will
2967 -- always post error even if user was updating some other field
2968 -- on the blanket line.
2969 -- Therefore commenting out NOCOPY {file.sql.39 change} the check, logging of price list
2970 -- line creation is anyway restricted to line CREATE operation.
2971 oe_debug_pub.add('old pricing uom :'||l_old_line_rec.pricing_uom);
2972 oe_debug_pub.add('new pricing uom :'||p_line_rec.pricing_uom);
2973 --pricing uom not allowed to change if blanket price list
2974 if NOT OE_GLOBALS.EQUAL(p_line_rec.pricing_uom,
2975 l_old_line_rec.pricing_uom) THEN
2976 if (g_new_price_list) THEN
2977 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_UPDATE_LINE_ATTRIBUTE');
2978 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2979 OE_Order_UTIL.Get_Attribute_Name('PRICING_QUANTITY_UOM'));
2980 OE_MSG_PUB.ADD;
2981 x_return_status := FND_API.G_RET_STS_ERROR;
2982 elsif p_line_rec.price_list_id IS NOT NULL THEN
2983 if IS_BLANKET_PRICE_LIST(p_price_list_id => p_line_rec.price_list_id) THEN
2984 x_return_status := FND_API.G_RET_STS_ERROR;
2985 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_UPDATE_LINE_ATTRIBUTE');
2986 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2987 OE_Order_UTIL.Get_Attribute_Name('PRICING_QUANTITY_UOM'));
2988 OE_MSG_PUB.ADD;
2989 x_return_status := FND_API.G_RET_STS_ERROR;
2990 end if;
2991 end if;
2992 end if;
2993 */
2994
2995 if l_debug_level > 0 then
2996 oe_debug_pub.add('Blanket In validate entity update 1');
2997 end if;
2998 if NOT OE_GLOBALS.EQUAL(p_line_rec.released_amount,
2999 l_old_line_rec.released_amount) THEN
3000 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_UPDATE_LINE_ATTRIBUTE');
3001 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Released Amount');
3002 OE_MSG_PUB.ADD;
3003 x_return_status := FND_API.G_RET_STS_ERROR;
3004 end if;
3005
3006 if NOT OE_GLOBALS.EQUAL(p_line_rec.returned_amount,
3007 l_old_line_rec.returned_amount) THEN
3008 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_UPDATE_LINE_ATTRIBUTE');
3009 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Returned Amount');
3010 OE_MSG_PUB.ADD;
3011 x_return_status := FND_API.G_RET_STS_ERROR;
3012 end if;
3013
3014 if NOT OE_GLOBALS.EQUAL(p_line_rec.released_quantity,
3015 Round(l_old_line_rec.released_quantity, 6)) THEN --round() added for bug 9587613
3016 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_UPDATE_LINE_ATTRIBUTE');
3017 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Released Quantity');
3018 OE_MSG_PUB.ADD;
3019 x_return_status := FND_API.G_RET_STS_ERROR;
3020 end if;
3021
3022 if NOT OE_GLOBALS.EQUAL(p_line_rec.fulfilled_quantity,
3023 Round(l_old_line_rec.fulfilled_quantity, 6)) THEN --round() added for bug 9587613
3024 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_UPDATE_LINE_ATTRIBUTE');
3025 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Fulfilled Quantity');
3026 OE_MSG_PUB.ADD;
3027 x_return_status := FND_API.G_RET_STS_ERROR;
3028 end if;
3029
3030 if NOT OE_GLOBALS.EQUAL(p_line_rec.fulfilled_amount,
3031 l_old_line_rec.fulfilled_amount) THEN
3032 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_UPDATE_LINE_ATTRIBUTE');
3033 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Fulfilled Amount');
3034 OE_MSG_PUB.ADD;
3035 x_return_status := FND_API.G_RET_STS_ERROR;
3036 end if;
3037
3038 if NOT OE_GLOBALS.EQUAL(p_line_rec.returned_quantity,
3039 Round(l_old_line_rec.returned_quantity, 6)) THEN --round() added for bug 9587613
3040 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_UPDATE_LINE_ATTRIBUTE');
3041 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Returned Quantity');
3042 OE_MSG_PUB.ADD;
3043 x_return_status := FND_API.G_RET_STS_ERROR;
3044 end if;
3045 if l_debug_level > 0 then
3046 oe_debug_pub.add('Blanket In validate entity update 2');
3047 end if;
3048
3049 END IF; --if g_opr_update
3050
3051
3052 ---------------------------------------------------------------------
3053 -- Bug 3193220
3054 -- Expiration Date cannot be less than sysdate
3055 ---------------------------------------------------------------------
3056 --Changes made for Bug No 5528599
3057 if (NOT OE_GLOBALS.EQUAL(trunc(p_line_rec.end_date_active),
3058 trunc(l_old_line_rec.end_date_active))
3059 AND trunc(p_line_rec.end_date_active) < trunc(sysdate))
3060 THEN
3061 oe_debug_pub.add('2:source_document_type_id :'|| p_line_rec.source_document_type_id,1);
3062 oe_debug_pub.add('2:source_document_line_id :'|| p_line_rec.source_document_line_id,1);
3063
3064 if ( nvl(p_line_rec.source_document_type_id,0) = 2 --bug#5528507
3065 AND p_line_rec.operation = OE_GLOBALS.G_OPR_CREATE)
3066 then
3067 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_DATE_RANGE');
3068 OE_MSG_PUB.ADD;
3069 oe_debug_pub.add('2: Not Setting Error',1);
3070
3071 else
3072 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_DATE_RANGE');
3073 OE_MSG_PUB.ADD;
3074 x_return_status := FND_API.G_RET_STS_ERROR;
3075 oe_debug_pub.add('2: Setting Error',1);
3076 end if;
3077 end if;
3078 --Changes made for Bug No 5528599
3079 -- End Expiration Date < sysdate check
3080
3081
3082
3083 -- Bug 2792852
3084 -- Price list lines can only be created for new blanket lines.
3085 -- Comment out NOCOPY /* file.sql.39 change */ this if check
3086 -- 11i10 - also support creation of new price list lines when
3087 -- blanket line is updated with list price information i.e. list
3088 -- price was originally null on the line.
3089 -- Note that it's not supported if list price existed before
3090 -- and user tries to update list price itself.
3091 --IF p_line_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
3092
3093 --only add line information if new price list
3094 -- This if is for the scenario where price list is also being
3095 -- created i.e. blanket header with new price list is being
3096 -- created.
3097 IF (g_new_price_list AND p_line_rec.price_list_id IS NULL)
3098 THEN
3099
3100 if l_debug_level > 0 then
3101 oe_debug_pub.add('log CREATE_BLANKET_PRICE_LIST');
3102 end if;
3103
3104 --for bug 3229225.Commented out NOCOPY /* file.sql.39 change */ the If condition and added modified condition
3105 -- IF p_line_rec.unit_list_price IS NOT NULL
3106 IF NOT OE_GLOBALS.EQUAL(p_line_rec.unit_list_price,p_old_line_rec.unit_list_price)
3107 THEN
3108 oe_delayed_requests_pvt.Log_request(p_Entity_Code =>
3109 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
3110 p_Entity_Id => p_line_rec.line_id,
3111 p_requesting_entity_code =>
3112 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
3113 p_requesting_entity_id => p_line_rec.line_id,
3114 p_request_type => 'CREATE_BLANKET_PRICE_LIST',
3115 p_param1=> p_line_rec.unit_list_price,
3116 p_param2 => nvl(p_line_rec.pricing_uom,
3117 p_line_rec.order_quantity_uom),
3118 p_param3 => p_line_rec.inventory_item_id,
3119 p_param4 => p_line_rec.item_identifier_type,
3120 -- 11i10 Pricing Changes
3121 -- Add header_id, sold_to_org and ordered_item parameters
3122 p_param6 => p_line_rec.header_id,
3123 p_param7 => p_line_rec.sold_to_org_id,
3124 p_param8 => p_line_rec.ordered_item_id,
3125 x_return_status => l_return_status );
3126 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3127 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3128 END IF;
3129 END IF;
3130
3131 -- This if is for the scenario where either new blanket lines
3132 -- with price information are being added OR existing blanket
3133 -- lines with null price are being updated with list price.
3134 -- 11i10 Pricing Changes
3135 ELSIF IS_BLANKET_PRICE_LIST(p_price_list_id => p_line_rec.price_list_id
3136 ,p_blanket_header_id => p_line_rec.header_id)
3137 OR (p_line_rec.price_list_id IS NULL
3138 AND g_header_rec.new_price_list_id IS NOT NULL)
3139 THEN
3140 -- Only for release before 11i10 check if header and line price list
3141 -- are same.
3142 IF (OE_Code_Control.Get_Code_Release_Level < '110510'
3143 AND OE_GLOBALS.Equal(p_line_rec.price_list_id, g_header_rec.price_list_id))
3144 OR OE_Code_Control.Get_Code_Release_Level >= '110510'
3145 THEN
3146
3147 if l_debug_level > 0 then
3148 oe_debug_pub.add('qp list line id :'||p_line_rec.qp_list_line_id);
3149 end if;
3150
3151
3152 --for bug 3229225.Commented out NOCOPY /* file.sql.39 change */ the If condition and added modified condition
3153 -- IF p_line_rec.unit_list_price IS NOT NULL
3154 -- AND p_line_rec.qp_list_line_id IS NULL THEN
3155
3156 IF (NOT OE_GLOBALS.EQUAL(p_line_rec.unit_list_price,p_old_line_rec.unit_list_price))
3157 OR (p_line_rec.operation = OE_GLOBALS.G_OPR_CREATE AND
3158 p_line_rec.unit_list_price IS NOT NULL) --Bug#4694968
3159 THEN
3160
3161 -- Bug 3380740
3162 -- Log the add price list line if price changes and list
3163 -- line does not exist
3164 if p_line_rec.qp_list_line_id IS NOT NULL then
3165
3166 BEGIN
3167
3168 SELECT 'Y'
3169 INTO l_list_line_exists
3170 FROM QP_LIST_LINES
3171 WHERE LIST_LINE_ID = p_line_rec.qp_list_line_id;
3172
3173 EXCEPTION
3174 WHEN NO_DATA_FOUND THEN
3175 l_list_line_exists := 'N';
3176 END;
3177
3178 end if;
3179
3180 if l_list_line_exists = 'N' THEN
3181
3182 if l_debug_level > 0 then
3183 oe_debug_pub.add('log ADD_BLANKET_PRICE_LIST_LINE');
3184 end if;
3185
3186 oe_delayed_requests_pvt.Log_request(p_Entity_Code =>
3187 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
3188 p_Entity_Id => p_line_rec.line_id,
3189 p_requesting_entity_code =>
3190 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
3191 p_requesting_entity_id => p_line_rec.line_id,
3192 p_request_type => 'ADD_BLANKET_PRICE_LIST_LINE',
3193 p_param1=> p_line_rec.unit_list_price,
3194 p_param2 => nvl(p_line_rec.pricing_uom,
3195 p_line_rec.order_quantity_uom),
3196 p_param3 => p_line_rec.inventory_item_id,
3197 p_param4 => p_line_rec.item_identifier_type,
3198 -- 11i10 Pricing Changes
3199 -- Send header new price list if line price list is null
3200 -- Add header_id, sold_to_org and ordered_item parameters
3201 p_param5 => nvl(p_line_rec.price_list_id,
3202 g_header_rec.new_price_list_id),
3203 p_param6 => p_line_rec.header_id,
3204 p_param7 => p_line_rec.sold_to_org_id,
3205 p_param8 => p_line_rec.ordered_item_id,
3206 x_return_status => x_return_status );
3207
3208 end if; -- if list line does not exist
3209
3210 END IF; -- if list price changes
3211
3212 ELSIF p_line_rec.price_list_id IS NOT NULL THEN
3213 x_return_status := FND_API.G_RET_STS_ERROR;
3214 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
3215 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3216 OE_Order_UTIL.Get_Attribute_Name('UNIT_LIST_PRICE'));
3217 OE_MSG_PUB.ADD;
3218 END IF;
3219
3220 END IF; --if g_new_price_list
3221
3222 --END IF; -- if operation is CREATE
3223
3224 --for bug 3309427
3225 --Log request to clear out NOCOPY /* file.sql.39 change */ unit price if the Price list field is updated to a non blanket pricelist.
3226 IF((NOT IS_BLANKET_PRICE_LIST(p_price_list_id => p_line_rec.price_list_id
3227 ,p_blanket_header_id => p_line_rec.header_id))
3228 AND (p_line_rec.qp_list_line_id is not null))
3229 THEN
3230 if l_debug_level > 0 then
3231 oe_debug_pub.add('qp list line id :'||p_line_rec.qp_list_line_id);
3232 oe_debug_pub.add('Log delayed request: CLEAR_BLANKET_PRICE_LIST_LINE');
3233 end if;
3234
3235 oe_delayed_requests_pvt.Log_request(p_Entity_Code =>
3236 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
3237 p_Entity_Id => p_line_rec.line_id,
3238 p_requesting_entity_code =>
3239 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
3240 p_requesting_entity_id => p_line_rec.line_id,
3241 p_request_type => OE_GLOBALS.G_CLEAR_BLKT_PRICE_LIST_LINE,
3242 p_param1=> p_line_rec.qp_list_line_id,
3243 p_param2 => g_header_rec.new_price_list_id,
3244 p_param3 => p_line_rec.price_list_id,
3245 p_param4 => p_line_rec.header_id,
3246 x_return_status => x_return_status );
3247 END IF;
3248
3249 -- 11i10 Pricing Changes Start
3250 -- Log request to create new discount line
3251 IF NOT OE_GLOBALS.EQUAL(p_line_rec.discount_percent,
3252 p_old_line_rec.discount_percent)
3253 OR NOT OE_GLOBALS.EQUAL(p_line_rec.discount_amount,
3254 p_old_line_rec.discount_amount)
3255 OR (p_line_rec.operation = OE_GLOBALS.G_OPR_CREATE AND --bug#4691643
3256 (p_line_rec.discount_amount IS NOT NULL OR
3257 p_line_rec.discount_percent IS NOT NULL))
3258 THEN
3259
3260 IF p_line_rec.modifier_list_line_id IS NOT NULL
3261 THEN
3262 oe_debug_pub.add('modifier list line id is not null');
3263 fnd_message.set_name('ONT','OE_BLKT_CANNOT_UPDATE_DIS');
3264 oe_msg_pub.add;
3265 x_return_status := FND_API.G_RET_STS_ERROR;
3266 ELSIF g_header_rec.new_modifier_list_name IS NULL
3267 AND g_header_rec.new_modifier_list_id IS NULL
3268 THEN
3269 fnd_message.set_name('ONT','OE_BLKT_CANNOT_ENTER_DIS');
3270 oe_msg_pub.add;
3271 x_return_status := FND_API.G_RET_STS_ERROR;
3272 ELSIF p_line_rec.discount_percent IS NOT NULL
3273 AND p_line_rec.discount_amount IS NOT NULL
3274 THEN
3275 fnd_message.set_name('ONT','OE_BLKT_DISCOUNT_CONFLICT');
3276 oe_msg_pub.add;
3277 x_return_status := FND_API.G_RET_STS_ERROR;
3278 ELSE
3279 -- Log delayed request to create new modifier list line
3280 oe_delayed_requests_pvt.Log_request
3281 (p_entity_code => OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
3282 p_Entity_Id => p_line_rec.line_id,
3283 p_requesting_entity_code =>
3284 OE_BLANKET_pub.G_ENTITY_BLANKET_LINE,
3285 p_requesting_entity_id => p_line_rec.line_id,
3286 p_request_type => 'ADD_MODIFIER_LIST_LINE',
3287 p_param1 => p_line_rec.discount_percent,
3288 p_param2 => p_line_rec.discount_amount,
3289 p_param3 => p_line_rec.inventory_item_id,
3290 p_param4 => p_line_rec.item_identifier_type,
3291 p_param5 => nvl(p_line_rec.pricing_uom,
3292 p_line_rec.order_quantity_uom),
3293 p_param6 => p_line_rec.header_id,
3294 x_return_status => x_return_status );
3295 END IF;
3296
3297 END IF;
3298 -- 11i10 Pricing Changes End
3299
3300
3301 END IF; --bug 3443777, need to call validate entity for reasons capture
3302
3303 if l_debug_level > 0 then
3304 -- Done validating entity
3305 oe_debug_pub.add('Exit OE_BLANKET_UTIL.Validate ENTITY- Line',1);
3306 end if;
3307
3308 EXCEPTION
3309
3310 WHEN FND_API.G_EXC_ERROR THEN
3311
3312 x_return_status := FND_API.G_RET_STS_ERROR;
3313
3314 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3315
3316 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3317
3318 WHEN OTHERS THEN
3319
3320 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3321
3322 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3323 THEN
3324 OE_MSG_PUB.Add_Exc_Msg
3325 ( G_PKG_NAME
3326 , 'Validate Entity'
3327 );
3328 END IF;
3329
3330 END Validate_Entity;
3331
3332 PROCEDURE Validate_Entity
3333 ( p_header_rec IN OUT NOCOPY OE_Blanket_PUB.Header_rec_type
3334 , p_old_header_rec IN OE_Blanket_PUB.Header_rec_type := OE_Blanket_PUB.g_miss_header_rec
3335 , x_return_status OUT NOCOPY VARCHAR2
3336 )IS
3337 l_return_status varchar2(1);
3338 l_dummy varchar2(30);
3339 l_old_header_rec OE_Blanket_PUB.Header_rec_type := p_old_header_rec;
3340 l_db_version_number NUMBER;
3341 -- 11i10 Pricing Changes
3342 l_list_header_id NUMBER;
3343 l_new_pl_name VARCHAR2(240);
3344 l_site_use_code VARCHAR2(30);
3345 --
3346 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3347 --
3348 BEGIN
3349 x_return_status := FND_API.G_RET_STS_SUCCESS;
3350
3351 if l_debug_level > 0 then
3352 oe_debug_pub.add('Enter OE_BLANKET_UTIL.Validate_ENTITY- Header',1);
3353 oe_debug_pub.add('Operation :'||p_header_rec.operation);
3354 oe_debug_pub.add('new end date :'||p_header_rec.end_date_active);
3355 oe_debug_pub.add('old end date :'||l_old_header_rec.end_date_active);
3356 end if;
3357
3358 IF p_header_rec.operation = oe_globals.g_opr_update THEN
3359 if l_old_header_rec.header_id is null THEN
3360 Query_Header(
3361 p_header_id => p_header_rec.header_id,
3362 x_header_rec => l_old_header_Rec,
3363 x_return_status => l_return_status);
3364 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3365 x_return_status := l_return_status;
3366 END IF;
3367 end if;
3368 END IF;
3369
3370 -- Validate Last Updated By valued issue
3371 -- Added for a bug #6270818.
3372 IF p_header_rec.operation = oe_globals.g_opr_update
3373 THEN
3374 If p_header_rec.last_updated_by <> FND_GLOBAL.USER_ID or
3375 l_old_header_rec.last_updated_by <> FND_GLOBAL.USER_ID
3376 THEN
3377 p_header_rec.last_updated_by := FND_GLOBAL.USER_ID;
3378 l_old_header_rec.last_updated_by := FND_GLOBAL.USER_ID;
3379 END IF;
3380 p_header_rec.last_update_date := sysdate;
3381 l_old_header_rec.last_update_date := sysdate;
3382 END IF;
3383
3384 g_header_rec := p_header_rec;
3385
3386
3387 -- Validate Transaction Phase
3388 -- Added for Pack -j Srini.
3389 IF p_header_rec.operation = oe_globals.g_opr_create and
3390 oe_code_control.get_code_release_level >= '110510'
3391 THEN
3392 If p_header_rec.TRANSACTION_PHASE_CODE is null and
3393 l_old_header_rec.TRANSACTION_PHASE_CODE is null
3394 THEN
3395 p_header_rec.TRANSACTION_PHASE_CODE := 'F';
3396 l_old_header_rec.TRANSACTION_PHASE_CODE := 'F';
3397 END IF;
3398 END IF;
3399
3400 g_header_rec := p_header_rec;
3401
3402 -- Get Blanket Number
3403 IF NOT OE_GLOBALS.EQUAL(p_header_rec.order_type_id,
3404 l_old_header_rec.order_type_id) THEN
3405 IF p_header_rec.order_number is null or
3406 p_header_rec.order_number = FND_API.G_MISS_NUM
3407 Then
3408 get_order_number( p_x_header_rec => p_header_rec,
3409 x_return_status => l_return_status);
3410 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3411 x_return_status := l_return_status;
3412 END IF;
3413 End if;
3414 END IF;
3415
3416 -- Get Blanket Agreement Name For Null values
3417 -- Added for Pack -j Srini.
3418 IF oe_code_control.get_code_release_level >= '110510'
3419 THEN
3420 If p_header_rec.sales_document_name is null and
3421 l_old_header_rec.sales_document_name is null
3422 THEN
3423 p_header_rec.sales_document_name := p_header_rec.order_number;
3424 l_old_header_rec.sales_document_name := p_header_rec.order_number;
3425 END IF;
3426 END IF;
3427
3428 g_header_rec := p_header_rec;
3429
3430 -- Versioning/Reasons changes (moved to beginning for bug 3775937
3431 if OE_CODE_CONTROL.Code_Release_Level >= '110510' AND
3432 OE_GLOBALS.G_CAPTURED_REASON = 'V' THEN
3433 OE_GLOBALS.G_REASON_CODE := p_header_rec.revision_change_reason_code;
3434 OE_GLOBALS.G_REASON_COMMENTS := p_header_rec.revision_change_comments;
3435 OE_GLOBALS.G_CAPTURED_REASON := 'Y';
3436 end if;
3437
3438 -- Check Required attributes
3439 IF p_header_rec.header_id IS NULL THEN
3440 x_return_status := FND_API.G_RET_STS_ERROR;
3441 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
3442 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3443 OE_Order_UTIL.Get_Attribute_Name('header_id'));
3444 OE_MSG_PUB.Add;
3445 END IF;
3446
3447 IF p_header_rec.order_number IS NULL THEN
3448 x_return_status := FND_API.G_RET_STS_ERROR;
3449 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
3450 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3451 OE_Order_UTIL.Get_Attribute_Name('BLANKET_NUMBER'));
3452 OE_MSG_PUB.Add;
3453 END IF;
3454 --Enabling Pricing Agreements for pack J
3455 IF OE_CODE_CONTROL.Get_Code_Release_Level < '110510' THEN
3456 IF p_header_rec.sold_to_org_id IS NULL THEN
3457 x_return_status := FND_API.G_RET_STS_ERROR;
3458 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
3459 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3460 OE_Order_UTIL.Get_Attribute_Name('SOLD_TO_ORG_ID'));
3461 OE_MSG_PUB.Add;
3462 END IF;
3463 END IF;
3464
3465 IF p_header_rec.transactional_curr_code IS NULL THEN
3466 x_return_status := FND_API.G_RET_STS_ERROR;
3467 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
3468 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3469 OE_Order_UTIL.Get_Attribute_Name('TRANSACTIONAL_CURR_CODE'));
3470 OE_MSG_PUB.Add;
3471 END IF;
3472
3473 IF p_header_rec.start_date_active IS NULL THEN
3474 x_return_status := FND_API.G_RET_STS_ERROR;
3475 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
3476 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Activation Date');
3477 OE_MSG_PUB.Add;
3478 END IF;
3479
3480 ---------------------------------------------------------------------
3481 -- Bug 3193220
3482 -- Expiration Date cannot be less than sysdate
3483 ---------------------------------------------------------------------
3484 --Changes made for Bug No 5528599 start
3485 if (NOT OE_GLOBALS.EQUAL(trunc(p_header_rec.end_date_active),
3486 trunc(l_old_header_rec.end_date_active))
3487 AND trunc(p_header_rec.end_date_active) < trunc(sysdate))
3488 then
3489
3490 if ( nvl(p_header_rec.source_document_type_id,0) = 2) --bug#5528507
3491 AND p_header_rec.operation = OE_GLOBALS.G_OPR_CREATE
3492 then
3493 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_DATE_RANGE');
3494 OE_MSG_PUB.ADD;
3495 oe_debug_pub.add('3: Not Setting Error',1);
3496
3497 else
3498 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_DATE_RANGE');
3499 OE_MSG_PUB.ADD;
3500 x_return_status := FND_API.G_RET_STS_ERROR;
3501 oe_debug_pub.add('3: Setting Error',1);
3502 end if;
3503 end if;
3504 --Changes made for Bug No 5528599 start
3505 -- End Expiration Date < sysdate check
3506
3507 -- Validate Ship to
3508 IF p_header_rec.ship_to_org_id IS NOT NULL AND
3509 ( NOT OE_GLOBALS.EQUAL(p_header_rec.ship_to_org_id ,l_old_header_rec.ship_to_org_id) OR
3510 NOT OE_GLOBALS.EQUAL(p_header_rec.sold_to_org_id ,l_old_header_rec.sold_to_org_id)) THEN
3511 -- ER 5743580
3512 IF ( NOT Validate_Ship_To_Org(p_header_rec.ship_to_org_id,
3513 p_header_rec.sold_to_org_id )) THEN
3514 if l_debug_level > 0 then
3515 oe_debug_pub.add ('Blanket In: No data found',2);
3516 end if;
3517 x_return_status := FND_API.G_RET_STS_ERROR;
3518 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
3519 FND_MESSAGE.SET_TOKEN('ATTRIBUTE'
3520 , OE_Order_Util.Get_Attribute_Name('ship_to_org_id'));
3521 OE_MSG_PUB.Add;
3522 END IF;
3523
3524 END IF; -- Ship to
3525
3526
3527 -- hashraf start of pack J
3528
3529 -- Customer Location depends on Sold To Org
3530
3531 IF p_header_rec.sold_to_site_use_id IS NOT NULL AND
3532 ( NOT OE_GLOBALS.EQUAL(p_header_rec.sold_to_site_use_id
3533 ,p_old_header_rec.sold_to_site_use_id) OR
3534 NOT OE_GLOBALS.EQUAL(p_header_rec.sold_to_org_id
3535 ,p_old_header_rec.sold_to_org_id))
3536 THEN
3537
3538 BEGIN
3539
3540 SELECT 'VALID'
3541 INTO l_dummy
3542 FROM
3543 HZ_CUST_SITE_USES SITE,
3544 HZ_CUST_ACCT_SITES ACCT_SITE
3545 WHERE
3546 SITE.SITE_USE_ID = p_header_rec.sold_to_site_use_id
3547 AND SITE.SITE_USE_CODE = 'SOLD_TO'
3548 AND SITE.CUST_ACCT_SITE_ID = ACCT_SITE.CUST_ACCT_SITE_ID
3549 AND ACCT_SITE.CUST_ACCOUNT_ID = p_header_rec.sold_to_org_id
3550 AND SITE.STATUS = 'A'
3551 AND ACCT_SITE.STATUS='A';
3552
3553 -- Valid Customer Location
3554
3555 EXCEPTION
3556
3557 WHEN NO_DATA_FOUND THEN
3558 l_return_status := FND_API.G_RET_STS_ERROR;
3559 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
3560 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3561 OE_Order_Util.Get_Attribute_Name('SOLD_TO_SITE_USE_ID'));
3562 OE_MSG_PUB.Add;
3563
3564 WHEN OTHERS THEN
3565
3566 IF OE_MSG_PUB.Check_Msg_Level
3567 (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3568 THEN
3569
3570 OE_MSG_PUB.Add_Exc_Msg
3571 ( G_PKG_NAME ,
3572 'Record - Customer Location'
3573 );
3574 END IF;
3575
3576 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3577
3578 END;
3579
3580 END IF;
3581
3582 -- hashraf end of pack J
3583
3584 if l_debug_level > 0 then
3585 oe_debug_pub.add('Validating deliver_to_org_id :'|| to_char(p_header_rec.deliver_to_org_id),2);
3586 oe_debug_pub.add(' Customer Relations :'|| g_customer_relations, 1);
3587 end if;
3588 IF p_header_rec.deliver_to_org_id IS NOT NULL AND
3589 ( NOT OE_GLOBALS.EQUAL(p_header_rec.deliver_to_org_id,l_old_header_rec.deliver_to_org_id) OR
3590 NOT OE_GLOBALS.EQUAL(p_header_rec.sold_to_org_id ,l_old_header_rec.sold_to_org_id)) THEN
3591 -- ER 5743580
3592 IF NOT (Validate_Deliver_To_Org(p_header_rec.deliver_to_org_id,
3593 p_header_rec.sold_to_org_id )) THEN
3594
3595 x_return_status := FND_API.G_RET_STS_ERROR;
3596 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
3597 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3598 OE_Order_Util.Get_Attribute_Name('deliver_to_org_id'));
3599 OE_MSG_PUB.Add;
3600 END IF;
3601
3602 END if; -- Deliver to
3603
3604 -- Invoice to Org id depends on sold to org.
3605 IF p_header_rec.invoice_to_org_id IS NOT NULL AND
3606 ( NOT OE_GLOBALS.EQUAL(p_header_rec.invoice_to_org_id ,l_old_header_rec.invoice_to_org_id) OR
3607 NOT OE_GLOBALS.EQUAL(p_header_rec.sold_to_org_id ,l_old_header_rec.sold_to_org_id)) THEN
3608 -- ER 5743580
3609 IF NOT ( Validate_Invoice_To_Org ( p_header_rec.invoice_to_org_id,
3610 p_header_rec.sold_to_org_id )) THEN
3611 x_return_status := FND_API.G_RET_STS_ERROR;
3612 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
3613 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3614 OE_Order_Util.Get_Attribute_Name('invoice_to_org_id'));
3615 OE_MSG_PUB.Add;
3616 END IF;
3617
3618 END IF; -- Invoice to org
3619
3620 -- Sold to contact depends on Sold To Org
3621 IF p_header_rec.sold_to_contact_id IS NOT NULL AND
3622 ( NOT OE_GLOBALS.EQUAL(p_header_rec.sold_to_contact_id ,l_old_header_rec.sold_to_contact_id) OR
3623 NOT OE_GLOBALS.EQUAL(p_header_rec.sold_to_org_id ,l_old_header_rec.sold_to_org_id)) THEN
3624 BEGIN
3625
3626 SELECT 'VALID'
3627 INTO l_dummy
3628 FROM HZ_CUST_ACCOUNT_ROLES ACCT_ROLE
3629 WHERE ACCT_ROLE.CUST_ACCOUNT_ROLE_ID = p_header_rec.sold_to_contact_id
3630 AND ACCT_ROLE.CUST_ACCOUNT_ID = p_header_rec.sold_to_org_id
3631 AND ACCT_ROLE.ROLE_TYPE = 'CONTACT'
3632 AND ROWNUM = 1;
3633
3634 -- Valid Sold To Contact
3635 EXCEPTION
3636 WHEN NO_DATA_FOUND THEN
3637 x_return_status := FND_API.G_RET_STS_ERROR;
3638 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
3639 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3640 OE_Order_Util.Get_Attribute_Name('SOLD_TO_CONTACT_ID'));
3641 OE_MSG_PUB.Add;
3642 WHEN OTHERS THEN
3643 IF OE_MSG_PUB.Check_Msg_Level ( OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3644 OE_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME , 'Record - Sold To Contact');
3645 END IF;
3646 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3647 END; -- BEGIN
3648 END IF; -- Sold to contact needed validation.
3649
3650 if p_header_rec.start_date_active is not NULL and
3651 p_header_rec.end_date_active is not NULL and
3652 p_header_rec.start_date_active > p_header_rec.end_date_active then
3653 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_DATE_RANGE');
3654 OE_MSG_PUB.ADD;
3655 x_return_status := FND_API.G_RET_STS_ERROR;
3656 end if;
3657
3658 -- 11i10 Pricing Changes Start
3659 -- In prior releases, existing price list ID would store either
3660 -- the standard price list or new price list
3661 IF OE_CODE_CONTROL.Get_Code_Release_Level < '110510' THEN
3662
3663 IF p_header_rec.price_list_id IS NULL AND
3664 p_header_rec.price_list_name IS NOT NULL THEN
3665 BEGIN
3666 if l_debug_level > 0 then
3667 oe_debug_pub.add('Derive price_list_id',1);
3668 end if;
3669 -- <R12.MOAC> START Need to check why we need to pass ORG_ID?
3670 SELECT list_header_id
3671 INTO p_header_rec.price_list_id
3672 FROM qp_list_headers_vl
3673 WHERE list_type_code in ('PRL' ,'AGR')
3674 AND p_header_rec.price_list_name = name
3675 AND (((nvl(global_flag,'Y') = 'Y'
3676 OR orig_org_id = mo_global.get_current_org_id)
3677 AND qp_security.security_on = 'Y') or qp_security.security_on = 'N');
3678 -- <R12.MOAC> END
3679 EXCEPTION
3680 WHEN NO_DATA_FOUND THEN
3681 if l_debug_level > 0 then
3682 oe_debug_pub.add('New price list needs to be created',1);
3683 end if;
3684 g_new_price_list := true;
3685 END;
3686 END IF;
3687
3688 ELSE
3689
3690 -- In 11i10, new price list field will store the new blanket specific
3691 -- price list and existing price list ID will store the standard price
3692 -- list.
3693
3694 if l_debug_level > 0 then
3695 oe_debug_pub.add('pl name :'||p_header_rec.new_price_list_name);
3696 oe_debug_pub.add('old pl name :'||p_old_header_rec.new_price_list_name);
3697 oe_debug_pub.add('pl id :'||p_header_rec.new_price_list_id);
3698 oe_debug_pub.add('old pl id :'||p_old_header_rec.new_price_list_id);
3699 oe_debug_pub.add('ml name :'||p_header_rec.new_modifier_list_name);
3700 oe_debug_pub.add('old ml name :'||p_old_header_rec.new_modifier_list_name);
3701 oe_debug_pub.add('ml id :'||p_header_rec.new_modifier_list_id);
3702 oe_debug_pub.add('old ml id :'||p_old_header_rec.new_modifier_list_id);
3703 end if;
3704
3705 IF NOT OE_GLOBALS.EQUAL(p_header_rec.new_price_list_id,
3706 p_old_header_rec.new_price_list_id)
3707 THEN
3708
3709 -- Cannot enter ID for a new price list, only name
3710 fnd_message.set_name('ONT','OE_BLKT_CANT_ENTER_NEW_PL_ID');
3711 oe_msg_pub.add;
3712 x_return_status := FND_API.G_RET_STS_ERROR;
3713
3714 ELSIF p_header_rec.new_price_list_name IS NOT NULL
3715 -- Bug 3213174
3716 -- Changes from null to not null will be allowed
3717 AND p_old_header_rec.new_price_list_name IS NULL
3718 AND NOT OE_GLOBALS.EQUAL(p_header_rec.new_price_list_name
3719 ,p_old_header_rec.new_price_list_name
3720 )
3721 THEN
3722
3723 BEGIN
3724
3725 -- Check if name already exists
3726 SELECT list_header_id
3727 INTO l_list_header_id
3728 FROM qp_list_headers_vl
3729 WHERE name = p_header_rec.new_price_list_name
3730 AND rownum = 1;
3731
3732 fnd_message.set_name('ONT','OE_BLKT_PRICE_LIST_EXISTS');
3733 oe_msg_pub.add;
3734 x_return_status := FND_API.G_RET_STS_ERROR;
3735
3736 EXCEPTION
3737 WHEN NO_DATA_FOUND THEN
3738 g_new_price_list := true;
3739 END;
3740
3741 END IF;
3742
3743 IF NOT OE_GLOBALS.EQUAL(p_header_rec.new_modifier_list_id,
3744 p_old_header_rec.new_modifier_list_id)
3745 THEN
3746
3747 -- Cannot enter ID for a new modifier list, only name
3748 fnd_message.set_name('ONT','OE_BLKT_CANT_ENTER_MOD_LIST_ID');
3749 oe_msg_pub.add;
3750 x_return_status := FND_API.G_RET_STS_ERROR;
3751
3752 ELSIF p_header_rec.new_modifier_list_name IS NOT NULL
3753 -- Bug 3213174
3754 -- Changes from null to not null will be allowed
3755 AND p_old_header_rec.new_modifier_list_name IS NULL
3756 AND NOT OE_GLOBALS.EQUAL(p_header_rec.new_modifier_list_name
3757 ,p_old_header_rec.new_modifier_list_name
3758 )
3759 THEN
3760
3761 oe_debug_pub.add('check if ml exists');
3762
3763 BEGIN
3764
3765 -- Check if name already exists
3766 SELECT list_header_id
3767 INTO l_list_header_id
3768 FROM qp_list_headers_vl
3769 WHERE name = p_header_rec.new_modifier_list_name
3770 AND rownum = 1;
3771
3772 fnd_message.set_name('ONT','OE_BLKT_MOD_LIST_EXISTS');
3773 oe_msg_pub.add;
3774 x_return_status := FND_API.G_RET_STS_ERROR;
3775
3776 EXCEPTION
3777 WHEN NO_DATA_FOUND THEN
3778 g_new_modifier_list := true;
3779 END;
3780
3781 END IF;
3782
3783 END IF; -- End of code release level check
3784 -- 11i10 Pricing Changes End
3785
3786
3787 -- Apending Time component to End Date Active for Create or Update Operation.
3788 -- Pack J
3789 IF (p_header_rec.operation = oe_globals.g_opr_create) OR
3790 (p_header_rec.operation = oe_globals.g_opr_update)
3791 THEN
3792 IF NOT OE_GLOBALS.EQUAL(p_header_rec.end_date_active
3793 ,l_old_header_rec.end_date_active)
3794 THEN
3795 p_header_rec.end_date_active :=
3796 trunc(p_header_rec.end_date_active,'DD') +
3797 ((24*60*60)-1)/(24*60*60);
3798 END IF;
3799
3800
3801 END IF; -- End of WF time component changes
3802
3803
3804 Validate_Min_Max_Range(p_min_value => p_header_rec.Blanket_Min_amount,
3805 p_max_value => p_header_rec.Blanket_Max_amount,
3806 p_attribute => 'BLANKET_HEADER_AMOUNT', x_return_status => x_return_status);
3807
3808 IF p_header_rec.operation = oe_globals.g_opr_update THEN
3809 --validate for updates
3810
3811
3812 --commented because waiting for message
3813 --not allowed to change any attributes on a previously closed blanket
3814 IF p_header_rec.end_date_active < trunc(sysdate) and
3815 l_old_header_rec.end_date_active < trunc(sysdate) THEN
3816 x_return_status := FND_API.G_RET_STS_ERROR;
3817 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_ATTR_CLOSED');
3818 OE_MSG_PUB.Add;
3819 END IF;
3820
3821
3822 --display warning if we haven't fulfilled minimum requirements
3823 IF NOT OE_GLOBALS.Equal(p_header_rec.end_date_active, l_old_header_rec.end_date_active) AND
3824 p_header_rec.end_date_active <= trunc(sysdate) AND
3825 nvl(p_header_rec.released_amount,0) < p_header_rec.blanket_min_amount THEN
3826 if l_debug_level > 0 then
3827 oe_debug_pub.add('Blanket header close min amount ');
3828 end if;
3829 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_CLOSE_MIN_VALUES');
3830 OE_MSG_PUB.ADD;
3831 END IF;
3832
3833
3834 IF NOT OE_GLOBALS.Equal (p_header_rec.header_id,
3835 l_old_header_rec.header_id) THEN
3836 x_return_status := FND_API.G_RET_STS_ERROR;
3837 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_HDR_ATTRIBUTE');
3838 fnd_message.set_token('ATTRIBUTE',
3839 OE_Order_UTIL.Get_Attribute_Name('HEADER_ID'));
3840 OE_MSG_PUB.Add;
3841 END IF;
3842
3843 IF NOT OE_GLOBALS.Equal (p_header_rec.order_number,
3844 l_old_header_rec.order_number) THEN
3845 x_return_status := FND_API.G_RET_STS_ERROR;
3846 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_HDR_ATTRIBUTE');
3847 fnd_message.set_token('ATTRIBUTE',
3848 OE_Order_UTIL.Get_Attribute_Name('BLANKET_NUMBER'));
3849 OE_MSG_PUB.Add;
3850 END IF;
3851
3852 IF NOT OE_GLOBALS.Equal (p_header_rec.order_category_code,
3853 l_old_header_rec.order_category_code) THEN
3854 x_return_status := FND_API.G_RET_STS_ERROR;
3855 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_HDR_ATTRIBUTE');
3856 fnd_message.set_token('ATTRIBUTE',
3857 OE_Order_UTIL.Get_Attribute_Name('ORDER_CATEGORY_CODE'));
3858 OE_MSG_PUB.Add;
3859 END IF;
3860
3861 IF NOT OE_GLOBALS.Equal (p_header_rec.org_id,
3862 l_old_header_rec.org_id) THEN
3863 x_return_status := FND_API.G_RET_STS_ERROR;
3864 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_HDR_ATTRIBUTE');
3865 fnd_message.set_token('ATTRIBUTE',
3866 OE_Order_UTIL.Get_Attribute_Name('ORG_ID'));
3867 OE_MSG_PUB.Add;
3868 END IF;
3869
3870 --restricted from changing if releases exist
3871 IF p_header_rec.released_amount > 0 THEN
3872 IF NOT OE_GLOBALS.Equal (p_header_rec.sold_to_org_id,
3873 l_old_header_rec.sold_to_org_id) THEN
3874 x_return_status := FND_API.G_RET_STS_ERROR;
3875 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_HDR_ATTRIBUTE');
3876 fnd_message.set_token('ATTRIBUTE',
3877 OE_Order_UTIL.Get_Attribute_Name('SOLD_TO_ORG_ID'));
3878 OE_MSG_PUB.Add;
3879 END IF;
3880
3881 IF NOT OE_GLOBALS.Equal (p_header_rec.transactional_curr_code,
3882 l_old_header_rec.transactional_curr_code) THEN
3883 x_return_status := FND_API.G_RET_STS_ERROR;
3884 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_HDR_ATTRIBUTE');
3885 fnd_message.set_token('ATTRIBUTE',
3886 OE_Order_UTIL.Get_Attribute_Name('TRANSACTIONAL_CURR_CODE'));
3887 OE_MSG_PUB.Add;
3888 END IF;
3889
3890 IF NOT OE_GLOBALS.Equal (p_header_rec.start_date_active,
3891 l_old_header_rec.start_date_active) THEN
3892 x_return_status := FND_API.G_RET_STS_ERROR;
3893 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_HDR_ATTRIBUTE');
3894 fnd_message.set_token('ATTRIBUTE','Activation Date');
3895 OE_MSG_PUB.Add;
3896 END IF;
3897 END IF; --if releases exist
3898
3899 IF NOT OE_GLOBALS.Equal (p_header_rec.released_amount,
3900 l_old_header_rec.released_amount) THEN
3901 x_return_status := FND_API.G_RET_STS_ERROR;
3902 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_HDR_ATTRIBUTE');
3903 fnd_message.set_token('ATTRIBUTE','Released Amount');
3904 OE_MSG_PUB.Add;
3905 END IF;
3906
3907 IF NOT OE_GLOBALS.Equal (p_header_rec.returned_amount,
3908 l_old_header_rec.returned_amount) THEN
3909 x_return_status := FND_API.G_RET_STS_ERROR;
3910 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_HDR_ATTRIBUTE');
3911 fnd_message.set_token('ATTRIBUTE', 'Returned Amount');
3912 fnd_message.set_token('new amount', p_header_rec.returned_amount);
3913 fnd_message.set_token('old amount', l_old_header_rec.returned_amount);
3914 OE_MSG_PUB.Add;
3915 END IF;
3916
3917 IF NOT OE_GLOBALS.Equal (p_header_rec.fulfilled_amount,
3918 l_old_header_rec.fulfilled_amount) THEN
3919 x_return_status := FND_API.G_RET_STS_ERROR;
3920 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_HDR_ATTRIBUTE');
3921 fnd_message.set_token('ATTRIBUTE','Fulfilled Amount');
3922 fnd_message.set_token('new amount', p_header_rec.fulfilled_amount);
3923 fnd_message.set_token('old amount', l_old_header_rec.fulfilled_amount);
3924 OE_MSG_PUB.Add;
3925 END IF;
3926
3927
3928 -- Date Validations
3929
3930 IF p_header_rec.end_date_active IS NOT NULL
3931 AND NOT OE_GLOBALS.EQUAL(p_header_rec.end_date_active
3932 ,l_old_header_rec.end_date_active)
3933 THEN
3934
3935 IF (l_old_header_rec.end_date_active IS NOT NULL
3936 AND p_header_rec.end_date_active <
3937 l_old_header_rec.end_date_active)
3938 OR l_old_header_rec.end_date_active IS NULL
3939 THEN
3940
3941 -- check for conflicting end dates on blanket lines
3942 BEGIN
3943
3944 SELECT 'ERROR'
3945 INTO l_dummy
3946 FROM OE_BLANKET_LINES_EXT
3947 WHERE ORDER_NUMBER = p_header_rec.order_number
3948 AND END_DATE_ACTIVE > p_header_rec.end_date_active
3949 AND ROWNUM = 1;
3950
3951 IF l_dummy = 'ERROR' THEN
3952 x_return_status := FND_API.G_RET_STS_ERROR;
3953 fnd_message.set_name('ONT', 'OE_BLKT_END_DATE_CONFLICT');
3954 OE_MSG_PUB.Add;
3955 END IF;
3956
3957 EXCEPTION
3958 WHEN NO_DATA_FOUND THEN
3959 NULL;
3960 END;
3961
3962 -- check for existing releases that are not within these
3963 -- effectivity dates
3964 BEGIN
3965
3966 SELECT /* MOAC_SQL_NO_CHANGE */ 'ERROR'
3967 INTO l_dummy
3968 FROM OE_ORDER_LINES
3969 WHERE trunc(request_date) > trunc(p_header_rec.end_date_active)
3970 --- Bug 14487632, FP of 14469059 Start
3971 AND OPEN_FLAG = 'Y'
3972 --- Bug 14487632, FP of 14469059 End
3973 AND BLANKET_NUMBER = p_header_rec.order_number
3974 AND ROWNUM = 1;
3975 IF l_dummy = 'ERROR' THEN
3976 x_return_status := FND_API.G_RET_STS_ERROR;
3977 fnd_message.set_name('ONT', 'OE_BLKT_RELEASE_END_DATE');
3978 OE_MSG_PUB.Add;
3979 END IF;
3980
3981 EXCEPTION
3982 WHEN NO_DATA_FOUND THEN
3983 NULL;
3984 END;
3985
3986 END IF;
3987
3988 --check to see if we are cascading end dates to lines
3989 IF l_old_header_rec.end_date_active IS NULL
3990 AND x_return_status = FND_API.G_RET_STS_SUCCESS
3991 THEN
3992 BEGIN
3993 SELECT 'CASCADE'
3994 INTO l_dummy
3995 FROM OE_BLANKET_LINES_EXT
3996 WHERE ORDER_NUMBER = p_header_rec.order_number
3997 AND END_DATE_ACTIVE IS NULL
3998 AND ROWNUM = 1;
3999
4000 IF l_dummy = 'CASCADE' THEN
4001 OE_GLOBALS.G_CASCADING_REQUEST_LOGGED := TRUE;
4002
4003 --if cascading, check to see if minimum values are satisfied
4004 IF (p_header_rec.end_date_active <= trunc(sysdate)) THEN
4005 SELECT 'WARNING'
4006 INTO l_dummy
4007 FROM OE_BLANKET_LINES_EXT OLX, OE_BLANKET_LINES OL
4008 WHERE OLX.LINE_ID = OL.LINE_ID
4009 AND OLX.ORDER_NUMBER = p_header_rec.order_number
4010 AND END_DATE_ACTIVE IS NULL
4011 AND OVERRIDE_BLANKET_CONTROLS_FLAG = 'N'
4012 AND (BLANKET_LINE_MIN_AMOUNT < RELEASED_AMOUNT
4013 OR BLANKET_MIN_QUANTITY < RELEASED_QUANTITY)
4014 AND ROWNUM = 1;
4015
4016 IF l_dummy = 'WARNING' THEN
4017 fnd_message.set_name('ONT', 'OE_BLKT_CLOSE_MIN_VALUES');
4018 OE_MSG_PUB.Add;
4019 END IF;
4020 END IF;
4021 END IF;
4022
4023 EXCEPTION
4024 WHEN OTHERS THEN
4025 NULL;
4026 END;
4027 END IF;
4028 END IF;
4029
4030
4031 --verify max limits
4032
4033 IF NOT OE_GLOBALS.Equal (p_header_rec.blanket_max_amount,
4034 l_old_header_rec.blanket_max_amount)
4035 AND p_header_rec.blanket_max_amount < p_header_rec.released_amount
4036 AND nvl(p_header_rec.override_amount_flag, 'N') = 'N' THEN
4037 x_return_status := FND_API.G_RET_STS_ERROR;
4038 fnd_message.set_name('ONT', 'OE_BLKT_UPDATE_MAX_LIMIT');
4039 OE_MSG_PUB.Add;
4040 END IF;
4041
4042 -- Version Change
4043 -- Validations and Record History
4044
4045 IF NOT OE_GLOBALS.EQUAL(p_header_rec.version_number,
4046 l_old_header_rec.version_number)
4047 AND OE_CODE_CONTROL.CODE_RELEASE_LEVEL < '110510'
4048 THEN
4049
4050 SELECT /* MOAC_SQL_CHANGE */ version_number
4051 INTO l_db_version_number
4052 FROM OE_BLANKET_HEADERS_ALL
4053 WHERE HEADER_ID = p_header_rec.header_id;
4054
4055 if l_debug_level > 0 then
4056 oe_debug_pub.add('new version :'||p_header_rec.version_number);
4057 oe_debug_pub.add('old version :'||l_old_header_rec.version_number);
4058 oe_debug_pub.add('DB version :'||l_db_version_number);
4059 end if;
4060
4061 IF p_header_rec.version_number
4062 <= l_old_header_rec.version_number
4063 THEN
4064
4065 x_return_status := FND_API.G_RET_STS_ERROR;
4066 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_REVISION_NUM');
4067 OE_MSG_PUB.ADD;
4068
4069 ELSIF p_header_rec.revision_change_reason_code IS NULL THEN
4070
4071 x_return_status := FND_API.G_RET_STS_ERROR;
4072 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
4073 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Revision Reason');
4074 OE_MSG_PUB.ADD;
4075
4076 ELSE
4077
4078 --validate reason code
4079 /*
4080 BEGIN
4081 SELECT 'VALID'
4082 INTO l_dummy
4083 FROM OE_LOOKUPS
4084 WHERE LOOKUP_TYPE = 'REVISION_REASON'
4085 AND LOOKUP_CODE = p_header_rec.revision_change_reason_code;
4086
4087 EXCEPTION
4088 WHEN NO_DATA_FOUND THEN
4089 FND_MESSAGE.SET_NAME('ONT','OE_INVALID_REASON_CODE');
4090 FND_MESSAGE.SET_TOKEN('REASON_CODE', p_header_rec.revision_change_reason_code);
4091 OE_MSG_PUB.ADD;
4092 x_return_status := FND_API.G_RET_STS_ERROR;
4093 END;
4094
4095 */
4096
4097 query_blanket(p_header_id => p_header_rec.header_id
4098 ,p_x_header_rec => g_old_header_hist_Rec
4099 ,p_x_line_tbl => g_old_line_hist_tbl
4100 ,x_return_status => l_return_status
4101 );
4102 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4103 x_return_status := l_return_status;
4104 END IF;
4105
4106 IF NOT OE_GLOBALS.Equal(x_return_status, FND_API.G_RET_STS_ERROR) THEN
4107 OE_Delayed_Requests_PVT.Log_Request
4108 (p_entity_code => OE_BLANKET_pub.G_ENTITY_BLANKET_HEADER
4109 ,p_Entity_Id => p_header_rec.header_id
4110 ,p_requesting_entity_code =>
4111 OE_BLANKET_pub.G_ENTITY_BLANKET_HEADER
4112 ,p_requesting_entity_id => p_header_rec.header_id
4113 ,p_request_type => 'RECORD_BLANKET_HISTORY'
4114 ,p_param1=> p_header_rec.revision_change_reason_code
4115 ,p_long_param1 => p_header_rec.revision_change_comments
4116 ,x_return_status => l_return_status);
4117 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4118 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4119 END IF;
4120
4121 IF p_header_rec.revision_change_date IS NULL THEN
4122 p_header_rec.revision_change_date := sysdate;
4123 END IF;
4124
4125 END IF; --if no errors then log request
4126
4127 END IF; --if version number less than old
4128
4129 END IF; -- if version number is not equal
4130
4131 -- Validate WF STATUS for Start and End Date for a BSA. For Pack J
4132 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510'
4133 THEN
4134 if (NOT OE_GLOBALS.Equal(p_header_rec.start_date_active,l_old_header_rec.start_date_active) OR
4135 NOT OE_GLOBALS.Equal(p_header_rec.end_date_active,l_old_header_rec.end_date_active))
4136 THEN
4137 OE_Delayed_Requests_PVT.Log_Request
4138 (p_entity_code => OE_BLANKET_pub.G_ENTITY_BLANKET_HEADER
4139 ,p_Entity_Id => p_header_rec.header_id
4140 ,p_requesting_entity_code =>
4141 OE_BLANKET_pub.G_ENTITY_BLANKET_HEADER
4142 ,p_requesting_entity_id => p_header_rec.header_id
4143 ,p_request_type => 'BLANKET_DATE_CHANGE'
4144 ,x_return_status => l_return_status);
4145 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4146 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4147 END IF;
4148 end if;
4149 END IF; -- Validate WF STATUS for Start and End date for a BSA
4150
4151
4152 END IF; -- if update operation
4153
4154 -- For bug #4447494
4155 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510'
4156 THEN
4157 if (NOT OE_GLOBALS.Equal(p_header_rec.sold_to_org_id,l_old_header_rec.sold_to_org_id) and
4158 p_header_rec.operation = oe_globals.g_opr_update) THEN
4159 OE_Delayed_Requests_PVT.Log_Request
4160 (p_entity_code => OE_BLANKET_pub.G_ENTITY_BLANKET_HEADER
4161 ,p_Entity_Id => p_header_rec.header_id
4162 ,p_param1 => p_header_rec.sold_to_org_id
4163 ,p_requesting_entity_code =>
4164 OE_BLANKET_pub.G_ENTITY_BLANKET_HEADER
4165 ,p_requesting_entity_id => p_header_rec.header_id
4166 ,p_request_type => 'VALIDATE_BLANKET_SOLD_TO'
4167 ,x_return_status => l_return_status);
4168 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4169 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4170 END IF;
4171 end if;
4172 END IF; -- For bug #4447494
4173
4174 IF g_new_price_list THEN
4175 if l_debug_level > 0 then
4176 oe_debug_pub.add('logging request to create blanket price list',1);
4177 end if;
4178 if oe_code_control.get_code_release_level >= '110510' then
4179 l_new_pl_name := p_header_rec.new_price_list_name;
4180 else
4181 l_new_pl_name := p_header_rec.price_list_name;
4182 end if;
4183 oe_delayed_requests_pvt.Log_request(p_Entity_Code =>
4184 OE_BLANKET_pub.G_ENTITY_BLANKET_HEADER,
4185 p_Entity_Id => p_header_rec.header_id,
4186 p_requesting_entity_code =>
4187 OE_BLANKET_pub.G_ENTITY_BLANKET_HEADER,
4188 p_requesting_entity_id => p_header_rec.header_id,
4189 p_request_type => 'CREATE_BLANKET_PRICE_LIST',
4190 -- 11i10 Pricing Changes
4191 p_param1 => l_new_pl_name,
4192 p_param2 => nvl(p_header_rec.price_list_currency_code,
4193 p_header_rec.transactional_curr_code),
4194 p_long_param1 => p_header_rec.price_list_description,
4195 -- 11i10 Pricing Changes
4196 -- Add header_id and sold_to_org parameters
4197 p_param6 => p_header_rec.header_id,
4198 p_param7 => p_header_rec.sold_to_org_id,
4199 x_return_status => l_return_status);
4200 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4201 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4202 END IF;
4203
4204 END IF;
4205
4206 -- 11i10 Pricing Changes
4207 -- Log request to create new modifier
4208 IF g_new_modifier_list THEN
4209 oe_delayed_requests_pvt.Log_request
4210 (p_entity_code => oe_blanket_pub.g_entity_blanket_header,
4211 p_Entity_Id => p_header_rec.header_id,
4212 p_requesting_entity_code =>
4213 oe_blanket_pub.g_entity_blanket_header,
4214 p_requesting_entity_id => p_header_rec.header_id,
4215 p_request_type => 'CREATE_MODIFIER_LIST',
4216 p_param1 => p_header_rec.new_modifier_list_name,
4217 p_param2 => p_header_rec.transactional_curr_code,
4218 x_return_status => x_return_status );
4219 END IF;
4220
4221 g_header_rec := p_header_rec;
4222
4223 if l_debug_level > 0 then
4224 oe_debug_pub.add('Exit OE_BLANKET_UTIL.Validate_ENTITY- Header',1);
4225 end if;
4226
4227 EXCEPTION
4228 WHEN FND_API.G_EXC_ERROR THEN
4229 x_return_status := FND_API.G_RET_STS_ERROR;
4230 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4231 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4232 WHEN OTHERS THEN
4233 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4234 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4235 OE_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME , 'Validate_Entity');
4236 END IF;
4237 END Validate_Entity;
4238
4239 PROCEDURE Insert_Row
4240 (p_header_rec IN OE_Blanket_PUB.Header_rec_type
4241 ,x_return_status OUT NOCOPY VARCHAR2)
4242 IS
4243 l_org_id NUMBER;
4244 l_upgraded_flag varchar2(1) ;
4245 l_lock_control NUMBER := 1;
4246 --
4247 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4248 --
4249 BEGIN
4250
4251 x_return_status := FND_API.G_RET_STS_SUCCESS;
4252
4253 if l_debug_level > 0 then
4254 oe_debug_pub.add('Entering OE_BLANKET_UTIL.INSERT_ROW - Header ID :'||
4255 p_header_rec.header_id);
4256 end if;
4257 --bug 7139169
4258 OE_GLOBALS.Set_Context;
4259 l_org_id := OE_GLOBALS.G_ORG_ID;
4260
4261 --l_org_id := to_number(FND_PROFILE.VALUE('ORG_ID'));
4262 -- for bug 3342548. Added column CONTEXT
4263 INSERT INTO OE_BLANKET_HEADERS
4264 ( ACCOUNTING_RULE_ID
4265 , AGREEMENT_ID
4266 , CONTEXT
4267 , ATTRIBUTE1
4268 , ATTRIBUTE10
4269 , ATTRIBUTE11
4270 , ATTRIBUTE12
4271 , ATTRIBUTE13
4272 , ATTRIBUTE14
4273 , ATTRIBUTE15
4274 , ATTRIBUTE16
4275 , ATTRIBUTE17
4276 , ATTRIBUTE18
4277 , ATTRIBUTE19
4278 , ATTRIBUTE20
4279 , ATTRIBUTE2
4280 , ATTRIBUTE3
4281 , ATTRIBUTE4
4282 , ATTRIBUTE5
4283 , ATTRIBUTE6
4284 , ATTRIBUTE7
4285 , ATTRIBUTE8
4286 , ATTRIBUTE9
4287 , CREATED_BY
4288 , CREATION_DATE
4289 , CUST_PO_NUMBER
4290 , DELIVER_TO_ORG_ID
4291 , FREIGHT_TERMS_CODE
4292 , header_id
4293 , INVOICE_TO_ORG_ID
4294 , INVOICING_RULE_ID
4295 , LAST_UPDATED_BY
4296 , LAST_UPDATE_DATE
4297 , LAST_UPDATE_LOGIN
4298 , ORDER_NUMBER
4299 , ORDER_TYPE_ID
4300 , PAYMENT_TERM_ID
4301 , PRICE_LIST_ID
4302 , PROGRAM_APPLICATION_ID
4303 , PROGRAM_ID
4304 , PROGRAM_UPDATE_DATE
4305 , REQUEST_ID
4306 , SALESREP_ID
4307 , SHIPPING_METHOD_CODE
4308 , ship_from_org_id
4309 , SHIP_TO_ORG_ID
4310 , SOLD_TO_CONTACT_ID
4311 , SOLD_TO_ORG_ID
4312 , TRANSACTIONAL_CURR_CODE
4313 , conversion_type_code
4314 , lock_control
4315 , open_flag
4316 , booked_flag
4317 , VERSION_NUMBER
4318 , SHIPPING_INSTRUCTIONS
4319 , PACKING_INSTRUCTIONS
4320 , ORG_ID
4321 , SALES_DOCUMENT_TYPE_CODE
4322 , ORDER_CATEGORY_CODE
4323 , SOURCE_DOCUMENT_TYPE_ID
4324 , SOURCE_DOCUMENT_ID
4325 -- hashraf start of Pack J
4326 , SALES_DOCUMENT_NAME
4327 , TRANSACTION_PHASE_CODE
4328 , USER_STATUS_CODE
4329 , flow_status_code
4330 , SUPPLIER_SIGNATURE
4331 , SUPPLIER_SIGNATURE_DATE
4332 , CUSTOMER_SIGNATURE
4333 , CUSTOMER_SIGNATURE_DATE
4334 , SOLD_TO_SITE_USE_ID
4335 , DRAFT_SUBMITTED_FLAG
4336 , SOURCE_DOCUMENT_VERSION_NUMBER
4337 ) -- end of Pack J
4338 VALUES
4339 ( p_header_rec.accounting_rule_id
4340 , p_header_rec.agreement_id
4341 , p_header_rec.context
4342 , p_header_rec.attribute1
4343 , p_header_rec.attribute10
4344 , p_header_rec.attribute11
4345 , p_header_rec.attribute12
4346 , p_header_rec.attribute13
4347 , p_header_rec.attribute14
4348 , p_header_rec.attribute15
4349 , p_header_rec.attribute16
4350 , p_header_rec.attribute17
4351 , p_header_rec.attribute18
4352 , p_header_rec.attribute19
4353 , p_header_rec.attribute20
4354 , p_header_rec.attribute2
4355 , p_header_rec.attribute3
4356 , p_header_rec.attribute4
4357 , p_header_rec.attribute5
4358 , p_header_rec.attribute6
4359 , p_header_rec.attribute7
4360 , p_header_rec.attribute8
4361 , p_header_rec.attribute9
4362 , p_header_rec.created_by
4363 , p_header_rec.creation_date
4364 , p_header_rec.cust_po_number
4365 , p_header_rec.deliver_to_org_id
4366 , p_header_rec.freight_terms_code
4367 , p_header_rec.header_id
4368 , p_header_rec.invoice_to_org_id
4369 , p_header_rec.invoicing_rule_id
4370 , p_header_rec.last_updated_by
4371 , p_header_rec.last_update_date
4372 , p_header_rec.last_update_login
4373 , p_header_rec.order_number
4374 , p_header_rec.order_type_id
4375 , p_header_rec.payment_term_id
4376 , p_header_rec.price_list_id
4377 , p_header_rec.program_application_id
4378 , p_header_rec.program_id
4379 , p_header_rec.program_update_date
4380 , p_header_rec.request_id
4381 , p_header_rec.salesrep_id
4382 , p_header_rec.shipping_method_code
4383 , p_header_rec.ship_from_org_id
4384 , p_header_rec.ship_to_org_id
4385 , p_header_rec.sold_to_contact_id
4386 , p_header_rec.sold_to_org_id
4387 , p_header_rec.transactional_curr_code
4388 , p_header_rec.conversion_type_code
4389 , l_lock_control
4390 , 'Y'
4391 , 'N'
4392 , p_header_rec.version_number
4393 , p_header_rec.shipping_instructions
4394 , p_header_rec.packing_instructions
4395 , mo_global.get_current_org_id
4396 , 'B'
4397 , 'ORDER'
4398 , p_header_rec.source_document_type_id
4399 , p_header_rec.source_document_id
4400 , p_header_rec.SALES_DOCUMENT_NAME -- hashraf ... start of pack J
4401 , p_header_rec.TRANSACTION_PHASE_CODE
4402 , p_header_rec.USER_STATUS_CODE
4403 , p_header_rec.FLOW_STATUS_CODE
4404 , p_header_rec.SUPPLIER_SIGNATURE
4405 , p_header_rec.SUPPLIER_SIGNATURE_DATE
4406 , p_header_rec.CUSTOMER_SIGNATURE
4407 , p_header_rec.CUSTOMER_SIGNATURE_DATE
4408 , p_header_rec.sold_to_site_use_id
4409 , p_header_rec.draft_submitted_flag
4410 , p_header_rec.source_document_version_number
4411 );
4412 -- hashraf ... end of pack J
4413
4414 INSERT INTO OE_BLANKET_HEADERS_EXT
4415 ( ORDER_NUMBER
4416 , START_DATE_ACTIVE
4417 , END_DATE_ACTIVE
4418 , on_hold_flag
4419 , ENFORCE_PRICE_LIST_FLAG
4420 , enforce_ship_to_flag
4421 , enforce_invoice_to_flag
4422 , enforce_freight_term_flag
4423 , enforce_shipping_method_flag
4424 , enforce_payment_term_flag
4425 , enforce_accounting_rule_flag
4426 , enforce_invoicing_rule_flag
4427 , OVERRIDE_AMOUNT_FLAG
4428 , BLANKET_MAX_AMOUNT
4429 , BLANKET_MIN_AMOUNT
4430 , RELEASED_AMOUNT
4431 , FULFILLED_AMOUNT
4432 , REVISION_CHANGE_REASON_CODE
4433 , REVISION_CHANGE_COMMENTS
4434 , REVISION_CHANGE_DATE
4435 -- 11i10 Pricing Changes
4436 , NEW_PRICE_LIST_ID
4437 , NEW_MODIFIER_LIST_ID
4438 , DEFAULT_DISCOUNT_PERCENT
4439 , DEFAULT_DISCOUNT_AMOUNT
4440 )
4441 VALUES
4442 ( p_header_rec.order_number
4443 , p_header_rec.START_DATE_ACTIVE
4444 , p_header_rec.END_DATE_ACTIVE
4445 , p_header_rec.on_hold_flag
4446 , p_header_rec.ENFORCE_PRICE_LIST_FLAG
4447 , p_header_rec.enforce_ship_to_flag
4448 , p_header_rec.enforce_invoice_to_flag
4449 , p_header_rec.enforce_freight_term_flag
4450 , p_header_rec.enforce_shipping_method_flag
4451 , p_header_rec.enforce_payment_term_flag
4452 , p_header_rec.enforce_accounting_rule_flag
4453 , p_header_rec.enforce_invoicing_rule_flag
4454 , p_header_rec.OVERRIDE_AMOUNT_FLAG
4455 , p_header_rec.Blanket_Max_Amount
4456 , p_header_rec.Blanket_Min_Amount
4457 , p_header_rec.RELEASED_AMOUNT
4458 , p_header_rec.FULFILLED_AMOUNT
4459 , p_header_rec.REVISION_CHANGE_REASON_CODE
4460 , p_header_rec.REVISION_CHANGE_COMMENTS
4461 , p_header_rec.REVISION_CHANGE_DATE
4462 -- 11i10 Pricing Changes
4463 , p_header_rec.NEW_PRICE_LIST_ID
4464 , p_header_rec.NEW_MODIFIER_LIST_ID
4465 , p_header_rec.default_DISCOUNT_PERCENT
4466 , p_header_rec.default_DISCOUNT_AMOUNT
4467 );
4468
4469 OE_Blanket_Header_Security.g_check_all_cols_constraint := 'Y'; /* Bug # 5516348 */
4470 if l_debug_level > 0 then
4471 oe_debug_pub.add('Exiting OE_BLANKET_UTIL.INSERT_ROW- Header', 1);
4472 end if;
4473
4474 EXCEPTION
4475
4476 WHEN OTHERS THEN
4477 OE_Blanket_Header_Security.g_check_all_cols_constraint := 'Y'; /* Bug # 5516348 */
4478 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4479 THEN
4480 OE_MSG_PUB.Add_Exc_Msg
4481 ( G_PKG_NAME
4482 , 'Insert_Row'
4483 );
4484 END IF;
4485
4486 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4487 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4488
4489 End Insert_Row;
4490
4491 PROCEDURE Update_Row
4492 ( p_header_rec IN OE_Blanket_PUB.Header_rec_type
4493 , x_return_status OUT NOCOPY VARCHAR2
4494 )
4495 IS
4496 l_return_status VARCHAR2(1);
4497 --
4498 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4499 --
4500 BEGIN
4501
4502 x_return_status := FND_API.G_RET_STS_SUCCESS;
4503
4504 --Versioning changes
4505 IF OE_CODE_CONTROL.Code_Release_Level >= '110510' AND
4506 NOT g_old_version_captured THEN
4507 query_blanket(p_header_id => p_header_rec.header_id
4508 ,p_x_header_rec => g_old_header_hist_Rec
4509 ,p_x_line_tbl => g_old_line_hist_tbl
4510 ,x_return_status => l_return_status
4511 );
4512 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4513 x_return_status := l_return_status;
4514 END IF;
4515 g_old_version_captured := TRUE;
4516 END IF;
4517 -- for bug 3342548. Added column CONTEXT
4518 UPDATE OE_BLANKET_HEADERS
4519 SET ACCOUNTING_RULE_ID = p_header_rec.accounting_rule_id
4520 , AGREEMENT_ID = p_header_rec.agreement_id
4521 , CONTEXT = p_header_rec.context
4522 , ATTRIBUTE1 = p_header_rec.attribute1
4523 , ATTRIBUTE10 = p_header_rec.attribute10
4524 , ATTRIBUTE11 = p_header_rec.attribute11
4525 , ATTRIBUTE12 = p_header_rec.attribute12
4526 , ATTRIBUTE13 = p_header_rec.attribute13
4527 , ATTRIBUTE14 = p_header_rec.attribute14
4528 , ATTRIBUTE15 = p_header_rec.attribute15
4529 , ATTRIBUTE16 = p_header_rec.attribute16
4530 , ATTRIBUTE17 = p_header_rec.attribute17
4531 , ATTRIBUTE18 = p_header_rec.attribute18
4532 , ATTRIBUTE19 = p_header_rec.attribute19
4533 , ATTRIBUTE20 = p_header_rec.attribute20
4534 , ATTRIBUTE2 = p_header_rec.attribute2
4535 , ATTRIBUTE3 = p_header_rec.attribute3
4536 , ATTRIBUTE4 = p_header_rec.attribute4
4537 , ATTRIBUTE5 = p_header_rec.attribute5
4538 , ATTRIBUTE6 = p_header_rec.attribute6
4539 , ATTRIBUTE7 = p_header_rec.attribute7
4540 , ATTRIBUTE8 = p_header_rec.attribute8
4541 , ATTRIBUTE9 = p_header_rec.attribute9
4542 -- , CREATED_BY = p_header_rec.created_by
4543 -- , CREATION_DATE = p_header_rec.creation_date
4544 , CUST_PO_NUMBER = p_header_rec.cust_po_number
4545 , DELIVER_TO_ORG_ID = p_header_rec.deliver_to_org_id
4546 , FREIGHT_TERMS_CODE = p_header_rec.freight_terms_code
4547 , INVOICE_TO_ORG_ID = p_header_rec.invoice_to_org_id
4548 , INVOICING_RULE_ID = p_header_rec.invoicing_rule_id
4549 , LAST_UPDATED_BY = nvl(p_header_rec.last_updated_by, FND_GLOBAL.USER_ID)
4550 , LAST_UPDATE_DATE = nvl(p_header_rec.last_update_date, sysdate)
4551 , LAST_UPDATE_LOGIN = p_header_rec.last_update_login
4552 , ORDER_TYPE_ID = p_header_rec.order_type_id
4553 , PAYMENT_TERM_ID = p_header_rec.payment_term_id
4554 , PRICE_LIST_ID = p_header_rec.price_list_id
4555 , PROGRAM_APPLICATION_ID = p_header_rec.program_application_id
4556 , PROGRAM_ID = p_header_rec.program_id
4557 , PROGRAM_UPDATE_DATE = p_header_rec.program_update_date
4558
4559
4560 , REQUEST_ID = p_header_rec.request_id
4561 , salesrep_id = p_header_rec.salesrep_id
4562 , SHIPPING_METHOD_CODE = p_header_rec.shipping_method_code
4563 , ship_from_org_id = p_header_rec.ship_from_org_id
4564 , SHIP_TO_ORG_ID = p_header_rec.ship_to_org_id
4565 , SOLD_TO_CONTACT_ID = p_header_rec.sold_to_contact_id
4566 , SOLD_TO_ORG_ID = p_header_rec.sold_to_org_id
4567 , TRANSACTIONAL_CURR_CODE = p_header_rec.transactional_curr_code
4568 , CONVERSION_TYPE_CODE = p_header_rec.CONVERSION_TYPE_CODE
4569 , LOCK_CONTROL = LOCK_CONTROL + 1
4570 , VERSION_NUMBER = p_header_rec.version_number
4571 , SHIPPING_INSTRUCTIONS = p_header_rec.shipping_instructions
4572 , PACKING_INSTRUCTIONS = p_header_rec.packing_instructions
4573 , SOURCE_DOCUMENT_TYPE_ID = p_header_rec.source_document_type_id
4574 , SOURCE_DOCUMENT_ID = p_header_rec.source_document_id
4575 -- hashraf ... start of pack J
4576 , SALES_DOCUMENT_NAME = p_header_rec.SALES_DOCUMENT_NAME
4577 , TRANSACTION_PHASE_CODE = p_header_rec.TRANSACTION_PHASE_CODE
4578 , USER_STATUS_CODE = p_header_rec.USER_STATUS_CODE
4579 , FLOW_STATUS_CODE = p_header_rec.FLOW_STATUS_CODE
4580 , SUPPLIER_SIGNATURE = p_header_rec.SUPPLIER_SIGNATURE
4581 , SUPPLIER_SIGNATURE_DATE = p_header_rec.SUPPLIER_SIGNATURE_DATE
4582 , CUSTOMER_SIGNATURE = p_header_rec.CUSTOMER_SIGNATURE
4583 , CUSTOMER_SIGNATURE_DATE = p_header_rec.CUSTOMER_SIGNATURE_DATE
4584 , sold_to_site_use_id = p_header_rec.sold_to_site_use_id
4585 , draft_submitted_flag = p_header_rec.draft_submitted_flag
4586 , source_document_version_number = p_header_rec.source_document_version_number
4587 -- hashraf ... end of pack J
4588
4589 WHERE header_id = p_header_rec.header_id;
4590
4591 UPDATE OE_BLANKET_HEADERS_EXT
4592 SET
4593 START_DATE_ACTIVE = p_header_rec.START_DATE_ACTIVE
4594 , END_DATE_ACTIVE = p_header_rec.END_DATE_ACTIVE
4595 , on_hold_flag = p_header_rec.on_hold_flag
4596 , ENFORCE_PRICE_LIST_FLAG = p_header_rec.ENFORCE_PRICE_LIST_FLAG
4597 , enforce_ship_to_flag = p_header_rec.enforce_ship_to_flag
4598 , enforce_invoice_to_flag = p_header_rec.enforce_invoice_to_flag
4599 , enforce_freight_term_flag = p_header_rec.enforce_freight_term_flag
4600 , enforce_shipping_method_flag = p_header_rec.enforce_shipping_method_flag
4601 , enforce_payment_term_flag = p_header_rec.enforce_payment_term_flag
4602 , enforce_accounting_rule_flag = p_header_rec.enforce_accounting_rule_flag
4603 , enforce_invoicing_rule_flag = p_header_rec.enforce_invoicing_rule_flag
4604 , OVERRIDE_AMOUNT_FLAG = p_header_rec.OVERRIDE_AMOUNT_FLAG
4605 , blanket_max_amount = p_header_rec.Blanket_Max_Amount
4606 , blanket_min_amount = p_header_rec.Blanket_Min_Amount
4607 -- , released_amount = p_header_rec.released_amount
4608 -- , fulfilled_amount = p_header_rec.fulfilled_amount
4609 -- , returned_amount = p_header_rec.returned_amount
4610 , REVISION_CHANGE_REASON_CODE = p_header_rec.revision_change_reason_code
4611 , REVISION_CHANGE_COMMENTS = p_header_rec.revision_change_comments
4612 , REVISION_CHANGE_DATE = p_header_rec.revision_change_date
4613 -- 11i10 Pricing Changes
4614 , new_price_list_id = p_header_rec.new_price_list_id
4615 , new_modifier_list_id = p_header_rec.new_modifier_list_id
4616 , default_discount_percent = p_header_rec.default_discount_percent
4617 , default_discount_amount = p_header_rec.default_discount_amount
4618 WHERE order_number = p_header_rec.order_number;
4619
4620 UPDATE OE_BLANKET_LINES_EXT
4621 SET
4622 END_DATE_ACTIVE = p_header_rec.end_date_active
4623 WHERE order_number = p_header_rec.order_number
4624 AND END_DATE_ACTIVE IS NULL;
4625
4626 OE_Blanket_Header_Security.g_check_all_cols_constraint := 'Y'; /* Bug # 5516348 */
4627 if l_debug_level > 0 then
4628 oe_debug_pub.add('Exiting OE_BLANKET_UTIL.UPDATE_ROW', 1);
4629 end if;
4630
4631 EXCEPTION
4632
4633 WHEN OTHERS THEN
4634
4635 OE_Blanket_Header_Security.g_check_all_cols_constraint := 'Y'; /* Bug # 5516348 */
4636 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4637 THEN
4638 OE_MSG_PUB.Add_Exc_Msg
4639 ( G_PKG_NAME
4640 , 'Update_Row'
4641 );
4642 END IF;
4643
4644 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4645 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4646 End Update_Row;
4647
4648 PROCEDURE Delete_Row
4649 ( p_header_id IN NUMBER
4650 , x_return_status OUT NOCOPY VARCHAR2)
4651
4652 IS
4653 --
4654 l_transaction_phase_code VARCHAR2(30);
4655 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4656 l_return_status VARCHAR2(1);
4657 -- added for delete articles
4658 l_msg_count NUMBER;
4659 l_msg_data VARCHAR2(2000);
4660 --
4661 --for bug 3348870
4662 l_order_number Number;
4663 l_line_id Number;
4664 Cursor c_line_id is
4665 SELECT line_id
4666 FROM OE_BLANKET_LINES
4667 WHERE header_id=p_header_id;
4668 --
4669
4670 BEGIN
4671 -- hashraf ... start of pack J
4672 x_return_status := FND_API.G_RET_STS_SUCCESS;
4673
4674 if l_debug_level > 0 then
4675 oe_debug_pub.add('Entering OE_BLANKET_UTIL.DELETE_ROW - HEADER ID :'||
4676 p_header_id);
4677 end if;
4678
4679 BEGIN
4680
4681 SELECT /* MOAC_SQL_CHANGE */ transaction_phase_code
4682 INTO l_transaction_phase_code
4683 FROM oe_blanket_headers_all
4684 WHERE header_id = p_header_id;
4685
4686 --for bug 3348870
4687 SELECT order_number
4688 INTO l_order_number
4689 FROM OE_BLANKET_HEADERS_ALL
4690 WHERE header_id=p_header_id;
4691
4692 EXCEPTION
4693 WHEN OTHERS THEN
4694 null;
4695 END;
4696
4697
4698 IF l_transaction_phase_code IS NOT NULL THEN
4699
4700 IF l_transaction_phase_code = 'N' THEN
4701 oe_debug_pub.add('OE_BLANKET_UTIL.Delete_Row WF negotiate');
4702 OE_Order_WF_Util.delete_row(p_type=>'NEGOTIATE', p_id => p_header_id);
4703 ELSE
4704 oe_debug_pub.add('OE_BLANKET_UTIL.Delete_Row WF blanket');
4705 OE_Order_WF_Util.delete_row(p_type=>'BLANKET', p_id => p_header_id);
4706 END IF;
4707
4708 END IF;
4709 oe_debug_pub.add('OE_BLANKET_UTIL.Delete_Row after WF delete');
4710
4711 -- 11i10 Pricing Changes
4712 OE_Blanket_Pricing_Util.Deactivate_Pricing
4713 (p_blanket_header_id => p_header_id
4714 ,x_return_status => l_return_status
4715 );
4716 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4717 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4718 END IF;
4719
4720 -- added for delete attachments
4721 OE_Atchmt_Util.Delete_Attachments
4722 ( p_entity_code => OE_GLOBALS.G_ENTITY_HEADER
4723 , p_entity_id => p_header_id
4724 , x_return_status => l_return_status
4725 );
4726 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4727 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4728 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4729 RAISE FND_API.G_EXC_ERROR;
4730 END IF;
4731
4732 OE_CONTRACTS_UTIL.delete_articles
4733 (
4734 p_api_version =>1,
4735 p_doc_type => OE_CONTRACTS_UTIL.G_BSA_DOC_TYPE,
4736 p_doc_id =>p_header_id,
4737 x_return_status =>l_return_status,
4738 x_msg_count =>l_msg_count,
4739 x_msg_data =>l_msg_data);
4740
4741 --for bug 3348870
4742 For r_line_id in c_line_id
4743 Loop
4744 OE_Blanket_Util.Delete_Row(p_line_id => r_line_id.line_id
4745 ,x_return_status => X_RETURN_STATUS);
4746 End Loop;
4747
4748 --End bug
4749
4750 DELETE FROM OE_BLANKET_HEADERS
4751 WHERE header_id = p_header_id;
4752
4753 DELETE FROM OE_BLANKET_HEADERS_HIST
4754 WHERE header_id = p_header_id;
4755
4756 --for bug 3348870
4757 DELETE FROM OE_BLANKET_HEADERS_EXT
4758 WHERE order_number=l_order_number;
4759
4760 if l_debug_level > 0 then
4761 oe_debug_pub.add('Exiting OE_BLANKET_UTIL.DELETE_ROW', 1);
4762 end if;
4763
4764 EXCEPTION
4765 WHEN FND_API.G_EXC_ERROR THEN
4766 --added for delete articles
4767 OE_MSG_PUB.Count_And_Get
4768 (
4769 p_count => l_msg_count,
4770 p_data => l_msg_data
4771 );
4772 RAISE FND_API.G_EXC_ERROR;
4773 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4774 --added for delete articles
4775 OE_MSG_PUB.Count_And_Get
4776 (
4777 p_count => l_msg_count,
4778 p_data => l_msg_data
4779 );
4780 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4781 WHEN OTHERS THEN
4782
4783 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4784 THEN
4785 OE_MSG_PUB.Add_Exc_Msg
4786 ( G_PKG_NAME
4787 , 'Delete_Row'
4788 );
4789 END IF;
4790
4791 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4792 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4793
4794 End Delete_Row;
4795
4796 PROCEDURE Insert_Row
4797 ( p_line_rec IN OE_Blanket_PUB.Line_rec_type
4798 , x_return_status OUT NOCOPY VARCHAR2)
4799 IS
4800 l_org_id NUMBER ;
4801 l_sold_from_org NUMBER;
4802 l_upgraded_flag varchar2(1);
4803 l_lock_control NUMBER:= 1;
4804 l_index NUMBER;
4805 l_return_status varchar2(1);
4806 --
4807 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4808 --
4809 BEGIN
4810
4811 x_return_status := FND_API.G_RET_STS_SUCCESS;
4812
4813 if l_debug_level > 0 then
4814 oe_debug_pub.add('Entering OE_BLANKET_UTIL.INSERT_ROW - Line ID :'||
4815 p_line_rec.line_id);
4816 end if;
4817
4818 --Versioning changes
4819 IF OE_CODE_CONTROL.Code_Release_Level >= '110510' AND
4820 NOT g_old_version_captured THEN
4821 query_blanket(p_header_id => p_line_rec.header_id
4822 ,p_x_header_rec => g_old_header_hist_Rec
4823 ,p_x_line_tbl => g_old_line_hist_tbl
4824 ,x_return_status => l_return_status
4825 );
4826 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4827 x_return_status := l_return_status;
4828 END IF;
4829 g_old_version_captured := TRUE;
4830 END IF;
4831
4832 INSERT INTO OE_BLANKET_LINES
4833 ( ACCOUNTING_RULE_ID
4834 , AGREEMENT_ID
4835 , ATTRIBUTE1
4836 , ATTRIBUTE10
4837 , ATTRIBUTE11
4838 , ATTRIBUTE12
4839 , ATTRIBUTE13
4840 , ATTRIBUTE14
4841 , ATTRIBUTE15
4842 , ATTRIBUTE16
4843 , ATTRIBUTE17
4844 , ATTRIBUTE18
4845 , ATTRIBUTE19
4846 , ATTRIBUTE20
4847 , ATTRIBUTE2
4848 , ATTRIBUTE3
4849 , ATTRIBUTE4
4850 , ATTRIBUTE5
4851 , ATTRIBUTE6
4852 , ATTRIBUTE7
4853 , ATTRIBUTE8
4854 , ATTRIBUTE9
4855 , CONTEXT
4856 , CREATED_BY
4857 , CREATION_DATE
4858 , CUST_PO_NUMBER
4859 , DELIVER_TO_ORG_ID
4860 , FREIGHT_TERMS_CODE
4861 , header_id
4862 , inventory_item_id
4863 , SOLD_TO_ORG_ID
4864 , INVOICE_TO_ORG_ID
4865 , INVOICING_RULE_ID
4866 , ORDERED_ITEM_ID
4867 , item_identifier_type
4868 , lock_control
4869 , open_flag
4870 , ORDERED_ITEM
4871 , ITEM_TYPE_CODE
4872 , LAST_UPDATED_BY
4873 , LAST_UPDATE_DATE
4874 , LAST_UPDATE_LOGIN
4875 , line_id
4876 , line_type_id
4877 , line_number
4878 , ORG_ID
4879 , PAYMENT_TERM_ID
4880 , PREFERRED_GRADE --OPM Added 02/JUN/00
4881 , PRICE_LIST_ID
4882 , PROGRAM_APPLICATION_ID
4883 , PROGRAM_ID
4884 , PROGRAM_UPDATE_DATE
4885 , REQUEST_ID
4886 , SALESREP_ID
4887 , SHIPPING_METHOD_CODE
4888 , ship_from_org_id
4889 , ship_to_org_id
4890 , SHIPPING_INSTRUCTIONS
4891 , PACKING_INSTRUCTIONS
4892 , ORDER_QUANTITY_UOM
4893 , SALES_DOCUMENT_TYPE_CODE
4894 , SHIPMENT_NUMBER
4895 , LINE_CATEGORY_CODE
4896 , BOOKED_FLAG
4897 , SOURCE_DOCUMENT_TYPE_ID
4898 , SOURCE_DOCUMENT_ID
4899 , SOURCE_DOCUMENT_LINE_ID
4900 , transaction_phase_code -- hashraf pack J
4901 , source_document_version_number
4902 )
4903 VALUES
4904 ( p_line_rec.accounting_rule_id
4905 , p_line_rec.agreement_id
4906 , p_line_rec.attribute1
4907 , p_line_rec.attribute10
4908 , p_line_rec.attribute11
4909 , p_line_rec.attribute12
4910 , p_line_rec.attribute13
4911 , p_line_rec.attribute14
4912 , p_line_rec.attribute15
4913 , p_line_rec.attribute16
4914 , p_line_rec.attribute17
4915 , p_line_rec.attribute18
4916 , p_line_rec.attribute19
4917 , p_line_rec.attribute20
4918 , p_line_rec.attribute2
4919 , p_line_rec.attribute3
4920 , p_line_rec.attribute4
4921 , p_line_rec.attribute5
4922 , p_line_rec.attribute6
4923 , p_line_rec.attribute7
4924 , p_line_rec.attribute8
4925 , p_line_rec.attribute9
4926 , p_line_rec.context
4927 , p_line_rec.created_by
4928 , p_line_rec.creation_date
4929 , p_line_rec.cust_po_number
4930 , p_line_rec.deliver_to_org_id
4931 , p_line_rec.freight_terms_code
4932 , p_line_rec.header_id
4933 , p_line_rec.inventory_item_id
4934 , p_line_rec.sold_to_org_id
4935 , p_line_rec.invoice_to_org_id
4936 , p_line_rec.invoicing_rule_id
4937 , p_line_rec.ordered_item_id
4938 , p_line_rec.item_identifier_type
4939 , l_lock_control
4940 , 'Y'
4941 , p_line_rec.ordered_item
4942 , p_line_rec.item_type_code
4943 , p_line_rec.last_updated_by
4944 , p_line_rec.last_update_date
4945 , p_line_rec.last_update_login
4946 , p_line_rec.line_id
4947 , p_line_rec.line_type_id
4948 , p_line_rec.line_number
4949 , MO_GLOBAL.GET_CURRENT_ORG_ID
4950 , p_line_rec.payment_term_id
4951 , p_line_rec.preferred_grade --OPM 02/JUN/00
4952 , p_line_rec.price_list_id
4953 , p_line_rec.program_application_id
4954 , p_line_rec.program_id
4955 , p_line_rec.program_update_date
4956 , p_line_rec.request_id
4957 , p_line_rec.salesrep_id
4958 , p_line_rec.shipping_method_code
4959 , p_line_rec.ship_from_org_id
4960 , p_line_rec.ship_to_org_id
4961 , p_line_rec.shipping_instructions
4962 , p_line_rec.packing_instructions
4963 , p_line_rec.ORDER_QUANTITY_UOM
4964 , 'B'
4965 , 1
4966 , 'ORDER'
4967 , 'N'
4968 , p_line_rec.source_document_type_id
4969 , p_line_rec.source_document_id
4970 , p_line_rec.source_document_line_id
4971 , p_line_rec.transaction_phase_code -- hashraf pack J
4972 , p_line_rec.source_document_version_number
4973 );
4974
4975 INSERT INTO OE_BLANKET_LINES_EXT
4976 ( START_DATE_ACTIVE
4977 , END_DATE_ACTIVE
4978 , MAX_RELEASE_AMOUNT
4979 , MIN_RELEASE_AMOUNT
4980 , min_release_quantity
4981 , max_release_quantity
4982 , BLANKET_LINE_MAX_AMOUNT
4983 , BLANKET_LINE_MIN_AMOUNT
4984 , BLANKET_MAX_QUANTITY
4985 , BLANKET_MIN_QUANTITY
4986 , OVERRIDE_BLANKET_CONTROLS_FLAG
4987 , OVERRIDE_RELEASE_CONTROLS_FLAG
4988 , ENFORCE_PRICE_LIST_FLAG
4989 , enforce_ship_to_flag
4990 , enforce_invoice_to_flag
4991 , enforce_freight_term_flag
4992 , enforce_shipping_method_flag
4993 , enforce_payment_term_flag
4994 , enforce_accounting_rule_flag
4995 , enforce_invoicing_rule_flag
4996 , RELEASED_QUANTITY
4997 , FULFILLED_QUANTITY
4998 , RETURNED_QUANTITY
4999 , ORDER_NUMBER
5000 , RELEASED_AMOUNT
5001 , FULFILLED_AMOUNT
5002 , line_id
5003 , line_number
5004 )
5005 VALUES
5006 ( p_line_rec.START_DATE_ACTIVE
5007 , p_line_rec.END_DATE_ACTIVE
5008 , p_line_rec.MAX_RELEASE_AMOUNT
5009 , p_line_rec.MIN_RELEASE_AMOUNT
5010 , p_line_rec.min_release_quantity
5011 , p_line_rec.max_release_quantity
5012 , p_line_rec.BLANKET_MAX_AMOUNT
5013 , p_line_rec.BLANKET_MIN_AMOUNT
5014 , p_line_rec.BLANKET_MAX_QUANTITY
5015 , p_line_rec.BLANKET_MIN_QUANTITY
5016 , p_line_rec.OVERRIDE_BLANKET_CONTROLS_FLAG
5017 , p_line_rec.OVERRIDE_RELEASE_CONTROLS_FLAG
5018 , p_line_rec.ENFORCE_PRICE_LIST_FLAG
5019 , p_line_rec.enforce_ship_to_flag
5020 , p_line_rec.enforce_invoice_to_flag
5021 , p_line_rec.enforce_freight_term_flag
5022 , p_line_rec.enforce_shipping_method_flag
5023 , p_line_rec.enforce_payment_term_flag
5024 , p_line_rec.enforce_accounting_rule_flag
5025 , p_line_rec.enforce_invoicing_rule_flag
5026 , p_line_rec.RELEASED_QUANTITY
5027 , p_line_rec.FULFILLED_QUANTITY
5028 , p_line_rec.RETURNED_QUANTITY
5029 , p_line_rec.ORDER_NUMBER
5030 , p_line_rec.RELEASED_AMOUNT
5031 , p_line_rec.FULFILLED_AMOUNT
5032 , p_line_rec.line_id
5033 , p_line_rec.line_number
5034 );
5035
5036 OE_Blanket_Line_Security.g_check_all_cols_constraint := 'Y'; /* Bug # 5516348 */
5037 if l_debug_level > 0 then
5038 oe_debug_pub.add('Exiting OE_blanket_UTIL.INSERT_ROW', 1);
5039 end if;
5040
5041 EXCEPTION
5042
5043 WHEN OTHERS THEN
5044
5045 OE_Blanket_Line_Security.g_check_all_cols_constraint := 'Y'; /* Bug # 5516348 */
5046 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
5047 THEN
5048 OE_MSG_PUB.Add_Exc_Msg
5049 ( G_PKG_NAME
5050 , 'Insert_Row'
5051 );
5052 END IF;
5053
5054 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5055 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5056
5057 End Insert_Row;
5058
5059 PROCEDURE Update_Row
5060 ( p_line_rec IN OE_Blanket_PUB.Line_rec_type
5061 , x_return_status OUT NOCOPY VARCHAR2)
5062 IS
5063 l_return_status VARCHAR2(1);
5064 --
5065 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5066 --
5067 BEGIN
5068 if l_debug_level > 0 then
5069 oe_debug_pub.add('Entering OE_Blanket_UTIL.UPDATE_ROW - LINE', 1);
5070 end if;
5071 x_return_status := FND_API.G_RET_STS_SUCCESS;
5072
5073 --Versioning changes
5074 IF OE_CODE_CONTROL.Code_Release_Level >= '110510' AND
5075 NOT g_old_version_captured THEN
5076 query_blanket(p_header_id => p_line_rec.header_id
5077 ,p_x_header_rec => g_old_header_hist_Rec
5078 ,p_x_line_tbl => g_old_line_hist_tbl
5079 ,x_return_status => l_return_status
5080 );
5081 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5082 x_return_status := l_return_status;
5083 END IF;
5084 g_old_version_captured := TRUE;
5085 END IF;
5086
5087 UPDATE OE_BLANKET_LINES
5088 SET ACCOUNTING_RULE_ID = p_line_rec.accounting_rule_id
5089 , AGREEMENT_ID = p_line_rec.agreement_id
5090 , ATTRIBUTE1 = p_line_rec.attribute1
5091 , ATTRIBUTE10 = p_line_rec.attribute10
5092 , ATTRIBUTE11 = p_line_rec.attribute11
5093 , ATTRIBUTE12 = p_line_rec.attribute12
5094 , ATTRIBUTE13 = p_line_rec.attribute13
5095 , ATTRIBUTE14 = p_line_rec.attribute14
5096 , ATTRIBUTE15 = p_line_rec.attribute15
5097 , ATTRIBUTE16 = p_line_rec.attribute16
5098 , ATTRIBUTE17 = p_line_rec.attribute17
5099 , ATTRIBUTE18 = p_line_rec.attribute18
5100 , ATTRIBUTE19 = p_line_rec.attribute19
5101 , ATTRIBUTE20 = p_line_rec.attribute20
5102 , ATTRIBUTE2 = p_line_rec.attribute2
5103 , ATTRIBUTE3 = p_line_rec.attribute3
5104 , ATTRIBUTE4 = p_line_rec.attribute4
5105 , ATTRIBUTE5 = p_line_rec.attribute5
5106 , ATTRIBUTE6 = p_line_rec.attribute6
5107 , ATTRIBUTE7 = p_line_rec.attribute7
5108 , ATTRIBUTE8 = p_line_rec.attribute8
5109 , ATTRIBUTE9 = p_line_rec.attribute9
5110 , CONTEXT = p_line_rec.context
5111 -- , CREATED_BY = p_line_rec.created_by
5112 -- , CREATION_DATE = p_line_rec.creation_date
5113 , CUST_PO_NUMBER = p_line_rec.cust_po_number
5114 , DELIVER_TO_ORG_ID = p_line_rec.deliver_to_org_id
5115 , FREIGHT_TERMS_CODE = p_line_rec.freight_terms_code
5116 , header_id = p_line_rec.header_id
5117 , inventory_item_id = p_line_rec.inventory_item_id
5118 , INVOICE_TO_ORG_ID = p_line_rec.invoice_to_org_id
5119 , INVOICING_RULE_ID = p_line_rec.invoicing_rule_id
5120 , ORDERED_ITEM_ID = p_line_rec.ordered_item_id
5121 , item_identifier_type = p_line_rec.item_identifier_type
5122 , lock_control = lock_control + 1
5123
5124 , ORDERED_ITEM = p_line_rec.ordered_item
5125 , ITEM_TYPE_CODE = p_line_rec.item_type_code
5126 , LAST_UPDATED_BY = nvl(p_line_rec.last_updated_by, FND_GLOBAL.USER_ID)
5127 , LAST_UPDATE_DATE = nvl(p_line_rec.last_update_date, sysdate)
5128 , LAST_UPDATE_LOGIN = p_line_rec.last_update_login
5129 , line_number = p_line_rec.line_number
5130 , PAYMENT_TERM_ID = p_line_rec.payment_term_id
5131 , PREFERRED_GRADE = p_line_rec.preferred_grade
5132 , PRICE_LIST_ID = p_line_rec.price_list_id
5133 , PROGRAM_APPLICATION_ID = p_line_rec.program_application_id
5134 , PROGRAM_ID = p_line_rec.program_id
5135 , PROGRAM_UPDATE_DATE = p_line_rec.program_update_date
5136 , REQUEST_ID = p_line_rec.request_id
5137 , SALESREP_ID = p_line_rec.salesrep_id
5138 , SHIPPING_METHOD_CODE = p_line_rec.shipping_method_code
5139 , ship_from_org_id = p_line_rec.ship_from_org_id
5140 , SHIP_TO_ORG_ID = p_line_rec.ship_to_org_id
5141 , SHIPPING_INSTRUCTIONS = p_line_rec.shipping_instructions
5142 , PACKING_INSTRUCTIONS = p_line_rec.packing_instructions
5143 , ORDER_QUANTITY_UOM = p_line_rec.ORDER_QUANTITY_UOM
5144 -- hashraf ... start of pack J
5145 , transaction_phase_code = p_line_rec.transaction_phase_code
5146 , source_document_version_number = p_line_rec.source_document_version_number
5147 -- hashraf ... end of pack J
5148 WHERE line_id = p_line_rec.line_id
5149 AND header_id = p_line_rec.header_id ;
5150
5151 IF SQL%NOTFOUND THEN
5152 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5153 END IF;
5154
5155 UPDATE OE_BLANKET_LINES_EXT
5156 SET
5157 min_release_quantity = p_line_rec.min_release_quantity
5158 , max_release_quantity = p_line_rec.max_release_quantity
5159 , START_DATE_ACTIVE = p_line_rec.START_DATE_ACTIVE
5160 , END_DATE_ACTIVE = p_line_rec.END_DATE_ACTIVE
5161 , MAX_RELEASE_AMOUNT = p_line_rec.MAX_RELEASE_AMOUNT
5162 , MIN_RELEASE_AMOUNT = p_line_rec.MIN_RELEASE_AMOUNT
5163
5164 , BLANKET_LINE_MAX_AMOUNT = p_line_rec.BLANKET_MAX_AMOUNT
5165 , BLANKET_LINE_MIN_AMOUNT = p_line_rec.BLANKET_MIN_AMOUNT
5166 , BLANKET_MAX_QUANTITY = p_line_rec.BLANKET_MAX_QUANTITY
5167 , BLANKET_MIN_QUANTITY = p_line_rec.BLANKET_MIN_QUANTITY
5168 , OVERRIDE_BLANKET_CONTROLS_FLAG = p_line_rec.OVERRIDE_BLANKET_CONTROLS_FLAG
5169 , OVERRIDE_RELEASE_CONTROLS_FLAG = p_line_rec.OVERRIDE_RELEASE_CONTROLS_FLAG
5170 , ENFORCE_PRICE_LIST_FLAG = p_line_rec.ENFORCE_PRICE_LIST_FLAG
5171 , enforce_ship_to_flag = p_line_rec.enforce_ship_to_flag
5172 , enforce_invoice_to_flag = p_line_rec.enforce_invoice_to_flag
5173 , enforce_freight_term_flag = p_line_rec.enforce_freight_term_flag
5174 , enforce_shipping_method_flag = p_line_rec.enforce_shipping_method_flag
5175 , enforce_payment_term_flag = p_line_rec.enforce_payment_term_flag
5176 , enforce_accounting_rule_flag = p_line_rec.enforce_accounting_rule_flag
5177 , enforce_invoicing_rule_flag = p_line_rec.enforce_invoicing_rule_flag
5178 -- , RELEASED_QUANTITY = p_line_rec.RELEASED_QUANTITY
5179 -- , FULFILLED_QUANTITY = p_line_rec.FULFILLED_QUANTITY
5180 -- , RETURNED_QUANTITY = p_line_rec.RETURNED_QUANTITY
5181 -- , released_amount = p_line_rec.released_amount
5182 -- , fulfilled_amount = p_line_rec.fulfilled_amount
5183 -- , returned_amount = p_line_rec.returned_amount
5184 , line_number = p_line_rec.line_number --bug5894169
5185 WHERE line_id = p_line_rec.line_id;
5186
5187 OE_Blanket_Line_Security.g_check_all_cols_constraint := 'Y'; /* Bug # 5516348 */
5188 if l_debug_level > 0 then
5189 oe_debug_pub.add('Exiting OE_Blanket_UTIL.UPDATE_ROW - LINE', 1);
5190 end if;
5191
5192 EXCEPTION
5193
5194
5195 WHEN OTHERS THEN
5196 OE_Blanket_Line_Security.g_check_all_cols_constraint := 'Y'; /* Bug # 5516348 */
5197 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
5198 THEN
5199 OE_MSG_PUB.Add_Exc_Msg
5200 ( G_PKG_NAME
5201 , 'Update_Row'
5202 );
5203 END IF;
5204
5205 x_return_status := FND_API.G_RET_STS_ERROR;
5206 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5207 End Update_Row;
5208
5209 PROCEDURE Delete_Row
5210 ( p_line_id IN NUMBER
5211 , x_return_status OUT NOCOPY VARCHAR2
5212 )
5213 IS
5214 l_header_id NUMBER := g_header_rec.header_id;
5215 l_return_status varchar2(1);
5216 --
5217 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5218 --
5219 BEGIN
5220 -- hashraf ... start of pack J
5221 x_return_status := FND_API.G_RET_STS_SUCCESS;
5222
5223 if l_debug_level > 0 then
5224 oe_debug_pub.add('Entering OE_BLANKET_UTIL.DELETE_ROW - LINE ID :'||
5225 p_line_id);
5226 end if;
5227
5228 IF l_header_id IS NULL or
5229 l_header_id = FND_API.G_MISS_NUM THEN
5230 SELECT /* MOAC_SQL_CHANGE */ header_id into l_header_id
5231 FROM OE_BLANKET_LINES_all
5232 WHERE line_id = p_line_id;
5233 END IF;
5234
5235 --Versioning changes
5236 IF OE_CODE_CONTROL.Code_Release_Level >= '110510' AND
5237 NOT g_old_version_captured THEN
5238 query_blanket(p_header_id => l_header_id
5239 ,p_x_header_rec => g_old_header_hist_Rec
5240 ,p_x_line_tbl => g_old_line_hist_tbl
5241 ,x_return_status => l_return_status
5242 );
5243 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5244 x_return_status := l_return_status;
5245 END IF;
5246 g_old_version_captured := TRUE;
5247 END IF;
5248
5249 --for bug 3348870
5250 OE_Blanket_Pricing_Util.Deactivate_Pricing
5251 (p_blanket_header_id => l_header_id
5252 ,p_blanket_line_id => p_line_id
5253 ,x_return_status => l_return_status
5254 );
5255 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5256 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5257 END IF;
5258
5259 OE_Atchmt_Util.Delete_Attachments
5260 ( p_entity_code => OE_GLOBALS.G_ENTITY_LINE
5261 , p_entity_id => p_line_id
5262 , x_return_status => l_return_status
5263 );
5264 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5265 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5266 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5267 RAISE FND_API.G_EXC_ERROR;
5268 END IF;
5269 -- End bug
5270
5271 DELETE FROM OE_BLANKET_LINES
5272 WHERE line_id = p_line_id;
5273
5274 --for bug 3348870
5275
5276 DELETE FROM OE_BLANKET_LINES_EXT
5277 WHERE line_id = p_line_id;
5278
5279 DELETE FROM OE_BLANKET_LINES_HIST
5280 WHERE line_id = p_line_id;
5281
5282 if l_debug_level > 0 then
5283 oe_debug_pub.add('Exiting OE_BLANKET_UTIL.DELETE_ROW', 1);
5284 end if;
5285
5286 EXCEPTION
5287 WHEN FND_API.G_EXC_ERROR THEN
5288 RAISE FND_API.G_EXC_ERROR;
5289 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5290 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5291 WHEN OTHERS THEN
5292
5293 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
5294 THEN
5295 OE_MSG_PUB.Add_Exc_Msg
5296 ( G_PKG_NAME
5297 , 'Delete_Row'
5298 );
5299 END IF;
5300
5301 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5302 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5303
5304 End Delete_Row;
5305
5306
5307 PROCEDURE Query_Header
5308 ( p_header_id IN NUMBER
5309 , p_version_number IN NUMBER := NULL
5310 , p_phase_change_flag IN VARCHAR2 := NULL
5311 , x_header_rec IN OUT NOCOPY OE_Blanket_PUB.Header_rec_type
5312 , x_return_status OUT NOCOPY VARCHAR2
5313 )IS
5314
5315 CURSOR l_hdr_csr IS
5316 SELECT ACCOUNTING_RULE_ID
5317 , AGREEMENT_ID
5318 , ATTRIBUTE1
5319 , ATTRIBUTE10
5320 , ATTRIBUTE11
5321 , ATTRIBUTE12
5322 , ATTRIBUTE13
5323 , ATTRIBUTE14
5324 , ATTRIBUTE15
5325 , ATTRIBUTE16
5326 , ATTRIBUTE17
5327 , ATTRIBUTE18
5328 , ATTRIBUTE19
5329 , ATTRIBUTE20
5330 , ATTRIBUTE2
5331 , ATTRIBUTE3
5332 , ATTRIBUTE4
5333 , ATTRIBUTE5
5334 , ATTRIBUTE6
5335 , ATTRIBUTE7
5336 , ATTRIBUTE8
5337 , ATTRIBUTE9
5338 , CONTEXT
5339 , CREATED_BY
5340 , CREATION_DATE
5341 , CUST_PO_NUMBER
5342 , DELIVER_TO_ORG_ID
5343 , FREIGHT_TERMS_CODE
5344 , header_id
5345 , INVOICE_TO_ORG_ID
5346 , INVOICING_RULE_ID
5347 , LAST_UPDATED_BY
5348 , LAST_UPDATE_DATE
5349 , LAST_UPDATE_LOGIN
5350 , bh.ORDER_NUMBER
5351 , ORDER_TYPE_ID
5352 , ORG_ID
5353 , PAYMENT_TERM_ID
5354 , PRICE_LIST_ID
5355 , PROGRAM_APPLICATION_ID
5356 , PROGRAM_ID
5357 , PROGRAM_UPDATE_DATE
5358 , REQUEST_ID
5359 , SALESREP_ID
5360 , SHIPPING_METHOD_CODE
5361 , ship_from_org_id
5362 , SHIP_TO_ORG_ID
5363 , SOLD_TO_CONTACT_ID
5364 , SOLD_TO_ORG_ID
5365 , TRANSACTIONAL_CURR_CODE
5366 , conversion_type_code
5367 , LOCK_CONTROL
5368 , VERSION_NUMBER
5369 , SHIPPING_INSTRUCTIONS
5370 , PACKING_INSTRUCTIONS
5371 , START_DATE_ACTIVE
5372 , END_DATE_ACTIVE
5373 , on_hold_flag
5374 , ENFORCE_PRICE_LIST_FLAG
5375 , enforce_ship_to_flag
5376 , enforce_invoice_to_flag
5377 , enforce_freight_term_flag
5378 , enforce_shipping_method_flag
5379 , enforce_payment_term_flag
5380 , enforce_accounting_rule_flag
5381 , enforce_invoicing_rule_flag
5382 , OVERRIDE_AMOUNT_FLAG
5383 , BLANKET_MAX_AMOUNT
5384 , BLANKET_MIN_AMOUNT
5385 , RELEASED_AMOUNT
5386 , FULFILLED_AMOUNT
5387 , RETURNED_AMOUNT
5388 , source_document_id
5389 , source_document_type_id
5390 , SALES_DOCUMENT_NAME -- hashraf ... start of pack J
5391 , TRANSACTION_PHASE_CODE
5392 , USER_STATUS_CODE
5393 , FLOW_STATUS_CODE
5394 , SUPPLIER_SIGNATURE
5395 , SUPPLIER_SIGNATURE_DATE
5396 , CUSTOMER_SIGNATURE
5397 , CUSTOMER_SIGNATURE_DATE
5398 , sold_to_site_use_id
5399 , draft_submitted_flag
5400 , source_document_version_number -- hashraf ... end of pack J
5401 -- 11i10 Pricing Changes
5402 , new_price_list_id
5403 , new_modifier_list_id
5404 , default_discount_percent
5405 , default_discount_amount
5406 FROM OE_BLANKET_HEADERS bh, OE_BLANKET_HEADERS_EXT bhx
5407 WHERE bh.order_number = bhx.order_number
5408 AND bh.header_id = p_header_id
5409 AND bh.sales_document_type_code = 'B';
5410
5411 CURSOR l_hdr_hist_csr IS
5412 SELECT ACCOUNTING_RULE_ID
5413 , AGREEMENT_ID
5414 , ATTRIBUTE1
5415 , ATTRIBUTE10
5416 , ATTRIBUTE11
5417 , ATTRIBUTE12
5418 , ATTRIBUTE13
5419 , ATTRIBUTE14
5420 , ATTRIBUTE15
5421 , ATTRIBUTE16
5422 , ATTRIBUTE17
5423 , ATTRIBUTE18
5424 , ATTRIBUTE19
5425 , ATTRIBUTE20
5426 , ATTRIBUTE2
5427 , ATTRIBUTE3
5428 , ATTRIBUTE4
5429 , ATTRIBUTE5
5430 , ATTRIBUTE6
5431 , ATTRIBUTE7
5432 , ATTRIBUTE8
5433 , ATTRIBUTE9
5434 , CONTEXT
5435 , CREATED_BY
5436 , CREATION_DATE
5437 , CUST_PO_NUMBER
5438 , DELIVER_TO_ORG_ID
5439 , FREIGHT_TERMS_CODE
5440 , header_id
5441 , INVOICE_TO_ORG_ID
5442 , INVOICING_RULE_ID
5443 , LAST_UPDATED_BY
5444 , LAST_UPDATE_DATE
5445 , LAST_UPDATE_LOGIN
5446 , bh.ORDER_NUMBER
5447 , ORDER_TYPE_ID
5448 , ORG_ID
5449 , PAYMENT_TERM_ID
5450 , PRICE_LIST_ID
5451 , PROGRAM_APPLICATION_ID
5452 , PROGRAM_ID
5453 , PROGRAM_UPDATE_DATE
5454 , REQUEST_ID
5455 , SALESREP_ID
5456 , SHIPPING_METHOD_CODE
5457 , ship_from_org_id
5458 , SHIP_TO_ORG_ID
5459 , SOLD_TO_CONTACT_ID
5460 , SOLD_TO_ORG_ID
5461 , TRANSACTIONAL_CURR_CODE
5462 , conversion_type_code
5463 , NULL -- , LOCK_CONTROL
5464 , VERSION_NUMBER
5465 , SHIPPING_INSTRUCTIONS
5466 , PACKING_INSTRUCTIONS
5467 , START_DATE_ACTIVE
5468 , END_DATE_ACTIVE
5469 , on_hold_flag
5470 , ENFORCE_PRICE_LIST_FLAG
5471 , enforce_ship_to_flag
5472 , enforce_invoice_to_flag
5473 , enforce_freight_term_flag
5474 , enforce_shipping_method_flag
5475 , enforce_payment_term_flag
5476 , enforce_accounting_rule_flag
5477 , enforce_invoicing_rule_flag
5478 , OVERRIDE_AMOUNT_FLAG
5479 , BLANKET_MAX_AMOUNT
5480 , BLANKET_MIN_AMOUNT
5481 , RELEASED_AMOUNT
5482 , FULFILLED_AMOUNT
5483 , RETURNED_AMOUNT
5484 , source_document_id
5485 , source_document_type_id
5486 , SALES_DOCUMENT_NAME -- hashraf ... start of pack J
5487 , TRANSACTION_PHASE_CODE
5488 , USER_STATUS_CODE
5489 , FLOW_STATUS_CODE
5490 , SUPPLIER_SIGNATURE
5491 , SUPPLIER_SIGNATURE_DATE
5492 , CUSTOMER_SIGNATURE
5493 , CUSTOMER_SIGNATURE_DATE
5494 , sold_to_site_use_id
5495 , draft_submitted_flag
5496 , source_document_version_number -- hashraf ... end of pack J
5497 -- 11i10 Pricing Changes
5498 , new_price_list_id
5499 , new_modifier_list_id
5500 , default_discount_percent
5501 , default_discount_amount
5502 FROM OE_BLANKET_HEADERS_HIST bh
5503 WHERE bh.header_id = p_header_id
5504 AND bh.sales_document_type_code = 'B'
5505 AND bh.version_number = p_version_number
5506 AND (PHASE_CHANGE_FLAG = p_phase_change_flag
5507 OR (nvl(p_phase_change_flag, 'NULL') <> 'Y'));
5508
5509 l_org_id NUMBER;
5510 l_current_version_number NUMBER := NULL;
5511
5512 --
5513 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5514 --
5515 BEGIN
5516
5517 x_return_status := FND_API.G_RET_STS_SUCCESS;
5518
5519 if l_debug_level > 0 then
5520 oe_debug_pub.add('Entering OE_BLANKET_UTIL.QUERY_ROW', 1);
5521 end if;
5522
5523 IF p_version_number IS NOT NULL THEN
5524 SELECT /* MOAC_SQL_CHANGE */ version_number INTO l_current_version_number FROM OE_BLANKET_HEADERS_ALL WHERE header_id = p_header_id;
5525 END IF;
5526
5527 IF p_version_number IS NULL OR
5528 p_version_number = l_current_version_number THEN
5529
5530 --Fetch from blanket tables
5531 OPEN l_hdr_csr;
5532 FETCH l_hdr_csr
5533 INTO x_header_rec.accounting_rule_id
5534 , x_header_rec.agreement_id
5535 , x_header_rec.attribute1
5536 , x_header_rec.attribute10
5537 , x_header_rec.attribute11
5538 , x_header_rec.attribute12
5539 , x_header_rec.attribute13
5540 , x_header_rec.attribute14
5541 , x_header_rec.attribute15
5542 , x_header_rec.attribute16
5543 , x_header_rec.attribute17
5544 , x_header_rec.attribute18
5545 , x_header_rec.attribute19
5546 , x_header_rec.attribute20
5547 , x_header_rec.attribute2
5548 , x_header_rec.attribute3
5549 , x_header_rec.attribute4
5550 , x_header_rec.attribute5
5551 , x_header_rec.attribute6
5552 , x_header_rec.attribute7
5553 , x_header_rec.attribute8
5554 , x_header_rec.attribute9
5555 , x_header_rec.context
5556 , x_header_rec.created_by
5557 , x_header_rec.creation_date
5558 , x_header_rec.cust_po_number
5559 , x_header_rec.deliver_to_org_id
5560 , x_header_rec.freight_terms_code
5561 , x_header_rec.header_id
5562 , x_header_rec.invoice_to_org_id
5563 , x_header_rec.invoicing_rule_id
5564 , x_header_rec.last_updated_by
5565 , x_header_rec.last_update_date
5566 , x_header_rec.last_update_login
5567 , x_header_rec.order_number
5568 , x_header_rec.order_type_id
5569 , x_header_rec.org_id
5570 , x_header_rec.payment_term_id
5571 , x_header_rec.price_list_id
5572 , x_header_rec.program_application_id
5573 , x_header_rec.program_id
5574 , x_header_rec.program_update_date
5575 , x_header_rec.request_id
5576 , x_header_rec.salesrep_id
5577 , x_header_rec.shipping_method_code
5578 , x_header_rec.ship_from_org_id
5579 , x_header_rec.ship_to_org_id
5580 , x_header_rec.sold_to_contact_id
5581 , x_header_rec.sold_to_org_id
5582 , x_header_rec.transactional_curr_code
5583 , x_header_rec.conversion_type_code
5584 , x_header_rec.LOCK_CONTROL
5585 , x_header_rec.version_number
5586 , x_header_rec.shipping_instructions
5587 , x_header_rec.packing_instructions
5588 , x_header_rec.START_DATE_ACTIVE
5589 , x_header_rec.END_DATE_ACTIVE
5590 , x_header_rec.on_hold_flag
5591 , x_header_rec.ENFORCE_PRICE_LIST_FLAG
5592 , x_header_rec.enforce_ship_to_flag
5593 , x_header_rec.enforce_invoice_to_flag
5594 , x_header_rec.enforce_freight_term_flag
5595 , x_header_rec.enforce_shipping_method_flag
5596 , x_header_rec.enforce_payment_term_flag
5597 , x_header_rec.enforce_accounting_rule_flag
5598 , x_header_rec.enforce_invoicing_rule_flag
5599 , x_header_rec.OVERRIDE_AMOUNT_FLAG
5600 , x_header_rec.Blanket_Max_Amount
5601 , x_header_rec.Blanket_Min_Amount
5602 , x_header_rec.RELEASED_AMOUNT
5603 , x_header_rec.FULFILLED_AMOUNT
5604 , x_header_rec.RETURNED_AMOUNT
5605 , x_header_rec.source_document_id
5606 , x_header_rec.source_document_type_id
5607 , x_header_rec.SALES_DOCUMENT_NAME -- hashraf ... start of pack J
5608 , x_header_rec.TRANSACTION_PHASE_CODE
5609 , x_header_rec.USER_STATUS_CODE
5610 , x_header_rec.FLOW_STATUS_CODE
5611 , x_header_rec.SUPPLIER_SIGNATURE
5612 , x_header_rec.SUPPLIER_SIGNATURE_DATE
5613 , x_header_rec.CUSTOMER_SIGNATURE
5614 , x_header_rec.CUSTOMER_SIGNATURE_DATE
5615 , x_header_rec.sold_to_site_use_id
5616 , x_header_rec.draft_submitted_flag
5617 , x_header_rec.source_document_version_number -- hashraf ... end of pack J
5618 -- 11i10 Pricing Changes
5619 , x_header_rec.new_price_list_id
5620 , x_header_rec.new_modifier_list_id
5621 , x_header_rec.default_discount_percent
5622 , x_header_rec.default_discount_amount
5623 ;
5624 IF x_header_rec.new_price_list_id IS NOT NULL THEN
5625 SELECT name
5626 INTO x_header_rec.new_price_list_name
5627 FROM qp_list_headers_vl
5628 WHERE list_header_id = x_header_rec.new_price_list_id;
5629 END IF;
5630 IF x_header_rec.new_modifier_list_id IS NOT NULL THEN
5631 SELECT name
5632 INTO x_header_rec.new_modifier_list_name
5633 FROM qp_list_headers_vl
5634 WHERE list_header_id = x_header_rec.new_modifier_list_id;
5635 END IF;
5636 CLOSE l_hdr_csr;
5637 ELSE
5638 --Fetch from history table
5639 OPEN l_hdr_hist_csr;
5640 FETCH l_hdr_hist_csr
5641 INTO x_header_rec.accounting_rule_id
5642 , x_header_rec.agreement_id
5643 , x_header_rec.attribute1
5644 , x_header_rec.attribute10
5645 , x_header_rec.attribute11
5646 , x_header_rec.attribute12
5647 , x_header_rec.attribute13
5648 , x_header_rec.attribute14
5649 , x_header_rec.attribute15
5650 , x_header_rec.attribute16
5651 , x_header_rec.attribute17
5652 , x_header_rec.attribute18
5653 , x_header_rec.attribute19
5654 , x_header_rec.attribute20
5655 , x_header_rec.attribute2
5656 , x_header_rec.attribute3
5657 , x_header_rec.attribute4
5658 , x_header_rec.attribute5
5659 , x_header_rec.attribute6
5660 , x_header_rec.attribute7
5661 , x_header_rec.attribute8
5662 , x_header_rec.attribute9
5663 , x_header_rec.context
5664 , x_header_rec.created_by
5665 , x_header_rec.creation_date
5666 , x_header_rec.cust_po_number
5667 , x_header_rec.deliver_to_org_id
5668 , x_header_rec.freight_terms_code
5669 , x_header_rec.header_id
5670 , x_header_rec.invoice_to_org_id
5671 , x_header_rec.invoicing_rule_id
5672 , x_header_rec.last_updated_by
5673 , x_header_rec.last_update_date
5674 , x_header_rec.last_update_login
5675 , x_header_rec.order_number
5676 , x_header_rec.order_type_id
5677 , x_header_rec.org_id
5678 , x_header_rec.payment_term_id
5679 , x_header_rec.price_list_id
5680 , x_header_rec.program_application_id
5681 , x_header_rec.program_id
5682 , x_header_rec.program_update_date
5683 , x_header_rec.request_id
5684 , x_header_rec.salesrep_id
5685 , x_header_rec.shipping_method_code
5686 , x_header_rec.ship_from_org_id
5687 , x_header_rec.ship_to_org_id
5688 , x_header_rec.sold_to_contact_id
5689 , x_header_rec.sold_to_org_id
5690 , x_header_rec.transactional_curr_code
5691 , x_header_rec.conversion_type_code
5692 , x_header_rec.LOCK_CONTROL
5693 , x_header_rec.version_number
5694 , x_header_rec.shipping_instructions
5695 , x_header_rec.packing_instructions
5696 , x_header_rec.START_DATE_ACTIVE
5697 , x_header_rec.END_DATE_ACTIVE
5698 , x_header_rec.on_hold_flag
5699 , x_header_rec.ENFORCE_PRICE_LIST_FLAG
5700 , x_header_rec.enforce_ship_to_flag
5701 , x_header_rec.enforce_invoice_to_flag
5702 , x_header_rec.enforce_freight_term_flag
5703 , x_header_rec.enforce_shipping_method_flag
5704 , x_header_rec.enforce_payment_term_flag
5705 , x_header_rec.enforce_accounting_rule_flag
5706 , x_header_rec.enforce_invoicing_rule_flag
5707 , x_header_rec.OVERRIDE_AMOUNT_FLAG
5708 , x_header_rec.Blanket_Max_Amount
5709 , x_header_rec.Blanket_Min_Amount
5710 , x_header_rec.RELEASED_AMOUNT
5711 , x_header_rec.FULFILLED_AMOUNT
5712 , x_header_rec.RETURNED_AMOUNT
5713 , x_header_rec.source_document_id
5714 , x_header_rec.source_document_type_id
5715 , x_header_rec.SALES_DOCUMENT_NAME -- hashraf ... start of pack J
5716 , x_header_rec.TRANSACTION_PHASE_CODE
5717 , x_header_rec.USER_STATUS_CODE
5718 , x_header_rec.FLOW_STATUS_CODE
5719 , x_header_rec.SUPPLIER_SIGNATURE
5720 , x_header_rec.SUPPLIER_SIGNATURE_DATE
5721 , x_header_rec.CUSTOMER_SIGNATURE
5722 , x_header_rec.CUSTOMER_SIGNATURE_DATE
5723 , x_header_rec.sold_to_site_use_id
5724 , x_header_rec.draft_submitted_flag
5725 , x_header_rec.source_document_version_number -- hashraf ... end of pack J
5726 -- 11i10 Pricing Changes
5727 , x_header_rec.new_price_list_id
5728 , x_header_rec.new_modifier_list_id
5729 , x_header_rec.default_discount_percent
5730 , x_header_rec.default_discount_amount
5731 ;
5732 IF x_header_rec.new_price_list_id IS NOT NULL THEN
5733 SELECT name
5734 INTO x_header_rec.new_price_list_name
5735 FROM qp_list_headers_vl
5736 WHERE list_header_id = x_header_rec.new_price_list_id;
5737 END IF;
5738 IF x_header_rec.new_modifier_list_id IS NOT NULL THEN
5739 SELECT name
5740 INTO x_header_rec.new_modifier_list_name
5741 FROM qp_list_headers_vl
5742 WHERE list_header_id = x_header_rec.new_modifier_list_id;
5743 END IF;
5744 CLOSE l_hdr_hist_csr;
5745 END IF;
5746
5747 if l_debug_level > 0 then
5748 oe_debug_pub.add('Exiting OE_BLANKET_UTIL.QUERY_ROW -Header', 1);
5749 end if;
5750
5751 EXCEPTION
5752
5753 WHEN NO_DATA_FOUND THEN
5754
5755 x_return_status := FND_API.G_RET_STS_ERROR;
5756 RAISE NO_DATA_FOUND;
5757
5758 WHEN OTHERS THEN
5759
5760 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5761
5762 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
5763 THEN
5764 OE_MSG_PUB.Add_Exc_Msg
5765 ( G_PKG_NAME
5766 , 'Query_Header'
5767 );
5768 END IF;
5769
5770 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5771 END Query_Header;
5772
5773 PROCEDURE Query_Lines
5774 (p_line_id IN NUMBER := NULL
5775 ,p_header_id IN NUMBER := NULL
5776 ,p_version_number IN NUMBER := NULL
5777 ,p_phase_change_flag IN VARCHAR2 := NULL
5778 ,x_line_tbl IN OUT NOCOPY OE_Blanket_PUB.line_tbl_type
5779 ,x_return_status OUT NOCOPY VARCHAR2
5780 )IS
5781
5782 l_org_id NUMBER;
5783 l_count NUMBER;
5784 l_entity VARCHAR2(1);
5785 l_current_version_number NUMBER;
5786
5787 CURSOR l_line_csr IS
5788 SELECT ACCOUNTING_RULE_ID
5789 , AGREEMENT_ID
5790 , ATTRIBUTE1
5791 , ATTRIBUTE10
5792 , ATTRIBUTE11
5793 , ATTRIBUTE12
5794 , ATTRIBUTE13
5795 , ATTRIBUTE14
5796 , ATTRIBUTE15
5797 , ATTRIBUTE16
5798 , ATTRIBUTE17
5799 , ATTRIBUTE18
5800 , ATTRIBUTE19
5801 , ATTRIBUTE20
5802 , ATTRIBUTE2
5803 , ATTRIBUTE3
5804 , ATTRIBUTE4
5805 , ATTRIBUTE5
5806 , ATTRIBUTE6
5807 , ATTRIBUTE7
5808 , ATTRIBUTE8
5809 , ATTRIBUTE9
5810 , CONTEXT
5811 , CREATED_BY
5812 , CREATION_DATE
5813 , CUST_PO_NUMBER
5814 , DELIVER_TO_ORG_ID
5815 , FREIGHT_TERMS_CODE
5816 , header_id
5817 , min_release_quantity
5818 , max_release_quantity
5819 , inventory_item_id
5820 , INVOICE_TO_ORG_ID
5821 , INVOICING_RULE_ID
5822 , ORDERED_ITEM_ID
5823 , item_identifier_type
5824 , lock_control
5825 , ORDERED_ITEM
5826 , ITEM_TYPE_CODE
5827 , LAST_UPDATED_BY
5828 , LAST_UPDATE_DATE
5829 , LAST_UPDATE_LOGIN
5830 , bl.line_id
5831 , bl.line_number
5832 , PAYMENT_TERM_ID
5833 , PREFERRED_GRADE --OPM 02/JUN/00
5834 , PRICE_LIST_ID
5835 , PROGRAM_APPLICATION_ID
5836 , PROGRAM_ID
5837 , PROGRAM_UPDATE_DATE
5838 , REQUEST_ID
5839 , SALESREP_ID
5840 , SHIPPING_METHOD_CODE
5841 , ship_from_org_id
5842 , SHIP_TO_ORG_ID
5843 , SHIPPING_INSTRUCTIONS
5844 , PACKING_INSTRUCTIONS
5845 , START_DATE_ACTIVE
5846 , END_DATE_ACTIVE
5847 , MAX_RELEASE_AMOUNT
5848 , MIN_RELEASE_AMOUNT
5849 , BLANKET_LINE_MAX_AMOUNT
5850 , BLANKET_LINE_MIN_AMOUNT
5851 , BLANKET_MAX_QUANTITY
5852 , BLANKET_MIN_QUANTITY
5853 , OVERRIDE_BLANKET_CONTROLS_FLAG
5854 , OVERRIDE_RELEASE_CONTROLS_FLAG
5855 , ENFORCE_PRICE_LIST_FLAG
5856 , enforce_ship_to_flag
5857 , enforce_invoice_to_flag
5858 , enforce_freight_term_flag
5859 , enforce_shipping_method_flag
5860 , enforce_payment_term_flag
5861 , enforce_accounting_rule_flag
5862 , enforce_invoicing_rule_flag
5863 , ORDER_QUANTITY_UOM
5864 , RELEASED_QUANTITY
5865 , blx.FULFILLED_QUANTITY
5866 , RETURNED_QUANTITY
5867 , ORDER_NUMBER
5868 , RELEASED_AMOUNT
5869 , FULFILLED_AMOUNT
5870 , RETURNED_AMOUNT
5871 , TRANSACTION_PHASE_CODE -- hashraf ... start of pack J
5872 , source_document_version_number
5873 -- 11i10 Pricing Changes
5874 , modifier_list_line_id
5875 , blx.qp_list_line_id
5876 FROM OE_BLANKET_LINES bl, OE_BLANKET_LINES_EXT blx
5877 WHERE bl.line_id = blx.line_id
5878 AND bl.sales_document_type_code = 'B'
5879 AND ( bl.line_id = p_line_id OR
5880 header_id = p_header_id) ;
5881
5882 CURSOR l_line_hist_csr IS
5883 SELECT ACCOUNTING_RULE_ID
5884 , AGREEMENT_ID
5885 , ATTRIBUTE1
5886 , ATTRIBUTE10
5887 , ATTRIBUTE11
5888 , ATTRIBUTE12
5889 , ATTRIBUTE13
5890 , ATTRIBUTE14
5891 , ATTRIBUTE15
5892 , ATTRIBUTE16
5893 , ATTRIBUTE17
5894 , ATTRIBUTE18
5895 , ATTRIBUTE19
5896 , ATTRIBUTE20
5897 , ATTRIBUTE2
5898 , ATTRIBUTE3
5899 , ATTRIBUTE4
5900 , ATTRIBUTE5
5901 , ATTRIBUTE6
5902 , ATTRIBUTE7
5903 , ATTRIBUTE8
5904 , ATTRIBUTE9
5905 , CONTEXT
5906 , CREATED_BY
5907 , CREATION_DATE
5908 , CUST_PO_NUMBER
5909 , DELIVER_TO_ORG_ID
5910 , FREIGHT_TERMS_CODE
5911 , header_id
5912 , min_release_quantity
5913 , max_release_quantity
5914 , inventory_item_id
5915 , INVOICE_TO_ORG_ID
5916 , INVOICING_RULE_ID
5917 , ORDERED_ITEM_ID
5918 , item_identifier_type
5919 , NULL -- , lock_control
5920 , ORDERED_ITEM
5921 , ITEM_TYPE_CODE
5922 , LAST_UPDATED_BY
5923 , LAST_UPDATE_DATE
5924 , LAST_UPDATE_LOGIN
5925 , bl.line_id
5926 , bl.line_number
5927 , PAYMENT_TERM_ID
5928 , PREFERRED_GRADE --OPM 02/JUN/00
5929 , PRICE_LIST_ID
5930 , PROGRAM_APPLICATION_ID
5931 , PROGRAM_ID
5932 , PROGRAM_UPDATE_DATE
5933 , REQUEST_ID
5934 , SALESREP_ID
5935 , SHIPPING_METHOD_CODE
5936 , ship_from_org_id
5937 , SHIP_TO_ORG_ID
5938 , SHIPPING_INSTRUCTIONS
5939 , PACKING_INSTRUCTIONS
5940 , START_DATE_ACTIVE
5941 , END_DATE_ACTIVE
5942 , MAX_RELEASE_AMOUNT
5943 , MIN_RELEASE_AMOUNT
5944 , BLANKET_LINE_MAX_AMOUNT
5945 , BLANKET_LINE_MIN_AMOUNT
5946 , BLANKET_MAX_QUANTITY
5947 , BLANKET_MIN_QUANTITY
5948 , OVERRIDE_BLANKET_CONTROLS_FLAG
5949 , OVERRIDE_RELEASE_CONTROLS_FLAG
5950 , ENFORCE_PRICE_LIST_FLAG
5951 , enforce_ship_to_flag
5952 , enforce_invoice_to_flag
5953 , enforce_freight_term_flag
5954 , enforce_shipping_method_flag
5955 , enforce_payment_term_flag
5956 , enforce_accounting_rule_flag
5957 , enforce_invoicing_rule_flag
5958 , ORDER_QUANTITY_UOM
5959 , RELEASED_QUANTITY
5960 , FULFILLED_QUANTITY
5961 , RETURNED_QUANTITY
5962 , ORDER_NUMBER
5963 , RELEASED_AMOUNT
5964 , FULFILLED_AMOUNT
5965 , RETURNED_AMOUNT
5966 , TRANSACTION_PHASE_CODE -- hashraf ... start of pack J
5967 , source_document_version_number
5968 -- 11i10 Pricing Changes
5969 , modifier_list_line_id
5970 , qp_list_line_id
5971 FROM OE_BLANKET_LINES_HIST bl
5972 WHERE bl.sales_document_type_code = 'B'
5973 AND ( bl.line_id = p_line_id OR
5974 header_id = p_header_id)
5975 AND version_number = p_version_number
5976 AND (PHASE_CHANGE_FLAG = p_phase_change_flag
5977 OR (nvl(p_phase_change_flag, 'NULL') <> 'Y'));
5978
5979 --
5980 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5981 --
5982 BEGIN
5983
5984 x_return_status := FND_API.G_RET_STS_SUCCESS;
5985
5986 IF
5987 (p_line_id IS NOT NULL
5988 AND
5989 p_header_id IS NOT NULL)
5990 THEN
5991 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
5992 THEN
5993 OE_MSG_PUB.Add_Exc_Msg
5994 ( G_PKG_NAME
5995 , 'Query Rows'
5996 , 'Keys are mutually exclusive: line_id = '|| p_line_id || ',
5997 header_id = '|| p_header_id
5998 );
5999 END IF;
6000
6001 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6002
6003 END IF;
6004
6005 IF p_version_number IS NOT NULL THEN
6006 SELECT /* MOAC_SQL_CHANGE */ version_number INTO l_current_version_number FROM OE_BLANKET_HEADERS_ALL WHERE (header_id = p_header_id OR header_id = (select header_id from oe_blanket_lines_ALL where line_id = p_line_id));
6007 END IF;
6008
6009
6010 IF p_version_number IS NULL OR
6011 p_version_number = l_current_version_number THEN
6012
6013 -- Loop over fetched records
6014
6015 l_count := 1;
6016
6017 FOR l_rec IN l_line_csr LOOP
6018
6019 x_line_tbl(l_count).accounting_rule_id := l_rec.ACCOUNTING_RULE_ID;
6020 x_line_tbl(l_count).agreement_id := l_rec.AGREEMENT_ID;
6021 x_line_tbl(l_count).attribute1 := l_rec.ATTRIBUTE1;
6022 x_line_tbl(l_count).attribute10 := l_rec.ATTRIBUTE10;
6023 x_line_tbl(l_count).attribute11 := l_rec.ATTRIBUTE11;
6024 x_line_tbl(l_count).attribute12 := l_rec.ATTRIBUTE12;
6025 x_line_tbl(l_count).attribute13 := l_rec.ATTRIBUTE13;
6026 x_line_tbl(l_count).attribute14 := l_rec.ATTRIBUTE14;
6027 x_line_tbl(l_count).attribute15 := l_rec.ATTRIBUTE15;
6028 x_line_tbl(l_count).attribute16 := l_rec.ATTRIBUTE16;
6029 x_line_tbl(l_count).attribute17 := l_rec.ATTRIBUTE17;
6030 x_line_tbl(l_count).attribute18 := l_rec.ATTRIBUTE18;
6031 x_line_tbl(l_count).attribute19 := l_rec.ATTRIBUTE19;
6032 x_line_tbl(l_count).attribute20 := l_rec.ATTRIBUTE20;
6033 x_line_tbl(l_count).attribute2 := l_rec.ATTRIBUTE2;
6034 x_line_tbl(l_count).attribute3 := l_rec.ATTRIBUTE3;
6035 x_line_tbl(l_count).attribute4 := l_rec.ATTRIBUTE4;
6036 x_line_tbl(l_count).attribute5 := l_rec.ATTRIBUTE5;
6037 x_line_tbl(l_count).attribute6 := l_rec.ATTRIBUTE6;
6038 x_line_tbl(l_count).attribute7 := l_rec.ATTRIBUTE7;
6039 x_line_tbl(l_count).attribute8 := l_rec.ATTRIBUTE8;
6040 x_line_tbl(l_count).attribute9 := l_rec.ATTRIBUTE9;
6041 x_line_tbl(l_count).context := l_rec.CONTEXT;
6042
6043 x_line_tbl(l_count).created_by := l_rec.CREATED_BY;
6044 x_line_tbl(l_count).creation_date := l_rec.CREATION_DATE;
6045 x_line_tbl(l_count).cust_po_number := l_rec.CUST_PO_NUMBER;
6046 x_line_tbl(l_count).deliver_to_org_id := l_rec.DELIVER_TO_ORG_ID;
6047 x_line_tbl(l_count).freight_terms_code := l_rec.FREIGHT_TERMS_CODE;
6048 x_line_tbl(l_count).header_id := l_rec.header_id;
6049 x_line_tbl(l_count).min_release_quantity := l_rec.min_release_quantity;
6050 x_line_tbl(l_count).max_release_quantity := l_rec.max_release_quantity;
6051 x_line_tbl(l_count).inventory_item_id := l_rec.INVENTORY_ITEM_ID;
6052 x_line_tbl(l_count).invoice_to_org_id := l_rec.INVOICE_TO_ORG_ID;
6053 x_line_tbl(l_count).invoicing_rule_id := l_rec.INVOICING_RULE_ID;
6054 x_line_tbl(l_count).ordered_item_id := l_rec.ORDERED_ITEM_ID;
6055 x_line_tbl(l_count).item_identifier_type := l_rec.item_identifier_type;
6056 x_line_tbl(l_count).lock_control := l_rec.lock_control;
6057
6058 x_line_tbl(l_count).ordered_item := l_rec.ORDERED_ITEM;
6059 x_line_tbl(l_count).item_type_code := l_rec.ITEM_TYPE_CODE;
6060 x_line_tbl(l_count).last_updated_by := l_rec.LAST_UPDATED_BY;
6061 x_line_tbl(l_count).last_update_date := l_rec.LAST_UPDATE_DATE;
6062 x_line_tbl(l_count).last_update_login := l_rec.LAST_UPDATE_LOGIN;
6063 x_line_tbl(l_count).line_id := l_rec.line_id;
6064 x_line_tbl(l_count).line_number := l_rec.line_number;
6065 x_line_tbl(l_count).payment_term_id := l_rec.PAYMENT_TERM_ID;
6066 x_line_tbl(l_count).preferred_grade := l_rec.PREFERRED_GRADE; -- OPM
6067 x_line_tbl(l_count).price_list_id := l_rec.PRICE_LIST_ID;
6068 x_line_tbl(l_count).program_application_id := l_rec.PROGRAM_APPLICATION_ID;
6069 x_line_tbl(l_count).program_id := l_rec.PROGRAM_ID;
6070 x_line_tbl(l_count).program_update_date := l_rec.PROGRAM_UPDATE_DATE;
6071 x_line_tbl(l_count).request_id := l_rec.REQUEST_ID;
6072 x_line_tbl(l_count).salesrep_id := l_rec.SALESREP_ID;
6073 x_line_tbl(l_count).released_amount := l_rec.released_amount;
6074 x_line_tbl(l_count).shipping_method_code := l_rec.SHIPPING_METHOD_CODE;
6075 x_line_tbl(l_count).ship_from_org_id := l_rec.ship_from_org_id;
6076 x_line_tbl(l_count).ship_to_org_id := l_rec.SHIP_TO_ORG_ID;
6077 x_line_tbl(l_count).shipping_instructions := l_rec.shipping_instructions;
6078 x_line_tbl(l_count).packing_instructions := l_rec.packing_instructions;
6079 x_line_tbl(l_count).start_Date_active := l_rec.START_DATE_ACTIVE;
6080 x_line_tbl(l_count).END_DATE_ACTIVE := l_rec.END_DATE_ACTIVE;
6081 x_line_tbl(l_count).MAX_RELEASE_AMOUNT :=
6082 l_rec.MAX_RELEASE_AMOUNT;
6083 x_line_tbl(l_count).MIN_RELEASE_AMOUNT :=
6084 l_rec.MIN_RELEASE_AMOUNT;
6085
6086 x_line_tbl(l_count).BLANKET_MAX_AMOUNT :=
6087 l_rec.Blanket_Line_Max_Amount;
6088 x_line_tbl(l_count).BLANKET_MIN_AMOUNT :=
6089 l_rec.Blanket_Line_Min_Amount;
6090 x_line_tbl(l_count).Blanket_Max_Quantity :=
6091 l_rec.Blanket_Max_Quantity;
6092 x_line_tbl(l_count).Blanket_Min_Quantity :=
6093 l_rec.Blanket_Min_Quantity;
6094 x_line_tbl(l_count).OVERRIDE_BLANKET_CONTROLS_FLAG :=
6095 l_rec.OVERRIDE_BLANKET_CONTROLS_FLAG;
6096 x_line_tbl(l_count).OVERRIDE_RELEASE_CONTROLS_FLAG :=
6097 l_rec.OVERRIDE_RELEASE_CONTROLS_FLAG;
6098 x_line_tbl(l_count).ENFORCE_PRICE_LIST_FLAG :=
6099 l_rec.ENFORCE_PRICE_LIST_FLAG;
6100 x_line_tbl(l_count).enforce_ship_to_flag :=
6101 l_rec.enforce_ship_to_flag;
6102 x_line_tbl(l_count).enforce_invoice_to_flag :=
6103 l_rec.enforce_invoice_to_flag;
6104 x_line_tbl(l_count).enforce_freight_term_flag :=
6105 l_rec.enforce_freight_term_flag;
6106 x_line_tbl(l_count).enforce_shipping_method_flag :=
6107 l_rec.enforce_shipping_method_flag;
6108 x_line_tbl(l_count).enforce_payment_term_flag :=
6109 l_rec.enforce_payment_term_flag;
6110 x_line_tbl(l_count).enforce_accounting_rule_flag :=
6111 l_rec.enforce_accounting_rule_flag;
6112 x_line_tbl(l_count).enforce_invoicing_rule_flag :=
6113 l_rec.enforce_invoicing_rule_flag;
6114 x_line_tbl(l_count).ORDER_QUANTITY_UOM := l_rec.ORDER_QUANTITY_UOM;
6115 x_line_tbl(l_count).RELEASED_QUANTITY := l_rec.RELEASED_QUANTITY;
6116 x_line_tbl(l_count).FULFILLED_QUANTITY := l_rec.FULFILLED_QUANTITY;
6117 x_line_tbl(l_count).RETURNED_QUANTITY := l_rec.RETURNED_QUANTITY;
6118 x_line_tbl(l_count).order_number := l_rec.order_number;
6119 x_line_tbl(l_count).fulfilled_amount := l_rec.fulfilled_amount;
6120 x_line_tbl(l_count).returned_amount := l_rec.returned_amount;
6121 -- hashraf ... start of pack J
6122 x_line_tbl(l_count).transaction_phase_code := l_rec.transaction_phase_code;
6123 x_line_tbl(l_count).source_document_version_number := l_rec.source_document_version_number;
6124 -- hashraf ... end of pack J
6125 x_line_tbl(l_count).qp_list_line_id := l_rec.qp_list_line_id;
6126 -- 11i10 Pricing Changes Start
6127 x_line_tbl(l_count).modifier_list_line_id := l_rec.modifier_list_line_id;
6128 IF x_line_tbl(l_count).modifier_list_line_id IS NOT NULL THEN
6129
6130 --For bug 3553063.Catching No_Data_Found for the query
6131 BEGIN
6132 select decode(arithmetic_operator,'%',operand,null)
6133 ,decode(arithmetic_operator,'AMT',operand,null)
6134 into x_line_tbl(l_count).discount_percent
6135 ,x_line_tbl(l_count).discount_amount
6136 from qp_list_lines
6137 where list_line_id = x_line_tbl(l_count).modifier_list_line_id;
6138 EXCEPTION
6139 WHEN NO_DATA_FOUND THEN
6140 Null;
6141 END;
6142 END IF;
6143 -- 11i10 Pricing Changes End
6144 x_line_tbl(l_count).db_flag := FND_API.G_TRUE;
6145 l_count := l_count + 1;
6146
6147 END LOOP;
6148
6149 ELSE
6150
6151 -- Loop over fetched records
6152
6153 l_count := 1;
6154
6155 FOR l_rec IN l_line_hist_csr LOOP
6156
6157 x_line_tbl(l_count).accounting_rule_id := l_rec.ACCOUNTING_RULE_ID;
6158 x_line_tbl(l_count).agreement_id := l_rec.AGREEMENT_ID;
6159 x_line_tbl(l_count).attribute1 := l_rec.ATTRIBUTE1;
6160 x_line_tbl(l_count).attribute10 := l_rec.ATTRIBUTE10;
6161 x_line_tbl(l_count).attribute11 := l_rec.ATTRIBUTE11;
6162 x_line_tbl(l_count).attribute12 := l_rec.ATTRIBUTE12;
6163 x_line_tbl(l_count).attribute13 := l_rec.ATTRIBUTE13;
6164 x_line_tbl(l_count).attribute14 := l_rec.ATTRIBUTE14;
6165 x_line_tbl(l_count).attribute15 := l_rec.ATTRIBUTE15;
6166 x_line_tbl(l_count).attribute16 := l_rec.ATTRIBUTE16;
6167 x_line_tbl(l_count).attribute17 := l_rec.ATTRIBUTE17;
6168 x_line_tbl(l_count).attribute18 := l_rec.ATTRIBUTE18;
6169 x_line_tbl(l_count).attribute19 := l_rec.ATTRIBUTE19;
6170 x_line_tbl(l_count).attribute20 := l_rec.ATTRIBUTE20;
6171 x_line_tbl(l_count).attribute2 := l_rec.ATTRIBUTE2;
6172 x_line_tbl(l_count).attribute3 := l_rec.ATTRIBUTE3;
6173 x_line_tbl(l_count).attribute4 := l_rec.ATTRIBUTE4;
6174 x_line_tbl(l_count).attribute5 := l_rec.ATTRIBUTE5;
6175 x_line_tbl(l_count).attribute6 := l_rec.ATTRIBUTE6;
6176 x_line_tbl(l_count).attribute7 := l_rec.ATTRIBUTE7;
6177 x_line_tbl(l_count).attribute8 := l_rec.ATTRIBUTE8;
6178 x_line_tbl(l_count).attribute9 := l_rec.ATTRIBUTE9;
6179 x_line_tbl(l_count).context := l_rec.CONTEXT;
6180
6181 x_line_tbl(l_count).created_by := l_rec.CREATED_BY;
6182 x_line_tbl(l_count).creation_date := l_rec.CREATION_DATE;
6183 x_line_tbl(l_count).cust_po_number := l_rec.CUST_PO_NUMBER;
6184 x_line_tbl(l_count).deliver_to_org_id := l_rec.DELIVER_TO_ORG_ID;
6185 x_line_tbl(l_count).freight_terms_code := l_rec.FREIGHT_TERMS_CODE;
6186 x_line_tbl(l_count).header_id := l_rec.header_id;
6187 x_line_tbl(l_count).min_release_quantity := l_rec.min_release_quantity;
6188 x_line_tbl(l_count).max_release_quantity := l_rec.max_release_quantity;
6189 x_line_tbl(l_count).inventory_item_id := l_rec.INVENTORY_ITEM_ID;
6190 x_line_tbl(l_count).invoice_to_org_id := l_rec.INVOICE_TO_ORG_ID;
6191 x_line_tbl(l_count).invoicing_rule_id := l_rec.INVOICING_RULE_ID;
6192 x_line_tbl(l_count).ordered_item_id := l_rec.ORDERED_ITEM_ID;
6193 x_line_tbl(l_count).item_identifier_type := l_rec.item_identifier_type;
6194 x_line_tbl(l_count).lock_control := NULL; --l_rec.lock_control;
6195
6196 x_line_tbl(l_count).ordered_item := l_rec.ORDERED_ITEM;
6197 x_line_tbl(l_count).item_type_code := l_rec.ITEM_TYPE_CODE;
6198 x_line_tbl(l_count).last_updated_by := l_rec.LAST_UPDATED_BY;
6199 x_line_tbl(l_count).last_update_date := l_rec.LAST_UPDATE_DATE;
6200 x_line_tbl(l_count).last_update_login := l_rec.LAST_UPDATE_LOGIN;
6201 x_line_tbl(l_count).line_id := l_rec.line_id;
6202 x_line_tbl(l_count).line_number := l_rec.line_number;
6203 x_line_tbl(l_count).payment_term_id := l_rec.PAYMENT_TERM_ID;
6204 x_line_tbl(l_count).preferred_grade := l_rec.PREFERRED_GRADE; -- OPM
6205 x_line_tbl(l_count).price_list_id := l_rec.PRICE_LIST_ID;
6206 x_line_tbl(l_count).program_application_id := l_rec.PROGRAM_APPLICATION_ID;
6207 x_line_tbl(l_count).program_id := l_rec.PROGRAM_ID;
6208 x_line_tbl(l_count).program_update_date := l_rec.PROGRAM_UPDATE_DATE;
6209 x_line_tbl(l_count).request_id := l_rec.REQUEST_ID;
6210 x_line_tbl(l_count).salesrep_id := l_rec.SALESREP_ID;
6211 x_line_tbl(l_count).released_amount := l_rec.released_amount;
6212 x_line_tbl(l_count).shipping_method_code := l_rec.SHIPPING_METHOD_CODE;
6213 x_line_tbl(l_count).ship_from_org_id := l_rec.ship_from_org_id;
6214 x_line_tbl(l_count).ship_to_org_id := l_rec.SHIP_TO_ORG_ID;
6215 x_line_tbl(l_count).shipping_instructions := l_rec.shipping_instructions;
6216 x_line_tbl(l_count).packing_instructions := l_rec.packing_instructions;
6217 x_line_tbl(l_count).start_Date_active := l_rec.START_DATE_ACTIVE;
6218 x_line_tbl(l_count).END_DATE_ACTIVE := l_rec.END_DATE_ACTIVE;
6219 x_line_tbl(l_count).MAX_RELEASE_AMOUNT :=
6220 l_rec.MAX_RELEASE_AMOUNT;
6221 x_line_tbl(l_count).MIN_RELEASE_AMOUNT :=
6222 l_rec.MIN_RELEASE_AMOUNT;
6223
6224 x_line_tbl(l_count).BLANKET_MAX_AMOUNT :=
6225 l_rec.Blanket_Line_Max_Amount;
6226 x_line_tbl(l_count).BLANKET_MIN_AMOUNT :=
6227 l_rec.Blanket_Line_Min_Amount;
6228 x_line_tbl(l_count).Blanket_Max_Quantity :=
6229 l_rec.Blanket_Max_Quantity;
6230 x_line_tbl(l_count).Blanket_Min_Quantity :=
6231 l_rec.Blanket_Min_Quantity;
6232 x_line_tbl(l_count).OVERRIDE_BLANKET_CONTROLS_FLAG :=
6233 l_rec.OVERRIDE_BLANKET_CONTROLS_FLAG;
6234 x_line_tbl(l_count).OVERRIDE_RELEASE_CONTROLS_FLAG :=
6235 l_rec.OVERRIDE_RELEASE_CONTROLS_FLAG;
6236 x_line_tbl(l_count).ENFORCE_PRICE_LIST_FLAG :=
6237 l_rec.ENFORCE_PRICE_LIST_FLAG;
6238 x_line_tbl(l_count).enforce_ship_to_flag :=
6239 l_rec.enforce_ship_to_flag;
6240 x_line_tbl(l_count).enforce_invoice_to_flag :=
6241 l_rec.enforce_invoice_to_flag;
6242 x_line_tbl(l_count).enforce_freight_term_flag :=
6243 l_rec.enforce_freight_term_flag;
6244 x_line_tbl(l_count).enforce_shipping_method_flag :=
6245 l_rec.enforce_shipping_method_flag;
6246 x_line_tbl(l_count).enforce_payment_term_flag :=
6247 l_rec.enforce_payment_term_flag;
6248 x_line_tbl(l_count).enforce_accounting_rule_flag :=
6249 l_rec.enforce_accounting_rule_flag;
6250 x_line_tbl(l_count).enforce_invoicing_rule_flag :=
6251 l_rec.enforce_invoicing_rule_flag;
6252 x_line_tbl(l_count).ORDER_QUANTITY_UOM := l_rec.ORDER_QUANTITY_UOM;
6253 x_line_tbl(l_count).RELEASED_QUANTITY := l_rec.RELEASED_QUANTITY;
6254 x_line_tbl(l_count).FULFILLED_QUANTITY := l_rec.FULFILLED_QUANTITY;
6255 x_line_tbl(l_count).RETURNED_QUANTITY := l_rec.RETURNED_QUANTITY;
6256 x_line_tbl(l_count).order_number := l_rec.order_number;
6257 x_line_tbl(l_count).fulfilled_amount := l_rec.fulfilled_amount;
6258 x_line_tbl(l_count).returned_amount := l_rec.returned_amount;
6259 -- hashraf ... start of pack J
6260 x_line_tbl(l_count).transaction_phase_code := l_rec.transaction_phase_code;
6261 x_line_tbl(l_count).source_document_version_number := l_rec.source_document_version_number;
6262 -- hashraf ... end of pack J
6263 x_line_tbl(l_count).qp_list_line_id := l_rec.qp_list_line_id;
6264 -- 11i10 Pricing Changes Start
6265 x_line_tbl(l_count).modifier_list_line_id := l_rec.modifier_list_line_id;
6266 IF x_line_tbl(l_count).modifier_list_line_id IS NOT NULL THEN
6267
6268 --For bug 3553063.Catching No_Data_Found for the query
6269 BEGIN
6270 select decode(arithmetic_operator,'%',operand,null)
6271 ,decode(arithmetic_operator,'AMT',operand,null)
6272 into x_line_tbl(l_count).discount_percent
6273 ,x_line_tbl(l_count).discount_amount
6274 from qp_list_lines
6275 where list_line_id = x_line_tbl(l_count).modifier_list_line_id;
6276 EXCEPTION
6277 WHEN NO_DATA_FOUND THEN
6278 Null;
6279 END;
6280 END IF;
6281 -- 11i10 Pricing Changes End
6282 x_line_tbl(l_count).db_flag := FND_API.G_TRUE;
6283 l_count := l_count + 1;
6284
6285 END LOOP;
6286
6287 END IF;
6288
6289 -- PK sent and no rows found
6290
6291 IF
6292 p_line_id IS NOT NULL
6293 AND
6294 x_line_tbl.COUNT = 0
6295 THEN
6296 RAISE NO_DATA_FOUND;
6297 END IF;
6298
6299
6300 -- Return fetched table
6301 if l_debug_level > 0 then
6302 oe_debug_pub.add('Exiting OE_LINE_UTIL.QUERY_ROWS', 1);
6303 end if;
6304
6305 EXCEPTION
6306
6307 WHEN NO_DATA_FOUND THEN
6308
6309 x_return_status := FND_API.G_RET_STS_ERROR;
6310 RAISE NO_DATA_FOUND;
6311
6312 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6313
6314 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6315 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6316
6317 WHEN OTHERS THEN
6318
6319 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6320 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
6321 THEN
6322 OE_MSG_PUB.Add_Exc_Msg
6323 ( G_PKG_NAME
6324 , 'Query_Lines'
6325 );
6326 END IF;
6327
6328 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6329 END Query_Lines;
6330
6331 PROCEDURE Query_blanket
6332 (p_header_id IN NUMBER
6333 ,p_version_number IN NUMBER := NULL
6334 ,p_phase_change_flag IN VARCHAR2 := NULL
6335 ,p_x_header_rec IN OUT NOCOPY OE_Blanket_PUB.Header_rec_type
6336 ,p_x_line_tbl IN OUT NOCOPY OE_Blanket_PUB.line_tbl_type
6337 ,x_return_status OUT NOCOPY VARCHAR2
6338 )IS
6339 l_return_status varchar2(1);
6340 l_version_number NUMBER := p_version_number;
6341 l_current_version_number NUMBER;
6342 --
6343 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6344 --
6345 BEGIN
6346
6347 x_return_status := FND_API.G_RET_STS_SUCCESS;
6348
6349 IF p_version_number IS NOT NULL THEN
6350 SELECT /* MOAC_SQL_CHANGE */ version_number INTO l_current_version_number FROM OE_BLANKET_HEADERS_ALL WHERE header_id = p_header_id;
6351
6352 IF l_version_number >= l_current_version_number THEN
6353 l_version_number := NULL;
6354 END IF;
6355 END IF;
6356
6357 Query_Header(P_header_id => p_header_id ,
6358 p_version_number => l_version_number,
6359 p_phase_change_flag => p_phase_change_flag,
6360 x_header_rec => p_x_header_rec,
6361 x_return_status => l_return_status);
6362 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6363 x_return_status := l_return_status;
6364 END IF;
6365 p_x_line_tbl.delete; --Bug# 15846967
6366 Query_Lines(P_header_id => p_header_id ,
6367 p_version_number => l_version_number,
6368 p_phase_change_flag => p_phase_change_flag,
6369 x_line_tbl => p_x_line_tbl ,
6370 x_return_status => l_return_status);
6371 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6372 x_return_status := l_return_status;
6373 END IF;
6374
6375 EXCEPTION
6376 WHEN OTHERS THEN
6377 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6378 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
6379 THEN
6380 OE_MSG_PUB.Add_Exc_Msg
6381 ( G_PKG_NAME
6382 , 'Query_Blanket'
6383 );
6384 END IF;
6385 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6386 END Query_Blanket;
6387
6388 FUNCTION Query_Row
6389 ( p_line_id NUMBER
6390 ,p_version_number NUMBER := NULL
6391 ,p_phase_change_flag VARCHAR2 := NULL
6392 ) RETURN OE_Blanket_PUB.Line_Rec_Type
6393 IS
6394 l_return_status varchar2(1);
6395 l_line_tbl OE_Blanket_PUB.Line_Tbl_Type;
6396 --
6397 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6398 --
6399 BEGIN
6400
6401 Query_Lines
6402 ( p_line_id => p_line_id
6403 , p_version_number => p_version_number
6404 , p_phase_change_flag => p_phase_change_flag
6405 , x_line_tbl => l_line_tbl
6406 , x_return_status => l_return_status
6407 );
6408
6409 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
6410 RETURN l_line_tbl(1);
6411 END IF;
6412 END Query_Row;
6413
6414 --Currently lock row will lock blanket values by blanket only
6415 PROCEDURE Lock_Row
6416 ( x_return_status OUT NOCOPY VARCHAR2
6417 , p_blanket_id IN NUMBER
6418 , p_blanket_line_id IN NUMBER
6419 , p_x_lock_control IN OUT NOCOPY NUMBER
6420 , x_msg_count OUT NOCOPY NUMBER
6421 , x_msg_data OUT NOCOPY VARCHAR2
6422 )
6423 IS
6424 l_return_status VARCHAR2(1);
6425 --
6426 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6427 --
6428 BEGIN
6429
6430 if l_debug_level > 0 then
6431 oe_debug_pub.add('Entering OE_BLANKET_UTIL.LOCK_ROW', 1);
6432 end if;
6433
6434 OE_MSG_PUB.initialize;
6435
6436 Lock_Blanket
6437 ( x_return_status => l_return_status
6438 , p_blanket_id => p_blanket_id
6439 , p_blanket_line_id => p_blanket_line_id
6440 , p_x_lock_control => p_x_lock_control
6441 );
6442
6443 -- Set return status.
6444
6445 x_return_status := l_return_status;
6446 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6447 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6448 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
6449 RAISE FND_API.G_EXC_ERROR;
6450 END IF;
6451
6452 -- Get message count and data
6453
6454 OE_MSG_PUB.Count_And_Get
6455 ( p_count => x_msg_count
6456 , p_data => x_msg_data
6457 );
6458
6459 if l_debug_level > 0 then
6460 oe_debug_pub.add('Exiting OE_BLANKET_UTIL.LOCK_ROW', 1);
6461 end if;
6462
6463 EXCEPTION
6464 WHEN FND_API.G_EXC_ERROR THEN
6465
6466 OE_GLOBALS.G_UI_FLAG := FALSE;
6467
6468 x_return_status := FND_API.G_RET_STS_ERROR;
6469
6470 -- Get message count and data
6471
6472 oe_msg_pub.count_and_get
6473 ( p_count => x_msg_count
6474 , p_data => x_msg_data
6475 );
6476
6477 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6478
6479 OE_GLOBALS.G_UI_FLAG := FALSE;
6480
6481 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6482
6483 -- Get message count and data
6484
6485 oe_msg_pub.count_and_get
6486 ( p_count => x_msg_count
6487 , p_data => x_msg_data
6488 );
6489 WHEN OTHERS THEN
6490
6491 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
6492 THEN
6493 OE_MSG_PUB.Add_Exc_Msg
6494 ( G_PKG_NAME
6495 , 'Lock_Row'
6496 );
6497 END IF;
6498
6499 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6500
6501 -- Get message count and data
6502
6503 OE_MSG_PUB.Count_And_Get
6504 ( p_count => x_msg_count
6505 , p_data => x_msg_data
6506 );
6507
6508 END Lock_Row;
6509
6510
6511
6512 --Currently lock blanket will lock blanket values by blanket only
6513 PROCEDURE Lock_Blanket
6514 ( x_return_status OUT NOCOPY VARCHAR2
6515 , p_blanket_id IN NUMBER
6516 , p_blanket_line_id IN NUMBER
6517 , p_x_lock_control IN OUT NOCOPY NUMBER
6518 )
6519 IS
6520 l_blanket_id NUMBER;
6521 l_blanket_line_id NUMBER;
6522 l_is_line_lock_control BOOLEAN;
6523 l_lock_control NUMBER;
6524 l_db_lock_control NUMBER;
6525 l_temp_lock_control NUMBER;
6526
6527 CURSOR c_blanket_header IS
6528 SELECT /* MOAC_SQL_CHANGE */ bh.lock_control
6529 FROM OE_BLANKET_HEADERS_ALL BH, OE_BLANKET_HEADERS_EXT BHX
6530 WHERE BH.ORDER_NUMBER = BHX.ORDER_NUMBER
6531 AND BH.ORDER_NUMBER = p_blanket_id
6532 AND ORG_ID = MO_GLOBAL.get_current_org_id
6533 AND BH.SALES_DOCUMENT_TYPE_CODE = 'B'
6534 FOR UPDATE NOWAIT;
6535
6536 CURSOR c_blanket_lines IS
6537 SELECT /* MOAC_SQL_CHANGE */ bl.line_id, bl.lock_control
6538 FROM OE_BLANKET_LINES_ALL BL, OE_BLANKET_LINES_EXT BLX
6539 WHERE BL.LINE_ID = BLX.LINE_ID
6540 AND BLX.ORDER_NUMBER = l_blanket_id
6541 AND BL.ORG_ID = MO_GLOBAL.GET_CURRENT_ORG_ID
6542 AND BL.SALES_DOCUMENT_TYPE_CODE = 'B'
6543 FOR UPDATE NOWAIT;
6544
6545 --
6546 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6547 --
6548 BEGIN
6549
6550
6551 if l_debug_level > 0 then
6552 oe_debug_pub.add('Entering OE_BLANKET_UTIL.LOCK_BLANKET', 1);
6553 end if;
6554
6555 OE_MSG_PUB.initialize;
6556
6557 SAVEPOINT Lock_Blanket;
6558
6559 -- Retrieve the primary key.
6560 IF p_blanket_id <> FND_API.G_MISS_NUM THEN
6561 l_blanket_id := p_blanket_id;
6562 l_is_line_lock_control := FALSE;
6563 ELSE
6564 SELECT ORDER_NUMBER
6565 INTO l_blanket_id
6566 FROM OE_BLANKET_LINES_EXT
6567 WHERE LINE_ID = p_blanket_line_id;
6568
6569 l_is_line_lock_control := TRUE;
6570 END IF;
6571
6572 l_lock_control := p_x_lock_control;
6573
6574 -- Lock blanket header
6575 OPEN c_blanket_header;
6576 FETCH c_blanket_header INTO l_temp_lock_control;
6577 CLOSE c_blanket_header;
6578
6579 IF l_is_line_lock_control = FALSE THEN
6580 l_db_lock_control := l_temp_lock_control;
6581 END IF;
6582
6583 -- Lock blanket lines
6584 OPEN c_blanket_lines;
6585 LOOP
6586 FETCH c_blanket_lines INTO l_blanket_line_id, l_temp_lock_control;
6587
6588 IF l_is_line_lock_control AND
6589 p_blanket_line_id = l_blanket_line_id THEN
6590 l_db_lock_control := l_temp_lock_control;
6591 END IF;
6592 EXIT WHEN (C_BLANKET_LINES%NOTFOUND);
6593 END LOOP;
6594 CLOSE c_blanket_lines;
6595
6596 -- p_x_lock_control := l_db_lock_control;
6597
6598 if l_debug_level > 0 then
6599 oe_debug_pub.add('p_x_lock_control'||p_x_lock_control, 3);
6600 -- oe_debug_pub.add('is line lock control'||l_is_line_lock_control, 3);
6601 oe_debug_pub.add('l_db_lock_control'||l_db_lock_control, 3);
6602 end if;
6603
6604 if l_debug_level > 0 then
6605 oe_debug_pub.add('selected for update, now compare', 3);
6606 end if;
6607
6608
6609 -- If lock_control is not passed(is null or missing), then return the locked record.
6610
6611 IF l_lock_control is null OR
6612 l_lock_control = FND_API.G_MISS_NUM
6613 THEN
6614
6615 -- Set out NOCOPY /* file.sql.39 change */ parameter, out NOCOPY /* file.sql.39 change */ rec is already set by query row.
6616
6617 -- Set return status
6618 x_return_status := FND_API.G_RET_STS_SUCCESS;
6619
6620 RETURN;
6621
6622 END IF;
6623
6624 -- Row locked. If the whole record is passed, then
6625 -- Compare the value of lock_control column to DB value.
6626
6627 -- following constants are used to debug lock_order,
6628 -- please do not use them for any other purpose.
6629 -- set G_LOCK_TEST := 'Y', for debugging.
6630
6631 -- OE_GLOBALS.G_LOCK_CONST := 0;
6632 --OE_GLOBALS.G_LOCK_TEST := 'Y';
6633 -- OE_GLOBALS.G_LOCK_TEST := 'N';
6634
6635 IF OE_GLOBALS.Equal(p_x_lock_control,
6636 l_db_lock_control)
6637 THEN
6638
6639 if l_debug_level > 0 then
6640 oe_debug_pub.add('done comparison, success', 1);
6641 end if;
6642 -- Row has not changed. Set out NOCOPY /* file.sql.39 change */ parameter.
6643
6644 -- Set return status
6645
6646 x_return_status := FND_API.G_RET_STS_SUCCESS;
6647
6648 ELSE
6649
6650 if l_debug_level > 0 then
6651 oe_debug_pub.add('row changed by other user', 1);
6652 end if;
6653
6654 -- Row has changed by another user.
6655
6656 x_return_status := FND_API.G_RET_STS_ERROR;
6657
6658 -- Release the lock
6659
6660 fnd_message.set_name('ONT','OE_LOCK_ROW_CHANGED');
6661 OE_MSG_PUB.Add;
6662
6663 END IF;
6664
6665 if l_debug_level > 0 then
6666 oe_debug_pub.add('Exiting OE_BLANKET_UTIL.LOCK_BLANKET', 1);
6667 end if;
6668
6669 OE_GLOBALS.G_LOCK_TEST := 'N';
6670
6671
6672 EXCEPTION
6673
6674 WHEN NO_DATA_FOUND THEN
6675
6676 x_return_status := FND_API.G_RET_STS_ERROR;
6677
6678 if l_debug_level > 0 then
6679 oe_debug_pub.add('no data found in blanket lock_blanket', 1);
6680 end if;
6681
6682 fnd_message.set_name('ONT','OE_LOCK_ROW_DELETED');
6683 OE_MSG_PUB.Add;
6684
6685 OE_GLOBALS.G_LOCK_TEST := 'N';
6686
6687 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
6688
6689 x_return_status := FND_API.G_RET_STS_ERROR;
6690
6691 if l_debug_level > 0 then
6692 oe_debug_pub.add('record_lock in blanket lock_blanket', 1);
6693 end if;
6694
6695 fnd_message.set_name('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
6696 OE_MSG_PUB.Add;
6697
6698 OE_GLOBALS.G_LOCK_TEST := 'N';
6699
6700 WHEN OTHERS THEN
6701
6702 if l_debug_level > 0 then
6703 oe_debug_pub.add('others in blanket lock_blanket', 1);
6704 end if;
6705 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6706
6707 OE_MSG_PUB.Add_Exc_Msg
6708 ( G_PKG_NAME
6709 , 'Lock_Blanket'
6710 );
6711 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6712 OE_GLOBALS.G_LOCK_TEST := 'N';
6713
6714 END Lock_Blanket;
6715
6716
6717 PROCEDURE Default_Attributes
6718 (p_x_header_rec IN OUT NOCOPY OE_Blanket_PUB.Header_rec_type
6719 ,x_return_status OUT NOCOPY VARCHAR2
6720 ) IS
6721 --
6722 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6723 --
6724
6725 CURSOR c_contract_template_exist (cp_trans_type_id NUMBER) IS
6726 SELECT contract_template_id
6727 FROM oe_transaction_types_all
6728 WHERE transaction_type_id = cp_trans_type_id;
6729
6730 l_order_type_id NUMBER := NULL;
6731 l_deflt_contract_template_id NUMBER := NULL;
6732
6733 BEGIN
6734 x_return_status := FND_API.G_RET_STS_SUCCESS;
6735
6736 if l_debug_level > 0 then
6737 oe_debug_pub.add('Enter Default_Attributes - Header');
6738 oe_debug_pub.add('operation is : '||p_x_header_rec.operation);
6739 end if;
6740
6741 -- Default Blanket Header ID
6742 IF p_x_header_rec.header_id IS NULL THEN
6743 SELECT OE_ORDER_HEADERS_S.NEXTVAL
6744 INTO p_x_header_rec.header_id
6745 FROM DUAL;
6746 END IF;
6747
6748 -- Default Start Date Active
6749 IF p_x_header_rec.start_Date_active IS NULL THEN
6750 p_x_header_rec.start_Date_active := trunc(sysdate);
6751 END IF;
6752
6753 -- Default Who Columns
6754 IF p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
6755 p_x_header_rec.creation_Date := sysdate;
6756 p_x_header_rec.created_by := FND_GLOBAL.USER_ID;
6757 END IF;
6758
6759 p_x_header_rec.last_update_date := sysdate;
6760 p_x_header_rec.last_updated_by := FND_GLOBAL.USER_ID;
6761
6762 -- Default Currency Code
6763 IF p_x_header_rec.transactional_curr_code IS NULL THEN
6764 BEGIN
6765 SELECT CURRENCY_CODE
6766 INTO p_x_header_rec.transactional_curr_code
6767 FROM OE_GL_SETS_OF_BOOKS_V
6768 WHERE SET_OF_BOOKS_ID = OE_Sys_Parameters.VALUE('SET_OF_BOOKS_ID');
6769 EXCEPTION
6770 WHEN OTHERS THEN
6771 NULL;
6772 END;
6773 END IF;
6774
6775 -- Default Flags
6776 IF p_x_header_rec.on_hold_flag IS NULL OR
6777 p_x_header_rec.on_hold_flag NOT IN ('Y','N') THEN
6778 p_x_header_rec.on_hold_flag := 'N';
6779 END IF;
6780 IF p_x_header_rec.enforce_price_list_flag IS NULL OR
6781 p_x_header_rec.enforce_price_list_flag NOT IN ('Y','N') THEN
6782 p_x_header_rec.enforce_price_list_flag := 'N';
6783 END IF;
6784 IF p_x_header_rec.enforce_ship_to_flag IS NULL OR
6785 p_x_header_rec.enforce_ship_to_flag NOT IN ('Y','N') THEN
6786 p_x_header_rec.enforce_ship_to_flag := 'N';
6787 END IF;
6788 IF p_x_header_rec.enforce_invoice_to_flag IS NULL OR
6789 p_x_header_rec.enforce_invoice_to_flag NOT IN ('Y','N') THEN
6790 p_x_header_rec.enforce_invoice_to_flag := 'N';
6791 END IF;
6792 IF p_x_header_rec.enforce_freight_term_flag IS NULL OR
6793 p_x_header_rec.enforce_freight_term_flag NOT IN ('Y','N') THEN
6794 p_x_header_rec.enforce_freight_term_flag := 'N';
6795 END IF;
6796 IF p_x_header_rec.enforce_shipping_method_flag IS NULL OR
6797 p_x_header_rec.enforce_shipping_method_flag NOT IN ('Y','N') THEN
6798 p_x_header_rec.enforce_shipping_method_flag := 'N';
6799 END IF;
6800 IF p_x_header_rec.enforce_payment_term_flag IS NULL OR
6801 p_x_header_rec.enforce_payment_term_flag NOT IN ('Y','N') THEN
6802 p_x_header_rec.enforce_payment_term_flag := 'N';
6803 END IF;
6804 IF p_x_header_rec.enforce_accounting_rule_flag IS NULL OR
6805 p_x_header_rec.enforce_accounting_rule_flag NOT IN ('Y','N') THEN
6806 p_x_header_rec.enforce_accounting_rule_flag := 'N';
6807 END IF;
6808 IF p_x_header_rec.enforce_invoicing_rule_flag IS NULL OR
6809 p_x_header_rec.enforce_invoicing_rule_flag NOT IN ('Y','N') THEN
6810 p_x_header_rec.enforce_invoicing_rule_flag := 'N';
6811 END IF;
6812
6813 IF p_x_header_rec.override_amount_flag IS NULL OR
6814 p_x_header_rec.override_amount_flag NOT IN ('Y','N') THEN
6815 p_x_header_rec.override_amount_flag := 'N';
6816 END IF;
6817
6818 IF p_x_header_rec.order_type_id IS NULL THEN
6819 p_x_header_rec.order_type_id := FND_PROFILE.VALUE('OE_DEFAULT_BLANKET_ORDER_TYPE');
6820 END IF;
6821
6822 IF p_x_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
6823 -- Revision Number
6824 p_x_header_rec.version_number := 0.0;
6825 -- Operating unit
6826 -- <R12.MOAC> START
6827 --p_x_header_rec.org_id := to_number(FND_PROFILE.VALUE('ORG_ID'));
6828 -- <R12.MOAC> END
6829
6830 -- Default of Transaction Phase.
6831 IF oe_code_control.get_code_release_level >= '110510' THEN
6832
6833 IF p_x_header_rec.transaction_phase_code IS NULL THEN
6834 p_x_header_rec.transaction_phase_code :=
6835 fnd_profile.value('ONT_DEF_BSA_TRANSACTION_PHASE');
6836 IF p_x_header_rec.transaction_phase_code IS NULL AND
6837 p_x_header_rec.order_type_id IS NOT NULL THEN
6838 -- Get The Transaciton Phase from the Order Type if any.
6839 Begin
6840 Select /* MOAC_SQL_CHANGE */ DEF_TRANSACTION_PHASE_CODE
6841 INTO p_x_header_rec.transaction_phase_code
6842 from oe_transaction_types_all
6843 where TRANSACTION_TYPE_ID = p_x_header_rec.order_type_id;
6844 Exception
6845 when no_data_found then
6846 null;
6847 when OTHERS then
6848 null;
6849 End;
6850 END IF;
6851 END IF; -- End of Default Transaction Phase
6852
6853 p_x_header_rec.draft_submitted_flag := 'N';
6854
6855 END IF; -- End of Code Level Check
6856
6857
6858 --ABH
6859 --default the contract template id
6860 IF OE_CODE_CONTROL.Get_Code_Release_Level >= '110510' THEN
6861 NULL;
6862 -- << place logic here >>
6863 -- << p_x_header_rec.contract_template_id := <defaulted contract_template_id > >>
6864 l_order_type_id := p_x_header_rec.order_type_id;
6865
6866 IF c_contract_template_exist%ISOPEN THEN
6867 CLOSE c_contract_template_exist;
6868 END IF;
6869 OPEN c_contract_template_exist (l_order_type_id);
6870 FETCH c_contract_template_exist INTO l_deflt_contract_template_id;
6871 CLOSE c_contract_template_exist;
6872
6873 p_x_header_rec.contract_template_id := l_deflt_contract_template_id;
6874
6875
6876 END IF;
6877 --ABH
6878
6879 END IF; -- End if operation = CREATE
6880
6881 EXCEPTION
6882 WHEN OTHERS THEN
6883 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6884 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
6885 THEN
6886 OE_MSG_PUB.Add_Exc_Msg
6887 ( G_PKG_NAME
6888 , 'Default_Attributes - Header'
6889 );
6890 END IF;
6891 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6892 END Default_Attributes;
6893
6894 PROCEDURE Default_Attributes
6895 (p_x_line_rec IN OUT NOCOPY OE_Blanket_PUB.line_rec_type
6896 ,p_default_from_header IN BOOLEAN
6897 ,x_return_status OUT NOCOPY VARCHAR2
6898 ) IS
6899 l_return_status varchar2(1);
6900 --
6901 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6902 --
6903 BEGIN
6904 x_return_status := FND_API.G_RET_STS_SUCCESS;
6905
6906 -- Load Header
6907 Load_Header(p_header_id => p_x_line_rec.header_id
6908 ,x_return_status => l_return_status);
6909 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
6910 RAISE FND_API.G_EXC_ERROR;
6911 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6912 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6913 END IF;
6914
6915 -- Get Blanket Line
6916 IF p_x_line_rec.line_id IS NULL THEN
6917 SELECT OE_ORDER_LINES_S.NEXTVAL
6918 INTO p_x_line_rec.line_id
6919 FROM DUAL;
6920 END IF;
6921
6922 -- Get Blanket Line Number
6923 IF p_x_line_rec.line_number IS NULL THEN
6924 SELECT NVL(MAX(line_number)+1,1)
6925 INTO p_x_line_rec.line_number
6926 FROM OE_BLANKET_LINES
6927 WHERE header_id = p_x_line_rec.header_id;
6928 END IF;
6929
6930 -- Constant Defaults
6931 IF p_x_line_rec.override_blanket_controls_flag IS NULL OR
6932 p_x_line_rec.override_blanket_controls_flag NOT IN ('Y','N') THEN
6933 p_x_line_rec.override_blanket_controls_flag := 'N';
6934 END IF;
6935
6936 IF p_x_line_rec.override_release_controls_flag IS NULL OR
6937 p_x_line_rec.override_release_controls_flag NOT IN ('Y','N') THEN
6938 p_x_line_rec.override_release_controls_flag := 'N';
6939 END IF;
6940
6941 IF p_x_line_rec.item_identifier_type is NULL THEN
6942 p_x_line_rec.item_identifier_type := 'INT';
6943 END IF;
6944
6945 IF p_x_line_rec.order_quantity_uom is NULL AND
6946 p_x_line_rec.item_identifier_type NOT IN ('ALL', 'CAT') THEN
6947 BEGIN
6948 SELECT PRIMARY_UOM_CODE
6949 INTO p_x_line_rec.order_quantity_uom
6950 FROM MTL_SYSTEM_ITEMS_B
6951 WHERE INVENTORY_ITEM_ID = p_x_line_rec.inventory_item_id
6952 AND ORGANIZATION_ID = g_header_rec.org_id;
6953 EXCEPTION
6954 WHEN NO_DATA_FOUND THEN
6955 if l_debug_level > 0 then
6956 oe_debug_pub.add('no inventory item exists for this organization');
6957 end if;
6958 END;
6959 END IF;
6960
6961 IF p_x_line_rec.pricing_uom is NULL AND
6962 p_x_line_rec.order_quantity_uom is NOT NULL THEN
6963 p_x_line_rec.pricing_uom := p_x_line_rec.order_quantity_uom;
6964 END IF;
6965
6966 IF p_x_line_rec.item_identifier_type = 'ALL' THEN
6967 p_x_line_rec.inventory_item_id := NULL;
6968 END IF;
6969
6970 --Always default order_number
6971 IF p_x_line_rec.order_number IS NULL THEN
6972 p_x_line_rec.order_number:= g_header_rec.order_number;
6973 END IF;
6974
6975 IF p_default_from_header THEN
6976
6977 -- Default from header
6978 IF p_x_line_rec.cust_po_number IS NULL THEN
6979 p_x_line_rec.cust_po_number := g_header_rec.cust_po_number;
6980 END IF;
6981 IF p_x_line_rec.price_list_id IS NULL THEN
6982 p_x_line_rec.price_list_id := g_header_rec.price_list_id;
6983 END IF;
6984
6985 IF p_x_line_rec.enforce_price_list_flag IS NULL OR
6986 p_x_line_rec.enforce_price_list_flag NOT IN ('Y','N') THEN
6987 p_x_line_rec.enforce_price_list_flag :=
6988 g_header_rec.enforce_price_list_flag;
6989 END IF;
6990 IF p_x_line_rec.enforce_ship_to_flag IS NULL OR
6991 p_x_line_rec.enforce_ship_to_flag NOT IN ('Y','N') THEN
6992 p_x_line_rec.enforce_ship_to_flag :=
6993 g_header_rec.enforce_ship_to_flag;
6994 END IF;
6995 IF p_x_line_rec.enforce_invoice_to_flag IS NULL OR
6996 p_x_line_rec.enforce_invoice_to_flag NOT IN ('Y','N') THEN
6997 p_x_line_rec.enforce_invoice_to_flag :=
6998 g_header_rec.enforce_invoice_to_flag;
6999 END IF;
7000 IF p_x_line_rec.enforce_freight_term_flag IS NULL OR
7001 p_x_line_rec.enforce_freight_term_flag NOT IN ('Y','N') THEN
7002 p_x_line_rec.enforce_freight_term_flag :=
7003 g_header_rec.enforce_freight_term_flag;
7004 END IF;
7005 IF p_x_line_rec.enforce_shipping_method_flag IS NULL OR
7006 p_x_line_rec.enforce_shipping_method_flag NOT IN ('Y','N') THEN
7007 p_x_line_rec.enforce_shipping_method_flag :=
7008 g_header_rec.enforce_shipping_method_flag;
7009 END IF;
7010 IF p_x_line_rec.enforce_payment_term_flag IS NULL OR
7011 p_x_line_rec.enforce_payment_term_flag NOT IN ('Y','N') THEN
7012 p_x_line_rec.enforce_payment_term_flag :=
7013 g_header_rec.enforce_payment_term_flag;
7014 END IF;
7015 IF p_x_line_rec.enforce_accounting_rule_flag IS NULL OR
7016 p_x_line_rec.enforce_accounting_rule_flag NOT IN ('Y','N') THEN
7017 p_x_line_rec.enforce_accounting_rule_flag :=
7018 g_header_rec.enforce_accounting_rule_flag;
7019 END IF;
7020 IF p_x_line_rec.enforce_invoicing_rule_flag IS NULL OR
7021 p_x_line_rec.enforce_invoicing_rule_flag NOT IN ('Y','N') THEN
7022 p_x_line_rec.enforce_invoicing_rule_flag :=
7023 g_header_rec.enforce_invoicing_rule_flag;
7024 END IF;
7025 IF p_x_line_rec.ship_from_org_id IS NULL THEN
7026 p_x_line_rec.ship_from_org_id := g_header_rec.ship_from_org_id;
7027 END IF;
7028 --sold to org is defaulted for org validations (ship to, deliver to, bill to)
7029 IF p_x_line_rec.sold_to_org_id IS NULL THEN
7030 p_x_line_rec.sold_to_org_id := g_header_rec.sold_to_org_id;
7031 END IF;
7032 IF p_x_line_rec.ship_to_org_id IS NULL THEN
7033 p_x_line_rec.ship_to_org_id := g_header_rec.ship_to_org_id;
7034 END IF;
7035 IF p_x_line_rec.invoice_to_org_id IS NULL THEN
7036 p_x_line_rec.invoice_to_org_id := g_header_rec.invoice_to_org_id;
7037 END IF;
7038 IF p_x_line_rec.deliver_to_org_id IS NULL THEN
7039 p_x_line_rec.deliver_to_org_id := g_header_rec.deliver_to_org_id;
7040 END IF;
7041 IF p_x_line_rec.payment_term_id IS NULL THEN
7042 p_x_line_rec.payment_term_id := g_header_rec.payment_term_id;
7043 END IF;
7044 IF p_x_line_rec.invoicing_rule_id IS NULL THEN
7045 p_x_line_rec.invoicing_rule_id := g_header_rec.invoicing_rule_id;
7046 END IF;
7047 IF p_x_line_rec.shipping_method_code IS NULL THEN
7048 p_x_line_rec.shipping_method_code := g_header_rec.shipping_method_code;
7049 END IF;
7050 IF p_x_line_rec.accounting_rule_id IS NULL THEN
7051 p_x_line_rec.accounting_rule_id := g_header_rec.accounting_rule_id;
7052 END IF;
7053 IF p_x_line_rec.shipping_instructions IS NULL THEN
7054 p_x_line_rec.shipping_instructions :=
7055 g_header_rec.shipping_instructions;
7056 END IF;
7057 IF p_x_line_rec.packing_instructions IS NULL THEN
7058 p_x_line_rec.packing_instructions := g_header_rec.packing_instructions;
7059 END IF;
7060 IF p_x_line_rec.freight_terms_code IS NULL THEN
7061 p_x_line_rec.freight_terms_code := g_header_rec.freight_terms_code;
7062 END IF;
7063 IF p_x_line_rec.salesrep_id IS NULL THEN
7064 p_x_line_rec.salesrep_id := g_header_rec.salesrep_id;
7065 END IF;
7066 IF p_x_line_rec.start_date_active IS NULL THEN
7067 p_x_line_rec.start_date_active := g_header_rec.start_date_active;
7068 END IF;
7069 IF p_x_line_rec.end_date_active IS NULL THEN
7070 p_x_line_rec.end_date_active := g_header_rec.end_date_active;
7071 END IF;
7072 -- Start of Transaction Phase changes for 11i10.
7073 IF p_x_line_rec.Transaction_Phase_code IS NULL THEN
7074 p_x_line_rec.Transaction_Phase_code := g_header_rec.Transaction_Phase_code;
7075 END IF;
7076 -- End of Transaction Phase changes.
7077 -- 11i10 Pricing Changes Start
7078 IF p_x_line_rec.discount_percent IS NULL THEN
7079 p_x_line_rec.discount_percent := g_header_rec.default_discount_percent;
7080 END IF;
7081 IF p_x_line_rec.discount_amount IS NULL THEN
7082 p_x_line_rec.discount_amount := g_header_rec.default_discount_amount;
7083 END IF;
7084 -- 11i10 Pricing Changes End
7085 END IF; --if default from header
7086
7087 -- WHO columns
7088 IF p_x_line_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
7089 p_x_line_rec.creation_Date := sysdate;
7090 p_x_line_rec.created_by := FND_GLOBAL.USER_ID;
7091 END IF;
7092 p_x_line_rec.last_update_date := sysdate;
7093 p_x_line_rec.last_updated_by := FND_GLOBAL.USER_ID;
7094
7095 EXCEPTION
7096 WHEN FND_API.G_EXC_ERROR THEN
7097 x_return_status := FND_API.G_RET_STS_ERROR;
7098 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7099 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7100 WHEN OTHERS THEN
7101 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7102 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
7103 THEN
7104 OE_MSG_PUB.Add_Exc_Msg
7105 ( G_PKG_NAME
7106 , 'Default_Attributes - Line'
7107 );
7108 END IF;
7109 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7110 END Default_Attributes;
7111
7112 PROCEDURE Load_Header(p_header_id IN NUMBER
7113 , x_return_status OUT NOCOPY VARCHAR2)
7114 IS
7115 l_return_status varchar2(1);
7116 --
7117 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
7118 --
7119 BEGIN
7120 IF g_header_rec.header_id is NULL
7121 OR g_header_rec.header_id <> p_header_id
7122 THEN
7123 Query_Header(p_header_id => p_header_id,
7124 x_header_rec => g_header_rec,
7125 x_return_status => l_return_status);
7126 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7127 x_return_status := l_return_status;
7128 END IF;
7129
7130 END IF;
7131 EXCEPTION
7132 WHEN OTHERS THEN
7133 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7134
7135 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
7136 THEN
7137 OE_MSG_PUB.Add_Exc_Msg
7138 ( G_PKG_NAME
7139 , 'Load Header'
7140 );
7141 END IF;
7142 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7143 END Load_Header;
7144
7145 PROCEDURE GET_ORDER_NUMBER(
7146 p_x_header_rec IN OUT NOCOPY OE_Blanket_PUB.Header_rec_type,
7147 x_return_status OUT NOCOPY varchar2)
7148 IS
7149
7150 l_order_number VARCHAR2(30):= NULL;
7151 x_doc_sequence_value NUMBER;
7152 x_doc_category_code VARCHAR(30);
7153 X_doc_sequence_id NUMBER;
7154 X_db_sequence_name VARCHAR2(50);
7155 x_doc_sequence_type CHAR(1);
7156 X_doc_sequence_name VARCHAR2(240);
7157 X_Prd_Tbl_Name VARCHAR2(240) ;
7158 X_Aud_Tbl_Name VARCHAR2(240);
7159 X_Msg_Flag VARCHAR2(240);
7160 X_set_Of_Books_id NUMBER;
7161 seqassid INTEGER;
7162 l_ord_num_src_id NUMBER := NULL;
7163 l_order_number_csr INTEGER;
7164 l_result INTEGER;
7165 l_select_stmt VARCHAR2(240);
7166 l_column_name VARCHAR2(80);
7167 t VARCHAR2(240);
7168 l_return_status VARCHAR2(30);
7169 X_trx_date DATE;
7170 lcount NUMBER;
7171 x_result NUMBER;
7172
7173 --
7174 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
7175 --
7176 BEGIN
7177 if l_debug_level > 0 then
7178 oe_debug_pub.add('Entering OR_BLANKET_UTIL.Get_Order_Number',1);
7179 end if;
7180
7181 --x_header_rec := p_header_rec;
7182 x_return_status := FND_API.G_RET_STS_SUCCESS;
7183
7184 x_Set_Of_Books_Id := OE_Sys_Parameters.VALUE('SET_OF_BOOKS_ID');
7185
7186 IF p_x_header_rec.order_type_id IS NOT NULL THEN
7187 x_doc_category_code := p_x_header_rec.order_type_id;
7188
7189 if l_debug_level > 0 then
7190 oe_debug_pub.ADD('before calling get_seq_info ', 2);
7191 oe_debug_pub.ADD('Category Code'||x_doc_category_code, 3);
7192 oe_debug_pub.ADD('Set of Books'||x_set_of_books_id, 3);
7193 end if;
7194 x_result := fnd_seqnum.get_seq_info(
7195 660,
7196 x_doc_category_code,
7197 x_set_of_books_id,
7198 null,
7199 sysdate,
7200 X_doc_sequence_id,
7201 x_doc_sequence_type,
7202 x_doc_sequence_name,
7203 X_db_sequence_name,
7204 seqassid,
7205 X_Prd_Tbl_Name,
7206 X_Aud_Tbl_Name,
7207 X_Msg_Flag
7208 );
7209
7210 if l_debug_level > 0 then
7211 oe_debug_pub.ADD('after calling get_seq_info ', 2);
7212 end if;
7213
7214 IF x_result <> FND_SEQNUM.SEQSUCC THEN
7215 IF x_result = FND_SEQNUM.NOTUSED THEN
7216 fnd_message.set_name('ONT','OE_MISS_DOC_SEQ');
7217 OE_MSG_PUB.Add;
7218 RAISE FND_API.G_EXC_ERROR;
7219 END IF;
7220
7221 END IF;
7222 t := x_doc_sequence_type;
7223
7224 IF ( t = 'A') THEN --automatic numbering
7225
7226
7227 X_result := fnd_seqnum.get_seq_val(
7228 660,
7229 x_doc_category_code,
7230 x_set_of_books_id,
7231 null,
7232 sysdate,
7233 x_doc_sequence_value,
7234 X_doc_sequence_id,
7235 'Y',
7236 'Y');
7237 IF x_result <> 0 THEN
7238 RAISE FND_API.G_EXC_ERROR;
7239 END IF;
7240
7241 if l_debug_level > 0 then
7242 oe_debug_pub.ADD('fndseqresult'||to_char(x_result), 2);
7243 oe_debug_pub.ADD('fndseqtype'||x_doc_sequence_value, 2);
7244 end if;
7245 p_x_header_rec.order_number := x_doc_sequence_value;
7246 --ELSIF (t = 'M') THEN
7247 ELSE
7248 SELECT meaning
7249 INTO l_column_name
7250 FROM fnd_lookups
7251 WHERE lookup_type = 'SEQUENCE_METHOD'
7252 AND lookup_code = t;
7253 fnd_message.set_name('ONT','OE_BLKT_INVALID_DOC_SEQ');
7254 fnd_message.set_token('Document Sequence', l_column_name);
7255 OE_MSG_PUB.Add;
7256
7257 RAISE FND_API.G_EXC_ERROR;
7258 -- x_doc_sequence_value := p_x_header_rec.order_number;
7259 -- NULL;
7260 END IF;
7261
7262 Select Count(header_id) into
7263 lcount From
7264 OE_BLANKET_HEADERS_ALL
7265 WHERE order_number = X_doc_sequence_value;
7266
7267 IF lcount > 0 THEN
7268 fnd_message.set_name('ONT','OE_BLKT_NUM_EXISTS');
7269 OE_MSG_PUB.Add;
7270 RAISE FND_API.G_EXC_ERROR;
7271 END IF;
7272 END IF; -- Blanket category code not null
7273
7274 if l_debug_level > 0 then
7275 oe_debug_pub.add('Exiting OR_BLANKET_UTIL.Get_Order_Number',1);
7276 end if;
7277
7278 EXCEPTION
7279 WHEN FND_API.G_EXC_ERROR THEN
7280 x_return_status := FND_API.G_RET_STS_ERROR;
7281 if l_debug_level > 0 then
7282 oe_debug_pub.ADD('Get blanket Number-Exp exception ', 1);
7283 end if;
7284 RAISE FND_API.G_EXC_ERROR;
7285
7286
7287 WHEN OTHERS THEN
7288 if l_debug_level > 0 then
7289 oe_debug_pub.ADD('Get blanket Number-exception ', 1);
7290 end if;
7291
7292 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7293
7294 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
7295 THEN
7296 OE_MSG_PUB.Add_Exc_Msg
7297 ( G_PKG_NAME ,
7298 'Get_Order_Number'
7299 );
7300 END IF;
7301
7302 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7303
7304 END Get_Order_Number;
7305
7306 PROCEDURE Process_Object(x_return_status OUT NOCOPY VARCHAR2) IS
7307 l_valid varchar2(1);
7308 lcount number ;
7309 I number;
7310 l_return_status varchar2(1);
7311 --
7312 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
7313 --
7314
7315 lx_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
7316 lx_msg_count NUMBER := 0;
7317 lx_msg_data VARCHAR2(2000);
7318
7319
7320 BEGIN
7321
7322 x_return_status := FND_API.G_RET_STS_SUCCESS;
7323
7324 -- Process Header requests
7325
7326 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Entity
7327 (p_entity_code => OE_BLANKET_PUB.G_ENTITY_BLANKET_HEADER
7328 ,p_delete => FND_API.G_TRUE
7329 ,x_return_status => l_return_status
7330 );
7331 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7332 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7333 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
7334 RAISE FND_API.G_EXC_ERROR;
7335 END IF;
7336
7337 -- Process Line Level Request
7338
7339 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Entity
7340 (p_entity_code => OE_BLANKET_PUB.G_ENTITY_BLANKET_LINE
7341 ,p_delete => FND_API.G_TRUE
7342 ,x_return_status => l_return_status
7343 );
7344 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7345 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7346 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
7347 RAISE FND_API.G_EXC_ERROR;
7348 END IF;
7349
7350
7351 IF oe_code_control.get_code_release_level >= '110510' and
7352 G_Header_Rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
7353 oe_debug_pub.ADD('Create and Start Flow srini : '||G_Header_Rec.operation) ;
7354 oe_blanket_wf_util.create_and_start_flow(
7355 p_header_id => G_header_rec.header_id,
7356 p_transaction_phase_code => G_header_rec.transaction_phase_code,
7357 p_blanket_number => G_header_rec.order_number,
7358 x_return_status => l_return_status,
7359 x_msg_count => lx_msg_count,
7360 x_msg_data => lx_msg_Data);
7361 IF lx_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7362 if l_debug_level > 0 then
7363 oe_debug_pub.ADD('OE_Blanket_Util.Process_Object unexp error in Create and Start flow ', 1);
7364 end if;
7365 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7366 ELSIF lx_return_status = FND_API.G_RET_STS_ERROR THEN
7367 if l_debug_level > 0 then
7368 oe_debug_pub.ADD('OE_Blanket_Util.Process_Object exc error in Create and Start Flow ', 1);
7369 end if;
7370 RAISE FND_API.G_EXC_ERROR;
7371 END IF;
7372
7373 end if;
7374
7375 -- moved instantiate call after create_and_start_flow procedure for bug 3691452
7376
7377 -- Instantiate the contract template id against the BSA if new record --ABH
7378 IF G_Header_Rec.operation = OE_GLOBALS.G_OPR_CREATE AND
7379 OE_CODE_CONTROL.Get_Code_Release_Level >= '110510'
7380 -- Do not instantiate for copied orders
7381 AND nvl(g_header_rec.source_document_type_id,-1) <> 2
7382 THEN
7383
7384 OE_CONTRACTS_UTIL.instantiate_doc_terms (
7385 p_api_version => 1.0,
7386 p_commit => FND_API.G_TRUE,
7387
7388 p_template_id => G_Header_Rec.contract_template_id,
7389 p_doc_type => 'B',
7390 p_doc_id => G_Header_Rec.header_id,
7391 p_doc_start_date => G_Header_Rec.start_date_active,
7392 p_doc_number => G_Header_Rec.order_number,
7393
7394 x_return_status => lx_return_status,
7395 x_msg_count => lx_msg_count,
7396 x_msg_data => lx_msg_data
7397 );
7398
7399 IF lx_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7400 if l_debug_level > 0 then
7401 oe_debug_pub.ADD('OE_Blanket_Util.Process_Object unexp error in inst. doc terms ', 1);
7402 end if;
7403 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7404 ELSIF lx_return_status = FND_API.G_RET_STS_ERROR THEN
7405 if l_debug_level > 0 then
7406 oe_debug_pub.ADD('OE_Blanket_Util.Process_Object exc error in inst. doc terms ', 1);
7407 end if;
7408 RAISE FND_API.G_EXC_ERROR;
7409 END IF;
7410
7411 END IF;
7412
7413 IF OE_CODE_CONTROL.Code_Release_Level >= '110510' AND
7414 OE_GLOBALS.G_ROLL_VERSION <> 'N' AND
7415 Not OE_GLOBALS.Equal(G_Header_Rec.operation, OE_GLOBALS.G_OPR_CREATE) THEN
7416 OE_Versioning_Util.Perform_Versioning(p_header_id => g_header_rec.header_id,
7417 p_document_type => 'BLANKETS',
7418 x_msg_count => lx_msg_count,
7419 x_msg_data => lx_msg_data,
7420 x_return_status => l_return_status);
7421
7422 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7423 if l_debug_level > 0 then
7424 oe_debug_pub.ADD('OE_Blanket_Util.Process_Object unexp error in perform versioning ', 1);
7425 end if;
7426 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7427 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
7428 if l_debug_level > 0 then
7429 oe_debug_pub.ADD('OE_Blanket_Util.Process_Object exc error in perform versioning ', 1);
7430 end if;
7431 RAISE FND_API.G_EXC_ERROR;
7432 END IF;
7433
7434 OE_Contracts_Util.Version_Articles(p_api_version => 1.0,
7435 p_doc_type => OE_Contracts_Util.G_BSA_DOC_TYPE,
7436 p_doc_id => g_old_header_hist_rec.header_id,
7437 p_version_number => g_old_header_hist_rec.version_number,
7438 x_return_status => lx_return_status,
7439 x_msg_data => lx_msg_data,
7440 x_msg_count => lx_msg_count);
7441
7442
7443 IF lx_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7444 if l_debug_level > 0 then
7445 oe_debug_pub.ADD('OE_Blanket_Util.Process_Object unexp error in perform versioning ', 1);
7446 end if;
7447 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7448 ELSIF lx_return_status = FND_API.G_RET_STS_ERROR THEN
7449 if l_debug_level > 0 then
7450 oe_debug_pub.ADD('OE_Blanket_Util.Process_Object exc error in perform versioning ', 1);
7451 end if;
7452 RAISE FND_API.G_EXC_ERROR;
7453 END IF;
7454
7455 END IF;
7456
7457 g_old_version_captured := FALSE;
7458 G_Header_Rec.operation := OE_GLOBALS.G_OPR_NONE;
7459
7460 EXCEPTION
7461
7462 WHEN FND_API.G_EXC_ERROR THEN
7463 --Commented for Bug 15879874
7464 --OE_Delayed_Requests_PVT.Clear_Request(lx_return_status); --bug 4691643
7465 x_return_status := FND_API.G_RET_STS_ERROR;
7466
7467 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7468 --Commented for Bug 15879874
7469 --OE_Delayed_Requests_PVT.Clear_Request(lx_return_status); --bug 4691643
7470 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7471
7472 WHEN OTHERS THEN
7473 --Commented for Bug 15879874
7474 --OE_Delayed_Requests_PVT.Clear_Request(lx_return_status); --bug 4691643
7475 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7476
7477 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
7478 THEN
7479 OE_MSG_PUB.Add_Exc_Msg
7480 ( G_PKG_NAME
7481 ,'Process Object'
7482 );
7483 END IF;
7484
7485 END Process_Object;
7486
7487 PROCEDURE VALIDATE_LINE_NUMBER
7488 (p_req_ind IN NUMBER
7489 ,x_return_status OUT NOCOPY VARCHAR2
7490 )
7491 IS
7492 l_valid varchar2(1);
7493 --
7494 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
7495 --
7496 BEGIN
7497 x_return_status := FND_API.G_RET_STS_SUCCESS;
7498
7499 IF oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).param2 < 1 THEN
7500 l_valid := 'N';
7501 ELSE
7502 BEGIN
7503 SELECT 'N'
7504 INTO l_valid
7505 FROM oe_blanket_lines L
7506 WHERE L.line_number =
7507 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).param2
7508 AND L.header_id =
7509 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).param1
7510 AND L.line_id <>
7511 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).entity_id;
7512
7513 EXCEPTION
7514 WHEN no_data_found THEN
7515 l_valid := 'Y';
7516 WHEN too_many_rows THEN
7517 l_valid := 'N';
7518 END;
7519
7520 END IF;
7521 IF l_valid = 'N' THEN
7522 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_LINE_NUMBER_EXISTS');
7523 OE_MSG_PUB.ADD;
7524 RAISE FND_API.G_EXC_ERROR;
7525 END IF;
7526
7527 EXCEPTION
7528
7529 WHEN FND_API.G_EXC_ERROR THEN
7530 if l_debug_level > 0 then
7531 oe_debug_pub.ADD('Validate line Number-Exp exception ', 1);
7532 end if;
7533 x_return_status := FND_API.G_RET_STS_ERROR;
7534 RAISE FND_API.G_EXC_ERROR;
7535
7536
7537 WHEN OTHERS THEN
7538 if l_debug_level > 0 then
7539 oe_debug_pub.ADD('Validate line Number-exception ', 1);
7540 end if;
7541
7542 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7543 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
7544 THEN
7545 OE_MSG_PUB.Add_Exc_Msg
7546 ( G_PKG_NAME ,
7547 'Validate Line NUmber'
7548 );
7549 END IF;
7550
7551 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7552
7553 END VALIDATE_LINE_NUMBER;
7554
7555 PROCEDURE VALIDATE_ITEM_UNIQUENESS
7556 (p_req_ind IN NUMBER
7557 ,x_return_status OUT NOCOPY VARCHAR2
7558 )
7559 IS
7560 l_valid varchar2(1);
7561 lcount number;
7562
7563 l_line_id NUMBER;
7564 l_header_id NUMBER;
7565 l_item_id NUMBER;
7566 l_item_identifier_type VARCHAR2(30);
7567 l_start_date_active DATE;
7568 l_end_date_active DATE;
7569 l_ordered_item_id NUMBER; --bug6826787
7570 l_ordered_item VARCHAR2(2000);--bug6826787
7571
7572
7573 --
7574 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
7575 --
7576 BEGIN
7577
7578 x_return_status := FND_API.G_RET_STS_SUCCESS;
7579
7580 l_line_id :=
7581 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).entity_id;
7582 l_item_id :=
7583 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).param1;
7584 l_header_id :=
7585 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).param2;
7586 l_item_identifier_type :=
7587 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).param3;
7588
7589 l_ordered_item_id :=
7590 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).param4;
7591
7592 l_ordered_item :=
7593 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).param5;
7594
7595
7596
7597 l_start_date_active :=
7598 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).date_param1;
7599 l_end_date_active :=
7600 oe_delayed_requests_pvt.g_delayed_requests(p_req_ind).date_param2;
7601
7602 if l_debug_level > 0 then
7603 oe_debug_pub.add('In validate Item Uniqueness');
7604 oe_debug_pub.add('item identifier type :'|| l_item_identifier_type);
7605 oe_debug_pub.add('inventory item id :'|| l_item_id);
7606 oe_debug_pub.add('header id :'|| l_header_id);
7607 oe_debug_pub.add('line id :'|| l_line_id);
7608 oe_debug_pub.add('start date :'|| l_start_date_active);
7609 oe_debug_pub.add('end date :'|| l_end_date_active);
7610 end if;
7611
7612 --modified the following sql to check for uiqueness of
7613 -- (inventory_item_id,item_idenitfier_type,ordered_item_id) for bug6826787
7614
7615 select count(1) into lcount
7616 from OE_BLANKET_LINES L, OE_BLANKET_LINES_EXT LX
7617 where L.line_id = LX.line_id
7618 AND L.header_id = l_header_id
7619 AND L.line_id <> l_line_id
7620 AND ( ( l_item_identifier_type NOT IN ('ALL','CAT')
7621 AND L.item_identifier_type NOT IN ('ALL','CAT')
7622 )
7623 OR (L.item_identifier_type = l_item_identifier_type)
7624 )
7625 AND nvl(L.inventory_item_id,-1) = nvl(l_item_id,-1)
7626 AND L.item_identifier_type = l_item_identifier_type
7627 AND NVL( to_char(L.ordered_item_id),
7628 decode (L.item_identifier_type,'INT', to_char(NVL(L.inventory_item_id,-1)),
7629 'ALL', to_char(NVL(L.inventory_item_id,-1)),
7630 'CAT', to_char(NVL(L.inventory_item_id,-1)),
7631 'CUST', to_char(NVL(L.ordered_item_id, NVL(L.inventory_item_id,-1) )),
7632 NVL(L.Ordered_item,'XXXX') ) ) = decode ( l_item_identifier_type , 'INT', to_char(nvl(l_item_id,-1))
7633 , 'ALL', to_char(nvl(l_item_id,-1))
7634 , 'CAT' , to_char(nvl(l_item_id,-1))
7635 , 'CUST', to_char(nvl(l_ordered_item_id,-1))
7636 , to_char(nvl(l_ordered_item,'XXXX') ))
7637 AND ( (l_end_date_active IS NULL
7638 -- Duplicate blanket line date cannot be effective
7639 -- beyond the start date of this blanket line
7640 AND l_start_date_active <=
7641 nvl(LX.end_date_active,l_start_date_active)
7642 )
7643 OR (l_end_date_active IS NOT NULL
7644 -- Dates for this line cannot be between effectivity dates
7645 -- for duplicate blanket line
7646 AND (l_end_date_active BETWEEN
7647 LX.start_date_active AND
7648 nvl(LX.end_date_active,l_end_date_active + 1)
7649 OR l_start_date_active BETWEEN
7650 LX.start_date_active AND
7651 nvl(LX.end_date_active,l_end_date_active + 1)
7652 )
7653 )
7654 );
7655
7656 if (lcount > 0) then
7657 -- ERROR: date overlap problem. Show error and
7658 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_UNIQUE_ITEM_VIOLATION');
7659 OE_MSG_PUB.ADD;
7660 RAISE FND_API.G_EXC_ERROR;
7661 end if;
7662
7663 EXCEPTION
7664 WHEN FND_API.G_EXC_ERROR THEN
7665 if l_debug_level > 0 then
7666 oe_debug_pub.ADD('Validate item uniqr-Exp exception ', 1);
7667 end if;
7668 x_return_status := FND_API.G_RET_STS_ERROR;
7669 RAISE FND_API.G_EXC_ERROR;
7670 WHEN OTHERS THEN
7671 if l_debug_level > 0 then
7672 oe_debug_pub.ADD('Validate item uniqueness-exception ', 1);
7673 end if;
7674 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7675 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
7676 THEN
7677 OE_MSG_PUB.Add_Exc_Msg
7678 ( G_PKG_NAME ,
7679 'Validate item uniqueness'
7680 );
7681 END IF;
7682 END VALIDATE_ITEM_UNIQUENESS;
7683
7684
7685 FUNCTION IS_BLANKET_PRICE_LIST(p_price_list_id NUMBER
7686 -- 11i10 Pricing Change
7687 ,p_blanket_header_id NUMBER DEFAULT NULL)
7688 RETURN BOOLEAN IS
7689 l_dummy VARCHAR2(30);
7690 l_result BOOLEAN;
7691 --
7692 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
7693 --
7694 BEGIN
7695
7696 -- 11i10 pricing change - source code is BSO in 11i10.
7697 -- Select from qp tables with source as blanket
7698 -- if exist then return true otherwise false
7699
7700 IF OE_Code_Control.Get_Code_Release_Level < '110510' THEN
7701
7702 SELECT 'VALID'
7703 INTO l_dummy
7704 FROM QP_LIST_HEADERS
7705 WHERE LIST_HEADER_ID = p_price_list_id
7706 AND LIST_SOURCE_CODE = 'BLKT';
7707
7708 ELSE
7709
7710 l_result := OE_Blanket_Pricing_Util.Is_Blanket_Price_List
7711 (p_price_list_id => p_price_list_id
7712 ,p_blanket_header_id => p_blanket_header_id
7713 );
7714
7715 RETURN l_result;
7716
7717 /*
7718 SELECT 'VALID'
7719 INTO l_dummy
7720 FROM QP_LIST_HEADERS
7721 WHERE LIST_HEADER_ID = p_price_list_id
7722 AND LIST_SOURCE_CODE = 'BSO'
7723 AND orig_system_header_ref = p_blanket_header_id
7724 ;
7725 */
7726
7727 END IF;
7728
7729 RETURN TRUE;
7730
7731 EXCEPTION
7732 WHEN NO_DATA_FOUND THEN
7733 if l_debug_level > 0 then
7734 oe_debug_pub.ADD('Not a blanket price list', 1);
7735 end if;
7736 RETURN FALSE;
7737
7738 END IS_BLANKET_PRICE_LIST;
7739
7740 PROCEDURE RECORD_BLANKET_HISTORY
7741 (p_version_flag in varchar2 := null,
7742 p_phase_change_flag in varchar2 := null,
7743 x_return_status OUT NOCOPY VARCHAR2
7744 )
7745 IS
7746 l_return_status VARCHAR2(1);
7747 l_new_version_number NUMBER;
7748 --
7749 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
7750 --
7751 BEGIN
7752 if l_debug_level > 0 then
7753 oe_debug_pub.ADD('Entering Record_Blanket_History from delayed req', 1);
7754 end if;
7755
7756 x_return_status := FND_API.G_RET_STS_SUCCESS;
7757
7758 SELECT /* MOAC_SQL_CHANGE */ version_number
7759 INTO l_new_version_number
7760 FROM oe_blanket_headers_all
7761 WHERE header_id = g_old_header_hist_rec.header_id;
7762
7763 if l_debug_level > 0 then
7764 oe_debug_pub.ADD('old versn :'||g_old_header_hist_rec.version_number);
7765 oe_debug_pub.ADD('new versn :'||l_new_version_number);
7766 end if;
7767
7768 -- This check is needed as user could change version number multiple times
7769 -- but in the end, latest version number could be same as the old version
7770 -- number. If that occurs, we need not record history.
7771
7772 -- For 11i10, version update occurs after history is inserted
7773 IF OE_CODE_CONTROL.Code_Release_Level < '110510' AND
7774 l_new_version_number <= g_old_header_hist_rec.version_number THEN
7775 RETURN;
7776 END IF;
7777
7778 Insert_History_Records
7779 (p_header_rec => g_old_header_hist_rec
7780 ,p_line_tbl => g_old_line_hist_tbl
7781 ,p_version_flag => p_version_flag
7782 ,p_phase_change_flag => p_phase_change_flag
7783 ,x_return_status => l_return_status);
7784
7785 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7786 x_return_status := l_return_status;
7787 END IF;
7788
7789 EXCEPTION
7790 WHEN OTHERS THEN
7791 if l_debug_level > 0 then
7792 oe_debug_pub.ADD('Record Blanket History Exception ', 1);
7793 end if;
7794
7795 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7796
7797 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
7798 THEN
7799 OE_MSG_PUB.Add_Exc_Msg
7800 ( G_PKG_NAME ,
7801 'Record Blanket History'
7802 );
7803 END IF;
7804 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7805
7806 END RECORD_BLANKET_HISTORY;
7807
7808 PROCEDURE Copy_Blanket (p_header_id IN NUMBER,
7809 p_version_number IN NUMBER,
7810 x_header_id OUT NOCOPY NUMBER,
7811 x_return_status OUT NOCOPY VARCHAR2,
7812 x_msg_count OUT NOCOPY NUMBER,
7813 x_msg_data OUT NOCOPY VARCHAR2)
7814 IS
7815
7816 l_header_rec OE_Blanket_Pub.header_rec_type;
7817 l_line_tbl OE_Blanket_Pub.line_tbl_type;
7818 l_control_rec OE_Blanket_Pub.control_rec_type;
7819 x_header_rec OE_Blanket_Pub.header_rec_type;
7820 x_line_tbl OE_Blanket_Pub.line_tbl_type;
7821 l_return_status VARCHAR2(1);
7822 l_header_id NUMBER;
7823 l_count NUMBER;
7824 --
7825 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
7826 --
7827 BEGIN
7828
7829 if l_debug_level > 0 then
7830 oe_debug_pub.ADD('Entering Copy_blanket ', 1);
7831 end if;
7832
7833 OE_MSG_PUB.initialize;
7834
7835 SAVEPOINT Copy_Blanket;
7836
7837 OE_MSG_PUB.set_msg_context(
7838 p_entity_code => 'BLANKET_HEADER'
7839 ,p_entity_id => p_header_id
7840 ,p_header_id => p_header_id
7841 ,p_line_id => null
7842 ,p_orig_sys_document_ref => null
7843 ,p_orig_sys_document_line_ref => null
7844 ,p_change_sequence => null
7845 ,p_source_document_id => null
7846 ,p_source_document_line_id => null
7847 ,p_order_source_id => null
7848 ,p_source_document_type_id => null);
7849
7850 x_return_status := FND_API.G_RET_STS_SUCCESS;
7851
7852 -- Set message context
7853
7854 -- Step One: Populate header record and line table with desired
7855 -- attributes. Refer Blankets HLD for specific attributes to be copied.
7856
7857 Query_Blanket(p_header_id => p_header_id
7858 , p_version_number => p_version_number
7859 ,p_x_header_rec => l_header_rec
7860 ,p_x_line_tbl => l_line_tbl
7861 ,x_return_status => x_return_status);
7862
7863 -- Prepare control record
7864 l_control_rec.UI_CALL := FALSE;
7865 l_control_rec.validate_attributes := TRUE;
7866 l_control_rec.validate_entity := TRUE;
7867 l_control_rec.check_security := TRUE;
7868
7869 -- Prepare attributes for new blanket
7870 l_header_rec.source_document_type_id := 2; --Copy source
7871 l_header_rec.source_document_id := l_header_rec.header_id;
7872 l_header_rec.source_document_version_number := l_header_rec.version_number;
7873
7874 -- Pre-default header_id for proper message display
7875 SELECT OE_ORDER_HEADERS_S.NEXTVAL
7876 INTO l_header_rec.header_id
7877 FROM DUAL;
7878
7879 l_header_rec.order_number := NULL;
7880 l_header_rec.version_number := 0;
7881 l_header_rec.operation := oe_globals.g_opr_create;
7882 --l_header_rec.start_date_active := trunc(SYSDATE);
7883 --l_header_rec.end_date_active := NULL;
7884 l_header_rec.revision_change_date := NULL;
7885 l_header_rec.revision_change_reason_code := NULL;
7886 l_header_rec.revision_change_comments := NULL;
7887 l_header_rec.released_amount := NULL;
7888 l_header_rec.returned_amount := NULL;
7889 l_header_rec.fulfilled_amount := NULL;
7890
7891 l_header_rec.sales_document_name := null;
7892 --clear out NOCOPY /* file.sql.39 change */ signature columns here
7893 l_header_rec.customer_signature := null;
7894 l_header_rec.customer_signature_date := null;
7895 l_header_rec.supplier_signature := null;
7896 l_header_rec.supplier_signature_date := null;
7897 l_header_rec.transaction_phase_code := null;
7898 l_header_rec.user_status_code := null;
7899 l_header_rec.flow_status_code := null;
7900 l_header_rec.draft_submitted_flag := null;
7901
7902 --Null out NOCOPY /* file.sql.39 change */ price list if it's a blanket price list, repeat for header and each line:
7903 -- 11i10 Pricing changes, pass header id to is_blanket_price_list
7904 If Is_Blanket_Price_List(p_price_list_id => l_header_rec.price_list_id
7905 ,p_blanket_header_id => p_header_id) Then
7906 l_header_rec.price_list_id := NULL;
7907 l_header_rec.enforce_price_list_flag := NULL;
7908 End If;
7909 -- 11i10 Pricing Changes
7910 -- Always null out NOCOPY /* file.sql.39 change */ new price list/modifier/discount fields when copying
7911 l_header_rec.new_price_list_id := NULL;
7912 l_header_rec.new_modifier_list_id := NULL;
7913 l_header_rec.default_discount_percent := NULL;
7914 l_header_rec.default_discount_amount := NULL;
7915 l_header_rec.new_price_list_name := NULL;
7916 l_header_rec.new_modifier_list_name := NULL;
7917
7918 FOR l_count in 1..l_line_tbl.COUNT LOOP
7919 l_line_tbl(l_count).source_document_type_id := 2; --Copy source
7920 l_line_tbl(l_count).source_document_id := l_header_rec.source_document_id;
7921 l_line_tbl(l_count).source_document_version_number := l_header_rec.source_document_version_number;
7922 l_line_tbl(l_count).source_document_line_id := l_line_tbl(l_count).line_id;
7923 l_line_tbl(l_count).header_id := l_header_rec.header_id;
7924 l_line_tbl(l_count).order_number := NULL;
7925
7926 -- Pre-default header_id for proper message display
7927 SELECT OE_ORDER_LINES_S.NEXTVAL
7928 INTO l_line_tbl(l_count).line_id
7929 FROM DUAL;
7930
7931 l_line_tbl(l_count).operation := oe_globals.g_opr_create;
7932 l_line_tbl(l_count).order_number := NULL;
7933 l_line_tbl(l_count).line_number := NULL;
7934 --l_line_tbl(l_count).start_date_active := NULL;
7935 --l_line_tbl(l_count).end_date_active := NULL;
7936 l_line_tbl(l_count).released_amount := NULL;
7937 l_line_tbl(l_count).released_quantity := NULL;
7938 l_line_tbl(l_count).returned_amount := NULL;
7939 l_line_tbl(l_count).returned_quantity := NULL;
7940 l_line_tbl(l_count).fulfilled_amount := NULL;
7941 l_line_tbl(l_count).fulfilled_quantity := NULL;
7942 l_line_tbl(l_count).transaction_phase_code := null;
7943
7944 -- 11i10 Pricing changes, pass header id to is_blanket_price_list
7945 If Is_Blanket_Price_List(p_price_list_id => l_line_tbl(l_count).price_list_id,
7946 p_blanket_header_id => p_header_id) Then
7947 l_line_tbl(l_count).price_list_id := NULL;
7948 l_line_tbl(l_count).qp_list_line_id := NULL;
7949 l_line_tbl(l_count).enforce_price_list_flag := NULL;
7950 End If;
7951 -- 11i10 Pricing Changes
7952 -- Always null out NOCOPY /* file.sql.39 change */ new modifier/discount fields when copying
7953 l_line_tbl(l_count).modifier_list_line_id := NULL;
7954 l_line_tbl(l_count).discount_percent := NULL;
7955 l_line_tbl(l_count).discount_amount := NULL;
7956 END LOOP;
7957
7958 OE_BLANKET_PVT.Process_Blanket
7959 ( p_api_version_number => 1.0
7960 , p_validation_level => OE_GLOBALS.G_VALID_LEVEL_PARTIAL
7961 , x_return_status => x_return_status
7962 , x_msg_count => x_msg_count
7963 , x_msg_data => x_msg_data
7964 , p_header_rec => l_header_rec
7965 , p_line_tbl => l_line_tbl
7966 , p_control_rec => l_control_rec
7967 , x_header_rec => x_header_rec
7968 , x_line_tbl => x_line_tbl
7969 );
7970
7971 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
7972 fnd_message.set_name('ONT','OE_CPY_COPY_FAILED');
7973 OE_MSG_PUB.Add;
7974 ROLLBACK TO SAVEPOINT Copy_Blanket;
7975 RAISE FND_API.G_EXC_ERROR;
7976 END IF;
7977
7978 -- copy articles
7979 OE_Contracts_Util.copy_articles(p_api_version => 1.0,
7980 p_doc_type => 'B',
7981 p_copy_from_doc_id => p_header_id,
7982 p_version_number => p_version_number,
7983 p_copy_to_doc_id => x_header_rec.header_id,
7984 p_copy_to_doc_number => x_header_rec.order_number,
7985 x_return_status => l_return_status,
7986 x_msg_count => x_msg_count,
7987 x_msg_data => x_msg_data
7988 );
7989
7990
7991 IF NOT OE_GLOBALS.EQUAL(l_return_status, FND_API.G_RET_STS_SUCCESS) THEN
7992 x_return_status := nvl(l_return_status, x_return_status);
7993 END IF;
7994
7995 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
7996 fnd_message.set_name('ONT','OE_CPY_COPY_FAILED');
7997 OE_MSG_PUB.Add;
7998 ROLLBACK TO SAVEPOINT Copy_Blanket;
7999 RAISE FND_API.G_EXC_ERROR;
8000 ELSE
8001 fnd_message.set_name('ONT','OE_BL_COPY_SUCCESS');
8002 -- Bug 3337297
8003 -- Set blanket number token
8004 fnd_message.set_token('BLANKET_NUMBER',x_header_rec.order_number);
8005 OE_MSG_PUB.Add;
8006 x_header_id := x_header_rec.header_id;
8007 END IF;
8008
8009
8010 -- Get message count and data
8011
8012 OE_MSG_PUB.Count_And_Get
8013 ( p_count => x_msg_count
8014 , p_data => x_msg_data
8015 );
8016
8017 EXCEPTION
8018 WHEN FND_API.G_EXC_ERROR THEN
8019 x_return_status := FND_API.G_RET_STS_ERROR;
8020
8021 OE_MSG_PUB.Count_And_Get
8022 ( p_count => x_msg_count
8023 , p_data => x_msg_data
8024 );
8025
8026 WHEN OTHERS THEN
8027 if l_debug_level > 0 then
8028 oe_debug_pub.ADD('Copy Blanket Exception ', 1);
8029 end if;
8030
8031 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
8032
8033 OE_MSG_PUB.Count_And_Get
8034 ( p_count => x_msg_count
8035 , p_data => x_msg_data
8036 );
8037
8038 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
8039 THEN
8040 OE_MSG_PUB.Add_Exc_Msg
8041 ( G_PKG_NAME ,
8042 'Copy Blanket'
8043 );
8044 END IF;
8045 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8046
8047 END Copy_Blanket;
8048
8049 Procedure Validate_Min_Max_Range (
8050 p_min_value IN NUMBER,
8051 p_max_value IN NUMBER,
8052 p_attribute IN VARCHAR2,
8053 x_return_status IN OUT NOCOPY VARCHAR2
8054 )
8055 IS
8056 --
8057 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
8058 --
8059 BEGIN
8060
8061
8062 IF (p_min_value IS NOT NULL)
8063 AND (p_max_value IS NOT NULL)
8064 AND (p_min_value > p_max_value) THEN
8065 if l_debug_level > 0 then
8066 oe_debug_pub.add('Invalid min/max for attribute :'||p_attribute);
8067 end if;
8068 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_MIN_MAX_RANGE');
8069 FND_MESSAGE.SET_TOKEN('MIN', p_min_value);
8070 FND_MESSAGE.SET_TOKEN('MAX', p_max_value);
8071 OE_MSG_PUB.ADD;
8072 x_return_status := FND_API.G_RET_STS_ERROR;
8073 END IF;
8074
8075 EXCEPTION
8076
8077 WHEN OTHERS THEN
8078 if l_debug_level > 0 then
8079 oe_debug_pub.ADD('Validate min max range - U exeception ', 1);
8080 end if;
8081
8082 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
8083 THEN
8084 OE_MSG_PUB.Add_Exc_Msg
8085 ( G_PKG_NAME ,
8086 'Validate min max range'
8087 );
8088 END IF;
8089 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8090
8091 END Validate_Min_Max_Range;
8092
8093
8094 PROCEDURE Insert_History_Records
8095 (p_header_rec IN OUT NOCOPY OE_Blanket_PUB.Header_Rec_Type
8096 ,p_line_tbl IN OUT NOCOPY OE_Blanket_PUB.Line_Tbl_Type
8097 ,p_version_flag in varchar2 := null
8098 ,p_phase_change_flag in varchar2 := null
8099 ,x_return_status IN OUT NOCOPY VARCHAR2
8100 )
8101 IS
8102 l_org_id NUMBER;
8103 --
8104 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
8105 --
8106 BEGIN
8107 -- <R12.MOAC> START
8108 --l_org_id := to_number(FND_PROFILE.VALUE('ORG_ID'));
8109 -- <R12.MOAC> END
8110
8111 if l_debug_level > 0 then
8112 oe_debug_pub.ADD('Before inserting blanket history header_id ' || p_header_rec.header_id, 5);
8113 end if;
8114
8115 INSERT INTO OE_BLANKET_HEADERS_HIST
8116 ( ACCOUNTING_RULE_ID
8117 , AGREEMENT_ID
8118 , ATTRIBUTE1
8119 , ATTRIBUTE10
8120 , ATTRIBUTE11
8121 , ATTRIBUTE12
8122 , ATTRIBUTE13
8123 , ATTRIBUTE14
8124 , ATTRIBUTE15
8125 , ATTRIBUTE16
8126 , ATTRIBUTE17
8127 , ATTRIBUTE18
8128 , ATTRIBUTE19
8129 , ATTRIBUTE20
8130 , ATTRIBUTE2
8131 , ATTRIBUTE3
8132 , ATTRIBUTE4
8133 , ATTRIBUTE5
8134 , ATTRIBUTE6
8135 , ATTRIBUTE7
8136 , ATTRIBUTE8
8137 , ATTRIBUTE9
8138 --adding context since it was missing
8139 , CONTEXT
8140 , CREATED_BY
8141 , CREATION_DATE
8142 , CUST_PO_NUMBER
8143 , DELIVER_TO_ORG_ID
8144 , FREIGHT_TERMS_CODE
8145 , header_id
8146 , INVOICE_TO_ORG_ID
8147 , INVOICING_RULE_ID
8148 , LAST_UPDATED_BY
8149 , LAST_UPDATE_DATE
8150 , LAST_UPDATE_LOGIN
8151 , ORDER_NUMBER
8152 , ORDER_TYPE_ID
8153 , PAYMENT_TERM_ID
8154 , PRICE_LIST_ID
8155 , PROGRAM_APPLICATION_ID
8156 , PROGRAM_ID
8157 , PROGRAM_UPDATE_DATE
8158 , REQUEST_ID
8159 , SALESREP_ID
8160 , SHIPPING_METHOD_CODE
8161 , ship_from_org_id
8162 , SHIP_TO_ORG_ID
8163 , SOLD_TO_CONTACT_ID
8164 , SOLD_TO_ORG_ID
8165 , TRANSACTIONAL_CURR_CODE
8166 , conversion_type_code
8167 , VERSION_NUMBER
8168 , SHIPPING_INSTRUCTIONS
8169 , PACKING_INSTRUCTIONS
8170 , START_DATE_ACTIVE
8171 , END_DATE_ACTIVE
8172 , on_hold_flag
8173 , ENFORCE_PRICE_LIST_FLAG
8174 , enforce_ship_to_flag
8175 , enforce_invoice_to_flag
8176 , enforce_freight_term_flag
8177 , enforce_shipping_method_flag
8178 , enforce_payment_term_flag
8179 , enforce_accounting_rule_flag
8180 , enforce_invoicing_rule_flag
8181 , OVERRIDE_AMOUNT_FLAG
8182 , BLANKET_MAX_AMOUNT
8183 , BLANKET_MIN_AMOUNT
8184 , RELEASED_AMOUNT
8185 , FULFILLED_AMOUNT
8186 , RETURNED_AMOUNT
8187 , ORG_ID
8188 , REVISION_CHANGE_REASON_CODE
8189 , REVISION_CHANGE_COMMENTS
8190 , REVISION_CHANGE_DATE
8191 , RESPONSIBILITY_ID
8192 , HIST_TYPE_CODE
8193 , HIST_CREATION_DATE
8194 , HIST_CREATED_BY
8195 , SALES_DOCUMENT_TYPE_CODE
8196 , source_document_id
8197 , source_document_type_id
8198 , SALES_DOCUMENT_NAME -- hashraf ... start of pack J
8199 , TRANSACTION_PHASE_CODE
8200 , USER_STATUS_CODE
8201 , FLOW_STATUS_CODE
8202 , SUPPLIER_SIGNATURE
8203 , SUPPLIER_SIGNATURE_DATE
8204 , CUSTOMER_SIGNATURE
8205 , CUSTOMER_SIGNATURE_DATE
8206 , sold_to_site_use_id
8207 , draft_submitted_flag
8208 , source_document_version_number -- hashraf ... end of pack J
8209 , version_flag
8210 , phase_change_flag
8211 , new_modifier_list_id
8212 , new_price_list_id
8213 , default_discount_amount
8214 , default_discount_percent
8215 )
8216 VALUES
8217 ( p_header_rec.accounting_rule_id
8218 , p_header_rec.agreement_id
8219 , p_header_rec.attribute1
8220 , p_header_rec.attribute10
8221 , p_header_rec.attribute11
8222 , p_header_rec.attribute12
8223 , p_header_rec.attribute13
8224 , p_header_rec.attribute14
8225 , p_header_rec.attribute15
8226 , p_header_rec.attribute16
8227 , p_header_rec.attribute17
8228 , p_header_rec.attribute18
8229 , p_header_rec.attribute19
8230 , p_header_rec.attribute20
8231 , p_header_rec.attribute2
8232 , p_header_rec.attribute3
8233 , p_header_rec.attribute4
8234 , p_header_rec.attribute5
8235 , p_header_rec.attribute6
8236 , p_header_rec.attribute7
8237 , p_header_rec.attribute8
8238 , p_header_rec.attribute9
8239 --added context ,since it was missing
8240 , p_header_rec.context
8241 , p_header_rec.created_by
8242 , p_header_rec.creation_date
8243 , p_header_rec.cust_po_number
8244 , p_header_rec.deliver_to_org_id
8245 , p_header_rec.freight_terms_code
8246 , p_header_rec.header_id
8247 , p_header_rec.invoice_to_org_id
8248 , p_header_rec.invoicing_rule_id
8249 , p_header_rec.last_updated_by
8250 , p_header_rec.last_update_date
8251 , p_header_rec.last_update_login
8252 , p_header_rec.order_number
8253 , p_header_rec.order_type_id
8254 , p_header_rec.payment_term_id
8255 , p_header_rec.price_list_id
8256 , p_header_rec.program_application_id
8257 , p_header_rec.program_id
8258 , p_header_rec.program_update_date
8259 , p_header_rec.request_id
8260 , p_header_rec.salesrep_id
8261 , p_header_rec.shipping_method_code
8262 , p_header_rec.ship_from_org_id
8263 , p_header_rec.ship_to_org_id
8264 , p_header_rec.sold_to_contact_id
8265 , p_header_rec.sold_to_org_id
8266 , p_header_rec.transactional_curr_code
8267 , p_header_rec.conversion_type_code
8268 , p_header_rec.version_number
8269 , p_header_rec.shipping_instructions
8270 , p_header_rec.packing_instructions
8271 , p_header_rec.START_DATE_ACTIVE
8272 , p_header_rec.END_DATE_ACTIVE
8273 , p_header_rec.on_hold_flag
8274 , p_header_rec.ENFORCE_PRICE_LIST_FLAG
8275 , p_header_rec.enforce_ship_to_flag
8276 , p_header_rec.enforce_invoice_to_flag
8277 , p_header_rec.enforce_freight_term_flag
8278 , p_header_rec.enforce_shipping_method_flag
8279 , p_header_rec.enforce_payment_term_flag
8280 , p_header_rec.enforce_accounting_rule_flag
8281 , p_header_rec.enforce_invoicing_rule_flag
8282 , p_header_rec.OVERRIDE_AMOUNT_FLAG
8283 , p_header_rec.Blanket_Max_Amount
8284 , p_header_rec.Blanket_Min_Amount
8285 , p_header_rec.RELEASED_AMOUNT
8286 , p_header_rec.FULFILLED_AMOUNT
8287 , p_header_rec.RETURNED_AMOUNT
8288 , p_header_rec.ORG_ID
8289 , p_header_rec.REVISION_CHANGE_REASON_CODE
8290 , p_header_rec.REVISION_CHANGE_COMMENTS
8291 , p_header_rec.REVISION_CHANGE_DATE
8292 , nvl(FND_GLOBAL.RESP_ID,-1)
8293 , 'UPDATE'
8294 , sysdate
8295 , nvl(FND_GLOBAL.USER_ID, -1)
8296 , 'B'
8297 , p_header_rec.source_document_id
8298 , p_header_rec.source_document_type_id
8299 , p_header_rec.SALES_DOCUMENT_NAME -- hashraf ... start of pack J
8300 , p_header_rec.TRANSACTION_PHASE_CODE
8301 , p_header_rec.USER_STATUS_CODE
8302 , p_header_rec.FLOW_STATUS_CODE
8303 , p_header_rec.SUPPLIER_SIGNATURE
8304 , p_header_rec.SUPPLIER_SIGNATURE_DATE
8305 , p_header_rec.CUSTOMER_SIGNATURE
8306 , p_header_rec.CUSTOMER_SIGNATURE_DATE
8307 , p_header_rec.sold_to_site_use_id
8308 , p_header_rec.draft_submitted_flag
8309 , p_header_rec.source_document_version_number -- hashraf ... end of pack J
8310 , p_version_flag
8311 , p_phase_change_flag
8312 , p_header_rec.new_modifier_list_id
8313 , p_header_rec.new_price_list_id
8314 , p_header_rec.default_discount_amount
8315 , p_header_rec.default_discount_percent
8316 );
8317
8318
8319 FOR I IN 1..p_line_tbl.COUNT LOOP
8320
8321 if l_debug_level > 0 then
8322 oe_debug_pub.ADD('Before inserting blanket line history line_id ' || p_line_tbl(I).line_id, 5);
8323 end if;
8324
8325 INSERT INTO OE_BLANKET_LINES_HIST
8326 ( ACCOUNTING_RULE_ID
8327 , AGREEMENT_ID
8328 , ATTRIBUTE1
8329 , ATTRIBUTE10
8330 , ATTRIBUTE11
8331 , ATTRIBUTE12
8332 , ATTRIBUTE13
8333 , ATTRIBUTE14
8334 , ATTRIBUTE15
8335 , ATTRIBUTE16
8336 , ATTRIBUTE17
8337 , ATTRIBUTE18
8338 , ATTRIBUTE19
8339 , ATTRIBUTE20
8340 , ATTRIBUTE2
8341 , ATTRIBUTE3
8342 , ATTRIBUTE4
8343 , ATTRIBUTE5
8344 , ATTRIBUTE6
8345 , ATTRIBUTE7
8346 , ATTRIBUTE8
8347 , ATTRIBUTE9
8348 , CONTEXT
8349 , CREATED_BY
8350 , CREATION_DATE
8351 , CUST_PO_NUMBER
8352 , DELIVER_TO_ORG_ID
8353 , FREIGHT_TERMS_CODE
8354 , header_id --header_id
8355 , min_release_quantity
8356 , max_release_quantity
8357 , inventory_item_id
8358 , INVOICE_TO_ORG_ID
8359 , INVOICING_RULE_ID
8360 , ORDERED_ITEM_ID
8361 , item_identifier_type
8362 , ORDERED_ITEM
8363 , ITEM_TYPE_CODE
8364 , LAST_UPDATED_BY
8365 , LAST_UPDATE_DATE
8366 , LAST_UPDATE_LOGIN
8367 , line_id --line_id
8368 , line_number --blanket_line_number
8369 , PAYMENT_TERM_ID
8370 , PREFERRED_GRADE --OPM Added 02/JUN/00
8371 , PRICE_LIST_ID
8372 , PROGRAM_APPLICATION_ID
8373 , PROGRAM_ID
8374 , PROGRAM_UPDATE_DATE
8375 , REQUEST_ID
8376 , SALESREP_ID
8377 , SHIPPING_METHOD_CODE
8378 , ship_from_org_id
8379 , ship_to_org_id
8380 , SHIPPING_INSTRUCTIONS
8381 , PACKING_INSTRUCTIONS
8382 , START_DATE_ACTIVE
8383 , END_DATE_ACTIVE
8384 , MAX_RELEASE_AMOUNT
8385 , MIN_RELEASE_AMOUNT
8386 , BLANKET_LINE_MAX_AMOUNT
8387 , BLANKET_LINE_MIN_AMOUNT
8388 , BLANKET_MAX_QUANTITY
8389 , BLANKET_MIN_QUANTITY
8390 , OVERRIDE_BLANKET_CONTROLS_FLAG
8391 , OVERRIDE_RELEASE_CONTROLS_FLAG
8392 , ENFORCE_PRICE_LIST_FLAG
8393 , enforce_ship_to_flag
8394 , enforce_invoice_to_flag
8395 , enforce_freight_term_flag
8396 , enforce_shipping_method_flag
8397 , enforce_payment_term_flag
8398 , enforce_accounting_rule_flag
8399 , enforce_invoicing_rule_flag
8400 , ORDER_QUANTITY_UOM
8401 , RELEASED_QUANTITY
8402 , FULFILLED_QUANTITY
8403 , RETURNED_QUANTITY
8404 , ORDER_NUMBER
8405 , RELEASED_AMOUNT
8406 , FULFILLED_AMOUNT
8407 , RETURNED_AMOUNT
8408 , RESPONSIBILITY_ID
8409 , HIST_TYPE_CODE
8410 , HIST_CREATION_DATE
8411 , HIST_CREATED_BY
8412 , VERSION_NUMBER
8413 , SALES_DOCUMENT_TYPE_CODE
8414 , TRANSACTION_PHASE_CODE -- hashraf ... start of pack J
8415 , source_document_version_number
8416 , version_flag
8417 , phase_change_flag
8418 , modifier_list_line_id
8419 )
8420 VALUES
8421 ( p_line_tbl(I).accounting_rule_id
8422 , p_line_tbl(I).agreement_id
8423 , p_line_tbl(I).attribute1
8424 , p_line_tbl(I).attribute10
8425 , p_line_tbl(I).attribute11
8426 , p_line_tbl(I).attribute12
8427 , p_line_tbl(I).attribute13
8428 , p_line_tbl(I).attribute14
8429 , p_line_tbl(I).attribute15
8430 , p_line_tbl(I).attribute16
8431 , p_line_tbl(I).attribute17
8432 , p_line_tbl(I).attribute18
8433 , p_line_tbl(I).attribute19
8434 , p_line_tbl(I).attribute20
8435 , p_line_tbl(I).attribute2
8436 , p_line_tbl(I).attribute3
8437 , p_line_tbl(I).attribute4
8438 , p_line_tbl(I).attribute5
8439 , p_line_tbl(I).attribute6
8440 , p_line_tbl(I).attribute7
8441 , p_line_tbl(I).attribute8
8442 , p_line_tbl(I).attribute9
8443 , p_line_tbl(I).context
8444 , p_line_tbl(I).created_by
8445 , p_line_tbl(I).creation_date
8446 , p_line_tbl(I).cust_po_number
8447 , p_line_tbl(I).deliver_to_org_id
8448 , p_line_tbl(I).freight_terms_code
8449 , p_line_tbl(I).header_id
8450 , p_line_tbl(I).min_release_quantity
8451 , p_line_tbl(I).max_release_quantity
8452 , p_line_tbl(I).inventory_item_id
8453 , p_line_tbl(I).invoice_to_org_id
8454 , p_line_tbl(I).invoicing_rule_id
8455 , p_line_tbl(I).ordered_item_id
8456 , p_line_tbl(I).item_identifier_type
8457
8458 , p_line_tbl(I).ordered_item
8459 , p_line_tbl(I).item_type_code
8460 , p_line_tbl(I).last_updated_by
8461 , p_line_tbl(I).last_update_date
8462 , p_line_tbl(I).last_update_login
8463 , p_line_tbl(I).line_id
8464 , p_line_tbl(I).line_number
8465 , p_line_tbl(I).payment_term_id
8466 , p_line_tbl(I).preferred_grade --OPM 02/JUN/00
8467 , p_line_tbl(I).price_list_id
8468 , p_line_tbl(I).program_application_id
8469 , p_line_tbl(I).program_id
8470 , p_line_tbl(I).program_update_date
8471 , p_line_tbl(I).request_id
8472 , p_line_tbl(I).salesrep_id
8473 , p_line_tbl(I).shipping_method_code
8474 , p_line_tbl(I).ship_from_org_id
8475 , p_line_tbl(I).ship_to_org_id
8476 , p_line_tbl(I).shipping_instructions
8477 , p_line_tbl(I).packing_instructions
8478 , p_line_tbl(I).START_DATE_ACTIVE
8479 , p_line_tbl(I).END_DATE_ACTIVE
8480 , p_line_tbl(I).MAX_RELEASE_AMOUNT
8481 , p_line_tbl(I).MIN_RELEASE_AMOUNT
8482 , p_line_tbl(I).BLANKET_MAX_AMOUNT
8483 , p_line_tbl(I).BLANKET_MIN_AMOUNT
8484 , p_line_tbl(I).BLANKET_MAX_QUANTITY
8485 , p_line_tbl(I).BLANKET_MIN_QUANTITY
8486 , p_line_tbl(I).OVERRIDE_BLANKET_CONTROLS_FLAG
8487 , p_line_tbl(I).OVERRIDE_RELEASE_CONTROLS_FLAG
8488 , p_line_tbl(I).ENFORCE_PRICE_LIST_FLAG
8489 , p_line_tbl(I).enforce_ship_to_flag
8490 , p_line_tbl(I).enforce_invoice_to_flag
8491 , p_line_tbl(I).enforce_freight_term_flag
8492 , p_line_tbl(I).enforce_shipping_method_flag
8493 , p_line_tbl(I).enforce_payment_term_flag
8494 , p_line_tbl(I).enforce_accounting_rule_flag
8495 , p_line_tbl(I).enforce_invoicing_rule_flag
8496 , p_line_tbl(I).ORDER_QUANTITY_UOM
8497 , p_line_tbl(I).RELEASED_QUANTITY
8498 , p_line_tbl(I).FULFILLED_QUANTITY
8499 , p_line_tbl(I).RETURNED_QUANTITY
8500 , p_line_tbl(I).ORDER_NUMBER
8501 , p_line_tbl(I).RELEASED_AMOUNT
8502 , p_line_tbl(I).FULFILLED_AMOUNT
8503 , p_line_tbl(I).RETURNED_AMOUNT
8504 , nvl(FND_GLOBAL.RESP_ID,-1)
8505 , 'UPDATE'
8506 , sysdate
8507 , nvl(FND_GLOBAL.USER_ID, -1)
8508 , p_header_rec.version_number
8509 , 'B'
8510 , p_line_tbl(I).TRANSACTION_PHASE_CODE -- hashraf ... start of pack J
8511 , p_line_tbl(I).source_document_version_number
8512 , p_version_flag
8513 , p_phase_change_flag
8514 , p_line_tbl(I).modifier_list_line_id
8515 );
8516
8517 END LOOP;
8518
8519 if l_debug_level > 0 then
8520 oe_debug_pub.ADD('After inserting blanket history', 1);
8521 end if;
8522
8523 END Insert_History_Records;
8524
8525 Procedure Return_Lines_Exist( p_application_id IN NUMBER,
8526 p_entity_short_name in VARCHAR2,
8527 p_validation_entity_short_name in VARCHAR2,
8528 p_validation_tmplt_short_name in VARCHAR2,
8529 p_record_set_tmplt_short_name in VARCHAR2,
8530 p_scope in VARCHAR2,
8531 p_result OUT NOCOPY NUMBER ) IS
8532
8533 l_blanket_number number;
8534 l_blanket_line_number number;
8535 --
8536 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
8537 --
8538 BEGIN
8539 if l_debug_level > 0 then
8540 oe_debug_pub.add('Enter OE_Blanket_Util.Returns_Exist');
8541 end if;
8542
8543 If p_validation_entity_short_name = 'BLANKET_LINE' Then
8544 l_blanket_number := oe_blanket_line_security.g_record.order_number;
8545 l_blanket_line_number := oe_blanket_line_security.g_record.line_number;
8546
8547 BEGIN
8548 Select 1 into p_result
8549 from oe_order_lines
8550 where blanket_number = l_blanket_number
8551 and blanket_line_number = l_blanket_line_number
8552 and line_category_code = 'RETURN'
8553 and rownum = 1;
8554 EXCEPTION
8555 WHEN NO_DATA_FOUND THEN
8556 p_result := 0;
8557 END;
8558
8559 Else
8560 l_blanket_number := oe_blanket_header_security.g_record.order_number;
8561
8562 BEGIN
8563 Select 1 into p_result
8564 from oe_order_lines
8565 where blanket_number = l_blanket_number
8566 and line_category_code = 'RETURN'
8567 and rownum = 1;
8568 EXCEPTION
8569 WHEN NO_DATA_FOUND THEN
8570 p_result := 0;
8571 END;
8572
8573 End If;
8574
8575 END Return_Lines_Exist;
8576
8577 Procedure Release_Lines_Exist( p_application_id IN NUMBER,
8578 p_entity_short_name in VARCHAR2,
8579 p_validation_entity_short_name in VARCHAR2,
8580 p_validation_tmplt_short_name in VARCHAR2,
8581 p_record_set_tmplt_short_name in VARCHAR2,
8582 p_scope in VARCHAR2,
8583 p_result OUT NOCOPY NUMBER ) IS
8584
8585 l_blanket_number number;
8586 l_blanket_line_number number;
8587 --
8588 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
8589 --
8590 BEGIN
8591 if l_debug_level > 0 then
8592 oe_debug_pub.add('Enter OE_Blanket_Util.Release_Lines_Exist');
8593 end if;
8594
8595 If p_validation_entity_short_name = 'BLANKET_LINE' Then
8596 l_blanket_number := oe_blanket_line_security.g_record.order_number;
8597 l_blanket_line_number := oe_blanket_line_security.g_record.line_number;
8598
8599 BEGIN
8600 Select 1 into p_result
8601 from oe_order_lines
8602 where blanket_number = l_blanket_number
8603 and blanket_line_number = l_blanket_line_number
8604 and rownum = 1;
8605 EXCEPTION
8606 WHEN NO_DATA_FOUND THEN
8607 p_result := 0;
8608 END;
8609
8610 Else
8611 l_blanket_number := oe_blanket_header_security.g_record.order_number;
8612
8613 BEGIN
8614 Select 1 into p_result
8615 from oe_order_lines
8616 where blanket_number = l_blanket_number
8617 and rownum = 1;
8618 EXCEPTION
8619 WHEN NO_DATA_FOUND THEN
8620 p_result := 0;
8621 END;
8622
8623 End If;
8624
8625 END Release_Lines_Exist;
8626
8627 Procedure Release_Headers_Exist( p_application_id IN NUMBER,
8628 p_entity_short_name in VARCHAR2,
8629 p_validation_entity_short_name in VARCHAR2,
8630 p_validation_tmplt_short_name in VARCHAR2,
8631 p_record_set_tmplt_short_name in VARCHAR2,
8632 p_scope in VARCHAR2,
8633 p_result OUT NOCOPY NUMBER ) IS
8634
8635 l_blanket_number number;
8636 l_blanket_line_number number;
8637 --
8638 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
8639 --
8640 BEGIN
8641 if l_debug_level > 0 then
8642 oe_debug_pub.add('Enter OE_Blanket_Util.Release_Lines_Exist');
8643 end if;
8644
8645 If p_validation_entity_short_name = 'BLANKET_LINE' Then
8646 l_blanket_number := oe_blanket_line_security.g_record.order_number;
8647
8648 BEGIN
8649 Select 1 into p_result
8650 from oe_order_headers_all
8651 where blanket_number = l_blanket_number
8652 and rownum = 1;
8653 EXCEPTION
8654 WHEN NO_DATA_FOUND THEN
8655 p_result := 0;
8656 END;
8657
8658 Else
8659 l_blanket_number := oe_blanket_header_security.g_record.order_number;
8660
8661 BEGIN
8662 Select 1 into p_result
8663 from oe_order_headers_all
8664 where blanket_number = l_blanket_number
8665 and rownum = 1;
8666 EXCEPTION
8667 WHEN NO_DATA_FOUND THEN
8668 p_result := 0;
8669 END;
8670
8671 End If;
8672
8673 END Release_Headers_Exist;
8674
8675 Procedure Open_Release_Lines_Exist( p_application_id IN NUMBER,
8676 p_entity_short_name in VARCHAR2,
8677 p_validation_entity_short_name in VARCHAR2,
8678 p_validation_tmplt_short_name in VARCHAR2,
8679 p_record_set_tmplt_short_name in VARCHAR2,
8680 p_scope in VARCHAR2,
8681 p_result OUT NOCOPY NUMBER ) IS
8682
8683 l_blanket_number number;
8684 l_blanket_line_number number;
8685 --
8686 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
8687 --
8688 BEGIN
8689 if l_debug_level > 0 then
8690 oe_debug_pub.add('Enter OE_Blanket_Util.Open_Release_Lines_Exist');
8691 end if;
8692
8693 If p_validation_entity_short_name = 'BLANKET_LINE' Then
8694 l_blanket_number := oe_blanket_line_security.g_record.order_number;
8695 l_blanket_line_number := oe_blanket_line_security.g_record.line_number;
8696
8697 BEGIN
8698 Select 1 into p_result
8699 from oe_order_lines
8700 where blanket_number = l_blanket_number
8701 and blanket_line_number = l_blanket_line_number
8702 and open_flag = 'Y'
8703 and rownum = 1;
8704 EXCEPTION
8705 WHEN NO_DATA_FOUND THEN
8706 p_result := 0;
8707 END;
8708
8709 Else
8710 l_blanket_number := oe_blanket_header_security.g_record.order_number;
8711
8712 BEGIN
8713 Select 1 into p_result
8714 from oe_order_lines
8715 where blanket_number = l_blanket_number
8716 and open_flag = 'Y'
8717 and rownum = 1;
8718 EXCEPTION
8719 WHEN NO_DATA_FOUND THEN
8720 p_result := 0;
8721 END;
8722
8723 End If;
8724
8725 END Open_Release_Lines_Exist;
8726
8727 Procedure Open_Release_Headers_Exist( p_application_id IN NUMBER,
8728 p_entity_short_name in VARCHAR2,
8729 p_validation_entity_short_name in VARCHAR2,
8730 p_validation_tmplt_short_name in VARCHAR2,
8731 p_record_set_tmplt_short_name in VARCHAR2,
8732 p_scope in VARCHAR2,
8733 p_result OUT NOCOPY NUMBER ) IS
8734
8735 l_blanket_number number;
8736 l_blanket_line_number number;
8737 --
8738 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
8739 --
8740 BEGIN
8741 if l_debug_level > 0 then
8742 oe_debug_pub.add('Enter OE_Blanket_Util.Open_Release_Lines_Exist');
8743 end if;
8744
8745 If p_validation_entity_short_name = 'BLANKET_LINE' Then
8746 l_blanket_number := oe_blanket_line_security.g_record.order_number;
8747
8748 BEGIN
8749 Select 1 into p_result
8750 from oe_order_headers_all
8751 where blanket_number = l_blanket_number
8752 and open_flag = 'Y'
8753 and rownum = 1;
8754 EXCEPTION
8755 WHEN NO_DATA_FOUND THEN
8756 p_result := 0;
8757 END;
8758
8759 Else
8760 l_blanket_number := oe_blanket_header_security.g_record.order_number;
8761
8762 BEGIN
8763 Select 1 into p_result
8764 from oe_order_headers_all
8765 where blanket_number = l_blanket_number
8766 and open_flag = 'Y'
8767 and rownum = 1;
8768 EXCEPTION
8769 WHEN NO_DATA_FOUND THEN
8770 p_result := 0;
8771 END;
8772
8773 End If;
8774
8775 END Open_Release_Headers_Exist;
8776
8777 Procedure Is_Expired( p_application_id IN NUMBER,
8778 p_entity_short_name in VARCHAR2,
8779 p_validation_entity_short_name in VARCHAR2,
8780 p_validation_tmplt_short_name in VARCHAR2,
8781 p_record_set_tmplt_short_name in VARCHAR2,
8782 p_scope in VARCHAR2,
8783 p_result OUT NOCOPY NUMBER ) IS
8784
8785 --
8786 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
8787 --
8788 BEGIN
8789 if l_debug_level > 0 then
8790 oe_debug_pub.add('Enter OE_Blanket_Util.Is_Expired');
8791 end if;
8792
8793 If p_validation_entity_short_name = 'BLANKET_LINE' Then
8794 If (trunc(sysdate) >= OE_Blanket_Line_Security.g_record.start_date_active
8795 AND trunc(sysdate) <= trunc(nvl(OE_Blanket_Line_Security.g_record.end_date_active, sysdate)))
8796 Then
8797 p_result := 0;
8798 Else
8799 p_result := 1;
8800 End If;
8801 Else
8802 If (trunc(sysdate) >= OE_Blanket_Header_Security.g_record.start_date_active
8803 AND trunc(sysdate) <= trunc(nvl(OE_Blanket_Header_Security.g_record.end_date_active, sysdate)))
8804 Then
8805 p_result := 0;
8806 Else
8807 p_result := 1;
8808 End If;
8809
8810 End If;
8811
8812 END Is_Expired;
8813
8814 FUNCTION G_MISS_OE_AK_BLKT_HEADER_REC
8815 RETURN OE_AK_BLANKET_HEADERS_V%ROWTYPE IS
8816 l_rowtype_rec OE_AK_BLANKET_HEADERS_V%ROWTYPE;
8817 BEGIN
8818
8819 l_rowtype_rec.ACCOUNTING_RULE_ID := FND_API.G_MISS_NUM;
8820 l_rowtype_rec.CONVERSION_TYPE_CODE := FND_API.G_MISS_CHAR;
8821 l_rowtype_rec.CUST_PO_NUMBER := FND_API.G_MISS_CHAR;
8822 l_rowtype_rec.DELIVER_TO_ORG_ID := FND_API.G_MISS_NUM;
8823 l_rowtype_rec.END_DATE_ACTIVE := FND_API.G_MISS_DATE;
8824 l_rowtype_rec.FREIGHT_TERMS_CODE := FND_API.G_MISS_CHAR;
8825 l_rowtype_rec.HEADER_ID := FND_API.G_MISS_NUM;
8826 l_rowtype_rec.INVOICE_TO_ORG_ID := FND_API.G_MISS_NUM;
8827 l_rowtype_rec.INVOICING_RULE_ID := FND_API.G_MISS_NUM;
8828 l_rowtype_rec.LAST_UPDATED_BY := FND_API.G_MISS_NUM;
8829 l_rowtype_rec.LAST_UPDATE_DATE := FND_API.G_MISS_DATE;
8830 l_rowtype_rec.LAST_UPDATE_LOGIN := FND_API.G_MISS_NUM;
8831 l_rowtype_rec.ORDER_NUMBER := FND_API.G_MISS_NUM;
8832 l_rowtype_rec.ORDER_TYPE_ID := FND_API.G_MISS_NUM;
8833 l_rowtype_rec.ORG_ID := FND_API.G_MISS_NUM;
8834 l_rowtype_rec.PACKING_INSTRUCTIONS := FND_API.G_MISS_CHAR;
8835 l_rowtype_rec.PAYMENT_TERM_ID := FND_API.G_MISS_NUM;
8836 l_rowtype_rec.PRICE_LIST_ID := FND_API.G_MISS_NUM;
8837 l_rowtype_rec.PROGRAM_APPLICATION_ID := FND_API.G_MISS_NUM;
8838 l_rowtype_rec.PROGRAM_ID := FND_API.G_MISS_NUM;
8839 l_rowtype_rec.PROGRAM_UPDATE_DATE := FND_API.G_MISS_DATE;
8840 l_rowtype_rec.SALESREP_ID := FND_API.G_MISS_NUM;
8841 l_rowtype_rec.SHIPPING_INSTRUCTIONS := FND_API.G_MISS_CHAR;
8842 l_rowtype_rec.SHIPPING_METHOD_CODE := FND_API.G_MISS_CHAR;
8843 l_rowtype_rec.SHIP_FROM_ORG_ID := FND_API.G_MISS_NUM;
8844 l_rowtype_rec.SHIP_TO_ORG_ID := FND_API.G_MISS_NUM;
8845 l_rowtype_rec.SOLD_TO_CONTACT_ID := FND_API.G_MISS_NUM;
8846 l_rowtype_rec.SOLD_TO_ORG_ID := FND_API.G_MISS_NUM;
8847 l_rowtype_rec.START_DATE_ACTIVE := FND_API.G_MISS_DATE;
8848 l_rowtype_rec.TRANSACTIONAL_CURR_CODE := FND_API.G_MISS_CHAR;
8849 l_rowtype_rec.VERSION_NUMBER := FND_API.G_MISS_NUM;
8850
8851 l_rowtype_rec.CREATED_BY := FND_API.G_MISS_NUM;
8852 l_rowtype_rec.CREATION_DATE := FND_API.G_MISS_DATE;
8853 l_rowtype_rec.REVISION_CHANGE_DATE := FND_API.G_MISS_DATE;
8854 l_rowtype_rec.REVISION_CHANGE_REASON_CODE := FND_API.G_MISS_CHAR;
8855 l_rowtype_rec.REVISION_CHANGE_COMMENTS := FND_API.G_MISS_CHAR;
8856 l_rowtype_rec.ENFORCE_SHIP_TO_FLAG := FND_API.G_MISS_CHAR;
8857 l_rowtype_rec.ENFORCE_FREIGHT_TERM_FLAG := FND_API.G_MISS_CHAR;
8858 l_rowtype_rec.ENFORCE_SHIPPING_METHOD_FLAG := FND_API.G_MISS_CHAR;
8859 l_rowtype_rec.ENFORCE_PRICE_LIST_FLAG := FND_API.G_MISS_CHAR;
8860 l_rowtype_rec.ENFORCE_PAYMENT_TERM_FLAG := FND_API.G_MISS_CHAR;
8861 l_rowtype_rec.ENFORCE_INVOICE_TO_FLAG := FND_API.G_MISS_CHAR;
8862 l_rowtype_rec.ENFORCE_INVOICING_RULE_FLAG := FND_API.G_MISS_CHAR;
8863 l_rowtype_rec.ENFORCE_ACCOUNTING_RULE_FLAG := FND_API.G_MISS_CHAR;
8864 l_rowtype_rec.BLANKET_MIN_AMOUNT := FND_API.G_MISS_NUM;
8865 l_rowtype_rec.BLANKET_MAX_AMOUNT := FND_API.G_MISS_NUM;
8866 l_rowtype_rec.OVERRIDE_AMOUNT_FLAG := FND_API.G_MISS_CHAR;
8867 l_rowtype_rec.ON_HOLD_FLAG := FND_API.G_MISS_CHAR;
8868 l_rowtype_rec.SUPPLIER_SIGNATURE := FND_API.G_MISS_CHAR;
8869 l_rowtype_rec.SUPPLIER_SIGNATURE_DATE := FND_API.G_MISS_DATE;
8870 l_rowtype_rec.CUSTOMER_SIGNATURE := FND_API.G_MISS_CHAR;
8871 l_rowtype_rec.CUSTOMER_SIGNATURE_DATE := FND_API.G_MISS_DATE;
8872 l_rowtype_rec.FLOW_STATUS_CODE := FND_API.G_MISS_CHAR;
8873 l_rowtype_rec.SOURCE_DOCUMENT_TYPE_ID := FND_API.G_MISS_NUM;
8874 l_rowtype_rec.NEW_MODIFIER_LIST_ID := FND_API.G_MISS_NUM;
8875 l_rowtype_rec.NEW_PRICE_LIST_ID := FND_API.G_MISS_NUM;
8876 l_rowtype_rec.DEFAULT_DISCOUNT_PERCENT := FND_API.G_MISS_NUM;
8877 l_rowtype_rec.DEFAULT_DISCOUNT_AMOUNT := FND_API.G_MISS_NUM;
8878 l_rowtype_rec.CONTRACT_TERMS := FND_API.G_MISS_CHAR;
8879 l_rowtype_rec.OPEN_FLAG := FND_API.G_MISS_CHAR;
8880
8881 --QUOTING changes
8882 l_rowtype_rec.TRANSACTION_PHASE_CODE := FND_API.G_MISS_CHAR;
8883 l_rowtype_rec.USER_STATUS_CODE := FND_API.G_MISS_CHAR;
8884 -- l_rowtype_rec.QUOTE_NUMBER := FND_API.G_MISS_NUM;
8885 -- l_rowtype_rec.QUOTE_DATE := FND_API.G_MISS_DATE;
8886 l_rowtype_rec.SALES_DOCUMENT_NAME := FND_API.G_MISS_CHAR;
8887 l_rowtype_rec.SOLD_TO_SITE_USE_ID := FND_API.G_MISS_NUM;
8888 l_rowtype_rec.SOURCE_DOCUMENT_VERSION_NUMBER := FND_API.G_MISS_NUM;
8889 l_rowtype_rec.DRAFT_SUBMITTED_FLAG := FND_API.G_MISS_CHAR;
8890 -- QUOTING changes END
8891
8892 RETURN l_rowtype_rec;
8893
8894 EXCEPTION
8895
8896 WHEN OTHERS THEN
8897 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
8898 THEN
8899 OE_MSG_PUB.Add_Exc_Msg
8900 ( G_PKG_NAME
8901 , 'G_MISS_OE_AK_HEADER_REC'
8902 );
8903 END IF;
8904 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8905
8906 END G_MISS_OE_AK_BLKT_HEADER_REC;
8907
8908 PROCEDURE API_Rec_To_Rowtype_Rec
8909 ( p_HEADER_rec IN OE_Blanket_PUB.HEADER_Rec_Type
8910 , x_rowtype_rec IN OUT NOCOPY OE_AK_BLANKET_HEADERS_V%ROWTYPE
8911 ) IS
8912 BEGIN
8913
8914 x_rowtype_rec.ACCOUNTING_RULE_ID := p_header_rec.ACCOUNTING_RULE_ID;
8915 x_rowtype_rec.CONVERSION_TYPE_CODE := p_header_rec.CONVERSION_TYPE_CODE;
8916 x_rowtype_rec.CUST_PO_NUMBER := p_header_rec.CUST_PO_NUMBER;
8917 x_rowtype_rec.DELIVER_TO_ORG_ID := p_header_rec.DELIVER_TO_ORG_ID;
8918 x_rowtype_rec.END_DATE_ACTIVE := p_header_rec.END_DATE_ACTIVE;
8919 x_rowtype_rec.FREIGHT_TERMS_CODE := p_header_rec.FREIGHT_TERMS_CODE;
8920 x_rowtype_rec.HEADER_ID := p_header_rec.HEADER_ID;
8921 x_rowtype_rec.INVOICE_TO_ORG_ID := p_header_rec.INVOICE_TO_ORG_ID;
8922 x_rowtype_rec.INVOICING_RULE_ID := p_header_rec.INVOICING_RULE_ID;
8923 x_rowtype_rec.LAST_UPDATED_BY := p_header_rec.LAST_UPDATED_BY;
8924 x_rowtype_rec.LAST_UPDATE_DATE := p_header_rec.LAST_UPDATE_DATE;
8925 x_rowtype_rec.LAST_UPDATE_LOGIN := p_header_rec.LAST_UPDATE_LOGIN;
8926 x_rowtype_rec.ORDER_NUMBER := p_header_rec.ORDER_NUMBER;
8927 x_rowtype_rec.ORDER_TYPE_ID := p_header_rec.ORDER_TYPE_ID;
8928 x_rowtype_rec.ORG_ID := p_header_rec.ORG_ID;
8929 x_rowtype_rec.PACKING_INSTRUCTIONS := p_header_rec.PACKING_INSTRUCTIONS;
8930 x_rowtype_rec.PAYMENT_TERM_ID := p_header_rec.PAYMENT_TERM_ID;
8931 x_rowtype_rec.PRICE_LIST_ID := p_header_rec.PRICE_LIST_ID;
8932 x_rowtype_rec.PROGRAM_APPLICATION_ID := p_header_rec.PROGRAM_APPLICATION_ID;
8933 x_rowtype_rec.PROGRAM_ID := p_header_rec.PROGRAM_ID;
8934 x_rowtype_rec.PROGRAM_UPDATE_DATE := p_header_rec.PROGRAM_UPDATE_DATE;
8935 x_rowtype_rec.SALESREP_ID := p_header_rec.SALESREP_ID;
8936 x_rowtype_rec.SHIPPING_INSTRUCTIONS := p_header_rec.SHIPPING_INSTRUCTIONS;
8937 x_rowtype_rec.SHIPPING_METHOD_CODE := p_header_rec.SHIPPING_METHOD_CODE;
8938 x_rowtype_rec.SHIP_FROM_ORG_ID := p_header_rec.SHIP_FROM_ORG_ID;
8939 x_rowtype_rec.SHIP_TO_ORG_ID := p_header_rec.SHIP_TO_ORG_ID;
8940 x_rowtype_rec.SOLD_TO_CONTACT_ID := p_header_rec.SOLD_TO_CONTACT_ID;
8941 x_rowtype_rec.SOLD_TO_ORG_ID := p_header_rec.SOLD_TO_ORG_ID;
8942 x_rowtype_rec.START_DATE_ACTIVE := p_header_rec.START_DATE_ACTIVE;
8943 x_rowtype_rec.TRANSACTIONAL_CURR_CODE := p_header_rec.TRANSACTIONAL_CURR_CODE;
8944 x_rowtype_rec.VERSION_NUMBER := p_header_rec.VERSION_NUMBER;
8945
8946 x_rowtype_rec.CREATED_BY := p_header_rec.CREATED_BY;
8947 x_rowtype_rec.CREATION_DATE := p_header_rec.CREATION_DATE;
8948 x_rowtype_rec.REVISION_CHANGE_DATE := p_header_rec.REVISION_CHANGE_DATE;
8949 x_rowtype_rec.REVISION_CHANGE_REASON_CODE := p_header_rec.REVISION_CHANGE_REASON_CODE;
8950 x_rowtype_rec.REVISION_CHANGE_COMMENTS := p_header_rec.REVISION_CHANGE_COMMENTS;
8951 x_rowtype_rec.ENFORCE_SHIP_TO_FLAG := p_header_rec.ENFORCE_SHIP_TO_FLAG;
8952 x_rowtype_rec.ENFORCE_FREIGHT_TERM_FLAG := p_header_rec.ENFORCE_FREIGHT_TERM_FLAG;
8953 x_rowtype_rec.ENFORCE_SHIPPING_METHOD_FLAG := p_header_rec.ENFORCE_SHIPPING_METHOD_FLAG;
8954 x_rowtype_rec.ENFORCE_PRICE_LIST_FLAG := p_header_rec.ENFORCE_PRICE_LIST_FLAG;
8955 x_rowtype_rec.ENFORCE_PAYMENT_TERM_FLAG := p_header_rec.ENFORCE_PAYMENT_TERM_FLAG;
8956 x_rowtype_rec.ENFORCE_INVOICE_TO_FLAG := p_header_rec.ENFORCE_INVOICE_TO_FLAG;
8957 x_rowtype_rec.ENFORCE_INVOICING_RULE_FLAG := p_header_rec.ENFORCE_INVOICING_RULE_FLAG;
8958 x_rowtype_rec.ENFORCE_ACCOUNTING_RULE_FLAG := p_header_rec.ENFORCE_ACCOUNTING_RULE_FLAG;
8959 x_rowtype_rec.BLANKET_MIN_AMOUNT := p_header_rec.BLANKET_MIN_AMOUNT;
8960 x_rowtype_rec.BLANKET_MAX_AMOUNT := p_header_rec.BLANKET_MAX_AMOUNT;
8961 x_rowtype_rec.OVERRIDE_AMOUNT_FLAG := p_header_rec.OVERRIDE_AMOUNT_FLAG;
8962 x_rowtype_rec.ON_HOLD_FLAG := p_header_rec.ON_HOLD_FLAG;
8963 x_rowtype_rec.SUPPLIER_SIGNATURE := p_header_rec.SUPPLIER_SIGNATURE;
8964 x_rowtype_rec.SUPPLIER_SIGNATURE_DATE := p_header_rec.SUPPLIER_SIGNATURE_DATE;
8965 x_rowtype_rec.CUSTOMER_SIGNATURE := p_header_rec.CUSTOMER_SIGNATURE;
8966 x_rowtype_rec.CUSTOMER_SIGNATURE_DATE := p_header_rec.CUSTOMER_SIGNATURE_DATE;
8967 -- x_rowtype_rec.QUOTE_NUMBER := p_header_rec.QUOTE_NUMBER;
8968 -- x_rowtype_rec.QUOTE_DATE := p_header_rec.QUOTE_DATE;
8969 x_rowtype_rec.FLOW_STATUS_CODE := p_header_rec.FLOW_STATUS_CODE;
8970 x_rowtype_rec.SOURCE_DOCUMENT_TYPE_ID := p_header_rec.SOURCE_DOCUMENT_TYPE_ID;
8971 x_rowtype_rec.NEW_MODIFIER_LIST_ID := p_header_rec.NEW_MODIFIER_LIST_ID;
8972 x_rowtype_rec.NEW_PRICE_LIST_ID := p_header_rec.NEW_PRICE_LIST_ID;
8973 x_rowtype_rec.DEFAULT_DISCOUNT_PERCENT := p_header_rec.DEFAULT_DISCOUNT_PERCENT;
8974 x_rowtype_rec.DEFAULT_DISCOUNT_AMOUNT := p_header_rec.DEFAULT_DISCOUNT_AMOUNT;
8975 x_rowtype_rec.CONTRACT_TERMS := p_header_rec.CONTRACT_TEMPLATE_ID;
8976 x_rowtype_rec.OPEN_FLAG := p_header_rec.OPEN_FLAG;
8977 --bug 6531947
8978 x_rowtype_rec.CONTEXT := p_header_rec.CONTEXT;
8979 x_rowtype_rec.ATTRIBUTE1 := p_header_rec.ATTRIBUTE1;
8980 x_rowtype_rec.ATTRIBUTE2 := p_header_rec.ATTRIBUTE2;
8981 x_rowtype_rec.ATTRIBUTE3 := p_header_rec.ATTRIBUTE3;
8982 x_rowtype_rec.ATTRIBUTE4 := p_header_rec.ATTRIBUTE4;
8983 x_rowtype_rec.ATTRIBUTE5 := p_header_rec.ATTRIBUTE5;
8984 x_rowtype_rec.ATTRIBUTE6 := p_header_rec.ATTRIBUTE6;
8985 x_rowtype_rec.ATTRIBUTE7 := p_header_rec.ATTRIBUTE7;
8986 x_rowtype_rec.ATTRIBUTE8 := p_header_rec.ATTRIBUTE8;
8987 x_rowtype_rec.ATTRIBUTE9 := p_header_rec.ATTRIBUTE9;
8988 x_rowtype_rec.ATTRIBUTE10 := p_header_rec.ATTRIBUTE10;
8989 x_rowtype_rec.ATTRIBUTE11 := p_header_rec.ATTRIBUTE11;
8990 x_rowtype_rec.ATTRIBUTE12 := p_header_rec.ATTRIBUTE12;
8991 x_rowtype_rec.ATTRIBUTE13 := p_header_rec.ATTRIBUTE13;
8992 x_rowtype_rec.ATTRIBUTE14 := p_header_rec.ATTRIBUTE14;
8993 x_rowtype_rec.ATTRIBUTE15 := p_header_rec.ATTRIBUTE15;
8994 x_rowtype_rec.ATTRIBUTE16 := p_header_rec.ATTRIBUTE16;
8995 x_rowtype_rec.ATTRIBUTE17 := p_header_rec.ATTRIBUTE17;
8996 x_rowtype_rec.ATTRIBUTE18 := p_header_rec.ATTRIBUTE18;
8997 x_rowtype_rec.ATTRIBUTE19 := p_header_rec.ATTRIBUTE19;
8998 x_rowtype_rec.ATTRIBUTE20 := p_header_rec.ATTRIBUTE20;
8999
9000 -- QUOTING changes
9001 x_rowtype_rec.sales_document_name := p_header_rec.sales_document_name;
9002 x_rowtype_rec.transaction_phase_code := p_header_rec.transaction_phase_code;
9003 x_rowtype_rec.user_status_code := p_header_rec.user_status_code;
9004 x_rowtype_rec.draft_submitted_flag := p_header_rec.draft_submitted_flag;
9005 x_rowtype_rec.source_document_version_number := p_header_rec.source_document_version_number;
9006 x_rowtype_rec.sold_to_site_use_id := p_header_rec.sold_to_site_use_id;
9007 -- QUOTING changes END
9008
9009
9010 EXCEPTION
9011
9012 WHEN OTHERS THEN
9013 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
9014 THEN
9015 OE_MSG_PUB.Add_Exc_Msg
9016 ( G_PKG_NAME
9017 , 'API_Rec_To_RowType_Rec'
9018 );
9019 END IF;
9020 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9021 END API_Rec_To_RowType_Rec;
9022
9023 PROCEDURE Rowtype_Rec_To_API_Rec
9024 ( p_record IN OE_AK_BLANKET_HEADERS_V%ROWTYPE
9025 , x_api_rec IN OUT NOCOPY OE_Blanket_PUB.HEADER_Rec_Type
9026 ) IS
9027 BEGIN
9028
9029 x_api_rec.ACCOUNTING_RULE_ID := p_record.ACCOUNTING_RULE_ID;
9030 x_api_rec.CONVERSION_TYPE_CODE := p_record.CONVERSION_TYPE_CODE;
9031 x_api_rec.CUST_PO_NUMBER := p_record.CUST_PO_NUMBER;
9032 x_api_rec.DELIVER_TO_ORG_ID := p_record.DELIVER_TO_ORG_ID;
9033 x_api_rec.END_DATE_ACTIVE := p_record.END_DATE_ACTIVE;
9034 x_api_rec.FREIGHT_TERMS_CODE := p_record.FREIGHT_TERMS_CODE;
9035 x_api_rec.HEADER_ID := p_record.HEADER_ID;
9036 x_api_rec.INVOICE_TO_ORG_ID := p_record.INVOICE_TO_ORG_ID;
9037 x_api_rec.INVOICING_RULE_ID := p_record.INVOICING_RULE_ID;
9038 x_api_rec.ORDER_NUMBER := p_record.ORDER_NUMBER;
9039 x_api_rec.ORDER_TYPE_ID := p_record.ORDER_TYPE_ID;
9040 x_api_rec.PACKING_INSTRUCTIONS := p_record.PACKING_INSTRUCTIONS;
9041 x_api_rec.PAYMENT_TERM_ID := p_record.PAYMENT_TERM_ID;
9042 x_api_rec.PRICE_LIST_ID := p_record.PRICE_LIST_ID;
9043 x_api_rec.SALESREP_ID := p_record.SALESREP_ID;
9044 x_api_rec.SHIPPING_INSTRUCTIONS := p_record.SHIPPING_INSTRUCTIONS;
9045 x_api_rec.SHIPPING_METHOD_CODE := p_record.SHIPPING_METHOD_CODE;
9046 x_api_rec.SHIP_FROM_ORG_ID := p_record.SHIP_FROM_ORG_ID;
9047 x_api_rec.SHIP_TO_ORG_ID := p_record.SHIP_TO_ORG_ID;
9048 x_api_rec.SOLD_TO_CONTACT_ID := p_record.SOLD_TO_CONTACT_ID;
9049 x_api_rec.SOLD_TO_ORG_ID := p_record.SOLD_TO_ORG_ID;
9050 x_api_rec.START_DATE_ACTIVE := p_record.START_DATE_ACTIVE;
9051 x_api_rec.TRANSACTIONAL_CURR_CODE := p_record.TRANSACTIONAL_CURR_CODE;
9052 x_api_rec.VERSION_NUMBER := p_record.VERSION_NUMBER;
9053
9054 x_api_rec.CREATED_BY := p_record.CREATED_BY;
9055 x_api_rec.CREATION_DATE := p_record.CREATION_DATE;
9056 x_api_rec.REVISION_CHANGE_DATE := p_record.REVISION_CHANGE_DATE;
9057 x_api_rec.REVISION_CHANGE_REASON_CODE := p_record.REVISION_CHANGE_REASON_CODE;
9058 x_api_rec.REVISION_CHANGE_COMMENTS := p_record.REVISION_CHANGE_COMMENTS;
9059 x_api_rec.ENFORCE_SHIP_TO_FLAG := p_record.ENFORCE_SHIP_TO_FLAG;
9060 x_api_rec.ENFORCE_FREIGHT_TERM_FLAG := p_record.ENFORCE_FREIGHT_TERM_FLAG;
9061 x_api_rec.ENFORCE_SHIPPING_METHOD_FLAG := p_record.ENFORCE_SHIPPING_METHOD_FLAG;
9062 x_api_rec.ENFORCE_PRICE_LIST_FLAG := p_record.ENFORCE_PRICE_LIST_FLAG;
9063 x_api_rec.ENFORCE_PAYMENT_TERM_FLAG := p_record.ENFORCE_PAYMENT_TERM_FLAG;
9064 x_api_rec.ENFORCE_INVOICE_TO_FLAG := p_record.ENFORCE_INVOICE_TO_FLAG;
9065 x_api_rec.ENFORCE_INVOICING_RULE_FLAG := p_record.ENFORCE_INVOICING_RULE_FLAG;
9066 x_api_rec.ENFORCE_ACCOUNTING_RULE_FLAG := p_record.ENFORCE_ACCOUNTING_RULE_FLAG;
9067 x_api_rec.BLANKET_MIN_AMOUNT := p_record.BLANKET_MIN_AMOUNT;
9068 x_api_rec.BLANKET_MAX_AMOUNT := p_record.BLANKET_MAX_AMOUNT;
9069 x_api_rec.OVERRIDE_AMOUNT_FLAG := p_record.OVERRIDE_AMOUNT_FLAG;
9070 x_api_rec.ON_HOLD_FLAG := p_record.ON_HOLD_FLAG;
9071 x_api_rec.SUPPLIER_SIGNATURE := p_record.SUPPLIER_SIGNATURE;
9072 x_api_rec.SUPPLIER_SIGNATURE_DATE := p_record.SUPPLIER_SIGNATURE_DATE;
9073 x_api_rec.CUSTOMER_SIGNATURE := p_record.CUSTOMER_SIGNATURE;
9074 x_api_rec.CUSTOMER_SIGNATURE_DATE := p_record.CUSTOMER_SIGNATURE_DATE;
9075 -- x_api_rec.QUOTE_NUMBER := p_record.QUOTE_NUMBER;
9076 -- x_api_rec.QUOTE_DATE := p_record.QUOTE_DATE;
9077 x_api_rec.FLOW_STATUS_CODE := p_record.FLOW_STATUS_CODE;
9078 x_api_rec.SOURCE_DOCUMENT_TYPE_ID := p_record.SOURCE_DOCUMENT_TYPE_ID;
9079 x_api_rec.NEW_MODIFIER_LIST_ID := p_record.NEW_MODIFIER_LIST_ID;
9080 x_api_rec.NEW_PRICE_LIST_ID := p_record.NEW_PRICE_LIST_ID;
9081 x_api_rec.DEFAULT_DISCOUNT_PERCENT := p_record.DEFAULT_DISCOUNT_PERCENT;
9082 x_api_rec.DEFAULT_DISCOUNT_AMOUNT := p_record.DEFAULT_DISCOUNT_AMOUNT;
9083 x_api_rec.CONTRACT_TEMPLATE_ID := p_record.CONTRACT_TERMS;
9084 x_api_rec.OPEN_FLAG := p_record.OPEN_FLAG;
9085 --bug 6531947
9086
9087 x_api_rec.CONTEXT := p_record.CONTEXT;
9088 x_api_rec.ATTRIBUTE1 := p_record.ATTRIBUTE1;
9089 x_api_rec.ATTRIBUTE2 := p_record.ATTRIBUTE2;
9090 x_api_rec.ATTRIBUTE3 := p_record.ATTRIBUTE3;
9091 x_api_rec.ATTRIBUTE4 := p_record.ATTRIBUTE4;
9092 x_api_rec.ATTRIBUTE5 := p_record.ATTRIBUTE5;
9093 x_api_rec.ATTRIBUTE6 := p_record.ATTRIBUTE6;
9094 x_api_rec.ATTRIBUTE7 := p_record.ATTRIBUTE7;
9095 x_api_rec.ATTRIBUTE8 := p_record.ATTRIBUTE8;
9096 x_api_rec.ATTRIBUTE9 := p_record.ATTRIBUTE9;
9097 x_api_rec.ATTRIBUTE10 := p_record.ATTRIBUTE10;
9098 x_api_rec.ATTRIBUTE11 := p_record.ATTRIBUTE11;
9099 x_api_rec.ATTRIBUTE12 := p_record.ATTRIBUTE12;
9100 x_api_rec.ATTRIBUTE13 := p_record.ATTRIBUTE13;
9101 x_api_rec.ATTRIBUTE14 := p_record.ATTRIBUTE14;
9102 x_api_rec.ATTRIBUTE15 := p_record.ATTRIBUTE15;
9103 x_api_rec.ATTRIBUTE16 := p_record.ATTRIBUTE16;
9104 x_api_rec.ATTRIBUTE17 := p_record.ATTRIBUTE17;
9105 x_api_rec.ATTRIBUTE18 := p_record.ATTRIBUTE18;
9106 x_api_rec.ATTRIBUTE19 := p_record.ATTRIBUTE19;
9107 x_api_rec.ATTRIBUTE20 := p_record.ATTRIBUTE20;
9108
9109 -- QUOTING changes
9110 x_api_rec.sales_document_name := p_record.sales_document_name;
9111 x_api_rec.transaction_phase_code := p_record.transaction_phase_code;
9112 x_api_rec.user_status_code := p_record.user_status_code;
9113 x_api_rec.draft_submitted_flag := p_record.draft_submitted_flag;
9114 x_api_rec.source_document_version_number := p_record.source_document_version_number;
9115 x_api_rec.sold_to_site_use_id := p_record.sold_to_site_use_id;
9116 -- QUOTING changes END
9117
9118 EXCEPTION
9119
9120 WHEN OTHERS THEN
9121 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
9122 THEN
9123 OE_MSG_PUB.Add_Exc_Msg
9124 ( G_PKG_NAME
9125 , 'Rowtype_Rec_To_API_Rec'
9126 );
9127 END IF;
9128 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9129 END Rowtype_Rec_To_API_Rec;
9130
9131 FUNCTION G_MISS_OE_AK_BLKT_LINE_REC
9132 RETURN OE_AK_BLANKET_LINES_V%ROWTYPE IS
9133 l_rowtype_rec OE_AK_BLANKET_LINES_V%ROWTYPE;
9134 BEGIN
9135
9136 l_rowtype_rec.ACCOUNTING_RULE_ID := FND_API.G_MISS_NUM;
9137 l_rowtype_rec.CUST_PO_NUMBER := FND_API.G_MISS_CHAR;
9138 l_rowtype_rec.DELIVER_TO_ORG_ID := FND_API.G_MISS_NUM;
9139 l_rowtype_rec.END_DATE_ACTIVE := FND_API.G_MISS_DATE;
9140 l_rowtype_rec.FREIGHT_TERMS_CODE := FND_API.G_MISS_CHAR;
9141 l_rowtype_rec.INVOICE_TO_ORG_ID := FND_API.G_MISS_NUM;
9142 l_rowtype_rec.INVOICING_RULE_ID := FND_API.G_MISS_NUM;
9143 l_rowtype_rec.LINE_ID := FND_API.G_MISS_NUM;
9144 l_rowtype_rec.ORDER_NUMBER := FND_API.G_MISS_NUM;
9145 l_rowtype_rec.PACKING_INSTRUCTIONS := FND_API.G_MISS_CHAR;
9146 l_rowtype_rec.PAYMENT_TERM_ID := FND_API.G_MISS_NUM;
9147 l_rowtype_rec.PRICE_LIST_ID := FND_API.G_MISS_NUM;
9148 l_rowtype_rec.SALESREP_ID := FND_API.G_MISS_NUM;
9149 l_rowtype_rec.SHIPPING_INSTRUCTIONS := FND_API.G_MISS_CHAR;
9150 l_rowtype_rec.SHIPPING_METHOD_CODE := FND_API.G_MISS_CHAR;
9151 l_rowtype_rec.SHIP_FROM_ORG_ID := FND_API.G_MISS_NUM;
9152 l_rowtype_rec.SHIP_TO_ORG_ID := FND_API.G_MISS_NUM;
9153 l_rowtype_rec.START_DATE_ACTIVE := FND_API.G_MISS_DATE;
9154
9155 l_rowtype_rec.LINE_NUMBER := FND_API.G_MISS_NUM;
9156 l_rowtype_rec.PREFERRED_GRADE := FND_API.G_MISS_NUM;
9157 l_rowtype_rec.ITEM_IDENTIFIER_TYPE := FND_API.G_MISS_CHAR;
9158 l_rowtype_rec.INVENTORY_ITEM_ID := FND_API.G_MISS_NUM;
9159 l_rowtype_rec.ORDER_QUANTITY_UOM := FND_API.G_MISS_CHAR;
9160 l_rowtype_rec.ENFORCE_SHIP_TO_FLAG := FND_API.G_MISS_CHAR;
9161 l_rowtype_rec.ENFORCE_FREIGHT_TERM_FLAG := FND_API.G_MISS_CHAR;
9162 l_rowtype_rec.ENFORCE_SHIPPING_METHOD_FLAG := FND_API.G_MISS_CHAR;
9163 l_rowtype_rec.ENFORCE_PRICE_LIST_FLAG := FND_API.G_MISS_CHAR;
9164 l_rowtype_rec.ENFORCE_PAYMENT_TERM_FLAG := FND_API.G_MISS_CHAR;
9165 l_rowtype_rec.ENFORCE_INVOICE_TO_FLAG := FND_API.G_MISS_CHAR;
9166 l_rowtype_rec.ENFORCE_INVOICING_RULE_FLAG := FND_API.G_MISS_CHAR;
9167 l_rowtype_rec.ENFORCE_ACCOUNTING_RULE_FLAG := FND_API.G_MISS_CHAR;
9168 l_rowtype_rec.BLANKET_LINE_MIN_AMOUNT := FND_API.G_MISS_NUM;
9169 l_rowtype_rec.BLANKET_LINE_MAX_AMOUNT := FND_API.G_MISS_NUM;
9170
9171 l_rowtype_rec.BLANKET_MIN_QUANTITY := FND_API.G_MISS_NUM;
9172 l_rowtype_rec.BLANKET_MAX_QUANTITY := FND_API.G_MISS_NUM;
9173 l_rowtype_rec.MIN_RELEASE_AMOUNT := FND_API.G_MISS_NUM;
9174 l_rowtype_rec.MAX_RELEASE_AMOUNT := FND_API.G_MISS_NUM;
9175 l_rowtype_rec.MIN_RELEASE_QUANTITY := FND_API.G_MISS_NUM;
9176 l_rowtype_rec.MAX_RELEASE_QUANTITY := FND_API.G_MISS_NUM;
9177 l_rowtype_rec.OVERRIDE_BLANKET_CONTROLS_FLAG := FND_API.G_MISS_CHAR;
9178 l_rowtype_rec.OVERRIDE_RELEASE_CONTROLS_FLAG := FND_API.G_MISS_CHAR;
9179 l_rowtype_rec.SOURCE_DOCUMENT_TYPE_ID := FND_API.G_MISS_NUM;
9180 l_rowtype_rec.MODIFIER_LIST_LINE_ID := FND_API.G_MISS_NUM;
9181
9182 -- QUOTING changes
9183 l_rowtype_rec.TRANSACTION_PHASE_CODE := FND_API.G_MISS_CHAR;
9184 l_rowtype_rec.SOURCE_DOCUMENT_VERSION_NUMBER := FND_API.G_MISS_NUM;
9185
9186 l_rowtype_rec.unit_list_price := fnd_api.g_miss_num;
9187 l_rowtype_rec.pricing_quantity_uom := fnd_api.g_miss_char;
9188 l_rowtype_rec.discount_percent := fnd_api.g_miss_num;
9189 l_rowtype_rec.discount_amount := fnd_api.g_miss_num;
9190
9191 RETURN l_rowtype_rec;
9192
9193 EXCEPTION
9194
9195 WHEN OTHERS THEN
9196 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
9197 THEN
9198 OE_MSG_PUB.Add_Exc_Msg
9199 ( G_PKG_NAME
9200 , 'G_MISS_OE_AK_LINE_REC'
9201 );
9202 END IF;
9203 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9204
9205 END G_MISS_OE_AK_BLKT_LINE_REC;
9206
9207 PROCEDURE Line_API_Rec_To_Rowtype_Rec
9208 ( p_LINE_rec IN OE_Blanket_PUB.LINE_Rec_Type
9209 , x_rowtype_rec IN OUT NOCOPY OE_AK_BLANKET_LINES_V%ROWTYPE
9210 ) IS
9211 BEGIN
9212
9213 x_rowtype_rec.ACCOUNTING_RULE_ID := p_line_rec.ACCOUNTING_RULE_ID;
9214 x_rowtype_rec.CUST_PO_NUMBER := p_line_rec.CUST_PO_NUMBER;
9215 x_rowtype_rec.DELIVER_TO_ORG_ID := p_line_rec.DELIVER_TO_ORG_ID;
9216 x_rowtype_rec.END_DATE_ACTIVE := p_line_rec.END_DATE_ACTIVE;
9217 x_rowtype_rec.FREIGHT_TERMS_CODE := p_line_rec.FREIGHT_TERMS_CODE;
9218 x_rowtype_rec.INVOICE_TO_ORG_ID := p_line_rec.INVOICE_TO_ORG_ID;
9219 x_rowtype_rec.INVOICING_RULE_ID := p_line_rec.INVOICING_RULE_ID;
9220 x_rowtype_rec.LINE_ID := p_line_rec.LINE_ID;
9221 x_rowtype_rec.ORDER_NUMBER := p_line_rec.ORDER_NUMBER;
9222 x_rowtype_rec.PACKING_INSTRUCTIONS := p_line_rec.PACKING_INSTRUCTIONS;
9223 x_rowtype_rec.PAYMENT_TERM_ID := p_line_rec.PAYMENT_TERM_ID;
9224 x_rowtype_rec.PRICE_LIST_ID := p_line_rec.PRICE_LIST_ID;
9225 x_rowtype_rec.SALESREP_ID := p_line_rec.SALESREP_ID;
9226 x_rowtype_rec.SHIPPING_INSTRUCTIONS := p_line_rec.SHIPPING_INSTRUCTIONS;
9227 x_rowtype_rec.SHIPPING_METHOD_CODE := p_line_rec.SHIPPING_METHOD_CODE;
9228 x_rowtype_rec.SHIP_FROM_ORG_ID := p_line_rec.SHIP_FROM_ORG_ID;
9229 x_rowtype_rec.SHIP_TO_ORG_ID := p_line_rec.SHIP_TO_ORG_ID;
9230 x_rowtype_rec.START_DATE_ACTIVE := p_line_rec.START_DATE_ACTIVE;
9231
9232 x_rowtype_rec.LINE_NUMBER := p_line_rec.LINE_NUMBER;
9233 x_rowtype_rec.PREFERRED_GRADE := p_line_rec.PREFERRED_GRADE;
9234 x_rowtype_rec.ITEM_IDENTIFIER_TYPE := p_line_rec.ITEM_IDENTIFIER_TYPE;
9235 x_rowtype_rec.INVENTORY_ITEM_ID := p_line_rec.INVENTORY_ITEM_ID;
9236 x_rowtype_rec.ORDER_QUANTITY_UOM := p_line_rec.ORDER_QUANTITY_UOM;
9237 x_rowtype_rec.ENFORCE_SHIP_TO_FLAG := p_line_rec.ENFORCE_SHIP_TO_FLAG;
9238 x_rowtype_rec.ENFORCE_FREIGHT_TERM_FLAG := p_line_rec.ENFORCE_FREIGHT_TERM_FLAG;
9239 x_rowtype_rec.ENFORCE_SHIPPING_METHOD_FLAG := p_line_rec.ENFORCE_SHIPPING_METHOD_FLAG;
9240 x_rowtype_rec.ENFORCE_PRICE_LIST_FLAG := p_line_rec.ENFORCE_PRICE_LIST_FLAG;
9241 x_rowtype_rec.ENFORCE_PAYMENT_TERM_FLAG := p_line_rec.ENFORCE_PAYMENT_TERM_FLAG;
9242 x_rowtype_rec.ENFORCE_INVOICE_TO_FLAG := p_line_rec.ENFORCE_INVOICE_TO_FLAG;
9243 x_rowtype_rec.ENFORCE_INVOICING_RULE_FLAG := p_line_rec.ENFORCE_INVOICING_RULE_FLAG;
9244 x_rowtype_rec.ENFORCE_ACCOUNTING_RULE_FLAG := p_line_rec.ENFORCE_ACCOUNTING_RULE_FLAG;
9245 x_rowtype_rec.BLANKET_LINE_MIN_AMOUNT := p_line_rec.BLANKET_MIN_AMOUNT;
9246 x_rowtype_rec.BLANKET_LINE_MAX_AMOUNT := p_line_rec.BLANKET_MAX_AMOUNT;
9247
9248 x_rowtype_rec.BLANKET_MIN_QUANTITY := p_line_rec.BLANKET_MIN_QUANTITY;
9249 x_rowtype_rec.BLANKET_MAX_QUANTITY := p_line_rec.BLANKET_MAX_QUANTITY;
9250 x_rowtype_rec.MIN_RELEASE_AMOUNT := p_line_rec.MIN_RELEASE_AMOUNT;
9251 x_rowtype_rec.MAX_RELEASE_AMOUNT := p_line_rec.MAX_RELEASE_AMOUNT;
9252 x_rowtype_rec.MIN_RELEASE_QUANTITY := p_line_rec.MIN_RELEASE_QUANTITY;
9253 x_rowtype_rec.MAX_RELEASE_QUANTITY := p_line_rec.MAX_RELEASE_QUANTITY;
9254 x_rowtype_rec.OVERRIDE_BLANKET_CONTROLS_FLAG := p_line_rec.OVERRIDE_BLANKET_CONTROLS_FLAG;
9255 x_rowtype_rec.OVERRIDE_RELEASE_CONTROLS_FLAG := p_line_rec.OVERRIDE_RELEASE_CONTROLS_FLAG;
9256 x_rowtype_rec.SOURCE_DOCUMENT_TYPE_ID := p_line_rec.SOURCE_DOCUMENT_TYPE_ID;
9257 x_rowtype_rec.MODIFIER_LIST_LINE_ID := p_line_rec.MODIFIER_LIST_LINE_ID;
9258 --bug6531947
9259 x_rowtype_rec.CONTEXT := p_line_rec.CONTEXT;
9260 x_rowtype_rec.ATTRIBUTE1 := p_line_rec.ATTRIBUTE1;
9261 x_rowtype_rec.ATTRIBUTE2 := p_line_rec.ATTRIBUTE2;
9262 x_rowtype_rec.ATTRIBUTE3 := p_line_rec.ATTRIBUTE3;
9263 x_rowtype_rec.ATTRIBUTE4 := p_line_rec.ATTRIBUTE4;
9264 x_rowtype_rec.ATTRIBUTE5 := p_line_rec.ATTRIBUTE5;
9265 x_rowtype_rec.ATTRIBUTE6 := p_line_rec.ATTRIBUTE6;
9266 x_rowtype_rec.ATTRIBUTE7 := p_line_rec.ATTRIBUTE7;
9267 x_rowtype_rec.ATTRIBUTE8 := p_line_rec.ATTRIBUTE8;
9268 x_rowtype_rec.ATTRIBUTE9 := p_line_rec.ATTRIBUTE9;
9269 x_rowtype_rec.ATTRIBUTE10 := p_line_rec.ATTRIBUTE10;
9270 x_rowtype_rec.ATTRIBUTE11 := p_line_rec.ATTRIBUTE11;
9271 x_rowtype_rec.ATTRIBUTE12 := p_line_rec.ATTRIBUTE12;
9272 x_rowtype_rec.ATTRIBUTE13 := p_line_rec.ATTRIBUTE13;
9273 x_rowtype_rec.ATTRIBUTE14 := p_line_rec.ATTRIBUTE14;
9274 x_rowtype_rec.ATTRIBUTE15 := p_line_rec.ATTRIBUTE15;
9275 x_rowtype_rec.ATTRIBUTE16 := p_line_rec.ATTRIBUTE16;
9276 x_rowtype_rec.ATTRIBUTE17 := p_line_rec.ATTRIBUTE17;
9277 x_rowtype_rec.ATTRIBUTE18 := p_line_rec.ATTRIBUTE18;
9278 x_rowtype_rec.ATTRIBUTE19 := p_line_rec.ATTRIBUTE19;
9279 x_rowtype_rec.ATTRIBUTE20 := p_line_rec.ATTRIBUTE20;
9280
9281 -- QUOTING changes
9282 x_rowtype_rec.transaction_phase_code := p_line_rec.transaction_phase_code;
9283 x_rowtype_rec.source_document_version_number :=
9284 p_line_rec.source_document_version_number;
9285 x_rowtype_rec.unit_list_price := p_line_rec.unit_list_price;
9286 x_rowtype_rec.pricing_quantity_uom := p_line_rec.pricing_uom;
9287 x_rowtype_rec.discount_percent := p_line_rec.discount_percent;
9288 x_rowtype_rec.discount_amount := p_line_rec.discount_amount;
9289
9290 EXCEPTION
9291
9292 WHEN OTHERS THEN
9293 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
9294 THEN
9295 OE_MSG_PUB.Add_Exc_Msg
9296 ( G_PKG_NAME
9297 , 'API_Rec_To_RowType_Rec'
9298 );
9299 END IF;
9300 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9301 END Line_API_Rec_To_RowType_Rec;
9302
9303 PROCEDURE Line_Rowtype_Rec_To_API_Rec
9304 ( p_record IN OE_AK_BLANKET_LINES_V%ROWTYPE
9305 , x_api_rec IN OUT NOCOPY OE_Blanket_PUB.LINE_Rec_Type
9306 ) IS
9307 BEGIN
9308
9309 x_api_rec.ACCOUNTING_RULE_ID := p_record.ACCOUNTING_RULE_ID;
9310 x_api_rec.CUST_PO_NUMBER := p_record.CUST_PO_NUMBER;
9311 x_api_rec.DELIVER_TO_ORG_ID := p_record.DELIVER_TO_ORG_ID;
9312 x_api_rec.END_DATE_ACTIVE := p_record.END_DATE_ACTIVE;
9313 x_api_rec.FREIGHT_TERMS_CODE := p_record.FREIGHT_TERMS_CODE;
9314 x_api_rec.INVOICE_TO_ORG_ID := p_record.INVOICE_TO_ORG_ID;
9315 x_api_rec.INVOICING_RULE_ID := p_record.INVOICING_RULE_ID;
9316 x_api_rec.LINE_ID := p_record.LINE_ID;
9317 x_api_rec.ORDER_NUMBER := p_record.ORDER_NUMBER;
9318 x_api_rec.PACKING_INSTRUCTIONS := p_record.PACKING_INSTRUCTIONS;
9319 x_api_rec.PAYMENT_TERM_ID := p_record.PAYMENT_TERM_ID;
9320 x_api_rec.PRICE_LIST_ID := p_record.PRICE_LIST_ID;
9321 x_api_rec.SALESREP_ID := p_record.SALESREP_ID;
9322 x_api_rec.SHIPPING_INSTRUCTIONS := p_record.SHIPPING_INSTRUCTIONS;
9323 x_api_rec.SHIPPING_METHOD_CODE := p_record.SHIPPING_METHOD_CODE;
9324 x_api_rec.SHIP_FROM_ORG_ID := p_record.SHIP_FROM_ORG_ID;
9325 x_api_rec.SHIP_TO_ORG_ID := p_record.SHIP_TO_ORG_ID;
9326 x_api_rec.START_DATE_ACTIVE := p_record.START_DATE_ACTIVE;
9327
9328 x_api_rec.LINE_NUMBER := p_record.LINE_NUMBER;
9329 x_api_rec.PREFERRED_GRADE := p_record.PREFERRED_GRADE;
9330 x_api_rec.ITEM_IDENTIFIER_TYPE := p_record.ITEM_IDENTIFIER_TYPE;
9331 x_api_rec.INVENTORY_ITEM_ID := p_record.INVENTORY_ITEM_ID;
9332 x_api_rec.ORDER_QUANTITY_UOM := p_record.ORDER_QUANTITY_UOM;
9333 x_api_rec.ENFORCE_SHIP_TO_FLAG := p_record.ENFORCE_SHIP_TO_FLAG;
9334 x_api_rec.ENFORCE_FREIGHT_TERM_FLAG := p_record.ENFORCE_FREIGHT_TERM_FLAG;
9335 x_api_rec.ENFORCE_SHIPPING_METHOD_FLAG := p_record.ENFORCE_SHIPPING_METHOD_FLAG;
9336 x_api_rec.ENFORCE_PRICE_LIST_FLAG := p_record.ENFORCE_PRICE_LIST_FLAG;
9337 x_api_rec.ENFORCE_PAYMENT_TERM_FLAG := p_record.ENFORCE_PAYMENT_TERM_FLAG;
9338 x_api_rec.ENFORCE_INVOICE_TO_FLAG := p_record.ENFORCE_INVOICE_TO_FLAG;
9339 x_api_rec.ENFORCE_INVOICING_RULE_FLAG := p_record.ENFORCE_INVOICING_RULE_FLAG;
9340 x_api_rec.ENFORCE_ACCOUNTING_RULE_FLAG := p_record.ENFORCE_ACCOUNTING_RULE_FLAG;
9341 x_api_rec.BLANKET_MIN_AMOUNT := p_record.BLANKET_LINE_MIN_AMOUNT;
9342 x_api_rec.BLANKET_MAX_AMOUNT := p_record.BLANKET_LINE_MAX_AMOUNT;
9343
9344 x_api_rec.BLANKET_MIN_QUANTITY := p_record.BLANKET_MIN_QUANTITY;
9345 x_api_rec.BLANKET_MAX_QUANTITY := p_record.BLANKET_MAX_QUANTITY;
9346 x_api_rec.MIN_RELEASE_AMOUNT := p_record.MIN_RELEASE_AMOUNT;
9347 x_api_rec.MAX_RELEASE_AMOUNT := p_record.MAX_RELEASE_AMOUNT;
9348 x_api_rec.MIN_RELEASE_QUANTITY := p_record.MIN_RELEASE_QUANTITY;
9349 x_api_rec.MAX_RELEASE_QUANTITY := p_record.MAX_RELEASE_QUANTITY;
9350 x_api_rec.OVERRIDE_BLANKET_CONTROLS_FLAG := p_record.OVERRIDE_BLANKET_CONTROLS_FLAG;
9351 x_api_rec.OVERRIDE_RELEASE_CONTROLS_FLAG := p_record.OVERRIDE_RELEASE_CONTROLS_FLAG;
9352 x_api_rec.SOURCE_DOCUMENT_TYPE_ID := p_record.SOURCE_DOCUMENT_TYPE_ID;
9353 x_api_rec.MODIFIER_LIST_LINE_ID := p_record.MODIFIER_LIST_LINE_ID;
9354 --bug6531947
9355 x_api_rec.CONTEXT := p_record.CONTEXT;
9356 x_api_rec.ATTRIBUTE1 := p_record.ATTRIBUTE1;
9357 x_api_rec.ATTRIBUTE2 := p_record.ATTRIBUTE2;
9358 x_api_rec.ATTRIBUTE3 := p_record.ATTRIBUTE3;
9359 x_api_rec.ATTRIBUTE4 := p_record.ATTRIBUTE4;
9360 x_api_rec.ATTRIBUTE5 := p_record.ATTRIBUTE5;
9361 x_api_rec.ATTRIBUTE6 := p_record.ATTRIBUTE6;
9362 x_api_rec.ATTRIBUTE7 := p_record.ATTRIBUTE7;
9363 x_api_rec.ATTRIBUTE8 := p_record.ATTRIBUTE8;
9364 x_api_rec.ATTRIBUTE9 := p_record.ATTRIBUTE9;
9365 x_api_rec.ATTRIBUTE10 := p_record.ATTRIBUTE10;
9366 x_api_rec.ATTRIBUTE11 := p_record.ATTRIBUTE11;
9367 x_api_rec.ATTRIBUTE12 := p_record.ATTRIBUTE12;
9368 x_api_rec.ATTRIBUTE13 := p_record.ATTRIBUTE13;
9369 x_api_rec.ATTRIBUTE14 := p_record.ATTRIBUTE14;
9370 x_api_rec.ATTRIBUTE15 := p_record.ATTRIBUTE15;
9371 x_api_rec.ATTRIBUTE16 := p_record.ATTRIBUTE16;
9372 x_api_rec.ATTRIBUTE17 := p_record.ATTRIBUTE17;
9373 x_api_rec.ATTRIBUTE18 := p_record.ATTRIBUTE18;
9374 x_api_rec.ATTRIBUTE19 := p_record.ATTRIBUTE19;
9375 x_api_rec.ATTRIBUTE20 := p_record.ATTRIBUTE20;
9376
9377 -- QUOTING changes
9378 x_api_rec.transaction_phase_code := p_record.transaction_phase_code;
9379 x_api_rec.source_document_version_number :=
9380 p_record.source_document_version_number;
9381
9382 x_api_rec.unit_list_price := p_record.unit_list_price;
9383 x_api_rec.pricing_uom := p_record.pricing_quantity_uom;
9384 x_api_rec.discount_percent := p_record.discount_percent;
9385 x_api_rec.discount_amount := p_record.discount_amount;
9386
9387 EXCEPTION
9388
9389 WHEN OTHERS THEN
9390 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
9391 THEN
9392 OE_MSG_PUB.Add_Exc_Msg
9393 ( G_PKG_NAME
9394 , 'Rowtype_Rec_To_API_Rec'
9395 );
9396 END IF;
9397 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9398 END Line_Rowtype_Rec_To_API_Rec;
9399
9400 PROCEDURE Get_Inventory_Item
9401 (p_x_line_rec IN OUT NOCOPY OE_Blanket_Pub.Line_Rec_Type
9402 ,x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
9403 )
9404 IS
9405 l_attribute_value VARCHAR2(2000);
9406 l_address_id VARCHAR2(2000):= NULL;
9407 l_cust_id NUMBER:= NULL;
9408 l_update_inventory_item VARCHAR2(1) := FND_API.G_FALSE;
9409 l_inventory_item_id NUMBER;
9410 l_error_code VARCHAR2(2000);
9411 l_error_flag VARCHAR2(2000);
9412 l_error_message VARCHAR2(2000);
9413 BEGIN
9414 /*
9415 1.call INV_CUSTOMER_ITEM_GRP.CI_Attribute_Value
9416 to get the inventory_item_id
9417 given the customer_item_id, and the new ship_from_org_id.
9418
9419 2.check the value of the inventory_item_id returned:
9420 if internal item number return is not null, then
9421 assign the inventory_item_id to the out NOCOPY {file.sql.39 change } parameter
9422 otherwise
9423 post message OE_INVALIDATES_CUSTOMER_ITEM
9424 set return status to error.
9425 */
9426 x_return_status := FND_API.G_RET_STS_SUCCESS;
9427 oe_debug_pub.add('Entering Oe_blanket_util Get_Inventory_Item', 1);
9428 IF (p_x_line_rec.ship_to_org_id IS NOT NULL AND
9429 p_x_line_rec.ship_to_org_id <> FND_API.G_MISS_NUM) THEN
9430
9431 SELECT u.cust_acct_site_id,s.cust_account_id
9432 INTO l_address_id,
9433 l_cust_id
9434 FROM HZ_CUST_SITE_USES u,HZ_CUST_ACCT_SITES s
9435 WHERE u.cust_acct_site_id = s.cust_acct_site_id
9436 AND u.site_use_id = p_x_line_rec.ship_to_org_id
9437 AND u.site_use_code = 'SHIP_TO';
9438 oe_debug_pub.add('ship to address:' || l_address_id||' - Customer:'||to_char(l_cust_id));
9439
9440 IF l_cust_id <> p_x_line_rec.sold_to_org_id THEN
9441 oe_debug_pub.add('Sold-To Customer:'||to_char(p_x_line_rec.sold_to_org_id));
9442 l_address_id := NULL;
9443 END IF;
9444
9445 END IF;
9446
9447 oe_debug_pub.add('INVENTORY_ITEM_ID Before calling CI_Attribute_Value '
9448 ||to_char(p_x_line_rec.inventory_item_id), 1);
9449 INV_CUSTOMER_ITEM_GRP.CI_Attribute_Value(
9450 Z_Customer_Item_Id => p_x_line_rec.ordered_item_id
9451 , Z_Customer_Id => p_x_line_rec.sold_to_org_id
9452 , Z_Address_Id => l_address_id
9453 , Z_Organization_Id => nvl(p_x_line_rec.ship_from_org_id, OE_Sys_Parameters.value('MASTER_ORGANIZATION_ID'))
9454 , Z_Inventory_Item_Id => p_x_line_rec.inventory_item_id
9455 , Attribute_Name => 'INVENTORY_ITEM_ID'
9456 , Error_Code => l_error_code
9457 , Error_Flag => l_error_flag
9458 , Error_Message => l_error_message
9459 , Attribute_Value => l_attribute_value
9460 );
9461
9462 oe_debug_pub.add('INVENTORY_ITEM_ID After call is '||l_attribute_value, 1);
9463 IF (l_attribute_value IS NOT NULL AND
9464 to_number(l_attribute_value) <> p_x_line_rec.inventory_item_id) THEN
9465 oe_debug_pub.add('Assigning new inventory_item_id', 1);
9466 l_update_inventory_item := FND_API.G_TRUE;
9467 l_inventory_item_id := TO_NUMBER(l_attribute_value);
9468 ELSIF to_number(l_attribute_value) = p_x_line_rec.inventory_item_id THEN
9469 NULL;
9470 ELSE
9471 oe_debug_pub.add('Issue error message', 1);
9472 fnd_message.set_name('ONT','OE_INVALIDATES_CUSTOMER_ITEM');
9473 OE_MSG_PUB.Add;
9474 x_return_status := FND_API.G_RET_STS_ERROR;
9475 END IF;
9476 END Get_Inventory_Item;
9477
9478 -- for bug 4447494
9479 PROCEDURE validate_sold_to(p_header_id IN NUMBER,
9480 p_sold_to_org_id IN NUMBER,
9481 x_return_status OUT NOCOPY VARCHAR2)
9482 IS
9483 --
9484 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
9485 L_DUMMY VARCHAR2(30) := 'VALID';
9486 l_invoice_to_org_id number;
9487 l_deliver_to_org_id number;
9488 l_ship_To_org_id number;
9489 L_LINE_ID number;
9490 --
9491 cursor c1 is
9492 select sold_to_org_id,
9493 line_id,
9494 ship_to_org_id,
9495 deliver_to_org_id,
9496 invoice_to_org_id
9497 from
9498 oe_blanket_lines_all where header_id = p_header_id;
9499 mc1x c1%ROWTYPE;
9500
9501 BEGIN
9502 OE_MSG_PUB.initialize;
9503 x_return_status := FND_API.G_RET_STS_SUCCESS;
9504 IF l_debug_level > 0 THEN
9505 oe_debug_pub.add('ENTERING OE_Blanket_util.validate_sold_to:');
9506 oe_debug_pub.add('DB Line ID : '|| TO_CHAR (mc1x.line_id) ,1);
9507 oe_debug_pub.add('DB Sold To Org ID : '|| TO_CHAR (mc1x.sold_to_org_id) ,1);
9508 oe_debug_pub.add('actual Hdr Sold To Org ID : '|| TO_CHAR (p_sold_to_org_id) ,1);
9509 END IF;
9510
9511 -- Open the cursor
9512 OPEN c1;
9513 loop
9514 FETCH c1 into mc1x;
9515 exit when c1%NOTFOUND;
9516 oe_debug_pub.add('DB Line To : '|| TO_CHAR (mc1x.Line_id) ,1);
9517 oe_debug_pub.add('DB Ship To : '|| TO_CHAR (mc1x.ship_to_org_id) ,1);
9518 oe_debug_pub.add('DB Del ID : '|| TO_CHAR (mc1x.deliver_to_org_id) ,1);
9519 oe_debug_pub.add('DB Invo ID : '|| TO_CHAR (mc1x.invoice_to_org_id) ,1);
9520 if mc1x.ship_to_org_id is not null then
9521 --Ship to
9522 BEGIN
9523 SELECT 'VALID' INTO l_dummy
9524 FROM oe_ship_to_orgs_v
9525 WHERE customer_id = p_sold_to_org_id
9526 AND site_use_id = mc1x.ship_to_org_id
9527 AND status = 'A'
9528 and address_status='A';
9529 EXCEPTION
9530 WHEN NO_DATA_FOUND THEN
9531 if l_debug_level > 0 then
9532 oe_debug_pub.add ('OE_blanket_util.validate_sold_to Blanket In ship to No data found',2);
9533 end if;
9534 l_dummy := 'INVALID';
9535 x_return_status := FND_API.G_RET_STS_ERROR;
9536 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
9537 FND_MESSAGE.SET_TOKEN('ATTRIBUTE'
9538 , OE_Order_Util.Get_Attribute_Name('ship_to_org_id'));
9539 OE_MSG_PUB.Add;
9540 WHEN OTHERS THEN
9541 if l_debug_level > 0 then
9542 oe_debug_pub.add ('OE_blanket_util.validate_sold_to WOE Blanket In Ship No data found',2);
9543 end if;
9544 l_dummy := 'INVALID';
9545 x_return_status := FND_API.G_RET_STS_ERROR;
9546 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
9547 OE_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME , 'Record - Ship To');
9548 END IF;
9549 --RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9550 END ;
9551 end if;
9552 if mc1x.deliver_to_org_id is not null then
9553 -- Deliver to
9554 BEGIN
9555 SELECT 'VALID' INTO l_dummy
9556 FROM oe_deliver_to_orgs_v
9557 WHERE customer_id = p_sold_to_org_id
9558 AND site_use_id = mc1x.deliver_to_org_id
9559 AND status = 'A'
9560 and address_status='A'; --2752321
9561
9562 EXCEPTION
9563 WHEN NO_DATA_FOUND THEN
9564 if l_debug_level > 0 then
9565 oe_debug_pub.add ('OE_blanket_util.validate_sold_to Blanket In deliver No data found',2);
9566 end if;
9567 l_dummy := 'INVALID';
9568 x_return_status := FND_API.G_RET_STS_ERROR;
9569 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
9570 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
9571 OE_Order_Util.Get_Attribute_Name('deliver_to_org_id'));
9572 OE_MSG_PUB.Add;
9573 WHEN OTHERS THEN
9574 if l_debug_level > 0 then
9575 oe_debug_pub.add ('OE_blanket_util.validate_sold_to WOE Blanket In Deliver No data found',2);
9576 end if;
9577 l_dummy := 'INVALID';
9578 x_return_status := FND_API.G_RET_STS_ERROR;
9579 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
9580 OE_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME , 'Record - Deliver To');
9581 END IF;
9582 --RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9583 END;
9584 end if;
9585 if mc1x.invoice_to_org_id is not null then
9586 -- Invoice To
9587 BEGIN
9588 Select 'VALID' Into l_dummy
9589 from oe_invoice_to_orgs_v
9590 Where customer_id = p_sold_to_org_id
9591 AND site_use_id = mc1x.invoice_to_org_id;
9592 EXCEPTION
9593 WHEN NO_DATA_FOUND THEN
9594 if l_debug_level > 0 then
9595 oe_debug_pub.add ('OE_blanket_util.validate_sold_to Blanket In invoice No data found',2);
9596 end if;
9597 l_dummy := 'INVALID';
9598 x_return_status := FND_API.G_RET_STS_ERROR;
9599 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
9600 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
9601 OE_Order_Util.Get_Attribute_Name('invoice_to_org_id'));
9602 OE_MSG_PUB.Add;
9603 WHEN OTHERS THEN
9604 if l_debug_level > 0 then
9605 oe_debug_pub.add ('OE_blanket_util.validate_sold_to WOE Blanket In Invoice No data found',2);
9606 end if;
9607 l_dummy := 'INVALID';
9608 x_return_status := FND_API.G_RET_STS_ERROR;
9609 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
9610 OE_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME , 'Record - Invoice To');
9611 END IF;
9612 --RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9613 END;
9614 end if;
9615 END LOOP;
9616 CLOSE C1;
9617 if l_debug_level > 0 then
9618 oe_debug_pub.add ('OE_blanket_util.validate_sold_to After Close In Invoice '||x_return_status,2);
9619 end if;
9620
9621 if x_return_status = FND_API.G_RET_STS_ERROR then
9622 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9623 elsif l_dummy = 'VALID' then
9624 update oe_blanket_lines_all set sold_to_org_id = p_sold_to_org_id
9625 where header_id = p_header_id;
9626 end if;
9627 IF l_debug_level > 0 THEN
9628 oe_debug_pub.add('EXISTING OE_Blanket_util.validate_sold_to: '|| TO_CHAR (p_header_id) ,1);
9629 END IF;
9630 END validate_sold_to;
9631
9632 -- New procedure added for 5528599 start
9633 PROCEDURE valid_blanket_dates
9634 ( p_header_id IN NUMBER,
9635 x_return_status OUT NOCOPY VARCHAR2,
9636 x_msg_count OUT NOCOPY NUMBER,
9637 x_msg_data OUT NOCOPY VARCHAR2)
9638
9639 IS
9640
9641 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
9642 l_header_rec OE_Blanket_Pub.header_rec_type;
9643 l_line_tbl OE_Blanket_Pub.line_tbl_type;
9644 K NUMBER :=1;
9645 BEGIN
9646 --bug#5528507
9647 x_return_status := FND_API.G_RET_STS_SUCCESS;
9648 oe_debug_pub.add('In the valid_blanket_dates',1);
9649
9650 Query_Blanket(p_header_id => p_header_id
9651 ,p_x_header_rec => l_header_rec
9652 ,p_x_line_tbl => l_line_tbl
9653 ,x_return_status => x_return_status);
9654
9655
9656 if ( x_return_status = 'S')
9657 then
9658 oe_debug_pub.add('End Date :'||trunc(l_header_rec.end_date_active),1);
9659 oe_debug_pub.add('Sysdate :'||trunc(sysdate),1);
9660
9661 OE_MSG_PUB.set_msg_context(
9662 p_entity_code => 'BLANKET_HEADER'
9663 ,p_entity_id => l_header_rec.header_id
9664 ,p_header_id => l_header_rec.header_id
9665 ,p_line_id => null
9666 ,p_orig_sys_document_ref => null
9667 ,p_orig_sys_document_line_ref => null
9668 ,p_change_sequence => null
9669 ,p_source_document_id => null
9670 ,p_source_document_line_id => null
9671 ,p_order_source_id => null
9672 ,p_source_document_type_id => null);
9673
9674 if (trunc(l_header_rec.end_date_active) < trunc(sysdate))
9675 then
9676 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_DATE_RANGE');
9677 OE_MSG_PUB.ADD;
9678 x_return_status := FND_API.G_RET_STS_ERROR;
9679 end if;
9680
9681
9682 K := l_line_tbl.FIRST;
9683 oe_debug_pub.add('validating Lines ',1);
9684 WHILE K IS NOT NULL
9685 LOOP
9686
9687 OE_MSG_PUB.set_msg_context(
9688 p_entity_code => 'BLANKET_LINE'
9689 ,p_entity_id => l_line_tbl(K).line_id
9690 ,p_header_id => l_line_tbl(K).header_id
9691 ,p_line_id => l_line_tbl(K).line_id
9692 ,p_orig_sys_document_ref => null
9693 ,p_orig_sys_document_line_ref => null
9694 ,p_change_sequence => null
9695 ,p_source_document_id => null
9696 ,p_source_document_line_id => null
9697 ,p_order_source_id => null
9698 ,p_source_document_type_id => null);
9699
9700 oe_debug_pub.add('start date active:'|| l_line_tbl(K).start_date_active,1);
9701 oe_debug_pub.add('end_date_active :'|| l_line_tbl(K).end_date_active,1);
9702 oe_debug_pub.add('SYSDATE :'|| trunc(sysdate),1);
9703
9704 if (l_line_tbl(K).end_date_active is not NULL and
9705 (l_line_tbl(K).start_date_active)
9706 > (l_line_tbl(K).end_date_active)) THEN
9707 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_DATE_RANGE');
9708 OE_MSG_PUB.ADD;
9709 x_return_status := FND_API.G_RET_STS_ERROR;
9710 end if;
9711
9712 if( trunc(l_line_tbl(K).end_date_active) < trunc(sysdate))
9713 then
9714 FND_MESSAGE.SET_NAME('ONT','OE_BLKT_INVALID_DATE_RANGE');
9715 OE_MSG_PUB.ADD;
9716 x_return_status := FND_API.G_RET_STS_ERROR;
9717 end if;
9718
9719 K:= l_line_tbl.next(K);
9720 END LOOP;
9721
9722 OE_MSG_PUB.Count_And_Get
9723 ( p_count => x_msg_count
9724 , p_data => x_msg_data
9725 );
9726
9727 END IF;
9728
9729 EXCEPTION
9730 when others then
9731 null;
9732
9733 END valid_blanket_dates;
9734 -- New procedure added for 5528599 end
9735 Procedure IS_Batch_Call( p_application_id IN NUMBER,
9736 p_entity_short_name in VARCHAR2,
9737 p_validation_entity_short_name in VARCHAR2,
9738 p_validation_tmplt_short_name in VARCHAR2,
9739 p_record_set_tmplt_short_name in VARCHAR2,
9740 p_scope in VARCHAR2,
9741 p_result OUT NOCOPY NUMBER ) IS
9742
9743 --
9744 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
9745 --
9746 BEGIN
9747 if l_debug_level > 0 then
9748 oe_debug_pub.add('Enter OE_Blanket_Util.Batch_Call');
9749 end if;
9750
9751 if OE_GLOBALS.G_UI_FLAG THEN
9752 oe_debug_pub.add(' UI Call ');
9753 ELSE
9754 oe_debug_pub.add(' Batch call' );
9755 end if;
9756 IF NOT (OE_GLOBALS.G_UI_FLAG ) THEN
9757 p_result :=1;
9758 ELSE
9759 p_result :=0;
9760 END IF;
9761 --END IF;
9762 END Is_Batch_Call;
9763
9764
9765
9766 END OE_Blanket_UTIL;