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