DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_OE_FORM_HEADER

Source


1 PACKAGE BODY Oe_Oe_Form_Header AS
2 /* $Header: OEXFHDRB.pls 120.18 2011/08/05 07:13:33 jrparuch ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'Oe_Oe_Form_Header';
7 
8 --  Global variables holding cached record.
9 
10 g_header_rec                  OE_Order_PUB.Header_Rec_Type;
11 g_db_header_rec               OE_Order_PUB.Header_Rec_Type;
12 g_set_of_books_rec            Set_Of_Books_Rec_Type;
13 --  Forward declaration of procedures maintaining entity record cache.
14 
15 -- Following record will be used to store the cascading enabled or disabled
16 -- status for each field.
17 
18 g_cascade_test_record         OE_OE_FORM_HEADER.Cascade_record;
19 
20 PROCEDURE Write_header
21 (   p_header_rec                    IN  OE_Order_PUB.Header_Rec_Type
22 ,   p_db_record                     IN  BOOLEAN := FALSE
23 );
24 
25 PROCEDURE  Get_header
26 (   p_db_record                     IN  BOOLEAN := FALSE
27 ,   p_header_id                     IN  NUMBER
28 ,   x_header_rec                    OUT NOCOPY OE_Order_PUB.Header_Rec_Type
29 );
30 
31 
32 FUNCTION Filter_Phone_Number (
33     p_phone_number                IN     VARCHAR2,
34     p_isformat                    IN     NUMBER := 0
35   ) RETURN VARCHAR2 ;
36 
37 
38 PROCEDURE get_customer_details ( p_site_use_id IN NUMBER,
39                                  p_site_use_code IN VARCHAR2,
40 x_customer_id OUT NOCOPY NUMBER,
41 x_customer_name OUT NOCOPY VARCHAR2,
42 x_customer_number OUT NOCOPY VARCHAR2
43                                    );
44 
45 PROCEDURE Clear_header;
46 
47 --  Global variable holding performed operations.
48 
49 g_opr__tbl                    OE_Order_PUB.Header_Tbl_Type;
50 
51 --  Procedure : Default_Attributes
52 --
53 
54 PROCEDURE Default_Attributes
55 ( x_return_status OUT NOCOPY VARCHAR2
56 , x_msg_count OUT NOCOPY NUMBER
57 , x_msg_data OUT NOCOPY VARCHAR2
58 ,   x_header_rec                    IN OUT NOCOPY OE_ORDER_PUB.Header_Rec_Type
59 ,   x_header_val_rec                IN OUT NOCOPY OE_ORDER_PUB.Header_Val_Rec_Type
60 ,   x_old_header_rec                IN OUT NOCOPY OE_ORDER_PUB.Header_Rec_Type
61 ,   p_transaction_phase_code        IN VARCHAR2
62 )
63 IS
64 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
65 l_return_status               VARCHAR2(1);
66 BEGIN
67     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.DEFAULT_ATTRIBUTES', 1);
68 
69 
70 
71     -- Set the UI flag
72     OE_GLOBALS.G_UI_FLAG := TRUE;
73 
74     --  Set control flags.
75 
76     l_control_rec.controlled_operation := TRUE;
77     l_control_rec.check_security       := TRUE;
78     l_control_rec.default_attributes   := TRUE;
79     l_control_rec.change_attributes    := TRUE;
80 
81     l_control_rec.clear_dependents     := FALSE;
82     l_control_rec.validate_entity      := FALSE;
83     l_control_rec.write_to_DB          := FALSE;
84     l_control_rec.process              := FALSE;
85 
86     --  Instruct API to retain its caches
87 
88     l_control_rec.clear_api_cache      := FALSE;
89     l_control_rec.clear_api_requests   := FALSE;
90 
91     --  Load IN parameters if any exist
92 
93     -- Bug 3433343 Begin
94     Clear_Header;
95     -- Bug 3433343 End
96     x_old_header_rec   :=OE_ORDER_PUB.G_MISS_HEADER_REC;
97     x_header_rec       :=OE_ORDER_PUB.G_MISS_HEADER_REC;
98     x_header_val_rec   :=OE_ORDER_PUB.G_MISS_HEADER_VAL_REC;
99 
100     --kmuruges
101       IF p_transaction_phase_code = 'N' THEN
102        x_header_rec.transaction_phase_code         := p_transaction_phase_code;
103       END IF;
104     --kmuruges end
105 
106     --  Defaulting of flex values is currently done by the form.
107     --  Set flex attributes to NULL in order to avoid defaulting them.
108 
109     x_header_rec.attribute1                       := NULL;
110     x_header_rec.attribute10                      := NULL;
111     x_header_rec.attribute11                      := NULL;
112     x_header_rec.attribute12                      := NULL;
113     x_header_rec.attribute13                      := NULL;
114     x_header_rec.attribute14                      := NULL;
115     x_header_rec.attribute15                      := NULL;
116     x_header_rec.attribute2                       := NULL;
117     x_header_rec.attribute3                       := NULL;
118     x_header_rec.attribute4                       := NULL;
119     x_header_rec.attribute5                       := NULL;
120     x_header_rec.attribute6                       := NULL;
121     x_header_rec.attribute7                       := NULL;
122     x_header_rec.attribute8                       := NULL;
123     x_header_rec.attribute9                       := NULL;
124     x_header_rec.context                          := NULL;
125     x_header_rec.global_attribute1                := NULL;
126     x_header_rec.global_attribute10               := NULL;
127     x_header_rec.global_attribute11               := NULL;
128     x_header_rec.global_attribute12               := NULL;
129     x_header_rec.global_attribute13               := NULL;
130     x_header_rec.global_attribute14               := NULL;
131     x_header_rec.global_attribute15               := NULL;
132     x_header_rec.global_attribute16               := NULL;
133     x_header_rec.global_attribute17               := NULL;
134     x_header_rec.global_attribute18               := NULL;
135     x_header_rec.global_attribute19               := NULL;
136     x_header_rec.global_attribute2                := NULL;
137     x_header_rec.global_attribute20               := NULL;
138     x_header_rec.global_attribute3                := NULL;
139     x_header_rec.global_attribute4                := NULL;
140     x_header_rec.global_attribute5                := NULL;
141     x_header_rec.global_attribute6                := NULL;
142     x_header_rec.global_attribute7                := NULL;
143     x_header_rec.global_attribute8                := NULL;
144     x_header_rec.global_attribute9                := NULL;
145     x_header_rec.global_attribute_category        := NULL;
146     x_header_rec.tp_context                       := NULL;
147     x_header_rec.tp_attribute1                    := NULL;
148     x_header_rec.tp_attribute2                    := NULL;
149     x_header_rec.tp_attribute3                    := NULL;
150     x_header_rec.tp_attribute4                    := NULL;
151     x_header_rec.tp_attribute5                    := NULL;
152     x_header_rec.tp_attribute6                    := NULL;
153     x_header_rec.tp_attribute7                    := NULL;
154     x_header_rec.tp_attribute8                    := NULL;
155     x_header_rec.tp_attribute9                    := NULL;
156     x_header_rec.tp_attribute10                   := NULL;
157     x_header_rec.tp_attribute11                   := NULL;
158     x_header_rec.tp_attribute12                   := NULL;
159     x_header_rec.tp_attribute13                   := NULL;
160     x_header_rec.tp_attribute14                   := NULL;
161     x_header_rec.tp_attribute15                   := NULL;
162 
163     --  Set Operation to Create
164 
165     x_header_rec.operation := OE_GLOBALS.G_OPR_CREATE;
166 
167     --  Call Oe_Order_Pvt.Header
168 
169     Oe_Order_Pvt.Header
170     (    p_validation_level    =>FND_API.G_VALID_LEVEL_NONE
171     ,    p_init_msg_list       => FND_API.G_TRUE
172     ,    p_control_rec         =>l_control_rec
173     ,    p_x_header_rec        =>x_header_rec
174     ,    p_x_old_header_rec    =>x_old_header_rec
175     ,    x_return_status       =>l_return_status
176 
177     );
178 
179     IF l_return_status  = FND_API.G_RET_STS_UNEXP_ERROR THEN
180         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
181     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
182         RAISE FND_API.G_EXC_ERROR;
183     END IF;
184 
185 
186     --  Load OUT NOCOPY /* file.sql.39 change */ parameters.
187 
188     x_header_val_rec := OE_Header_Util.Get_Values
189     (   p_header_rec                  => x_header_rec
190     );
191 
192     --  Write to cache.
193     --  Set db_flag to False before writing to cache
194 
195     x_header_rec.db_flag := FND_API.G_FALSE;
196 
197     Write_header
198     (   p_header_rec                  => x_header_rec
199     );
200 
201     -- Re-set the UI flag to FALSE
202     OE_GLOBALS.G_UI_FLAG := FALSE;
203 
204     --  Set return status.
205 
206     x_return_status := FND_API.G_RET_STS_SUCCESS;
207 
208     --  Get message count and data
209 
210     OE_MSG_PUB.Count_And_Get
211     (   p_count                       => x_msg_count
212     ,   p_data                        => x_msg_data
213     );
214 
215     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.DEFAULT_ATTRIBUTES', 1);
216 
217 EXCEPTION
218 
219     WHEN FND_API.G_EXC_ERROR THEN
220 
221 	   OE_GLOBALS.G_UI_FLAG := FALSE;
222 
223         x_return_status := FND_API.G_RET_STS_ERROR;
224 
225         --  Get message count and data
226 
227         OE_MSG_PUB.Count_And_Get
228         (   p_count                       => x_msg_count
229         ,   p_data                        => x_msg_data
230         );
231 
232     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
233 
234 	   OE_GLOBALS.G_UI_FLAG := FALSE;
235 
236         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
237 
238         --  Get message count and data
239 
240         OE_MSG_PUB.Count_And_Get
241         (   p_count                       => x_msg_count
242         ,   p_data                        => x_msg_data
243         );
244 
245     WHEN OTHERS THEN
246 
247 	   OE_GLOBALS.G_UI_FLAG := FALSE;
248 
249         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
250 
251         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
252         THEN
253             OE_MSG_PUB.Add_Exc_Msg
254             (   G_PKG_NAME
255             ,   'Default_Attributes'
256             );
257         END IF;
258 
259         --  Get message count and data
260 
261         OE_MSG_PUB.Count_And_Get
262         (   p_count                       => x_msg_count
263         ,   p_data                        => x_msg_data
264         );
265 
266 END Default_Attributes;
267 
268 --  Procedure   :   Change_Attribute
269 --
270 
271 
272 PROCEDURE Change_Attribute
273 ( x_return_status OUT NOCOPY VARCHAR2
274 , x_msg_count OUT NOCOPY NUMBER
275 , x_msg_data OUT NOCOPY VARCHAR2
276 ,   p_header_id                     IN  NUMBER
277 ,   p_attr_id                       IN  NUMBER
278 ,   p_attr_value                    IN  VARCHAR2
279 ,   p_attr_id_tbl                   IN  Number_Tbl_Type
280 ,   p_attr_value_tbl                IN  Varchar2_Tbl_Type
281 ,   p_header_dff_rec                IN  Oe_Oe_Form_Header.Header_Dff_Rec_Type
282 ,   p_date_format_mask            IN  VARCHAR2 DEFAULT 'DD-MON-RRRR HH24:MI:SS'
283 ,   x_header_rec                  IN OUT NOCOPY OE_ORDER_PUB.Header_Rec_Type
284 ,   x_header_val_rec              IN OUT NOCOPY OE_ORDER_PUB.Header_Val_Rec_Type
285 ,   x_old_header_rec              IN OUT NOCOPY OE_ORDER_PUB.Header_Rec_Type
286 
287 )
288 IS
289 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
290 l_return_status               VARCHAR2(1);
291 l_date_format_mask            VARCHAR2(30) := p_date_format_mask;
292 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
293 template_id NUMBER := x_header_rec.contract_template_id;
294 BEGIN
295 
296     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.CHANGE_ATTRIBUTES', 1);
297     oe_debug_pub.add('hash template id in change att start is '|| x_header_rec.contract_template_id);
298     -- Set the UI flag
299     OE_GLOBALS.G_UI_FLAG := TRUE;
300 
301     --  Set control flags.
302 
303     l_control_rec.controlled_operation := TRUE;
304     l_control_rec.check_security       := TRUE;
305     l_control_rec.clear_dependents     := TRUE;
306     l_control_rec.default_attributes   := TRUE;
307     l_control_rec.change_attributes    := TRUE;
308 
309     l_control_rec.validate_entity      := FALSE;
310     l_control_rec.write_to_DB          := FALSE;
311     l_control_rec.process              := FALSE;
312 
313     --  Instruct API to retain its caches
314 
315     l_control_rec.clear_api_cache      := FALSE;
316     l_control_rec.clear_api_requests   := FALSE;
317 
318     --  Read header from cache
319 
320     Get_header
321     (   p_db_record                   => FALSE
322     ,   p_header_id                   => p_header_id
323     ,   x_header_rec                  => x_header_rec
324     );
325     oe_debug_pub.add('hash template id in change att after get_header is '|| x_header_rec.contract_template_id);
326     x_header_rec.contract_template_id :=template_id;
327     x_old_header_rec               := x_header_rec;
328 
329     IF OE_CODE_CONTROL.Code_Release_Level >= '110509' THEN
330 
331      IF l_debug_level  > 0 THEN
332        oe_debug_pub.add(  'Code Release is >= 11.5.9') ;
333      END IF;
334 
335 
336      Copy_Attribute_To_Rec
337                 (p_attr_id         => p_attr_id
338                 ,p_attr_value      => p_attr_value
339                 ,p_header_dff_rec    => p_header_dff_rec
340                 ,p_date_format_mask  => p_date_format_mask
341                 ,x_header_rec        => x_header_rec
342                 ,x_old_header_rec    => x_old_header_rec
343                 );
344 
345      FOR l_index IN 1..p_attr_id_tbl.COUNT LOOP
346 
347            Copy_Attribute_To_Rec
348                 (p_attr_id         => p_attr_id_tbl(l_index)
349                 ,p_attr_value      => p_attr_value_tbl(l_index)
350                 ,p_header_dff_rec    => p_header_dff_rec
351                 ,p_date_format_mask  => p_date_format_mask
352                 ,x_header_rec        => x_header_rec
353                 ,x_old_header_rec    => x_old_header_rec
354                 );
355 
356      END LOOP;
357    END IF;
358 
359 
360     -- PLEASE ADD THIS IF LOGIC FOR NEW ATTRIBUTES TO THE PROCEDURE
361     -- COPY_ATTRIBUTE_TO_REC ALSO. THIS NEW PROCEDURE WILL REPLACE
362     -- THESE CALLS POST OM PACK I OR 11.5.9.
363 
364 
365     oe_debuG_pub.add('attri id'||p_attr_id);
366     oe_debug_pub.add('attr val ksur'||p_attr_value);
367     IF p_attr_id =    OE_Header_Util.G_ACCOUNTING_RULE THEN
368         x_header_rec.accounting_rule_id := TO_NUMBER(p_attr_value);
369     ELSIF p_attr_id = OE_Header_Util.G_ACCOUNTING_RULE_DURATION THEN
370         x_header_rec.accounting_rule_duration := TO_NUMBER(p_attr_value);
371     ELSIF p_attr_id = OE_Header_Util.G_AGREEMENT THEN
372         x_header_rec.agreement_id := TO_NUMBER(p_attr_value);
373     ELSIF p_attr_id = OE_Header_Util.G_BLANKET_NUMBER THEN
374           x_header_rec.blanket_number := TO_NUMBER(p_attr_value);
375     --kmuruges
376     ELSIF p_attr_id = OE_Header_Util.G_quote_date THEN
377          -- x_header_rec.quote_date := TO_DATE(p_attr_value,l_date_format_mask);
378 	  x_header_rec.quote_date := fnd_date.string_to_date(p_attr_value,l_date_format_mask); --bug5402396
379     ELSIF p_attr_id = OE_Header_Util.G_quote_number THEN
380           x_header_rec.quote_number := TO_NUMBER(p_attr_value);
381     ELSIF p_attr_id = OE_Header_Util.G_sales_document_name THEN
382           x_header_rec.sales_document_name := p_attr_value;
383     ELSIF p_attr_id = OE_Header_Util.G_transaction_phase THEN
384           x_header_rec.transaction_phase_code := p_attr_value;
385     ELSIF p_attr_id = OE_Header_Util.G_user_status THEN
386           x_header_rec.user_status_code := p_attr_value;
387     ELSIF p_attr_id = OE_Header_Util.G_draft_submitted THEN
388           x_header_rec.draft_submitted_flag := p_attr_value;
389     ELSIF p_attr_id = OE_Header_Util.G_source_document_version THEN
390       x_header_rec.source_document_version_number := TO_NUMBER(p_attr_value);
391     ELSIF p_attr_id = OE_Header_Util.G_sold_to_site_use THEN
392       x_header_rec.sold_to_site_use_id := TO_NUMBER(p_attr_value);
393 
394    ELSIF p_attr_id = OE_Header_Util.G_ib_owner THEN
395           x_header_rec.ib_owner := p_attr_value;
396     ELSIF p_attr_id = OE_Header_Util.G_ib_installed_at_location THEN
397           x_header_rec.ib_installed_at_location := p_attr_value;
398     ELSIF p_attr_id = OE_Header_Util.G_ib_current_location THEN
399           x_header_rec.ib_current_location := p_attr_value;
400     ELSIF p_attr_id = OE_Header_Util.G_end_customer_site_use THEN
401           x_header_rec.end_customer_site_use_id := TO_NUMBER(p_attr_value);
402     ELSIF p_attr_id = OE_Header_Util.G_end_customer_contact THEN
403           x_header_rec.end_customer_contact_id := TO_NUMBER(p_attr_value);
404     ELSIF p_attr_id = OE_Header_Util.G_end_customer THEN
405           x_header_rec.end_customer_id := TO_NUMBER(p_attr_value);
406    --kmuruges end
407     ELSIF p_attr_id = OE_Header_Util.G_BOOKED THEN
408         x_header_rec.booked_flag := p_attr_value;
409     ELSIF p_attr_id = OE_Header_Util.G_BOOKED_DATE THEN
410         x_header_rec.booked_date := p_attr_value;
411     ELSIF p_attr_id = OE_Header_Util.G_CANCELLED THEN
412         x_header_rec.cancelled_flag := p_attr_value;
413     ELSIF p_attr_id = OE_Header_Util.G_CONVERSION_RATE THEN
414         x_header_rec.conversion_rate := TO_NUMBER(p_attr_value);
415     ELSIF p_attr_id = OE_Header_Util.G_CONVERSION_RATE_DATE THEN
416        -- x_header_rec.conversion_rate_date := TO_DATE(p_attr_value,l_date_format_mask);
417         x_header_rec.conversion_rate_date := fnd_date.string_to_date(p_attr_value,l_date_format_mask); --bug5402396
418     ELSIF p_attr_id = OE_Header_Util.G_CONVERSION_TYPE THEN
419         x_header_rec.conversion_type_code := p_attr_value;
420     ELSIF p_attr_id = OE_Header_Util.G_CUSTOMER_PREFERENCE_SET THEN
421         x_header_rec.CUSTOMER_PREFERENCE_SET_CODE := p_attr_value;
422     ELSIF p_attr_id = OE_Header_Util.G_CUST_PO_NUMBER THEN
423         x_header_rec.cust_po_number := p_attr_value;
424     ELSIF p_attr_id = OE_Header_Util.G_DEFAULT_FULFILLMENT_SET THEN
425         x_header_rec.DEFAULT_FULFILLMENT_SET := p_attr_value;
426     ELSIF p_attr_id = OE_Header_Util.G_DELIVER_TO_CONTACT THEN
427         x_header_rec.deliver_to_contact_id := TO_NUMBER(p_attr_value);
428     ELSIF p_attr_id = OE_Header_Util.G_DELIVER_TO_ORG THEN
429         x_header_rec.deliver_to_org_id := TO_NUMBER(p_attr_value);
430     ELSIF p_attr_id = OE_Header_Util.G_DEMAND_CLASS THEN
431         x_header_rec.demand_class_code := p_attr_value;
432     ELSIF p_attr_id = OE_Header_Util.G_EXPIRATION_DATE THEN
433        -- x_header_rec.expiration_date := TO_DATE(p_attr_value, l_date_format_mask);
434         x_header_rec.expiration_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask);--bug5402396
435     ELSIF p_attr_id = OE_Header_Util.G_EARLIEST_SCHEDULE_LIMIT THEN
436         x_header_rec.earliest_schedule_limit := TO_NUMBER(p_attr_value);
437     ELSIF p_attr_id = OE_Header_Util.G_FOB_POINT THEN
438         x_header_rec.fob_point_code := p_attr_value;
439     ELSIF p_attr_id = OE_Header_Util.G_FREIGHT_CARRIER THEN
440         x_header_rec.freight_carrier_code := p_attr_value;
441     ELSIF p_attr_id = OE_Header_Util.G_FREIGHT_TERMS THEN
442         x_header_rec.freight_terms_code := p_attr_value;
443     ELSIF p_attr_id = OE_Header_Util.G_FULFILLMENT_SET_NAME THEN
444         x_header_rec.FULFILLMENT_SET_NAME := p_attr_value;
445     ELSIF p_attr_id = OE_Header_Util.G_HEADER THEN
446         x_header_rec.header_id := TO_NUMBER(p_attr_value);
447     ELSIF p_attr_id = OE_Header_Util.G_INVOICE_TO_CONTACT THEN
448         x_header_rec.invoice_to_contact_id := TO_NUMBER(p_attr_value);
449     ELSIF p_attr_id = OE_Header_Util.G_INVOICE_TO_ORG THEN
450         x_header_rec.invoice_to_org_id := TO_NUMBER(p_attr_value);
451     ELSIF p_attr_id = OE_Header_Util.G_INVOICING_RULE THEN
452         x_header_rec.invoicing_rule_id := TO_NUMBER(p_attr_value);
453     ELSIF p_attr_id = OE_Header_Util.G_LATEST_SCHEDULE_LIMIT THEN
454         x_header_rec.latest_schedule_limit := TO_NUMBER(p_attr_value);
455     ELSIF p_attr_id = OE_Header_Util.G_LINE_SET_NAME THEN
456         x_header_rec.LINE_SET_NAME := p_attr_value;
457     ELSIF p_attr_id = OE_Header_Util.G_OPEN THEN
458         x_header_rec.open_flag := p_attr_value;
459     ELSIF p_attr_id = OE_Header_Util.G_ORDERED_DATE THEN
460        -- x_header_rec.ordered_date := TO_DATE(p_attr_value, l_date_format_mask);
461         x_header_rec.ordered_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
462     ELSIF p_attr_id = OE_Header_Util.G_ORDER_DATE_TYPE_CODE THEN
463         x_header_rec.order_date_type_code := p_attr_value;
464     ELSIF p_attr_id = OE_Header_Util.G_ORDER_NUMBER THEN
465         x_header_rec.order_number := TO_NUMBER(p_attr_value);
466     ELSIF p_attr_id = OE_Header_Util.G_ORDER_SOURCE THEN
467         x_header_rec.order_source_id := TO_NUMBER(p_attr_value);
468     ELSIF p_attr_id = OE_Header_Util.G_ORDER_TYPE THEN
469         x_header_rec.order_type_id := TO_NUMBER(p_attr_value);
470     ELSIF p_attr_id = OE_Header_Util.G_ORG THEN
471         x_header_rec.org_id := TO_NUMBER(p_attr_value);
472     ELSIF p_attr_id = OE_Header_Util.G_ORIG_SYS_DOCUMENT_REF THEN
473         x_header_rec.orig_sys_document_ref := p_attr_value;
474     ELSIF p_attr_id = OE_Header_Util.G_PARTIAL_SHIPMENTS_ALLOWED THEN
475         x_header_rec.partial_shipments_allowed := p_attr_value;
476     ELSIF p_attr_id = OE_Header_Util.G_PAYMENT_TERM THEN
477         x_header_rec.payment_term_id := TO_NUMBER(p_attr_value);
478     ELSIF p_attr_id = OE_Header_Util.G_PRICE_LIST THEN
479         x_header_rec.price_list_id := TO_NUMBER(p_attr_value);
480     ELSIF p_attr_id = OE_Header_Util.G_PRICING_DATE THEN
481        -- x_header_rec.pricing_date := TO_DATE(p_attr_value, l_date_format_mask);
482         x_header_rec.pricing_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
483     ELSIF p_attr_id = OE_Header_Util.G_REQUEST_DATE THEN
484        -- x_header_rec.request_date := TO_DATE(p_attr_value, l_date_format_mask);
485         x_header_rec.request_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
486     ELSIF p_attr_id = OE_Header_Util.G_SHIPMENT_PRIORITY THEN
487         x_header_rec.shipment_priority_code := p_attr_value;
488     ELSIF p_attr_id = OE_Header_Util.G_SHIPPING_METHOD THEN
489         x_header_rec.shipping_method_code := p_attr_value;
490     ELSIF p_attr_id = OE_Header_Util.G_SHIP_FROM_ORG THEN
491         x_header_rec.ship_from_org_id := TO_NUMBER(p_attr_value);
492     ELSIF p_attr_id = OE_Header_Util.G_SHIP_TOLERANCE_ABOVE THEN
493         x_header_rec.ship_tolerance_above := TO_NUMBER(p_attr_value);
494     ELSIF p_attr_id = OE_Header_Util.G_SHIP_TOLERANCE_BELOW THEN
495         x_header_rec.ship_tolerance_below := TO_NUMBER(p_attr_value);
496     ELSIF p_attr_id = OE_Header_Util.G_SHIP_TO_CONTACT THEN
497         x_header_rec.ship_to_contact_id := TO_NUMBER(p_attr_value);
498     ELSIF p_attr_id = OE_Header_Util.G_SHIP_TO_ORG THEN
499         x_header_rec.ship_to_org_id := TO_NUMBER(p_attr_value);
500     ELSIF p_attr_id = OE_Header_Util.G_SOLD_TO_CONTACT THEN
501         x_header_rec.sold_to_contact_id := TO_NUMBER(p_attr_value);
502     ELSIF p_attr_id = OE_Header_Util.G_SOLD_TO_ORG THEN
503         x_header_rec.sold_to_org_id := TO_NUMBER(p_attr_value);
504     ELSIF p_attr_id = OE_Header_Util.G_SOLD_TO_PHONE THEN
505         x_header_rec.sold_to_phone_id := TO_NUMBER(p_attr_value);
506     ELSIF p_attr_id = OE_Header_Util.G_SOURCE_DOCUMENT THEN
507         x_header_rec.source_document_id := TO_NUMBER(p_attr_value);
508     ELSIF p_attr_id = OE_Header_Util.G_SOURCE_DOCUMENT_TYPE THEN
509         x_header_rec.source_document_type_id := TO_NUMBER(p_attr_value);
510     ELSIF p_attr_id = OE_Header_Util.G_TAX_EXEMPT THEN
511         x_header_rec.tax_exempt_flag := p_attr_value;
512     ELSIF p_attr_id = OE_Header_Util.G_TAX_EXEMPT_NUMBER THEN
513         x_header_rec.tax_exempt_number := p_attr_value;
514     ELSIF p_attr_id = OE_Header_Util.G_TAX_EXEMPT_REASON THEN
515         x_header_rec.tax_exempt_reason_code := p_attr_value;
516     ELSIF p_attr_id = OE_Header_Util.G_TAX_POINT THEN
517         x_header_rec.tax_point_code := p_attr_value;
518     ELSIF p_attr_id = OE_Header_Util.G_TRANSACTIONAL_CURR THEN
519         x_header_rec.transactional_curr_code := p_attr_value;
520     ELSIF p_attr_id = OE_Header_Util.G_VERSION_NUMBER THEN
521         x_header_rec.version_number := TO_NUMBER(p_attr_value);
522     ELSIF p_attr_id =    OE_Header_Util.G_SALESREP THEN
523         x_header_rec.salesrep_id := TO_NUMBER(p_attr_value);
524     ELSIF p_attr_id =    OE_Header_Util.G_SALES_CHANNEL THEN
525         x_header_rec.sales_channel_code := p_attr_value;
526     ELSIF p_attr_id =    OE_Header_Util.G_RETURN_REASON THEN
527         x_header_rec.return_reason_code := p_attr_value;
528     ELSIF p_attr_id = OE_Header_Util.G_PAYMENT_TYPE THEN
529         x_header_rec.payment_type_code := p_attr_value;
530     ELSIF p_attr_id = OE_Header_Util.G_PAYMENT_AMOUNT THEN
531         x_header_rec.payment_amount := TO_NUMBER(p_attr_value);
532     ELSIF p_attr_id =    OE_Header_Util.G_CHECK_NUMBER THEN
533         x_header_rec.check_number := p_attr_value;
534     ELSIF p_attr_id = OE_Header_Util.G_CREDIT_CARD THEN
535         x_header_rec.credit_card_code := p_attr_value;
536     ELSIF p_attr_id =    OE_Header_Util.G_CREDIT_CARD_HOLDER_NAME THEN
537         x_header_rec.credit_card_holder_name := p_attr_value;
538     ELSIF p_attr_id =    OE_Header_Util.G_CREDIT_CARD_NUMBER THEN
539         x_header_rec.credit_card_number := p_attr_value;
540     ELSIF p_attr_id = Oe_header_util.G_INSTRUMENT_SECURITY THEN--R12 CC Encryption
541 	  x_header_rec.instrument_security_code := p_attr_value;
542     ELSIF p_attr_id = Oe_header_util.G_CC_INSTRUMENT THEN
543 	  x_header_rec.CC_INSTRUMENT_ID := p_attr_value;
544     ELSIF p_attr_id = Oe_header_util.G_CC_INSTRUMENT_ASSIGNMENT THEN
545 	  x_header_rec.CC_INSTRUMENT_ASSIGNMENT_ID := p_attr_value; --R12 CC Encryption
546     ELSIF p_attr_id =    OE_Header_Util.G_CREDIT_CARD_EXPIRATION_DATE THEN
547        -- x_header_rec.credit_card_expiration_date := TO_DATE(p_attr_value, l_date_format_mask);
548         x_header_rec.credit_card_expiration_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
549     ELSIF p_attr_id =    OE_Header_Util.G_CREDIT_CARD_APPROVAL_DATE   THEN
550        -- x_header_rec.credit_card_approval_date   := TO_DATE(p_attr_value, l_date_format_mask);
551         x_header_rec.credit_card_approval_date   := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
552     ELSIF p_attr_id =    OE_Header_Util.G_CREDIT_CARD_APPROVAL THEN
553         x_header_rec.credit_card_approval_code := p_attr_value;
554     ELSIF p_attr_id =    OE_Header_Util.G_FIRST_ACK THEN
555         x_header_rec.first_ack_code := p_attr_value;
556     ELSIF p_attr_id =    OE_Header_Util.G_FIRST_ACK_DATE THEN
557        -- x_header_rec.first_ack_date := TO_DATE(p_attr_value, l_date_format_mask);
558         x_header_rec.first_ack_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
559     ELSIF p_attr_id =    OE_Header_Util.G_LAST_ACK THEN
560         x_header_rec.last_ack_code := p_attr_value;
561     ELSIF p_attr_id =    OE_Header_Util.G_SHIPPING_INSTRUCTIONS THEN
562         x_header_rec.shipping_instructions := p_attr_value;
563     ELSIF p_attr_id =    OE_Header_Util.G_PACKING_INSTRUCTIONS THEN
564         x_header_rec.packing_instructions := p_attr_value;
565     ELSIF p_attr_id =    OE_Header_Util.G_LAST_ACK_DATE THEN
566        -- x_header_rec.last_ack_date := TO_DATE(p_attr_value, l_date_format_mask);
567         x_header_rec.last_ack_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
568     ELSIF p_attr_id =    OE_Header_Util.G_ORDER_CATEGORY THEN
569         x_header_rec.order_category_code := p_attr_value;
570     ELSIF p_attr_id = OE_Header_Util.G_CONTRACT_TEMPLATE THEN
571         x_header_rec.contract_template_id := TO_NUMBER(p_attr_value);
572     ELSIF p_attr_id = OE_Header_Util.G_CONTRACT_SOURCE_DOC_TYPE THEN
573         x_header_rec.contract_source_doc_type_code := p_attr_value;
574     ELSIF p_attr_id = OE_Header_Util.G_CONTRACT_SOURCE_DOCUMENT THEN
575         x_header_rec.contract_source_document_id := TO_NUMBER(p_attr_value);
576     ELSIF p_attr_id = OE_Header_Util.G_SUPPLIER_SIGNATURE THEN
577         x_header_rec.supplier_signature := p_attr_value;
578     ELSIF p_attr_id = OE_Header_Util.G_CUSTOMER_SIGNATURE THEN
579         x_header_rec.customer_signature := p_attr_value;
580     ELSIF p_attr_id = OE_Header_Util.G_CUSTOMER_SIGNATURE_DATE THEN
581        -- x_header_rec.customer_signature_date := TO_DATE(p_attr_value, l_date_format_mask);
582         x_header_rec.customer_signature_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
583     ELSIF p_attr_id = OE_Header_Util.G_SUPPLIER_SIGNATURE_DATE THEN
584        -- x_header_rec.supplier_signature_date := TO_DATE(p_attr_value, l_date_format_mask);
585           x_header_rec.supplier_signature_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
586     ELSIF p_attr_id = OE_Header_Util.G_ATTRIBUTE1
587     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE10
588     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE11
589     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE12
590     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE13
591     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE14
592     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE15
593     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE16   --For bug 2184255
594     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE17
595     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE18
596     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE19
597     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE2
598     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE20
599     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE3
600     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE4
601     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE5
602     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE6
603     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE7
604     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE8
605     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE9
606     OR     p_attr_id = OE_Header_Util.G_CONTEXT
607     THEN
608 
609         x_header_rec.attribute1        := p_header_dff_rec.attribute1;
610         x_header_rec.attribute10       := p_header_dff_rec.attribute10;
611         x_header_rec.attribute11       := p_header_dff_rec.attribute11;
612         x_header_rec.attribute12       := p_header_dff_rec.attribute12;
613         x_header_rec.attribute13       := p_header_dff_rec.attribute13;
614         x_header_rec.attribute14       := p_header_dff_rec.attribute14;
615         x_header_rec.attribute15       := p_header_dff_rec.attribute15;
616         x_header_rec.attribute16       := p_header_dff_rec.attribute16;   --For bug 2184255
617         x_header_rec.attribute17       := p_header_dff_rec.attribute17;
618         x_header_rec.attribute18       := p_header_dff_rec.attribute18;
619         x_header_rec.attribute19       := p_header_dff_rec.attribute19;
620         x_header_rec.attribute2        := p_header_dff_rec.attribute2;
621         x_header_rec.attribute20       := p_header_dff_rec.attribute20;
622         x_header_rec.attribute3        := p_header_dff_rec.attribute3;
623         x_header_rec.attribute4        := p_header_dff_rec.attribute4;
624         x_header_rec.attribute5        := p_header_dff_rec.attribute5;
625         x_header_rec.attribute6        := p_header_dff_rec.attribute6;
626         x_header_rec.attribute7        := p_header_dff_rec.attribute7;
627         x_header_rec.attribute8        := p_header_dff_rec.attribute8;
628         x_header_rec.attribute9        := p_header_dff_rec.attribute9;
629         x_header_rec.context           := p_header_dff_rec.context;
630 
631 --        null; -- Kris get desc flec working
632 
633     ELSIF p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE1
634     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE10
635     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE11
636     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE12
637     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE13
638     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE14
639     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE15
640     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE16
641     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE17
642     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE18
643     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE19
644     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE2
645     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE20
646     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE3
647     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE4
648     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE5
649     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE6
650     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE7
651     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE8
652     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE9
653     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE_CATEGORY
654     THEN
655 
656         x_header_rec.global_attribute1 := p_header_dff_rec.global_attribute1;
657         x_header_rec.global_attribute10 := p_header_dff_rec.global_attribute10;
658         x_header_rec.global_attribute11 := p_header_dff_rec.global_attribute11;
659         x_header_rec.global_attribute12 := p_header_dff_rec.global_attribute12;
660         x_header_rec.global_attribute13 := p_header_dff_rec.global_attribute13;
661         x_header_rec.global_attribute14 := p_header_dff_rec.global_attribute14;
662         x_header_rec.global_attribute15 := p_header_dff_rec.global_attribute15;
663         x_header_rec.global_attribute16 := p_header_dff_rec.global_attribute16;
664         x_header_rec.global_attribute17 := p_header_dff_rec.global_attribute17;
665         x_header_rec.global_attribute18 := p_header_dff_rec.global_attribute18;
666         x_header_rec.global_attribute19 := p_header_dff_rec.global_attribute19;
667         x_header_rec.global_attribute2 :=  p_header_dff_rec.global_attribute2;
668         x_header_rec.global_attribute20 := p_header_dff_rec.global_attribute20;
669         x_header_rec.global_attribute3 := p_header_dff_rec.global_attribute3;
670         x_header_rec.global_attribute4 := p_header_dff_rec.global_attribute4;
671         x_header_rec.global_attribute5 := p_header_dff_rec.global_attribute5;
672         x_header_rec.global_attribute6 := p_header_dff_rec.global_attribute6;
673         x_header_rec.global_attribute7 := p_header_dff_rec.global_attribute7;
674         x_header_rec.global_attribute8 := p_header_dff_rec.global_attribute8;
675         x_header_rec.global_attribute9 := p_header_dff_rec.global_attribute9;
676         x_header_rec.global_attribute_category := p_header_dff_rec.global_attribute_category;
677 
678         null;  --Kris
679     ELSIF  p_attr_id = OE_Header_Util.G_TP_CONTEXT
680     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE1
681     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE2
682     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE3
683     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE4
684     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE5
685     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE6
686     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE7
687     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE8
688     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE9
689     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE10
690     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE11
691     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE12
692     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE13
693     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE14
694     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE15
695     THEN
696 
697         x_header_rec.tp_attribute1        := p_header_dff_rec.tp_attribute1;
698         x_header_rec.tp_attribute10       := p_header_dff_rec.tp_attribute10;
699         x_header_rec.tp_attribute11       := p_header_dff_rec.tp_attribute11;
700         x_header_rec.tp_attribute12       := p_header_dff_rec.tp_attribute12;
701         x_header_rec.tp_attribute13       := p_header_dff_rec.tp_attribute13;
702         x_header_rec.tp_attribute14       := p_header_dff_rec.tp_attribute14;
703         x_header_rec.tp_attribute15       := p_header_dff_rec.tp_attribute15;
704         x_header_rec.tp_attribute2        := p_header_dff_rec.tp_attribute2;
705         x_header_rec.tp_attribute3        := p_header_dff_rec.tp_attribute3;
706         x_header_rec.tp_attribute4        := p_header_dff_rec.tp_attribute4;
707         x_header_rec.tp_attribute5        := p_header_dff_rec.tp_attribute5;
708         x_header_rec.tp_attribute6        := p_header_dff_rec.tp_attribute6;
709         x_header_rec.tp_attribute7        := p_header_dff_rec.tp_attribute7;
710         x_header_rec.tp_attribute8        := p_header_dff_rec.tp_attribute8;
711         x_header_rec.tp_attribute9        := p_header_dff_rec.tp_attribute9;
712         x_header_rec.tp_context           := p_header_dff_rec.tp_context;
713     ELSE
714 
715         --  Unexpected error, unrecognized attribute
716 
717         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
718         THEN
719             OE_MSG_PUB.Add_Exc_Msg
720             (   G_PKG_NAME
721             ,   'Change_Attribute'
722             ,   'Unrecognized attribute'
723             );
724         END IF;
725 
726         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
727 
728     END IF;
729 
730     --  Set Operation.
731 
732     IF FND_API.To_Boolean(x_header_rec.db_flag) THEN
733         x_header_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
734     ELSE
735         x_header_rec.operation := OE_GLOBALS.G_OPR_CREATE;
736     END IF;
737 
738     --  Call Oe_Order_Pvt.Header
739     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.CHANGE_ATTRIBUTES'||x_header_rec.sold_to_phone_id, 1);
740     oe_debug_pub.add('hash template id in change att before invoice is '|| x_header_rec.contract_template_id);
741     oe_debug_pub.add('Entering invoice'||x_header_rec.invoice_to_org_id, 1);
742     oe_debug_pub.add('Entering Invoice'||x_old_header_rec.invoice_to_org_id, 1);
743 
744     Oe_Order_Pvt.Header
745     (
746         p_validation_level            => FND_API.G_VALID_LEVEL_NONE
747     ,   p_init_msg_list               => FND_API.G_TRUE
748     ,   p_control_rec                 => l_control_rec
749     ,   p_x_header_rec                => x_header_rec
750     ,   p_x_old_header_rec            => x_old_header_rec
751     ,   x_return_status                => l_return_status
752     );
753     oe_debug_pub.add('Exiting invoice'||x_header_rec.invoice_to_org_id, 1);
754     oe_debug_pub.add('Exiting invoice'||x_old_header_rec.invoice_to_org_id, 1);
755     --oe_debug_pub.add('Holder name new'||x_header_rec.credit_card_holder_name);
756     --oe_debug_pub.add('Holder name old'||x_old_header_rec.credit_card_holder_name);
757 
758     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
759         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
760     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
761         RAISE FND_API.G_EXC_ERROR;
762     END IF;
763 
764 
765     --  Init OUT NOCOPY parameters to missing.
766 
767 
768     --  Load display out NOCOPY parameters if any
769 
770     x_header_val_rec := OE_Header_Util.Get_Values
771     (   p_header_rec                  => x_header_rec
772     ,   p_old_header_rec              => x_old_header_rec
773     );
774 
775    --  Return changed attributes.
776 
777     --If defaulting is enabled for credit card number, then need to populate the
778     --instrument id and instrument assignment id returned by the Payments API in
779     --OE_Default_Pvt package
780 
781     IF OE_Default_Pvt.g_default_instrument_id IS NOT NULL THEN
782 	x_header_rec.cc_instrument_id := OE_Default_Pvt.g_default_instrument_id;
783 	oe_debug_pub.add('instr id in fhpmb'||x_header_rec.cc_instrument_id);
784 	--Setting the value of assignment id to null
785 	--after passing the value to the library
786 	OE_Default_Pvt.g_default_instrument_id := null;
787     END IF;
788 
789     IF OE_Default_Pvt.g_default_instr_assignment_id IS NOT NULL THEN
790 	x_header_rec.cc_instrument_assignment_id := OE_Default_Pvt.g_default_instr_assignment_id;
791 	oe_debug_pub.add('assign id in fhpmb'||x_header_rec.cc_instrument_assignment_id	);
792 	--Setting the value of assignment id to null
793 	--after passing the value to the library
794 	OE_Default_Pvt.g_default_instr_assignment_id := null;
795     END IF;
796     --R12 CC Encryption
797    --  Write to cache.
798 
799     Write_header
800     (   p_header_rec                  => x_header_rec
801     );
802 
803     -- Re-set the UI flag to FALSE
804     OE_GLOBALS.G_UI_FLAG := FALSE;
805 
806     --  Set return status.
807 
808     x_return_status := FND_API.G_RET_STS_SUCCESS;
809 
810     --  Get message count and data
811 
812     OE_MSG_PUB.Count_And_Get
813     (   p_count                       => x_msg_count
814     ,   p_data                        => x_msg_data
815     );
816 
817     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.CHANGE_ATTRIBUTES', 1);
818 
819 EXCEPTION
820 
821     WHEN FND_API.G_EXC_ERROR THEN
822 
823 	   OE_GLOBALS.G_UI_FLAG := FALSE;
824 
825         x_return_status := FND_API.G_RET_STS_ERROR;
826 
827         --  Get message count and data
828 
829         OE_MSG_PUB.Count_And_Get
830         (   p_count                       => x_msg_count
831         ,   p_data                        => x_msg_data
832         );
833 
834     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
835 
836 	   OE_GLOBALS.G_UI_FLAG := FALSE;
837 
838         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
839 
840         --  Get message count and data
841 
842         OE_MSG_PUB.Count_And_Get
843         (   p_count                       => x_msg_count
844         ,   p_data                        => x_msg_data
845         );
846 
847     WHEN OTHERS THEN
848 
849 	   OE_GLOBALS.G_UI_FLAG := FALSE;
850 
851         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
852 
853         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
854         THEN
855             OE_MSG_PUB.Add_Exc_Msg
856             (   G_PKG_NAME
857             ,   'Change_Attribute'
858             );
859         END IF;
860 
861         --  Get message count and data
862 
863         OE_MSG_PUB.Count_And_Get
864         (   p_count                       => x_msg_count
865         ,   p_data                        => x_msg_data
866         );
867 
868 END Change_Attribute;
869 
870 --  Procedure       Validate_And_Write
871 --
872 
873 PROCEDURE Validate_And_Write
874 ( x_return_status OUT NOCOPY VARCHAR2
875 , x_msg_count OUT NOCOPY NUMBER
876 , x_msg_data OUT NOCOPY VARCHAR2
877 , x_cascade_flag OUT NOCOPY BOOLEAN
878 ,   p_header_id                     IN  NUMBER
879 ,   p_change_reason_code            IN  VARCHAR2
880 ,   p_change_comments               IN  VARCHAR2
881 , x_creation_date OUT NOCOPY DATE
882 , x_created_by OUT NOCOPY NUMBER
883 , x_last_update_date OUT NOCOPY DATE
884 , x_last_updated_by OUT NOCOPY NUMBER
885 , x_last_update_login OUT NOCOPY NUMBER
886 , x_order_number OUT NOCOPY NUMBER
887 , x_lock_control OUT NOCOPY NUMBER
888 , x_quote_number OUT NOCOPY NUMBER
889 ,x_shipping_method_code OUT NOCOPY VARCHAR2 --4159701
890 , x_freight_carrier_code OUT NOCOPY VARCHAR2 --4159701
891 , x_shipping_method  OUT NOCOPY VARCHAR2--4159701
892 , x_freight_carrier OUT NOCOPY VARCHAR2 --4159701
893 , x_freight_terms_code OUT NOCOPY VARCHAR2 --4348011
894 , x_freight_terms      OUT NOCOPY VARCHAR2
895 , x_payment_term_id   OUT NOCOPY NUMBER
896 , x_payment_term      OUT NOCOPY VARCHAR2
897 )
898 IS
899 l_x_old_header_rec              OE_Order_PUB.Header_Rec_Type;
900 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
901 l_return_status               VARCHAR2(1);
902 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
903 BEGIN
904 
905     SAVEPOINT Header_Validate_And_Write;
906 	OE_HEADER_UTIL.g_rollback_done := 'N'; -- bug 12759791
907     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.VALIDATE_AND_WRITE', 1);
908 
909     -- Set the UI flag
910     OE_GLOBALS.G_UI_FLAG := TRUE;
911 
912     --  Set control flags.
913 
914     l_control_rec.controlled_operation := TRUE;
915     l_control_rec.validate_entity      := TRUE;
916     l_control_rec.write_to_DB          := TRUE;
917 
918     l_control_rec.check_security       := FALSE;
919     l_control_rec.clear_dependents     := FALSE;
920     l_control_rec.default_attributes   := FALSE;
921     l_control_rec.change_attributes    := FALSE;
922     l_control_rec.process              := FALSE;
923 
924     --  Instruct API to retain its caches
925 
926     l_control_rec.clear_api_cache      := FALSE;
927     l_control_rec.clear_api_requests   := FALSE;
928 
929     --  Read header from cache
930 
931     Get_header
932     (   p_db_record                   => TRUE
933     ,   p_header_id                   => p_header_id
934     ,   x_header_rec                  => l_x_old_header_rec
935     );
936 
937      Get_header
938     (   p_db_record                   => FALSE
939     ,   p_header_id                   => p_header_id
940     ,   x_header_rec                  => l_x_header_rec
941     );
942 
943     /* Start Audit Trail -- Pass the reason, comments */
944 	  l_x_header_rec.change_reason := p_change_reason_code;
945 	  l_x_header_rec.change_comments := p_change_comments;
946     /* End Audit Trail */
947 
948     --  Set Operation.
949 
950     IF FND_API.To_Boolean(l_x_header_rec.db_flag) THEN
951         l_x_header_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
952     ELSE
953         l_x_header_rec.operation := OE_GLOBALS.G_OPR_CREATE;
954     END IF;
955 
956     --  Call Oe_Order_Pvt.Header
957 
958     Oe_Order_Pvt.Header
959     (   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
960     ,   p_init_msg_list               => FND_API.G_TRUE
961     ,   p_control_rec                 => l_control_rec
962     ,   p_x_header_rec                  => l_x_header_rec
963     ,   p_x_old_header_rec              => l_x_old_header_rec
964     ,   x_return_status               =>  l_return_status
965     );
966 
967 
968     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
969         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
970     ELSIF l_return_status  = FND_API.G_RET_STS_ERROR THEN
971         RAISE FND_API.G_EXC_ERROR;
972     END IF;
973 
974 /* The Process Requests and Notify should be invoked for */
975 /* Pre-Pack H code level */
976 
977   IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL < '110508' THEN
978 
979     Oe_Order_Pvt.Process_Requests_And_Notify
980     (   p_process_requests           => FALSE
981     ,   p_init_msg_list               => FND_API.G_FALSE
982      ,  p_notify                     => TRUE
983 	,  x_return_status              => l_return_status
984 	,  p_header_rec                 => l_x_header_rec
985 	,  p_old_header_rec             => l_x_old_header_rec
986     );
987 
988     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
989         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
990     ELSIF l_return_status  = FND_API.G_RET_STS_ERROR THEN
991         RAISE FND_API.G_EXC_ERROR;
992     END IF;
993 
994   END IF;  /* code release level check */
995 
996 
997     x_cascade_flag := OE_GLOBALS.G_CASCADING_REQUEST_LOGGED;
998     --  Load OUT NOCOPY parameters.
999 
1000 
1001     x_creation_date                := l_x_header_rec.creation_date;
1002     x_created_by                   := l_x_header_rec.created_by;
1003     x_last_update_date             := l_x_header_rec.last_update_date;
1004     x_last_updated_by              := l_x_header_rec.last_updated_by;
1005     x_last_update_login            := l_x_header_rec.last_update_login;
1006     x_order_number                 := l_x_header_rec.order_number;
1007     x_lock_control                 := l_x_header_rec.lock_control;
1008     --kmuruges
1009     x_quote_number                 := l_x_header_rec.quote_number;
1010     --kmuruges end
1011      --start 4159701
1012     x_shipping_method_code         := l_x_header_rec.shipping_method_code;
1013     x_freight_carrier_code         := l_x_header_rec.freight_carrier_code;
1014     x_freight_carrier              := OE_ID_TO_VALUE.Freight_Carrier
1015                                                 (   p_freight_carrier_code => l_x_header_rec.freight_carrier_code
1016                                                 ,   p_ship_from_org_id =>l_x_header_rec.ship_from_org_id
1017                                                 );
1018 
1019     x_shipping_method              := OE_ID_TO_VALUE.Ship_Method
1020                                                 (p_ship_method_code =>l_x_header_rec.shipping_method_code
1021                                                 );
1022     --bug 4348011
1023     x_freight_terms_code           := l_x_header_rec.freight_terms_code;
1024     oe_debug_pub.add('ksurendr Freight terms code after PO'||x_freight_terms_code, 1);
1025     x_freight_terms                := OE_ID_TO_VALUE.Freight_Terms
1026                                      (p_freight_terms_code => l_x_header_rec.freight_terms_code);
1027     x_payment_term_id              := l_x_header_rec.payment_term_id;
1028     x_payment_term                 := OE_ID_TO_VALUE.Payment_Term
1029                                      (p_payment_term_id => l_x_header_rec.payment_term_id);
1030     --bug 4348011
1031     --  Clear header record cache
1032 
1033     Clear_header;
1034 
1035     --  Keep track of performed operations.
1036 /* Is the following assignment Needed- Venkatesh */
1037 --  l_x_old_header_rec.operation := l_x_header_rec.operation;
1038 
1039     -- Re-set the UI flag to FALSE
1040     OE_GLOBALS.G_UI_FLAG := FALSE;
1041 
1042     --  Set return status.
1043 
1044     x_return_status := FND_API.G_RET_STS_SUCCESS;
1045 
1046     --  Get message count and data
1047 
1048     OE_MSG_PUB.Count_And_Get
1049     (   p_count                       => x_msg_count
1050     ,   p_data                        => x_msg_data
1051     );
1052 
1053     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.VALIDATE_AND_WRITE', 1);
1054 
1055 EXCEPTION
1056 
1057     WHEN FND_API.G_EXC_ERROR THEN
1058 
1059 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1060 	IF Nvl(OE_HEADER_UTIL.g_rollback_done,'N') <> 'Y' THEN -- bug 12759791
1061 	        ROLLBACK TO SAVEPOINT Header_Validate_And_Write;
1062 	END IF;
1063 
1064         x_return_status := FND_API.G_RET_STS_ERROR;
1065 
1066         --  Get message count and data
1067 
1068         OE_MSG_PUB.Count_And_Get
1069         (   p_count                       => x_msg_count
1070         ,   p_data                        => x_msg_data
1071         );
1072 
1073     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1074 
1075 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1076 
1077         ROLLBACK TO SAVEPOINT Header_Validate_And_Write;
1078 
1079         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1080 
1081         --  Get message count and data
1082 
1083         OE_MSG_PUB.Count_And_Get
1084         (   p_count                       => x_msg_count
1085         ,   p_data                        => x_msg_data
1086         );
1087 
1088     WHEN OTHERS THEN
1089 
1090 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1091 
1092         ROLLBACK TO SAVEPOINT Header_Validate_And_Write;
1093 
1094         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1095 
1096         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1097         THEN
1098             OE_MSG_PUB.Add_Exc_Msg
1099             (   G_PKG_NAME
1100             ,   'Validate_And_Write'
1101             );
1102         END IF;
1103 
1104         --  Get message count and data
1105 
1106         OE_MSG_PUB.Count_And_Get
1107         (   p_count                       => x_msg_count
1108         ,   p_data                        => x_msg_data
1109         );
1110 
1111 END Validate_And_Write;
1112 
1113 --  Procedure       Delete_Row
1114 --
1115 
1116 PROCEDURE Delete_Row
1117 ( x_return_status OUT NOCOPY VARCHAR2
1118 , x_msg_count OUT NOCOPY NUMBER
1119 , x_msg_data OUT NOCOPY VARCHAR2
1120 ,   p_header_id                     IN  NUMBER
1121 )
1122 IS
1123 l_x_old_header_rec                  OE_Order_PUB.Header_Rec_Type;
1124 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
1125 l_return_status               VARCHAR2(1);
1126 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
1127 BEGIN
1128     SAVEPOINT  Header_Delete;
1129     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.DELETE_ROW', 1);
1130 
1131     -- Set the UI flag
1132     OE_GLOBALS.G_UI_FLAG := TRUE;
1133 
1134     --  Set control flags.
1135 
1136     l_control_rec.controlled_operation := TRUE;
1137     l_control_rec.check_security       := TRUE;
1138     l_control_rec.validate_entity      := TRUE;
1139     l_control_rec.write_to_DB          := TRUE;
1140 
1141     l_control_rec.clear_dependents     := FALSE;
1142     l_control_rec.default_attributes   := FALSE;
1143     l_control_rec.change_attributes    := FALSE;
1144     l_control_rec.process              := FALSE;
1145 
1146     --  Instruct API to retain its caches
1147 
1148     l_control_rec.clear_api_cache      := FALSE;
1149     l_control_rec.clear_api_requests   := FALSE;
1150 
1151     --  Read DB record from cache
1152 
1153      Get_header
1154     (   p_db_record                   => TRUE
1155     ,   p_header_id                   => p_header_id
1156     ,   x_header_rec                  => l_x_header_rec
1157     );
1158 
1159     --  Set Operation.
1160 
1161     l_x_header_rec.operation := OE_GLOBALS.G_OPR_DELETE;
1162 
1163     --  Call Oe_Order_Pvt.Header
1164 
1165     Oe_Order_Pvt.Header
1166     (   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
1167     ,   p_init_msg_list               => FND_API.G_TRUE
1168     ,   p_control_rec                 => l_control_rec
1169     ,   p_x_header_rec                  => l_x_header_rec
1170     ,   p_x_old_header_rec            => l_x_old_header_rec
1171     ,   x_return_status               => l_return_status
1172     );
1173 
1174     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1175         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1176     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1177         RAISE FND_API.G_EXC_ERROR;
1178     END IF;
1179 
1180 
1181     --  Clear header record cache
1182 
1183     Clear_header;
1184 
1185     -- Re-set the UI flag to FALSE
1186     OE_GLOBALS.G_UI_FLAG := FALSE;
1187 
1188     --  Set return status.
1189 
1190     x_return_status := FND_API.G_RET_STS_SUCCESS;
1191 
1192     --  Get message count and data
1193 
1194     OE_MSG_PUB.Count_And_Get
1195     (   p_count                       => x_msg_count
1196     ,   p_data                        => x_msg_data
1197     );
1198 
1199     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.DELETE_ROW', 1);
1200 
1201 EXCEPTION
1202 
1203     WHEN FND_API.G_EXC_ERROR THEN
1204        ROLLBACK TO SAVEPOINT Header_Delete ;
1205 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1206 
1207         x_return_status := FND_API.G_RET_STS_ERROR;
1208 
1209         --  Get message count and data
1210 
1211         OE_MSG_PUB.Count_And_Get
1212         (   p_count                       => x_msg_count
1213         ,   p_data                        => x_msg_data
1214         );
1215 
1216     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1217        ROLLBACK TO SAVEPOINT Header_Delete ;
1218 
1219 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1220 
1221         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1222 
1223         --  Get message count and data
1224 
1225         OE_MSG_PUB.Count_And_Get
1226         (   p_count                       => x_msg_count
1227         ,   p_data                        => x_msg_data
1228         );
1229 
1230     WHEN OTHERS THEN
1231        ROLLBACK TO SAVEPOINT Header_Delete ;
1232 
1233 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1234 
1235         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1236 
1237         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1238         THEN
1239             OE_MSG_PUB.Add_Exc_Msg
1240             (   G_PKG_NAME
1241             ,   'Delete_Row'
1242             );
1243         END IF;
1244 
1245         --  Get message count and data
1246 
1247         OE_MSG_PUB.Count_And_Get
1248         (   p_count                       => x_msg_count
1249         ,   p_data                        => x_msg_data
1250         );
1251 
1252 END Delete_Row;
1253 
1254 --  Procedure       Process_Entity
1255 --
1256 
1257 PROCEDURE Process_Entity
1258 ( x_return_status OUT NOCOPY VARCHAR2
1259 , x_msg_count OUT NOCOPY NUMBER
1260 , x_msg_data OUT NOCOPY VARCHAR2
1261 )
1262 IS
1263 l_return_status               VARCHAR2(1);
1264 BEGIN
1265 
1266     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.PROCESS_ENTITY', 1);
1267 
1268     -- Set the UI flag
1269     OE_GLOBALS.G_UI_FLAG := TRUE;
1270 
1271     --  Set control flags.
1272 
1273 
1274     Oe_Order_Pvt.Process_Requests_And_Notify
1275     (   p_process_requests           => TRUE
1276     ,   p_init_msg_list               => FND_API.G_TRUE
1277      ,  p_notify                     => FALSE
1278      ,  x_return_status              => l_return_status
1279     );
1280 
1281 
1282     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1283         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1284     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1285         RAISE FND_API.G_EXC_ERROR;
1286     END IF;
1287 
1288     -- Re-set the UI flag to FALSE
1289     OE_GLOBALS.G_UI_FLAG := FALSE;
1290 
1291     --  Set return status.
1292 
1293     x_return_status := FND_API.G_RET_STS_SUCCESS;
1294 
1295     --  Get message count and data
1296 
1297     OE_MSG_PUB.Count_And_Get
1298     (   p_count                       => x_msg_count
1299     ,   p_data                        => x_msg_data
1300     );
1301 
1302     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.PROCESS_ENTITY', 1);
1303 
1304 EXCEPTION
1305 
1306     WHEN FND_API.G_EXC_ERROR THEN
1307 
1308 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1309 
1310         x_return_status := FND_API.G_RET_STS_ERROR;
1311 
1312         --  Get message count and data
1313 
1314         OE_MSG_PUB.Count_And_Get
1315         (   p_count                       => x_msg_count
1316         ,   p_data                        => x_msg_data
1317         );
1318 
1319     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1320 
1321 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1322 
1323         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1324 
1325         --  Get message count and data
1326 
1327         OE_MSG_PUB.Count_And_Get
1328         (   p_count                       => x_msg_count
1329         ,   p_data                        => x_msg_data
1330         );
1331 
1332     WHEN OTHERS THEN
1333 
1334 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1335 
1336         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1337 
1338         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1339         THEN
1340             OE_MSG_PUB.Add_Exc_Msg
1341             (   G_PKG_NAME
1342             ,   'Process_Entity'
1343             );
1344         END IF;
1345 
1346         --  Get message count and data
1347 
1348         OE_MSG_PUB.Count_And_Get
1349         (   p_count                       => x_msg_count
1350         ,   p_data                        => x_msg_data
1351         );
1352 
1353 END Process_Entity;
1354 
1355 --  Procedure       Process_Object
1356 --
1357 
1358 PROCEDURE Process_Object
1359 ( x_return_status OUT NOCOPY VARCHAR2
1360 , x_msg_count OUT NOCOPY NUMBER
1361 , x_msg_data OUT NOCOPY VARCHAR2
1362 , x_cascade_flag OUT NOCOPY BOOLEAN
1363 )
1364 IS
1365 l_return_status               VARCHAR2(1);
1366 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
1367 l_line_tbl oe_order_pub.line_tbl_type;
1368 BEGIN
1369     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.PROCESS_OBJECT', 1);
1370 
1371     OE_MSG_PUB.initialize;
1372 
1373      IF OE_CODE_CONTROL.GET_CODE_RELEASE_LEVEL >='110510' THEN
1374        If OE_GLOBALS.G_FTE_REINVOKE = 'Y' Then
1375         fnd_message.set_name('ONT','ONT_LINE_ATTRIB_CHANGED');
1376         OE_MSG_PUB.Add;
1377         OE_GLOBALS.G_FTE_REINVOKE := 'N';
1378        End If;
1379      End If;
1380 
1381     -- we are using this flag to selectively requery the block,
1382     -- if any of the delayed req. get executed changing rows.
1383     -- currently all the work done in post line process will
1384     -- eventually set the global cascading flag to TRUE.
1385     -- if some one adds code to post lines, whcih does not
1386     -- set cascadinf flga to TURE and still modifes records,
1387     -- that will be incorrect.
1388     -- this flag helps to requery the block if any thing changed
1389     -- after validate and write.
1390 
1391     OE_GLOBALS.G_PROCESS_OBJECTS_FLAG := TRUE;
1392 
1393     l_control_rec.controlled_operation := TRUE;
1394     l_control_rec.process              := TRUE;
1395     l_control_rec.process_entity       := OE_GLOBALS.G_ENTITY_ALL;
1396 
1397     l_control_rec.check_security       := FALSE;
1398     l_control_rec.clear_dependents     := FALSE;
1399     l_control_rec.default_attributes   := FALSE;
1400     l_control_rec.change_attributes    := FALSE;
1401     l_control_rec.validate_entity      := FALSE;
1402     l_control_rec.write_to_DB          := FALSE;
1403 
1404     --  Instruct API to clear its request table
1405 
1406     l_control_rec.clear_api_cache      := FALSE;
1407     l_control_rec.clear_api_requests   := TRUE;
1408 
1409     -- Set the UI flag
1410     OE_GLOBALS.G_UI_FLAG := TRUE;
1411 
1412     oe_line_util.Post_Line_Process
1413     (   p_control_rec    => l_control_rec
1414     ,   p_x_line_tbl   => l_line_tbl );
1415 
1416     Oe_Order_Pvt.Process_Requests_And_Notify
1417     (   p_process_requests           => TRUE
1418     ,   p_init_msg_list               => FND_API.G_FALSE
1419      ,  p_notify                     => TRUE
1420      ,  x_return_status              => l_return_status
1421     );
1422 
1423 
1424     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1425         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1426     ELSIF l_return_status  = FND_API.G_RET_STS_ERROR THEN
1427         RAISE FND_API.G_EXC_ERROR;
1428     END IF;
1429 
1430     x_cascade_flag := OE_GLOBALS.G_CASCADING_REQUEST_LOGGED;
1431     -- Re-set the UI flag to FALSE
1432     OE_GLOBALS.G_UI_FLAG := FALSE;
1433 
1434     --  Set return status.
1435 
1436     x_return_status := FND_API.G_RET_STS_SUCCESS;
1437 
1438     --  Get message count and data
1439 
1440     OE_MSG_PUB.Count_And_Get
1441     (   p_count                       => x_msg_count
1442     ,   p_data                        => x_msg_data
1443     );
1444 
1445     OE_GLOBALS.G_UI_FLAG := FALSE;
1446     OE_GLOBALS.G_PROCESS_OBJECTS_FLAG := FALSE;
1447 
1448     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.PROCESS_OBJECT', 1);
1449 
1450 EXCEPTION
1451 
1452     WHEN FND_API.G_EXC_ERROR THEN
1453            OE_GLOBALS.G_PROCESS_OBJECTS_FLAG := FALSE;
1454 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1455 
1456         x_return_status := FND_API.G_RET_STS_ERROR;
1457 
1458         --  Get message count and data
1459 
1460         OE_MSG_PUB.Count_And_Get
1461         (   p_count                       => x_msg_count
1462         ,   p_data                        => x_msg_data
1463         );
1464 
1465     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1466            OE_GLOBALS.G_PROCESS_OBJECTS_FLAG := FALSE;
1467 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1468 
1469         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1470 
1471         --  Get message count and data
1472 
1473         OE_MSG_PUB.Count_And_Get
1474         (   p_count                       => x_msg_count
1475         ,   p_data                        => x_msg_data
1476         );
1477 
1478     WHEN OTHERS THEN
1479            OE_GLOBALS.G_PROCESS_OBJECTS_FLAG := FALSE;
1480 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1481 
1482         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1483 
1484         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1485         THEN
1486             OE_MSG_PUB.Add_Exc_Msg
1487             (   G_PKG_NAME
1488             ,   'Process_Object'
1489             );
1490         END IF;
1491 
1492         --  Get message count and data
1493 
1494         OE_MSG_PUB.Count_And_Get
1495         (   p_count                       => x_msg_count
1496         ,   p_data                        => x_msg_data
1497         );
1498 
1499 END Process_Object;
1500 
1501 --  Procedure       lock_Row
1502 --
1503 
1504 PROCEDURE Lock_Row
1505 ( x_return_status OUT NOCOPY VARCHAR2
1506 , x_msg_count OUT NOCOPY NUMBER
1507 , x_msg_data OUT NOCOPY VARCHAR2
1508 ,   p_header_id                     IN  NUMBER
1509 ,   p_lock_control                  IN  NUMBER
1510 )
1511 
1512 IS
1513 l_return_status               VARCHAR2(1);
1514 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
1515 BEGIN
1516 
1517     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.LOCK_ROW', 1);
1518 
1519     --  Load header record
1520 
1521     l_x_header_rec.lock_control         := p_lock_control;
1522     l_x_header_rec.header_id            := p_header_id;
1523     l_x_header_rec.operation            := OE_GLOBALS.G_OPR_LOCK; -- not req.
1524 
1525     --  Call OE_Header_Util.Lock_Row instead of Oe_Order_Pvt.Lock_order
1526 
1527     oe_debug_pub.add('header_id'|| l_x_header_rec.header_id, 1);
1528 
1529     OE_MSG_PUB.initialize;
1530     OE_Header_Util.Lock_Row
1531     (   x_return_status        => l_return_status
1532     ,   p_x_header_rec         => l_x_header_rec );
1533 
1534     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1535 
1536         --  Set DB flag and write record to cache.
1537 
1538         l_x_header_rec.db_flag := FND_API.G_TRUE;
1539 
1540         Write_header
1541         (   p_header_rec                  => l_x_header_rec
1542         ,   p_db_record                   => TRUE
1543         );
1544 
1545     END IF;
1546 
1547     --  Set return status.
1548 
1549     x_return_status := l_return_status;
1550     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1551         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1552     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1553         RAISE FND_API.G_EXC_ERROR;
1554     END IF;
1555 
1556 
1557     --  Get message count and data
1558 
1559     OE_MSG_PUB.Count_And_Get
1560     (   p_count                       => x_msg_count
1561     ,   p_data                        => x_msg_data
1562     );
1563 
1564     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.LOCK_ROW', 1);
1565 
1566 EXCEPTION
1567      WHEN FND_API.G_EXC_ERROR THEN
1568 
1569            OE_GLOBALS.G_UI_FLAG := FALSE;
1570 
1571         x_return_status := FND_API.G_RET_STS_ERROR;
1572 
1573         --  Get message count and data
1574 
1575         oe_msg_pub.count_and_get
1576         (   p_count                       => x_msg_count
1577         ,   p_data                        => x_msg_data
1578         );
1579 
1580     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1581 
1582            OE_GLOBALS.G_UI_FLAG := FALSE;
1583 
1584         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1585 
1586         --  Get message count and data
1587 
1588         oe_msg_pub.count_and_get
1589         (   p_count                       => x_msg_count
1590         ,   p_data                        => x_msg_data
1591          );
1592     WHEN OTHERS THEN
1593 
1594         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1595         THEN
1596             OE_MSG_PUB.Add_Exc_Msg
1597             (   G_PKG_NAME
1598             ,   'Lock_Row'
1599             );
1600         END IF;
1601 
1602         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1603 
1604         --  Get message count and data
1605 
1606         OE_MSG_PUB.Count_And_Get
1607         (   p_count                       => x_msg_count
1608         ,   p_data                        => x_msg_data
1609         );
1610 
1611 END Lock_Row;
1612 
1613 --  Procedures maintaining header record cache.
1614 
1615 PROCEDURE Write_header
1616 (   p_header_rec                    IN  OE_Order_PUB.Header_Rec_Type
1617 ,   p_db_record                     IN  BOOLEAN := FALSE
1618 )
1619 IS
1620 BEGIN
1621 
1622     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.WRITE_HEADER', 1);
1623 
1624     g_header_rec := p_header_rec;
1625 
1626     IF p_db_record THEN
1627 
1628         g_db_header_rec := p_header_rec;
1629 
1630     END IF;
1631 
1632     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.WRITE_HEADER', 1);
1633 
1634 END Write_Header;
1635 
1636 PROCEDURE Get_header
1637 (   p_db_record                     IN  BOOLEAN := FALSE
1638 ,   p_header_id                     IN  NUMBER
1639 ,   x_header_rec                    OUT NOCOPY OE_Order_PUB.Header_Rec_Type
1640 )
1641 IS
1642 
1643 BEGIN
1644 
1645     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.GET_HEADER', 1);
1646 
1647     IF  p_header_id <> NVL(g_header_rec.header_id,FND_API.G_MISS_NUM)
1648     THEN
1649 
1650         --  Query row from DB
1651 
1652          OE_Header_Util.Query_Row
1653         (   p_header_id                   => p_header_id,
1654 		  x_header_rec                  =>g_header_rec
1655         );
1656 
1657         g_header_rec.db_flag           := FND_API.G_TRUE;
1658 
1659         --  Load DB record
1660 
1661         g_db_header_rec                := g_header_rec;
1662 
1663     END IF;
1664 
1665     IF p_db_record THEN
1666 
1667         x_header_rec:= g_db_header_rec;
1668 
1669     ELSE
1670 
1671         x_header_rec:= g_header_rec;
1672 
1673     END IF;
1674 
1675     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.GET_HEADER', 1);
1676 
1677 END Get_Header;
1678 
1679 PROCEDURE Clear_Header
1680 IS
1681 BEGIN
1682 
1683     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.CLEAR_HEADER', 1);
1684 
1685     g_header_rec                   := OE_Order_PUB.G_MISS_HEADER_REC;
1686     g_db_header_rec                := OE_Order_PUB.G_MISS_HEADER_REC;
1687 
1688     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.CLEAR_HEADER', 1);
1689 
1690 END Clear_Header;
1691 
1692 
1693 -- This procedure will be called from the client when the user
1694 -- clears a record
1695 Procedure Clear_Record
1696 ( x_return_status OUT NOCOPY VARCHAR2
1697 , x_msg_count OUT NOCOPY NUMBER
1698 , x_msg_data OUT NOCOPY VARCHAR2
1699 ,   p_header_id                     IN  NUMBER
1700 )
1701 IS
1702 l_header_id        NUMBER;
1703 l_return_status                     Varchar2(30);
1704 BEGIN
1705      OE_MSG_PUB.initialize;
1706      x_return_status := FND_API.G_RET_STS_SUCCESS;
1707 
1708 
1709        OE_ORDER_CACHE.g_header_rec:=null;
1710        OE_DELAYED_REQUESTS_PVT.Delete_Reqs_for_Deleted_Entity(
1711 					p_entity_code  => OE_GLOBALS.G_ENTITY_HEADER
1712 					,p_entity_id    => p_header_id
1713 				     ,x_return_status => l_return_status);
1714 
1715         OE_MSG_PUB.Count_And_Get
1716         (   p_count                       => x_msg_count
1717         ,   p_data                        => x_msg_data
1718         );
1719 
1720      IF OE_GLOBALS.G_ROLL_VERSION <> 'N' THEN
1721 
1722            oe_debug_pub.add('Request does not exist, reset versioning globals');           IF (NOT OE_Versioning_Util.Reset_Globals) THEN
1723                l_return_status := FND_API.G_RET_STS_ERROR;
1724                RETURN;
1725            END IF;
1726      END IF;
1727 
1728 -- Clear the controller cache
1729 	Clear_Header;
1730 --added for bug3716206
1731 	OE_GLOBALS.G_HEADER_CREATED := FALSE;
1732         OE_ORDER_UTIL.Clear_Global_Picture(l_return_status);
1733 EXCEPTION
1734     WHEN OTHERS THEN
1735         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1736         THEN
1737             OE_MSG_PUB.Add_Exc_Msg
1738             (   G_PKG_NAME
1739             ,   'Clear_Record'
1740             );
1741         END IF;
1742         --  Get message count and data
1743         OE_MSG_PUB.Count_And_Get
1744         (   p_count                       => x_msg_count
1745         ,   p_data                        => x_msg_data
1746         );
1747         x_return_status := FND_API.G_RET_STS_ERROR;
1748 
1749 END Clear_Record;
1750 
1751 
1752 -- This procedure will be called from the client when the user
1753 -- clears a block or Form
1754 Procedure Delete_All_Requests
1755 ( x_return_status OUT NOCOPY VARCHAR2
1756 , x_msg_count OUT NOCOPY NUMBER
1757 , x_msg_data OUT NOCOPY VARCHAR2
1758 )
1759 IS
1760 l_return_status                     Varchar2(30);
1761 BEGIN
1762      OE_MSG_PUB.initialize;
1763  	x_return_status := FND_API.G_RET_STS_SUCCESS;
1764        OE_DELAYED_REQUESTS_PVT.Clear_Request(
1765 				     x_return_status => l_return_status);
1766 
1767 EXCEPTION
1768     WHEN OTHERS THEN
1769         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1770         THEN
1771             OE_MSG_PUB.Add_Exc_Msg
1772             (   G_PKG_NAME
1773             ,   'Delete_All_Requests'
1774             );
1775         END IF;
1776         --  Get message count and data
1777         OE_MSG_PUB.Count_And_Get
1778         (   p_count                       => x_msg_count
1779         ,   p_data                        => x_msg_data
1780         );
1781         x_return_status := FND_API.G_RET_STS_ERROR;
1782 
1783 END Delete_All_Requests;
1784 
1785 
1786 Procedure Sales_Person
1787 ( x_return_status OUT NOCOPY VARCHAR2
1788 , x_msg_count OUT NOCOPY NUMBER
1789 , x_msg_data OUT NOCOPY VARCHAR2
1790 , p_multiple_sales_credits OUT NOCOPY Varchar2
1791 ,   p_header_id                     IN  NUMBER
1792 ,   p_salesrep_id                   IN  NUMBER
1793 ) IS
1794 l_return_status                     Varchar2(30);
1795 Cursor C_HSC_COUNT(p_header_id Number) IS
1796    Select count(sales_credit_id)
1797    from oe_sales_credits sc,
1798         oe_sales_credit_types sct
1799    where header_id = p_header_id
1800    and   sct.sales_Credit_type_id = sc.sales_credit_type_id
1801    and   sct.quota_flag = 'Y'
1802    and   line_id is null;
1803 l_count   Number;
1804 Begin
1805 
1806    oe_debug_pub.add('Entering OE_OE_FORM_HEADER.SALES_PERSON', 1);
1807 
1808     OE_MSG_PUB.initialize;
1809    x_return_status := FND_API.G_RET_STS_SUCCESS;
1810    p_multiple_sales_credits := 'N';
1811    open C_HSC_COUNT(p_header_id);
1812    fetch C_HSC_COUNT into l_count;
1813    close C_HSC_COUNT;
1814    if l_count > 1 then
1815       p_multiple_sales_credits := 'Y';
1816       FND_MESSAGE.SET_NAME('ONT','OE_TOO_MANY_HSCREDIT');
1817       OE_MSG_PUB.Add;
1818       RAISE FND_API.G_EXC_ERROR;
1819    end if;
1820 -- add delayed request to default headers sales credits for the salesrep
1821            OE_Delayed_Requests_Pvt.Log_Request
1822                  (p_entity_code=>OE_GLOBALS.G_ENTITY_Header
1823                  ,p_entity_id=>p_header_id
1824 		 ,p_requesting_entity_code => OE_GLOBALS.G_ENTITY_Header
1825 		 ,p_requesting_entity_id   => p_header_id
1826                  ,p_request_type=>OE_GLOBALS.G_DFLT_HSCREDIT_FOR_SREP
1827                  ,p_param1  => to_char(p_header_id)
1828                  ,p_param2  => to_char(p_salesrep_id)
1829                  ,x_return_status =>l_return_status);
1830 
1831     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1832         RAISE FND_API.G_EXC_ERROR;
1833     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1834         RAISE FND_API.G_EXC_ERROR;
1835     END IF;
1836 
1837     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.SALES_PERSON', 1);
1838 
1839 EXCEPTION
1840 
1841     WHEN FND_API.G_EXC_ERROR THEN
1842 
1843         x_return_status := FND_API.G_RET_STS_ERROR;
1844 
1845         --  Get message count and data
1846 
1847         OE_MSG_PUB.Count_And_Get
1848         (   p_count                       => x_msg_count
1849         ,   p_data                        => x_msg_data
1850         );
1851 
1852 
1853     WHEN OTHERS THEN
1854 
1855         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1856         THEN
1857             OE_MSG_PUB.Add_Exc_Msg
1858             (   G_PKG_NAME
1859             ,   'Sales_Person'
1860             );
1861         END IF;
1862 
1863         --  Get message count and data
1864 
1865         OE_MSG_PUB.Count_And_Get
1866         (   p_count                       => x_msg_count
1867         ,   p_data                        => x_msg_data
1868         );
1869 
1870         x_return_status := FND_API.G_RET_STS_ERROR;
1871 
1872 End Sales_Person;
1873 
1874 PROCEDURE Get_Form_Startup_Values
1875 (Item_Id_Flex_Code         IN VARCHAR2,
1876 Item_Id_Flex_Num OUT NOCOPY NUMBER) IS
1877 
1878     CURSOR C_Item_Flex(X_Id_Flex_Code VARCHAR2) is
1879       SELECT id_flex_num
1880       FROM   fnd_id_flex_structures
1881       WHERE  id_flex_code = X_Id_Flex_Code;
1882 BEGIN
1883 
1884     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.GET_FORM_STARTUP_VALUES', 1);
1885 
1886     OPEN C_Item_Flex(Item_Id_Flex_Code);
1887     FETCH C_Item_Flex INTO Item_Id_Flex_Num;
1888     CLOSE C_Item_Flex;
1889 
1890     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER.GET_FORM_STARTUP_VALUES', 1);
1891 
1892   EXCEPTION
1893     WHEN OTHERS THEN
1894       oe_debug_pub.add('In when others exception : OE_OE_FORM_HEADER.GET_FORM_STARTUP_VALUES', 1);
1895      IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1896      THEN
1897          OE_MSG_PUB.Add_Exc_Msg
1898          (     G_PKG_NAME         ,
1899              'Get_Form_Startup_Values'
1900          );
1901      END IF;
1902 
1903      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1904 
1905 
1906 END Get_Form_Startup_Values;
1907 
1908 
1909 PROCEDURE Populate_Control_Fields
1910 (
1911 p_header_rec_type IN Header_Rec_Type,
1912 x_header_val_rec OUT NOCOPY Header_Val_Rec_Type
1913 )  IS
1914  CURSOR C1(fob_point_code    VARCHAR2,
1915 		 tax_exempt_flag   VARCHAR2,
1916 		 tax_exempt_reason_code VARCHAR2,
1917                  return_reason_code     VARCHAR2,
1918 		 tax_point_code    VARCHAR2
1919 		 )
1920 		 IS
1921  SELECT meaning,lookup_type
1922  FROM   AR_LOOKUPS
1923  WHERE  (lookup_code=fob_point_code
1924  AND     lookup_type='FOB')
1925  OR     (lookup_code=tax_exempt_flag
1926  AND     lookup_type='TAX_CONTROL_FLAG')
1927  OR     (lookup_code=tax_exempt_reason_code
1928  AND     lookup_type='TAX_REASON')
1929  OR     (lookup_code=return_reason_code
1930  AND     lookup_type='CREDIT_MEMO_REASON')
1931  OR     (lookup_code=tax_point_code
1932  AND     lookup_type='TAX_POINT_TYPE');
1933 
1934  CURSOR c2(shipment_priority_code  VARCHAR2,
1935             freight_terms_code     VARCHAR2,
1936 		  payment_type_code      VARCHAR2,
1937 		  flow_status_code	     VARCHAR2,
1938 		  --credit_card_code       VARCHAR2, --R12 CC Encryption
1939 		  sales_channel_code     VARCHAR2 )
1940   IS
1941      SELECT meaning,lookup_type
1942      FROM FND_LOOKUP_VALUES LV
1943      WHERE LANGUAGE = userenv('LANG')
1944      and VIEW_APPLICATION_ID = 660
1945      and((lookup_code= shipment_priority_code
1946      and lookup_type='SHIPMENT_PRIORITY')
1947      or (lookup_code=freight_terms_code
1948      and lookup_type='FREIGHT_TERMS')
1949      or (lookup_code=payment_type_code
1950      and lookup_type='PAYMENT TYPE')
1951      or (lookup_code=flow_status_code
1952      and lookup_type='FLOW_STATUS')
1953      --or (lookup_code=credit_card_code  --R12 CC Encryption
1954      --and lookup_type='CREDIT_CARD')
1955      or (lookup_code=sales_channel_code
1956      and lookup_type='SALES_CHANNEL'))
1957      and security_group_id =fnd_global.Lookup_Security_Group(lv.lookup_type,lv.view_application_id);
1958 
1959      l_address_id number;
1960      x_return_status Varchar2(1);
1961      x_msg_data      Varchar2(2000);
1962      x_msg_count     Number;
1963 /* START PREPAYMENT */
1964      l_commitment_amount NUMBER;
1965      --pnpl
1966      l_pay_now_subtotal NUMBER;
1967      l_pay_now_tax      NUMBER;
1968      l_pay_now_charges  NUMBER;
1969      l_pay_now_commitment NUMBER;
1970 /* END PREPAYMENT */
1971 --R12 CC Encryption
1972 l_instrument_id				NUMBER;
1973 l_instrument_assignment_id		NUMBER;
1974 l_credit_card_code              	VARCHAR2(80);
1975 l_credit_card_holder_name       	VARCHAR2(80);
1976 l_credit_card_number            	VARCHAR2(80);
1977 l_credit_card_expiration_date   	DATE;
1978 l_credit_card_approval_code     	VARCHAR2(80);
1979 l_credit_card_approval_date     	DATE;
1980 l_instrument_security_code		VARCHAR2(20);
1981 l_trxn_extension_id NUMBER;
1982 x_bank_account_number number;
1983 x_check_number        varchar2(100);
1984 l_return_status      VARCHAR2(30) := NULL ;
1985 l_msg_count          NUMBER := 0 ;
1986 l_msg_data           VARCHAR2(2000) := NULL ;
1987 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1988 --R12 CC Encryption
1989 
1990 BEGIN
1991   if l_debug_level > 0 then
1992 	oe_debug_pub.add('Entering OE_OE_Form_Header.Populate_Control_Fields');
1993 	oe_debug_pub.add('Header id'||p_header_rec_type.header_id);
1994   end if;
1995 
1996   IF p_header_rec_type.salesrep_id is not null THEN
1997    BEGIN
1998     SELECT Name
1999     INTO   x_header_val_rec.salesrep
2000     FROM   ra_salesreps
2001     WHERE  salesrep_id=p_header_rec_type.salesrep_id
2002     AND   org_id=p_header_rec_type.org_id;
2003       EXCEPTION
2004         WHEN NO_DATA_FOUND THEN
2005         Null;
2006         When too_many_rows then
2007         Null;
2008         When others then
2009         Null;
2010    END;
2011   END IF;
2012 
2013   IF p_header_rec_type.sold_to_org_id is not null THEN
2014       Get_GSA_Indicator(p_header_rec_type.sold_to_org_id,
2015                         x_header_val_rec.gsa_indicator
2016                        );
2017   END IF;
2018 
2019   IF p_header_rec_type.sold_to_phone_id is not null THEN
2020   BEGIN
2021    Select phone_area_code,phone_number,phone_extension,phone_country_code
2022    Into x_header_val_rec.phone_area_code,x_header_val_rec.phone_number,
2023         x_header_val_rec.phone_extension,x_header_val_rec.phone_country_code
2024    From hz_contact_points
2025    Where contact_point_id=p_header_rec_type.sold_to_phone_id;
2026   EXCEPTION
2027    WHEN NO_DATA_FOUND THEN
2028     Null;
2029    When too_many_rows then
2030     Null;
2031    When others then
2032     Null;
2033   END;
2034   END IF;
2035 
2036   IF (p_header_rec_type.tax_point_code is not null) or
2037 	(p_header_rec_type.fob_point_code is not null) or
2038 	(p_header_rec_type.tax_exempt_flag is not null) or
2039 	(p_header_rec_type.return_reason_code is not null) or
2040 	(p_header_rec_type.tax_exempt_reason_code is not null) THEN
2041 
2042 	   FOR ar_lookups in c1(p_header_rec_type.fob_point_code,
2043 					    p_header_rec_type.tax_exempt_flag,
2044 					    p_header_rec_type.tax_exempt_reason_code,
2045 					    p_header_rec_type.return_reason_code,
2046 					    p_header_rec_type.tax_point_code)
2047         LOOP
2048 
2049 	  IF ar_lookups.lookup_type='FOB' THEN
2050 	    x_header_val_rec.fob:=ar_lookups.meaning;
2051           ELSIF ar_lookups.lookup_type='TAX_CONTROL_FLAG' THEN
2052 	    x_header_val_rec.tax_exempt:=ar_lookups.meaning;
2053           ELSIF ar_lookups.lookup_type='TAX_REASON' THEN
2054 	    x_header_val_rec.tax_exempt_reason:=ar_lookups.meaning;
2055           ELSIF ar_lookups.lookup_type='TAX_POINT' THEN
2056 	    x_header_val_rec.tax_point:=ar_lookups.meaning;
2057           ELSIF ar_lookups.lookup_type='CREDIT_MEMO_REASON' then
2058             x_header_val_rec.return_reason:=ar_lookups.meaning;
2059           END IF;
2060         END LOOP;
2061   END IF;
2062 
2063   IF (p_header_rec_type.shipment_priority_code is not null) or
2064      (p_header_rec_type.freight_terms_code is not null) or
2065      (p_header_rec_type.payment_type_code is not null) or
2066      (p_header_rec_type.flow_status_code is not null) or
2067      --(p_header_rec_type.credit_card_code is not null) or  --R12 CC Encryption
2068      (p_header_rec_type.sales_channel_code is not null) THEN
2069 
2070         FOR Lookups in c2(p_header_rec_type.shipment_priority_code,
2071 					 p_header_rec_type.freight_terms_Code,
2072 					 p_header_rec_type.payment_type_code,
2073 					 p_header_rec_type.flow_status_code,
2074 					 --p_header_rec_type.credit_card_code, --R12 CC Encryption
2075 					 p_header_rec_type.sales_channel_code)
2076 
2077         LOOP
2078 
2079 	     IF lookups.lookup_type='SHIPMENT_PRIORITY' THEN
2080 	       x_header_val_rec.shipment_priority:=lookups.meaning;
2081           ELSIF lookups.lookup_type='FREIGHT_TERMS' THEN
2082 		  x_header_val_rec.freight_terms:=lookups.meaning;
2083 	     ELSIF lookups.lookup_type='PAYMENT TYPE' THEN
2084 		  x_header_val_rec.payment_type:=lookups.meaning;
2085 	     ELSIF lookups.lookup_type='FLOW_STATUS' THEN
2086 		  x_header_val_rec.status:=lookups.meaning;
2087 	     --ELSIF lookups.lookup_type='CREDIT_CARD' THEN  --R12 CC Encryption
2088 		  --x_header_val_rec.credit_card:=lookups.meaning;
2089 	     ELSIF lookups.lookup_type='SALES_CHANNEL' THEN
2090 		  x_header_val_rec.sales_channel:=lookups.meaning;
2091           END IF;
2092 
2093         END LOOP;
2094   END IF;
2095 
2096   IF p_header_rec_type.shipping_method_code is not null THEN
2097       BEGIN
2098     Select meaning
2099     INTO x_header_val_rec.shipping_method
2100     FROM   oe_ship_methods_v
2101     WHERE  lookup_code =p_header_rec_type.shipping_method_code ;
2102       EXCEPTION
2103         WHEN NO_DATA_FOUND THEN
2104         Null;
2105         When too_many_rows then
2106         Null;
2107         When others then
2108         Null;
2109       END;
2110   END IF;
2111 
2112    IF p_header_rec_type.freight_carrier_code IS NOT NULL THEN
2113       BEGIN
2114          Select description
2115          INTO x_header_val_rec.freight_carrier
2116          FROM   org_freight
2117          WHERE  freight_code=p_header_rec_type.freight_carrier_code
2118          and organization_id = p_header_rec_type.ship_from_org_id;
2119       EXCEPTION
2120         WHEN NO_DATA_FOUND THEN
2121         Null;
2122         When too_many_rows then
2123         Null;
2124         When others then
2125         Null;
2126       END;
2127    END IF;
2128 
2129    x_header_val_rec.hold_exists_flag := 'N';
2130    IF p_header_rec_type.header_id is NOT NULL THEN
2131 	BEGIN
2132 	   SELECT 'Y'
2133 	   INTO x_header_val_rec.hold_exists_flag
2134 	   FROM OE_ORDER_HOLDS
2135 	   WHERE HEADER_ID = p_header_rec_type.header_id
2136 	   AND   RELEASED_FLAG = 'N';
2137      EXCEPTION
2138         WHEN TOO_MANY_ROWS THEN
2139 		   x_header_val_rec.hold_exists_flag := 'Y';
2140 		   null;
2141         WHEN OTHERS THEN
2142 		   x_header_val_rec.hold_exists_flag := 'N';
2143 		   null;
2144      END;
2145    END IF;
2146 
2147   -- Changes for Visibility to Process Messages
2148 
2149   x_header_val_rec.Messages_exists_flag := 'N';
2150 
2151   IF G_ENABLE_VISIBILITY_MSG = 'Y' AND
2152              p_header_rec_type.header_id is NOT NULL THEN
2153         BEGIN
2154              SELECT 'Y'
2155              INTO   x_header_val_rec.Messages_exists_flag
2156              FROM   OE_PROCESSING_MSGS
2157              WHERE  header_id = p_header_rec_type.header_id
2158              AND NVL(message_status_code, '0') <> 'CLOSED'  --datafix_begin_end
2159              AND    rownum < 2;
2160         EXCEPTION
2161               WHEN TOO_MANY_ROWS THEN
2162                    x_header_val_rec.Messages_exists_flag  := 'Y';
2163               WHEN OTHERS THEN
2164                    x_header_val_rec.Messages_exists_flag := 'N';
2165         END;
2166   END IF;
2167 
2168   IF (p_header_rec_type.order_date_type_code is not null) THEN
2169      BEGIN
2170       select meaning
2171       into x_header_val_rec.order_date_type
2172       from oe_lookups
2173       where lookup_type = 'REQUEST_DATE_TYPE'
2174       AND lookup_code=p_header_rec_type.order_date_type_code;
2175 
2176      EXCEPTION
2177        WHEN NO_DATA_FOUND THEN
2178        Null;
2179        When too_many_rows then
2180        Null;
2181 	  When others then
2182 	  Null;
2183      END;
2184 
2185   END IF;
2186 
2187   IF (p_header_rec_type.demand_class_code is not null) THEN
2188      BEGIN
2189       select meaning
2190       into x_header_val_rec.demand_class
2191       from oe_fnd_common_lookups_v
2192       where lookup_type = 'DEMAND_CLASS'
2193       AND lookup_code=p_header_rec_type.demand_class_code;
2194 
2195      EXCEPTION
2196        WHEN NO_DATA_FOUND THEN
2197        Null;
2198        When too_many_rows then
2199        Null;
2200 	  When others then
2201 	  Null;
2202      END;
2203   END IF;
2204 
2205   IF (p_header_rec_type.ship_to_org_id IS NOT NULL) THEN
2206        BEGIN
2207          get_customer_details(
2208            p_site_use_id => p_header_rec_type.ship_to_org_id,
2209            p_site_use_code => 'SHIP_TO',
2210            x_customer_id => x_header_val_rec.ship_To_customer_id,
2211            x_customer_name => x_header_val_rec.ship_To_customer_name,
2212            x_customer_number => x_header_val_rec.ship_To_customer_number
2213                                  );
2214 
2215           /*OE_Id_To_Value.Ship_To_Customer_Name
2216           (
2217           p_ship_to_org_id => p_header_rec_type.ship_to_org_id,
2218           x_ship_to_customer_name=> x_header_val_rec.ship_to_customer_name
2219           );*/
2220        EXCEPTION
2221          WHEN OTHERS THEN
2222              NULL;
2223        END;
2224 
2225 
2226        /*BEGIN
2227          get_ship_to_customer_id(
2228                    p_site_use_id => p_header_rec_type.ship_to_org_id,
2229                    x_ship_to_customer_id => x_header_val_rec.ship_To_customer_id
2230                                 );
2231        EXCEPTION
2232          WHEN OTHERS THEN
2233              NULL;
2234        END; */
2235 
2236    END IF;
2237 --kmuruges
2238  IF (p_header_rec_type.sold_to_site_use_id IS NOT NULL) THEN
2239          OE_ID_TO_VALUE.CUSTOMER_LOCATION
2240            (  p_sold_to_site_use_id       => p_header_rec_type.sold_to_site_use_id,
2241  	      x_sold_to_location_address1 => x_header_val_rec.SOLD_TO_LOCATION_ADDRESS1,
2242  	      x_sold_to_location_address2 => x_header_val_rec.SOLD_TO_LOCATION_ADDRESS2,
2243 	      x_sold_to_location_address3 => x_header_val_rec.SOLD_TO_LOCATION_ADDRESS3,
2244 	      x_sold_to_location_address4 => x_header_val_rec.SOLD_TO_LOCATION_ADDRESS4,
2245 	      x_sold_to_location     => x_header_val_rec.SOLD_TO_LOCATION,
2246 	      x_sold_to_location_city => x_header_val_rec.SOLD_TO_LOCATION_CITY,
2247 	      x_sold_to_location_state => x_header_val_rec.SOLD_TO_LOCATION_STATE,
2248 	      x_sold_to_location_postal => x_header_val_rec.SOLD_TO_LOCATION_POSTAL,
2249  	      x_sold_to_location_country => x_header_val_rec.SOLD_TO_LOCATION_COUNTRY
2250            );
2251 
2252  END IF;
2253 
2254  IF (p_header_rec_type.transaction_phase_code  IS NOT NULL) THEN
2255      X_header_val_rec.transaction_phase := oe_id_to_value.transaction_phase(p_header_rec_type.transaction_phase_code);
2256  END IF;
2257 
2258  IF (p_header_rec_type.User_Status_code  IS NOT NULL) THEN
2259      X_header_val_rec.User_Status := oe_id_to_value.User_Status(p_header_rec_type.User_Status_code);
2260  END IF;
2261 
2262  IF (p_header_rec_type.end_customer_site_use_id IS NOT NULL) THEN
2263          OE_ID_TO_VALUE.END_CUSTOMER_SITE_USE
2264            (  p_end_customer_site_use_id       => p_header_rec_type.end_customer_site_use_id,
2265  	      x_end_customer_address1 => x_header_val_rec.END_CUSTOMER_SITE_ADDRESS1,
2266  	      x_end_customer_address2 => x_header_val_rec.END_CUSTOMER_SITE_ADDRESS2,
2267 	      x_end_customer_address3 => x_header_val_rec.END_CUSTOMER_SITE_ADDRESS3,
2268 	      x_end_customer_address4 => x_header_val_rec.END_CUSTOMER_SITE_ADDRESS4,
2269 	      x_end_customer_location     => x_header_val_rec.END_CUSTOMER_SITE_LOCATION,
2270 	      x_end_customer_city => x_header_val_rec.END_CUSTOMER_SITE_CITY,
2271 	      x_end_customer_state => x_header_val_rec.END_CUSTOMER_SITE_STATE,
2272 	      x_end_customer_postal_code => x_header_val_rec.END_CUSTOMER_SITE_POSTAL_CODE,
2273  	      x_end_customer_country => x_header_val_rec.END_CUSTOMER_SITE_COUNTRY
2274            );
2275 
2276  END IF;
2277 
2278   IF (p_header_rec_type.end_customer_id IS NOT NULL) THEN
2279         OE_ID_TO_VALUE.END_CUSTOMER
2280            (  p_end_customer_id       => p_header_rec_type.end_customer_id,
2281  	      x_end_customer_name => x_header_val_rec.END_CUSTOMER_NAME,
2282 	      x_end_customer_number => x_header_val_rec.END_CUSTOMER_NUMBER
2283 	      );
2284   END IF;
2285 
2286   IF (p_header_rec_type.end_customer_contact_id IS NOT NULL) THEN
2287         x_header_val_rec.END_CUSTOMER_CONTACT :=  OE_ID_TO_VALUE.END_CUSTOMER_CONTACT
2288                                (  p_end_customer_contact_id       => p_header_rec_type.end_customer_contact_id);
2289   END IF;
2290 
2291 --kmuruges end
2292   IF (p_header_rec_type.invoice_to_org_id IS NOT NULL) THEN
2293        BEGIN
2294          /*OE_Id_To_Value.Invoice_To_Customer_Name
2295           (
2296           p_invoice_to_org_id => p_header_rec_type.invoice_to_org_id,
2297           x_invoice_to_customer_name=> x_header_val_rec.invoice_to_customer_name
2298            );*/
2299 
2300          get_customer_details(
2301              p_site_use_id => p_header_rec_type.invoice_to_org_id,
2302              p_site_use_code =>'BILL_TO',
2303 	     x_customer_id =>x_header_val_rec.invoice_To_customer_id,
2304 	     x_customer_name =>x_header_val_rec.invoice_To_customer_name,
2305 	     x_customer_number => x_header_val_rec.invoice_To_customer_number
2306                );
2307 
2308        EXCEPTION
2309          WHEN OTHERS THEN
2310              NULL;
2311        END;
2312 
2313        /*BEGIN
2314          get_invoice_to_customer_id(
2315              p_site_use_id => p_header_rec_type.invoice_to_org_id,
2316 	     x_invoice_to_customer_id => x_header_val_rec.invoice_To_customer_id
2317                );
2318        EXCEPTION
2319          WHEN OTHERS THEN
2320              NULL;
2321        END;*/
2322 
2323    END IF;
2324 
2325 
2326 
2327 --   added by jmore
2328 
2329 
2330    IF (p_header_rec_type.deliver_to_org_id is not null) THEN
2331      BEGIN
2332         SELECT   /* MOAC_SQL_CHANGE */   cas.cust_account_id,
2333                 party.party_name,
2334                 cust.account_number,
2335                 site.location,
2336                 addr.address1,
2337                 addr.address2,
2338                 addr.address3,
2339                 addr.address4,
2340                 DECODE(addr.city, NULL, NULL,addr.city || ', ') ||
2341                 DECODE(addr.state, NULL, addr.province || ', ', addr.state || ', ') || -- 3603600
2342 	        DECODE(addr.postal_code, NULL, NULL,addr.postal_code || ', ') ||
2343 	        DECODE(addr.country, NULL, NULL,addr.country)
2344         INTO    x_header_val_rec.deliver_to_customer_id,
2345                 x_header_val_rec.deliver_to_customer_name,
2346                 x_header_val_rec.deliver_to_customer_number,
2347                 x_header_val_rec.deliver_to,
2348 	        x_header_val_rec.deliver_to_address1,
2349 	        x_header_val_rec.deliver_to_address2,
2350 	        x_header_val_rec.deliver_to_address3,
2351 	        x_header_val_rec.deliver_to_address4,
2352 	        x_header_val_rec.deliver_to_address5
2353 
2354         FROM    HZ_CUST_SITE_USES_ALL site,
2355                 HZ_CUST_ACCT_SITES_ALL cas,
2356                 hz_cust_accounts cust,
2357                 hz_parties party,
2358                 hz_party_sites ps,
2359                 hz_locations addr
2360         WHERE   site.cust_acct_site_id = cas.cust_acct_site_id
2361         AND     site.site_use_code='DELIVER_TO'
2362         AND     site.site_use_id=p_header_rec_type.deliver_to_org_id
2363         AND     cust.cust_account_id = cas.cust_account_id
2364         AND     party.party_id = cust.party_id
2365         AND     cas.party_site_id = ps.party_site_id
2366         AND     ps.location_id = addr.location_id;
2367 
2368 	 x_header_val_rec.deliver_to_location := x_header_val_rec.deliver_to;
2369 
2370      EXCEPTION
2371        WHEN NO_DATA_FOUND THEN
2372        Null;
2373        When too_many_rows then
2374        Null;
2375 	  When others then
2376 	  Null;
2377      END;
2378    END IF;
2379 
2380 
2381    IF (p_header_rec_type.deliver_to_contact_id is not null) THEN
2382      BEGIN
2383       select name
2384       into x_header_val_rec.deliver_to_contact
2385       from oe_contacts_v
2386       where contact_id=p_header_rec_type.deliver_to_contact_id;
2387 
2388 
2389      EXCEPTION
2390        WHEN NO_DATA_FOUND THEN
2391        Null;
2392        When too_many_rows then
2393        Null;
2394 	  When others then
2395 	  Null;
2396      END;
2397    END IF;
2398 
2399 
2400 -- Concatenated name with revision for Bug-2249065
2401 
2402    IF (p_header_rec_type.agreement_id is not null) THEN
2403      BEGIN
2404       select name||' : '||revision
2405       into x_header_val_rec.agreement
2406       from oe_agreements
2407       where agreement_id=p_header_rec_type.agreement_id;
2408 
2409 
2410      EXCEPTION
2411        WHEN NO_DATA_FOUND THEN
2412        Null;
2413        When too_many_rows then
2414        Null;
2415 	  When others then
2416 	  Null;
2417      END;
2418    END IF;
2419 
2420 
2421    IF (p_header_rec_type.order_source_id is not null) THEN
2422      BEGIN
2423       select name
2424       into x_header_val_rec.order_source
2425       from oe_order_sources
2426       where order_source_id=p_header_rec_type.order_source_id;
2427 
2428 
2429      EXCEPTION
2430        WHEN NO_DATA_FOUND THEN
2431        Null;
2432        When too_many_rows then
2433        Null;
2434 	  When others then
2435 	  Null;
2436      END;
2437    END IF;
2438 
2439 
2440 
2441    IF (p_header_rec_type.source_document_type_id is not null) THEN
2442      BEGIN
2443       select name
2444       into x_header_val_rec.source_document_type
2445       from oe_order_sources
2446       where order_source_id=p_header_rec_type.source_document_type_id;
2447 
2448 
2449      EXCEPTION
2450        WHEN NO_DATA_FOUND THEN
2451        Null;
2452        When too_many_rows then
2453        Null;
2454 	  When others then
2455 	  Null;
2456      END;
2457    END IF;
2458 
2459 
2460    IF (p_header_rec_type.conversion_type_code is not null) THEN
2461      BEGIN
2462       select user_conversion_type
2463       into x_header_val_rec.conversion_type
2464       from gl_daily_conversion_types
2465       where conversion_type=p_header_rec_type.conversion_type_code;
2466 
2467 
2468      EXCEPTION
2469        WHEN NO_DATA_FOUND THEN
2470        Null;
2471        When too_many_rows then
2472        Null;
2473 	  When others then
2474 	  Null;
2475      END;
2476    END IF;
2477 
2478 --Macd
2479    IF (p_header_rec_type.ib_owner is not null) THEN
2480     BEGIN
2481     select meaning into x_header_val_rec.ib_owner_dsp
2482      from oe_lookups
2483      where lookup_type='ITEM_OWNER' and lookup_code=p_header_rec_type.ib_owner;
2484      EXCEPTION
2485        WHEN NO_DATA_FOUND THEN
2486        Null;
2487        When too_many_rows then
2488        Null;
2489 	  When others then
2490 	  Null;
2491      END;
2492    END IF;
2493 
2494    IF (p_header_rec_type.ib_installed_at_location is not null) THEN
2495     BEGIN
2496     select meaning into x_header_val_rec.ib_installed_at_location_dsp
2497      from oe_lookups
2498      where lookup_type='ITEM_INSTALL_LOCATION' and lookup_code=p_header_rec_type.ib_installed_at_location;
2499      EXCEPTION
2500        WHEN NO_DATA_FOUND THEN
2501        Null;
2502        When too_many_rows then
2503        Null;
2504 	  When others then
2505 	  Null;
2506      END;
2507    END IF;
2508 
2509    IF (p_header_rec_type.ib_current_location is not null) THEN
2510     BEGIN
2511     select meaning into x_header_val_rec.ib_current_location_dsp
2512      from oe_lookups
2513      where lookup_type='ITEM_CURRENT_LOCATION' and lookup_code=p_header_rec_type.ib_current_location;
2514      EXCEPTION
2515        WHEN NO_DATA_FOUND THEN
2516        Null;
2517        When too_many_rows then
2518        Null;
2519 	  When others then
2520 	  Null;
2521      END;
2522    END IF;
2523 --Macd
2524    -- Spagadal
2525    IF p_header_rec_type.blanket_number is not null then
2526               oe_blanket_util_misc.get_blanketAgrName
2527                               (p_blanket_number   => p_header_rec_type.blanket_number,
2528                                x_blanket_agr_name => x_header_val_rec.blanket_agreement_name);
2529    END If;
2530 
2531 
2532    IF p_header_rec_type.header_id IS NOT NULL THEN
2533      OE_OE_TOTALS_SUMMARY.Order_Totals
2534                               (
2535                               p_header_id=>p_header_rec_type.header_id,
2536                               p_subtotal =>x_header_val_rec.subtotal,
2537                               p_discount =>x_header_val_rec.discount,
2538                               p_charges  =>x_header_val_rec.charges,
2539                               p_tax      =>x_header_val_rec.tax
2540                               );
2541 
2542       OE_CHARGE_PVT.Get_Charge_Amount(
2543                          p_api_version_number=>1.0
2544                      ,   p_init_msg_list=>'F'
2545                      ,   p_all_charges=>'F'
2546                      ,   p_header_id=>p_header_rec_type.header_id
2547                      ,   p_line_id=>NULL
2548                      ,   x_return_status=>x_return_status
2549                      ,   x_msg_count=>x_msg_count
2550                      ,   x_msg_data=>x_msg_data
2551                      ,   x_charge_amount=>x_header_val_rec.header_charges
2552                      );
2553 
2554 /* START PREPAYMENT */
2555        OE_Prepayment_Util.Get_PrePayment_Info(p_header_id    => p_header_rec_type.header_id
2556                                        ,x_payment_set_id  => x_header_val_rec.payment_set_id
2557                                        ,x_prepaid_amount  => x_header_val_rec.prepaid_amount);
2558        IF x_header_val_rec.payment_set_id IS NOT NULL THEN
2559           BEGIN
2560              SELECT NVL(SUM(NVL(commitment_applied_amount, 0)), 0)
2561              INTO l_commitment_amount
2562              FROM oe_payments
2563              WHERE header_id = p_header_rec_type.header_id;
2564           EXCEPTION
2565            WHEN NO_DATA_FOUND THEN
2566             l_commitment_amount := 0;
2567           END;
2568           oe_debug_pub.add('prepaid_amount: '||x_header_val_rec.prepaid_amount||'  And commitment_amount: '||l_commitment_amount);
2569           x_header_val_rec.pending_amount :=  NVL(x_header_val_rec.subtotal,0)+NVL(x_header_val_rec.charges,0)+NVL(x_header_val_rec.tax,0) - NVL(x_header_val_rec.prepaid_amount, 0) - l_commitment_amount;
2570           oe_debug_pub.add('pending_amount: '||x_header_val_rec.pending_amount);
2571        ELSE
2572           x_header_val_rec.pending_amount := NULL;
2573        END IF;
2574 
2575        --pnpl start
2576        IF OE_PREPAYMENT_UTIL.Get_Installment_Options(p_header_rec_type.org_id) IN ('ENABLE_PAY_NOW', 'AUTHORIZE_FIRST_INSTALLMENT') THEN
2577 	  OE_Prepayment_PVT.Get_Pay_Now_Amounts
2578 	     (p_header_id 		=> p_header_rec_type.header_id
2579 	     ,p_line_id		        => null
2580 	     ,x_pay_now_subtotal 	=> l_pay_now_subtotal
2581 	     ,x_pay_now_tax   	        => l_pay_now_tax
2582 	     ,x_pay_now_charges  	=> l_pay_now_charges
2583 	     ,x_pay_now_total	        => x_header_val_rec.pay_now_total
2584 	     ,x_pay_now_commitment      => l_pay_now_commitment
2585 	     ,x_msg_count		=> x_msg_count
2586 	     ,x_msg_data		=> x_msg_data
2587 	     ,x_return_status           => x_return_status
2588 	     );
2589 
2590           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2591 	     x_header_val_rec.pay_now_total := null;
2592 	  END IF;
2593        ELSE
2594 	   x_header_val_rec.pay_now_total := null;
2595        END IF;
2596        --pnpl end
2597 /* END PREPAYMENT */
2598 
2599    END IF;
2600 
2601    --R12 CC Encryption
2602    if l_debug_level > 0 then
2603 	oe_debug_pub.add('payment_type_code in populate control fields'||p_header_rec_type.payment_type_code);
2604 	oe_debug_pub.add('Header id'||p_header_rec_type.header_id);
2605    end if;
2606 
2607    IF p_header_rec_type.payment_type_code IN ('CREDIT_CARD') THEN
2608 
2609 	--Query to verify payment details are existing in
2610 	--oe order headers all before calling card details
2611 	--Only if credit card number is null then call card details...!
2612 	BEGIN
2613 		SELECT
2614 		CREDIT_CARD_CODE
2615 	       ,CREDIT_CARD_HOLDER_NAME
2616 	       ,CREDIT_CARD_NUMBER
2617 	       ,CREDIT_CARD_EXPIRATION_DATE
2618 	       ,CREDIT_CARD_APPROVAL_CODE
2619 	       ,CREDIT_CARD_APPROVAL_DATE
2620 		into
2621 		l_credit_card_code,
2622 		l_credit_card_holder_name,
2623 		l_credit_card_number,
2624 		l_credit_card_expiration_date,
2625 		l_credit_card_approval_code ,
2626 		l_credit_card_approval_date
2627 		FROM OE_ORDER_HEADERS_ALL
2628 		WHERE HEADER_ID = p_header_rec_type.header_id;
2629 	EXCEPTION
2630 	WHEN NO_DATA_FOUND THEN
2631 		l_credit_card_code := null;
2632 		l_credit_card_holder_name:= null;
2633 		l_credit_card_number:= null;
2634 		l_credit_card_expiration_date:= null;
2635 		l_credit_card_approval_code := null;
2636 		l_credit_card_approval_date:= null;
2637 	END;
2638 
2639         BEGIN
2640           SELECT trxn_extension_id
2641           INTO   l_trxn_extension_id
2642           FROM   oe_payments
2643           WHERE  header_id = p_header_rec_type.header_id
2644           AND    nvl(payment_collection_event,'PREPAY') = 'INVOICE'
2645           AND    payment_type_code = 'CREDIT_CARD'
2646           AND    line_id is null;
2647         EXCEPTION WHEN NO_DATA_FOUND THEN
2648           null;
2649         END;
2650 
2651     --  bug 5414929
2652     -- 	IF l_credit_card_number is null
2653         IF l_trxn_extension_id is not null THEN
2654 		OE_Header_Util.Query_card_details
2655 		(p_header_id	=> p_header_rec_type.header_id,
2656 		 p_credit_card_code => l_credit_card_code,
2657 		 p_credit_card_holder_name => l_credit_card_holder_name,
2658 		 p_credit_card_number => l_credit_card_number,
2659 		 p_credit_Card_expiration_date => l_credit_card_expiration_date,
2660 		 p_credit_card_approval_code => l_credit_card_approval_code,
2661 		 p_credit_card_approval_Date => l_credit_card_approval_date,
2662 		 p_instrument_security_code => l_instrument_security_code,
2663 		 p_instrument_id	=> l_instrument_id,
2664 		 p_instrument_assignment_id => l_instrument_assignment_id
2665 		 );
2666 	END IF;
2667 	x_header_val_rec.credit_card_number := l_credit_card_number;
2668 	x_header_val_rec.credit_card_code := l_credit_card_code;
2669 	x_header_val_rec.credit_card_holder_name := l_credit_card_holder_name;
2670 	x_header_val_rec.credit_card_expiration_date := l_credit_Card_expiration_Date;
2671 	x_header_val_rec.credit_card_approval_code := l_credit_Card_approval_code;
2672 	x_header_val_rec.credit_card_approval_date := l_credit_card_approval_date;
2673 	x_header_val_rec.instrument_security_code := l_instrument_security_code;
2674 	x_header_val_rec.cc_instrument_id	:= l_instrument_id;
2675 	x_header_val_rec.cc_instrument_assignment_id := l_instrument_assignment_id;
2676 
2677 	oe_debug_pub.add('After calling OE_Header_Util.Query_card_details');
2678 	oe_debug_pub.add('Security code'||x_header_val_rec.instrument_security_code);
2679 	--oe_debug_pub.add('Credit card code in populate control fields'||x_header_val_rec.credit_card_code);
2680 	BEGIN
2681 		IF x_header_val_rec.credit_card_code is not null then
2682 			x_header_val_rec.credit_card := OE_Id_To_Value.Credit_Card
2683 			(   p_credit_card_code              => x_header_val_rec.credit_card_code
2684 			);
2685 		END IF;
2686 	 exception
2687 	 when no_data_found then
2688 	     x_header_val_rec.credit_card := NULL;
2689 	 end;
2690    END IF;
2691    --R12 CC Encryption
2692 
2693 EXCEPTION
2694 WHEN NO_DATA_FOUND THEN
2695 	NULL;
2696 WHEN TOO_MANY_ROWS THEN
2697 	NULL;
2698 WHEN OTHERS THEN
2699 	NULL;
2700 END Populate_Control_Fields;
2701 
2702 FUNCTION Get_Cascade_Flag return Boolean
2703 IS
2704 BEGIN
2705 	return(OE_GLOBALS.G_CASCADING_REQUEST_LOGGED);
2706 END Get_Cascade_Flag;
2707 
2708 PROCEDURE Set_Cascade_Flag_False
2709 IS
2710 BEGIN
2711 	OE_GLOBALS.G_CASCADING_REQUEST_LOGGED := FALSE;
2712 END Set_Cascade_Flag_False;
2713 
2714 FUNCTION Load_Set_Of_Books
2715 RETURN Set_Of_Books_Rec_Type
2716 IS
2717 l_set_of_books_id   NUMBER := NULL;
2718 l_debug_level  NUMBER := oe_debug_pub.g_debug_level; -- cc project
2719 BEGIN
2720     /* commenting below line for cc project*/
2721     -- OE_DEBUG_PUB.G_DEBUG_LEVEL:=0;
2722     oe_debug_pub.add('Entering OE_ORDER_CACHE.LOAD_SET_OF_BOOKS', 1);
2723 
2724     --    Get set_of_books_id from profile option.
2725 
2726     --l_set_of_books_id := FND_PROFILE.VALUE('OE_SET_OF_BOOKS_ID');
2727      l_set_of_books_id := OE_Sys_Parameters.VALUE('SET_OF_BOOKS_ID');
2728 
2729 
2730     IF l_set_of_books_id IS NOT NULL THEN
2731 
2732          SELECT  SET_OF_BOOKS_ID
2733          ,         CURRENCY_CODE
2734          INTO    g_set_of_books_rec.set_of_books_id
2735          ,         g_set_of_books_rec.currency_code
2736          FROM    OE_GL_SETS_OF_BOOKS_V
2737          WHERE   SET_OF_BOOKS_ID = l_set_of_books_id;
2738 
2739     END IF;
2740     oe_debug_pub.add('Exiting OE_ORDER_CACHE.LOAD_SET_OF_BOOKS', 1);
2741 
2742     RETURN g_set_of_books_rec;
2743 
2744 EXCEPTION
2745     --vmalapat changes
2746     WHEN NO_DATA_FOUND THEN
2747       RETURN NULL;
2748 
2749     WHEN OTHERS THEN
2750 
2751      IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2752      THEN
2753          OE_MSG_PUB.Add_Exc_Msg
2754          (     G_PKG_NAME         ,
2755              'Load_Set_Of_Books'
2756          );
2757      END IF;
2758 
2759      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2760 
2761 END Load_Set_Of_Books;
2762 
2763 
2764 
2765 PROCEDURE get_invoice_to_customer_id ( p_site_use_id IN NUMBER,
2766 x_invoice_to_customer_id OUT NOCOPY NUMBER
2767                                      ) IS
2768 l_site_use_code VARCHAR2(30);
2769 BEGIN
2770     l_site_use_code := 'BILL_TO';
2771 
2772 	   SELECT  /* MOAC_SQL_CHANGE */   cas.cust_account_id
2773         INTO    x_invoice_to_customer_id
2774         FROM    HZ_CUST_SITE_USES_ALL site,
2775                 HZ_CUST_ACCT_SITES_ALL cas
2776         WHERE   site.cust_acct_site_id = cas.cust_acct_site_id
2777         AND     site.site_use_code=l_site_use_code
2778         AND     site.site_use_id=p_site_use_id;
2779 
2780 EXCEPTION
2781 
2782         WHEN NO_DATA_FOUND THEN
2783          Null;
2784         When too_many_rows then
2785          Null;
2786 	   When others then
2787 	    Null;
2788 
2789 END get_invoice_to_customer_id;
2790 
2791 
2792 
2793 PROCEDURE get_ship_to_customer_id ( p_site_use_id IN NUMBER,
2794 x_ship_to_customer_id OUT NOCOPY NUMBER
2795                                      ) IS
2796 l_site_use_code VARCHAR2(30);
2797 BEGIN
2798     l_site_use_code := 'SHIP_TO';
2799 
2800 	   SELECT  /* MOAC_SQL_CHANGE */   cas.cust_account_id
2801         INTO    x_ship_to_customer_id
2802         FROM    HZ_CUST_SITE_USES_ALL site,
2803                 HZ_CUST_ACCT_SITES_ALL cas
2804         WHERE   site.cust_acct_site_id = cas.cust_acct_site_id
2805         AND     site.site_use_code=l_site_use_code
2806         AND     site.site_use_id=p_site_use_id;
2807 
2808 EXCEPTION
2809 
2810         WHEN NO_DATA_FOUND THEN
2811          Null;
2812         When too_many_rows then
2813          Null;
2814 	   When others then
2815 	    Null;
2816 
2817 END get_ship_to_customer_id;
2818 
2819 
2820 PROCEDURE RESET_DEBUG_LEVEL
2821 IS
2822 
2823 BEGIN
2824  OE_DEBUG_PUB.G_DEBUG_LEVEL:=0;
2825 
2826 END RESET_DEBUG_LEVEL;
2827 
2828 
2829 PROCEDURE SET_DEBUG_LEVEL (p_debug_level IN NUMBER)
2830 IS
2831 
2832 BEGIN
2833  OE_DEBUG_PUB.G_DEBUG_LEVEL:=p_debug_level;
2834 
2835 END SET_DEBUG_LEVEL;
2836 
2837 
2838 PROCEDURE Get_GSA_Indicator( p_sold_to_org_id IN NUMBER,
2839 x_gsa_indicator OUT NOCOPY VARCHAR2
2840                            ) IS
2841 
2842 BEGIN
2843 
2844    SELECT  nvl(gsa_indicator_flag,'N')
2845      INTO  x_gsa_indicator
2846      FROM  hz_parties party,
2847            hz_cust_accounts acct
2848     WHERE  acct.cust_account_id=p_sold_to_org_id
2849       AND  party.party_id = acct.party_id;
2850 
2851 EXCEPTION
2852 
2853     WHEN NO_DATA_FOUND THEN
2854          Null;
2855     When too_many_rows then
2856         Null;
2857     When others then
2858         Null;
2859 
2860 END Get_GSA_Indicator;
2861 
2862 PROCEDURE CASCADE_HEADER_ATTRIBUTES
2863                             (
2864                               p_old_db_header_rec  IN OE_ORDER_PUB.Header_Rec_Type
2865                          ,    p_header_rec         IN OE_ORDER_PUB.Header_Rec_Type
2866 , x_return_status OUT NOCOPY VARCHAR2
2867 , x_msg_count OUT NOCOPY NUMBER
2868 , x_msg_data OUT NOCOPY VARCHAR2
2869                               )  IS
2870 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
2871 l_x_old_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
2872 l_line_rec                    OE_Order_PUB.Line_Rec_Type;
2873 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
2874 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
2875 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
2876 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
2877 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
2878 l_x_Action_Request_tbl        OE_Order_PUB.Request_Tbl_Type;
2879 l_x_Lot_Serial_Tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
2880 l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
2881 l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
2882 l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
2883 l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type;
2884 l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type;
2885 l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
2886 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
2887 l_count    NUMBER;
2888 l_return_status               VARCHAR2(1);
2889 --serla begin
2890 l_x_Header_Payment_tbl        OE_Order_PUB.Header_Payment_Tbl_Type;
2891 l_x_Line_Payment_tbl          OE_Order_PUB.Line_Payment_Tbl_Type;
2892 l_init_msg_list               VARCHAR2(1) := FND_API.G_TRUE;
2893 --serla end
2894 BEGIN
2895    SAVEPOINT Header_Cascade_Attributes;
2896     oe_debug_pub.add('Entering OE_OE_FOR_HEADER.Cascade Attribute');
2897    IF NOT OE_Globals.Equal(
2898        p_header_rec.cust_po_number,
2899        p_old_db_header_rec.cust_po_number) OR
2900       NOT OE_Globals.Equal(
2901        p_header_rec.payment_term_id,
2902        p_old_db_header_rec.payment_term_id) OR
2903       NOT OE_Globals.Equal(
2904        p_header_rec.shipment_priority_code,
2905        p_old_db_header_rec.shipment_priority_code) OR
2906       NOT OE_Globals.Equal(
2907        p_header_rec.shipping_method_code,
2908        p_old_db_header_rec.shipping_method_code) OR
2909       NOT OE_Globals.Equal(
2910        p_header_rec.ship_to_org_id,
2911        p_old_db_header_rec.ship_to_org_id)  OR
2912       NOT OE_Globals.Equal(
2913        p_header_rec.agreement_id,
2914        p_old_db_header_rec.agreement_id)  OR
2915      NOT OE_Globals.Equal(
2916        p_header_rec.order_firmed_date,
2917        p_old_db_header_rec.order_firmed_date) OR  --Key Transaction dates
2918 -- Start of Enhanced Cascading
2919      NOT OE_Globals.Equal(
2920        p_header_rec.Accounting_Rule_Id,
2921        p_old_db_header_rec.Accounting_rule_Id) OR
2922      NOT OE_Globals.Equal(
2923        p_header_rec.Blanket_Number,
2924        p_old_db_header_rec.Blanket_Number) OR
2925      NOT OE_Globals.Equal(
2926        p_header_rec.Deliver_to_Contact_Id,
2927        p_old_db_header_rec.Deliver_To_Contact_Id) OR
2928      NOT OE_Globals.Equal(
2929        p_header_rec.Deliver_to_Org_Id,
2930        p_old_db_header_rec.Deliver_To_Org_Id) OR
2931      NOT OE_Globals.Equal(
2932        p_header_rec.Demand_Class_Code,
2933        p_old_db_header_rec.Demand_Class_Code) OR
2934      NOT OE_Globals.Equal(
2935        p_header_rec.Fob_point_Code,
2936        p_old_db_header_rec.Fob_point_Code) OR
2937      NOT OE_Globals.Equal(
2938        p_header_rec.Freight_Terms_Code,
2939        p_old_db_header_rec.Freight_terms_Code) OR
2940      NOT OE_Globals.Equal(
2941        p_header_rec.Invoice_To_Contact_Id,
2942        p_old_db_header_rec.Invoice_To_Contact_Id) OR
2943      NOT OE_Globals.Equal(
2944        p_header_rec.Invoice_To_Org_Id,
2945        p_old_db_header_rec.Invoice_To_Org_Id) OR
2946      NOT OE_Globals.Equal(
2947        p_header_rec.Invoicing_Rule_Id,
2948        p_old_db_header_rec.Invoicing_Rule_Id) OR
2949      NOT OE_Globals.Equal(
2950        p_header_rec.Price_List_Id,
2951        p_old_db_header_rec.Price_List_Id) OR
2952      NOT OE_Globals.Equal(
2953        p_header_rec.Request_date,
2954        p_old_db_header_rec.Request_date) OR
2955      NOT OE_Globals.Equal(
2956        p_header_rec.Return_reason_Code,
2957        p_old_db_header_rec.Return_reason_Code) OR
2958      NOT OE_Globals.Equal(
2959        p_header_rec.Salesrep_Id,
2960        p_old_db_header_rec.Salesrep_id) OR
2961      NOT OE_Globals.Equal(
2962        p_header_rec.Ship_From_Org_Id,
2963        p_old_db_header_rec.Ship_from_Org_id) OR
2964      NOT OE_Globals.Equal(
2965        p_header_rec.Ship_To_Contact_Id,
2966        p_old_db_header_rec.Ship_To_Contact_id) OR
2967      NOT OE_Globals.Equal(
2968        p_header_rec.Sold_To_Org_Id,
2969        p_old_db_header_rec.Sold_To_Org_id) OR
2970      NOT OE_Globals.Equal(
2971        p_header_rec.Tax_Exempt_Flag,
2972        p_old_db_header_rec.Tax_Exempt_Flag)
2973 -- End Of Enhanced Cascading
2974 
2975       THEN
2976         IF p_header_rec.header_id IS NOT NULL AND
2977            p_header_rec.header_id <> FND_API.G_MISS_NUM THEN
2978           OE_Line_Util.Query_Rows
2979          (   p_header_id             => p_header_rec.header_id
2980            , x_line_tbl            => l_x_line_tbl
2981           );
2982         END IF;
2983 
2984    END IF;
2985 
2986  -- Check if Read_Cascadable_Fields is called or not. If not the call and build  -- the record.
2987 
2988     IF OE_OE_FORM_HEADER.g_cascade_test_record.p_cached='N' THEN
2989       OE_OE_FORM_HEADER.Read_Cascadable_Fields
2990         (
2991           x_cascade_record=>OE_OE_FORM_HEADER.g_cascade_test_record
2992         );
2993     END IF;
2994 
2995     IF l_x_line_tbl.count  >0 THEN
2996       FOR  i IN  l_x_line_tbl.first .. l_x_line_tbl.last LOOP
2997        /* Fix Bug # 3271580 : Cascade only if line is Open */
2998        IF l_x_line_tbl(i).open_flag = 'Y' THEN
2999 
3000        /* Fix Bug # 4131746/ base bug# 4056303 : Server Connect */
3001         l_x_line_tbl(i).change_reason := 'SYSTEM';
3002         l_x_old_line_tbl(i):=l_x_line_tbl(i);
3003 
3004         IF NOT OE_Globals.Equal(
3005         p_header_rec.cust_po_number,
3006         p_old_db_header_rec.cust_po_number) AND
3007 
3008         OE_OE_FORM_HEADER.g_cascade_test_record.p_customer_po='Y'
3009 
3010         THEN
3011            l_x_line_tbl(i).cust_po_number:=p_header_rec.cust_po_number;
3012         END IF;
3013 
3014         IF NOT OE_Globals.Equal(
3015         p_header_rec.payment_term_id,
3016         p_old_db_header_rec.payment_term_id) AND
3017 
3018         OE_OE_FORM_HEADER.g_cascade_test_record.p_payment_term='Y'
3019 
3020         THEN
3021            l_x_line_tbl(i).payment_term_id:=p_header_rec.payment_term_id;
3022         END IF;
3023 
3024         IF NOT OE_Globals.Equal(
3025         p_header_rec.shipment_priority_code,
3026         p_old_db_header_rec.shipment_priority_code) AND
3027 
3028         OE_OE_FORM_HEADER.g_cascade_test_record.p_shipment_priority='Y'
3029 
3030         THEN
3031            l_x_line_tbl(i).shipment_priority_code:=p_header_rec.shipment_priority_code;
3032         END IF;
3033 
3034         IF NOT OE_Globals.Equal(
3035         p_header_rec.shipping_method_code,
3036         p_old_db_header_rec.shipping_method_code) AND
3037 
3038         OE_OE_FORM_HEADER.g_cascade_test_record.p_shipping_method='Y'
3039 
3040         THEN
3041            l_x_line_tbl(i).shipping_method_code:=p_header_rec.shipping_method_code;
3042         END IF;
3043 
3044         IF NOT OE_Globals.Equal(
3045         p_header_rec.ship_to_org_id,
3046         p_old_db_header_rec.ship_to_org_id) AND
3047 
3048         OE_OE_FORM_HEADER.g_cascade_test_record.p_ship_to='Y'
3049 
3050         THEN
3051            l_x_line_tbl(i).ship_to_org_id:=p_header_rec.ship_to_org_id;
3052         END IF;
3053 
3054         IF NOT OE_Globals.Equal(
3055         p_header_rec.agreement_id,
3056         p_old_db_header_rec.agreement_id) AND
3057 
3058         OE_OE_FORM_HEADER.g_cascade_test_record.p_agreement='Y'
3059 
3060         THEN
3061            l_x_line_tbl(i).agreement_id:=p_header_rec.agreement_id;
3062         END IF;
3063 
3064         --Key Transaction dates
3065         IF NOT OE_Globals.Equal(
3066           p_header_rec.order_firmed_date,
3067           p_old_db_header_rec.order_firmed_date) AND
3068 
3069         OE_OE_FORM_HEADER.g_cascade_test_record.p_order_firmed_date='Y'
3070 
3071         THEN
3072              l_x_line_tbl(i).order_firmed_date:=p_header_rec.order_firmed_date;
3073         END IF;
3074 
3075         IF NOT OE_Globals.Equal(
3076           p_header_rec.Accounting_Rule_Id,
3077           p_old_db_header_rec.Accounting_Rule_Id) AND
3078 
3079         OE_OE_FORM_HEADER.g_cascade_test_record.p_accounting_rule='Y'
3080 
3081         THEN
3082             l_x_line_tbl(i).Accounting_Rule_Id:=p_header_rec.Accounting_Rule_Id;
3083         END IF;
3084 
3085         IF NOT OE_Globals.Equal(
3086           p_header_rec.Blanket_Number,
3087           p_old_db_header_rec.Blanket_Number) AND
3088 
3089         OE_OE_FORM_HEADER.g_cascade_test_record.p_blanket_number='Y'
3090 
3091         THEN
3092             l_x_line_tbl(i).Blanket_Number:=p_header_rec.Blanket_Number;
3093         END IF;
3094 
3095        IF NOT OE_Globals.Equal(
3096          p_header_rec.Deliver_to_Contact_Id,
3097          p_old_db_header_rec.Deliver_To_Contact_Id) AND
3098 
3099         OE_OE_FORM_HEADER.g_cascade_test_record.p_deliver_to_contact='Y'
3100 
3101         THEN
3102             l_x_line_tbl(i).Deliver_To_Contact_id:=p_header_rec.Deliver_To_Contact_Id;
3103         END IF;
3104 
3105         IF NOT OE_Globals.Equal(
3106          p_header_rec.Deliver_to_Org_Id,
3107          p_old_db_header_rec.Deliver_To_Org_Id) AND
3108 
3109         OE_OE_FORM_HEADER.g_cascade_test_record.p_deliver_to='Y'
3110 
3111         THEN
3112             l_x_line_tbl(i).Deliver_To_Org_id:=p_header_rec.Deliver_to_Org_Id;
3113        END IF;
3114 
3115        IF NOT OE_Globals.Equal(
3116          p_header_rec.Demand_Class_Code,
3117          p_old_db_header_rec.Demand_Class_Code) AND
3118 
3119         OE_OE_FORM_HEADER.g_cascade_test_record.p_demand_class='Y'
3120 
3121         THEN
3122             l_x_line_tbl(i).Demand_Class_Code:=p_header_rec.Demand_Class_Code;
3123        END IF;
3124 
3125       IF NOT OE_Globals.Equal(
3126         p_header_rec.Fob_point_Code,
3127         p_old_db_header_rec.Fob_point_Code) AND
3128 
3129         OE_OE_FORM_HEADER.g_cascade_test_record.p_fob_point='Y'
3130 
3131       THEN
3132             l_x_line_tbl(i).Fob_Point_Code:=p_header_rec.Fob_Point_Code;
3133       END IF;
3134 
3135       IF NOT OE_Globals.Equal(
3136         p_header_rec.Freight_Terms_Code,
3137         p_old_db_header_rec.Freight_Terms_Code) AND
3138 
3139         -- Bug 8330454 OE_OE_FORM_HEADER.g_cascade_test_record.p_fob_point='Y'
3140         OE_OE_FORM_HEADER.g_cascade_test_record.p_freight_terms = 'Y'    --Bug 8330454
3141 
3142 
3143        THEN
3144             l_x_line_tbl(i).Freight_Terms_Code:=p_header_rec.Freight_Terms_Code;
3145       END IF;
3146 
3147       IF NOT OE_Globals.Equal(
3148         p_header_rec.Invoice_To_Contact_Id,
3149         p_old_db_header_rec.Invoice_To_Contact_Id) AND
3150 
3151         OE_OE_FORM_HEADER.g_cascade_test_record.p_bill_to_contact='Y'
3152 
3153       THEN
3154             l_x_line_tbl(i).Invoice_To_Contact_Id:=p_header_rec.Invoice_To_Contact_Id;
3155       END IF;
3156 
3157       IF NOT OE_Globals.Equal(
3158         p_header_rec.Invoice_To_Org_Id,
3159         p_old_db_header_rec.Invoice_To_Org_Id) AND
3160 
3161         OE_OE_FORM_HEADER.g_cascade_test_record.p_bill_to='Y'
3162 
3163        THEN
3164             l_x_line_tbl(i).Invoice_To_Org_Id:=p_header_rec.Invoice_To_Org_Id;
3165       END IF;
3166 
3167       IF NOT OE_Globals.Equal(
3168         p_header_rec.Invoicing_Rule_Id,
3169         p_old_db_header_rec.Invoicing_Rule_Id) AND
3170 
3171         OE_OE_FORM_HEADER.g_cascade_test_record.p_invoicing_rule='Y'
3172 
3173       THEN
3174             l_x_line_tbl(i).Invoicing_Rule_Id:=p_header_rec.Invoicing_Rule_Id;
3175       END IF;
3176 
3177       IF NOT OE_Globals.Equal(
3178         p_header_rec.Price_List_Id,
3179         p_old_db_header_rec.Price_List_Id) AND
3180 
3181         OE_OE_FORM_HEADER.g_cascade_test_record.p_price_list='Y'
3182 
3183       THEN
3184             l_x_line_tbl(i).Price_List_Id:=p_header_rec.Price_List_Id;
3185       END IF;
3186 
3187 
3188       IF NOT OE_Globals.Equal(
3189         p_header_rec.Request_date,
3190         p_old_db_header_rec.Request_date) AND
3191 
3192         OE_OE_FORM_HEADER.g_cascade_test_record.p_request_date='Y'
3193 
3194       THEN
3195             l_x_line_tbl(i).Request_Date:=p_header_rec.Request_Date;
3196       END IF;
3197 
3198       IF NOT OE_Globals.Equal(
3199         p_header_rec.Return_Reason_Code,
3200         p_old_db_header_rec.Return_Reason_Code) AND
3201 
3202         OE_OE_FORM_HEADER.g_cascade_test_record.p_return_reason='Y'
3203 
3204       THEN
3205             l_x_line_tbl(i).Return_Reason_Code:=p_header_rec.Return_reason_Code;
3206       END IF;
3207 
3208       IF NOT OE_Globals.Equal(
3209         p_header_rec.Salesrep_Id,
3210         p_old_db_header_rec.Salesrep_id) AND
3211 
3212         OE_OE_FORM_HEADER.g_cascade_test_record.p_salesperson='Y'
3213 
3214       THEN
3215             l_x_line_tbl(i).Salesrep_Id:=p_header_rec.Salesrep_Id;
3216       END IF;
3217 
3218       IF NOT OE_Globals.Equal(
3219         p_header_rec.Ship_From_Org_Id,
3220         p_old_db_header_rec.Ship_From_Org_id) AND
3221 
3222         OE_OE_FORM_HEADER.g_cascade_test_record.p_warehouse='Y'
3223 
3224       THEN
3225             l_x_line_tbl(i).Ship_From_Org_Id:=p_header_rec.Ship_From_Org_Id;
3226       END IF;
3227 
3228       IF NOT OE_Globals.Equal(
3229         p_header_rec.Ship_To_Contact_Id,
3230         p_old_db_header_rec.Ship_To_Contact_Id) AND
3231 
3232         OE_OE_FORM_HEADER.g_cascade_test_record.p_ship_to_contact='Y'
3233 
3234       THEN
3235             l_x_line_tbl(i).Ship_To_Contact_Id:=p_header_rec.Ship_To_Contact_Id;
3236       END IF;
3237 
3238       IF NOT OE_Globals.Equal(
3239         p_header_rec.Sold_To_Org_Id,
3240         p_old_db_header_rec.Sold_To_Org_id) AND
3241 
3242         OE_OE_FORM_HEADER.g_cascade_test_record.p_customer='Y'
3243 
3244       THEN
3245             l_x_line_tbl(i).Sold_To_Org_Id:=p_header_rec.Sold_To_Org_Id;
3246       END IF;
3247 
3248       IF NOT OE_Globals.Equal(
3249         p_header_rec.Tax_Exempt_Flag,
3250         p_old_db_header_rec.Tax_Exempt_Flag) AND
3251 
3252         OE_OE_FORM_HEADER.g_cascade_test_record.p_tax_exempt='Y'
3253 
3254        THEN
3255             l_x_line_tbl(i).Tax_Exempt_Flag:=p_header_rec.Tax_Exempt_Flag;
3256       END IF;
3257 
3258         l_x_line_tbl(i).operation:= OE_GLOBALS.G_OPR_UPDATE;
3259         l_x_line_tbl(i).change_reason:='SYSTEM';
3260 
3261        END IF; -- Cascade Only if Line is Open
3262        END LOOP;
3263 
3264      END IF;
3265     oe_debug_pub.add('Entering OE_OE_FOR_HEADER.Cascade Attribute-Before PO');
3266 
3267     -- Added for cascading in Mass Change ER 7509356
3268     IF OE_MASS_CHANGE_PVT.IS_MASS_CHANGE = 'T' THEN
3269        l_init_msg_list :=   FND_API.G_FALSE;
3270     END IF;
3271 
3272    OE_GLOBALS.G_UI_FLAG := TRUE;
3273    Oe_Order_Pvt.Process_order
3274        (   p_api_version_number          => 1.0
3275         ,   p_init_msg_list               => l_init_msg_list
3276         ,   x_return_status               => l_return_status
3277         ,   x_msg_count                   => x_msg_count
3278         ,   x_msg_data                    => x_msg_data
3279         ,   p_control_rec                 => l_control_rec
3280         ,   p_x_line_tbl                  => l_x_line_tbl
3281         ,   p_old_line_tbl                => l_x_old_line_tbl
3282         ,   p_x_header_rec                  => l_x_header_rec
3283         ,   p_x_Header_Adj_tbl              => l_x_Header_Adj_tbl
3284         ,   p_x_header_price_att_tbl        => l_x_header_price_att_tbl
3285         ,   p_x_Header_Adj_att_tbl          => l_x_Header_Adj_att_tbl
3286         ,   p_x_Header_Adj_Assoc_tbl        => l_x_Header_Adj_Assoc_tbl
3287         ,   p_x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
3288 --serla begin
3289         ,   p_x_Header_Payment_tbl          => l_x_Header_Payment_tbl
3290 --serla end
3291         ,   p_x_Line_Adj_tbl                => l_x_Line_Adj_tbl
3292         ,   p_x_Line_Price_att_tbl          => l_x_Line_Price_att_tbl
3293         ,   p_x_Line_Adj_att_tbl            => l_x_Line_Adj_att_tbl
3294         ,   p_x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
3295         ,   p_x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
3296 --serla begin
3297         ,   p_x_Line_Payment_tbl            => l_x_Line_Payment_tbl
3298 --serla end
3299         ,   p_x_action_request_tbl          => l_x_Action_Request_tbl
3300         ,   p_x_lot_serial_tbl              => l_x_lot_serial_tbl
3301 
3302         );
3303 
3304     oe_debug_pub.add('Entering OE_OE_FOR_HEADER.Cascade Attribute-After PO');
3305 
3306 
3307     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3308         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3309     ELSIF l_return_status  = FND_API.G_RET_STS_ERROR THEN
3310         RAISE FND_API.G_EXC_ERROR;
3311     END IF;
3312 
3313 
3314     -- Re-set the UI flag to FALSE
3315     OE_GLOBALS.G_UI_FLAG := FALSE;
3316 
3317     --  Set return status.
3318 
3319     x_return_status := FND_API.G_RET_STS_SUCCESS;
3320 
3321     --  Get message count and data
3322 -- Commenting out for now not to display the same messages multiple times
3323 /*
3324     OE_MSG_PUB.Count_And_Get
3325     (   p_count                       => x_msg_count
3326     ,   p_data                        => x_msg_data
3327     ); */
3328 
3329 
3330 EXCEPTION
3331 
3332     WHEN FND_API.G_EXC_ERROR THEN
3333      ROLLBACK TO SAVEPOINT Header_Cascade_Attributes;
3334 	   OE_GLOBALS.G_UI_FLAG := FALSE;
3335 
3336         x_return_status := FND_API.G_RET_STS_ERROR;
3337 
3338         --  Get message count and data
3339 
3340         OE_MSG_PUB.Count_And_Get
3341         (   p_count                       => x_msg_count
3342         ,   p_data                        => x_msg_data
3343         );
3344 
3345     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3346      ROLLBACK TO SAVEPOINT Header_Cascade_Attributes;
3347 
3348 	   OE_GLOBALS.G_UI_FLAG := FALSE;
3349 
3350         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3351 
3352         --  Get message count and data
3353 
3354         OE_MSG_PUB.Count_And_Get
3355         (   p_count                       => x_msg_count
3356         ,   p_data                        => x_msg_data
3357         );
3358 
3359     WHEN OTHERS THEN
3360      ROLLBACK TO SAVEPOINT Header_Cascade_Attributes;
3361 
3362 	   OE_GLOBALS.G_UI_FLAG := FALSE;
3363 
3364         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3365 
3366         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3367         THEN
3368             OE_MSG_PUB.Add_Exc_Msg
3369             (   G_PKG_NAME
3370             ,   'CASCADE_HEADER_ATTRIBUTES'
3371             );
3372         END IF;
3373 
3374         --  Get message count and data
3375 
3376         OE_MSG_PUB.Count_And_Get
3377         (   p_count                       => x_msg_count
3378         ,   p_data                        => x_msg_data
3379         );
3380 
3381 END  CASCADE_HEADER_ATTRIBUTES;
3382 
3383 PROCEDURE get_customer_details( p_site_use_id IN NUMBER,
3384                                 p_site_use_code IN VARCHAR2,
3385 x_customer_id OUT NOCOPY NUMBER,
3386 x_customer_name OUT NOCOPY VARCHAR2,
3387 x_customer_number OUT NOCOPY VARCHAR2
3388                                      ) IS
3389 
3390 BEGIN
3391 /*2172651*/
3392 
3393 		select  /* MOAC_SQL_CHANGE */ cust.cust_account_id,
3394 		       party.party_name,
3395 		       cust.account_number
3396         	INTO   x_customer_id,
3397                	       x_customer_name,
3398                        x_customer_number
3399 		from
3400 		       hz_cust_site_uses_all site,
3401 		       hz_cust_acct_sites_all cas,
3402                        hz_cust_accounts cust,
3403                        hz_parties party
3404                 where site.site_use_code = p_site_use_code
3405 		and site_use_id = p_site_use_id
3406 		and site.cust_acct_site_id = cas.cust_acct_site_id
3407 		and cas.cust_account_id = cust.cust_account_id
3408 		and cust.party_id=party.party_id;
3409 /*2172651*/
3410 EXCEPTION
3411 
3412         WHEN NO_DATA_FOUND THEN
3413          Null;
3414         When too_many_rows then
3415          Null;
3416 	   When others then
3417 	    Null;
3418 
3419 END get_customer_details;
3420 
3421 
3422 PROCEDURE CREATE_AGREEMENT(
3423 x_return_status OUT NOCOPY VARCHAR2
3424 , x_msg_count OUT NOCOPY NUMBER
3425 , x_msg_data OUT NOCOPY VARCHAR2
3426 ,   p_price_list_id                 IN  Number
3427 ,   p_agreement_name                IN  VARCHAR2
3428 ,   p_term_id                       IN  Number
3429 ,   p_sold_to_org_id                IN  Number
3430 
3431 )
3432 
3433 IS PRAGMA AUTONOMOUS_TRANSACTION;
3434 
3435  l_msg_count number := 0;
3436  l_msg_data varchar2(2000);
3437 
3438  p_Agreement_rec               OE_Pricing_Cont_PUB.Agreement_Rec_Type;
3439  p_Agreement_val_rec           OE_Pricing_Cont_PUB.Agreement_Val_Rec_Type;
3440  p_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
3441  p_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
3442 
3443  p_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
3444  p_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
3445 
3446  p_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
3447  p_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
3448 
3449  x_Agreement_rec             OE_Pricing_Cont_PUB.Agreement_Rec_Type;
3450  x_Agreement_val_rec         OE_Pricing_Cont_PUB.Agreement_Val_Rec_Type;
3451 
3452  x_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
3453  x_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
3454 
3455  x_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
3456  x_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
3457 
3458  x_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
3459  x_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
3460 
3461 BEGIN
3462 
3463 
3464     oe_debug_pub.add('Entering OE_OE_FORM_HEADER.Create_Agreement', 1);
3465 
3466 p_Agreement_rec.name :=  p_agreement_name;
3467 p_agreement_rec.creation_date :=sysdate;
3468 p_agreement_rec.created_by := FND_GLOBAL.USER_ID;
3469 p_agreement_rec.last_update_date := sysdate;
3470 p_agreement_rec.last_updated_by := FND_GLOBAL.USER_ID;
3471 p_agreement_rec.agreement_type_code := 'STANDARD';
3472 --p_agreement_rec.agreement_num := '2001';
3473 p_agreement_rec.revision := '1';
3474 p_agreement_rec.revision_date := sysdate;
3475 p_agreement_rec.term_id := p_term_id;
3476 p_agreement_rec.OVERRIDE_IRULE_FLAG := 'Y';
3477 p_agreement_rec.OVERRIDE_ARULE_FLAG := 'Y';
3478 p_agreement_rec.agreement_id := FND_API.G_MISS_NUM;
3479 p_agreement_rec.operation    := QP_GLOBALS.G_OPR_CREATE;
3480 p_agreement_rec.price_list_id := p_price_list_id;
3481 p_agreement_rec.sold_to_org_id := p_sold_to_org_id;
3482     oe_debug_pub.add('Before Process_Agreement', 1);
3483 
3484     OE_Pricing_Cont_PUB.Process_Agreement
3485 (   p_api_version_number            => 1.0
3486 
3487 ,   p_init_msg_list                 => FND_API.G_TRUE
3488 ,   p_return_values                 => FND_API.G_FALSE
3489 ,   p_commit                        => FND_API.G_FALSE
3490 ,   x_return_status                 => x_return_status
3491 ,   x_msg_count                     => x_msg_count
3492 ,   x_msg_data                      => x_msg_data
3493 ,   p_Agreement_rec                 => p_Agreement_rec
3494 ,   x_Agreement_rec                 => x_Agreement_rec
3495 ,   x_Agreement_val_rec             => x_Agreement_val_rec
3496 ,   x_Price_LHeader_rec             => x_price_list_rec
3497 ,   x_Price_LHeader_val_rec         => x_price_list_val_rec
3498 
3499 ,   x_Price_LLine_tbl             => x_price_list_line_tbl
3500 ,   x_Price_LLine_val_tbl         => x_price_list_line_val_tbl
3501 ,   x_Pricing_Attr_tbl              => x_pricing_attr_tbl
3502 ,   x_Pricing_Attr_val_tbl          => x_pricing_attr_val_tbl
3503 );
3504     oe_debug_pub.add('After Process_Agreement', 1);
3505 
3506 
3507    IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3508         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3509    ELSIF x_return_status  = FND_API.G_RET_STS_ERROR THEN
3510         RAISE FND_API.G_EXC_ERROR;
3511 
3512    END IF;
3513     oe_debug_pub.add('Before Commit', 1);
3514 
3515    COMMIT;
3516     oe_debug_pub.add('After Commit', 1);
3517 
3518 EXCEPTION
3519 
3520     WHEN FND_API.G_EXC_ERROR THEN
3521      ROLLBACK;
3522         x_return_status := FND_API.G_RET_STS_ERROR;
3523 
3524         --  Get message count and data
3525         OE_MSG_PUB.Count_And_Get
3526         (   p_count                       => x_msg_count
3527         ,   p_data                        => x_msg_data
3528         );
3529 
3530 
3531 
3532     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3533      ROLLBACK;
3534 
3535        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3536         OE_MSG_PUB.Count_And_Get
3537         (   p_count                       => x_msg_count
3538         ,   p_data                        => x_msg_data
3539         );
3540 
3541 
3542     WHEN OTHERS THEN
3543      ROLLBACK;
3544 
3545         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3546         OE_MSG_PUB.Count_And_Get
3547         (   p_count                       => x_msg_count
3548         ,   p_data                        => x_msg_data
3549         );
3550 
3551 
3552 END CREATE_AGREEMENT;
3553 
3554 PROCEDURE Clear_Global_PO_Cache IS
3555   l_return_status               VARCHAR2(1);
3556 BEGIN
3557 
3558   oe_debug_pub.add('hash before prn');
3559 
3560 -- bug 3588660
3561   IF OE_CODE_CONTROL.Code_Release_Level >= '110508' THEN
3562 
3563 
3564      IF (( OE_ORDER_UTIL.g_header_rec.header_id is not null
3565        AND OE_ORDER_UTIL.g_header_rec.header_id <> FND_API.G_MISS_NUM)
3566        OR  OE_ORDER_UTIL.g_header_adj_tbl.count >0
3567        OR OE_ORDER_UTIL.g_Header_Scredit_tbl.count >0
3568        OR OE_ORDER_UTIL.g_line_tbl.count >0
3569        OR OE_ORDER_UTIL.g_Line_Adj_tbl.count >0
3570        OR OE_ORDER_UTIL.g_Line_Scredit_tbl.count >0
3571        OR  OE_ORDER_UTIL.g_Lot_Serial_tbl.count >0 ) THEN
3572 
3573   oe_debug_pub.add('hash calling prn');
3574 
3575          OE_Order_PVT.Process_Requests_And_Notify
3576 		( p_process_requests		=> TRUE
3577 		, p_notify			=> FALSE
3578 		, x_return_status		=> l_return_status
3579 		);
3580 
3581         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3582           RAISE FND_API.G_EXC_ERROR;
3583         ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3584 	     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3585         END IF;
3586 
3587         --zbutt change bug#4772531  begin
3588         oe_order_util.clear_global_picture(l_return_status) ;
3589         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3590              RAISE FND_API.G_EXC_ERROR;
3591         ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3592              RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3593         END IF;
3594         --zbutt change bug#4772531 end
3595 
3596       END IF;
3597    END IF;
3598 
3599 -- moved down for bug 3686007
3600 
3601   OE_ORDER_CACHE.g_header_rec.header_id:=null;
3602   OE_GLOBALS.G_HEADER_CREATED := FALSE;
3603   g_db_header_rec := OE_Order_PUB.G_MISS_HEADER_REC;
3604 
3605 
3606 END Clear_Global_PO_Cache;
3607 
3608 PROCEDURE Copy_Attribute_To_Rec
3609 (   p_attr_id                       IN  NUMBER
3610 ,   p_attr_value                    IN  VARCHAR2
3611 ,   p_header_dff_rec                IN  OE_OE_FORM_HEADER.header_dff_rec_type
3612 ,   p_date_format_mask              IN  VARCHAR2 DEFAULT 'DD-MON-YYYY HH24:MI:SS'
3613 ,   x_header_rec                    IN OUT NOCOPY OE_Order_PUB.Header_Rec_Type
3614 ,   x_old_header_rec                IN OUT NOCOPY OE_ORDER_PUB.Header_Rec_Type
3615 )
3616 IS
3617 l_date_format_mask            VARCHAR2(30) := p_date_format_mask;
3618 --
3619 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3620 --
3621 BEGIN
3622     IF p_attr_id =    OE_Header_Util.G_ACCOUNTING_RULE THEN
3623         x_header_rec.accounting_rule_id := TO_NUMBER(p_attr_value);
3624     ELSIF p_attr_id = OE_Header_Util.G_ACCOUNTING_RULE_DURATION THEN
3625         x_header_rec.accounting_rule_duration := TO_NUMBER(p_attr_value);
3626     ELSIF p_attr_id = OE_Header_Util.G_AGREEMENT THEN
3627         x_header_rec.agreement_id := TO_NUMBER(p_attr_value);
3628     ELSIF p_attr_id = OE_Header_Util.G_BLANKET_NUMBER THEN
3629           x_header_rec.blanket_number := TO_NUMBER(p_attr_value);
3630     --kmuruges
3631     ELSIF p_attr_id = OE_Header_Util.G_quote_date THEN
3632          -- x_header_rec.quote_date := TO_DATE(p_attr_value,l_date_format_mask);
3633 	 x_header_rec.quote_date := fnd_date.string_to_date(p_attr_value,l_date_format_mask); --bug5402396
3634     ELSIF p_attr_id = OE_Header_Util.G_quote_number THEN
3635           x_header_rec.quote_number := TO_NUMBER(p_attr_value);
3636     ELSIF p_attr_id = OE_Header_Util.G_sales_document_name THEN
3637           x_header_rec.sales_document_name := p_attr_value;
3638     ELSIF p_attr_id = OE_Header_Util.G_transaction_phase THEN
3639           x_header_rec.transaction_phase_code := p_attr_value;
3640     ELSIF p_attr_id = OE_Header_Util.G_user_status THEN
3641           x_header_rec.user_status_code := p_attr_value;
3642     ELSIF p_attr_id = OE_Header_Util.G_draft_submitted THEN
3643           x_header_rec.draft_submitted_flag := p_attr_value;
3644     ELSIF p_attr_id = OE_Header_Util.G_source_document_version THEN
3645       x_header_rec.source_document_version_number := TO_NUMBER(p_attr_value);
3646     ELSIF p_attr_id = OE_Header_Util.G_sold_to_site_use THEN
3647       x_header_rec.sold_to_site_use_id := TO_NUMBER(p_attr_value);
3648 
3649     ELSIF p_attr_id = OE_Header_Util.G_ib_owner THEN
3650           x_header_rec.ib_owner := p_attr_value;
3651     ELSIF p_attr_id = OE_Header_Util.G_ib_installed_at_location THEN
3652           x_header_rec.ib_installed_at_location := p_attr_value;
3653     ELSIF p_attr_id = OE_Header_Util.G_ib_current_location THEN
3654           x_header_rec.ib_current_location := p_attr_value;
3655     ELSIF p_attr_id = OE_Header_Util.G_end_customer_site_use THEN
3656           x_header_rec.end_customer_site_use_id := TO_NUMBER(p_attr_value);
3657     ELSIF p_attr_id = OE_Header_Util.G_end_customer_contact THEN
3658           x_header_rec.end_customer_contact_id := TO_NUMBER(p_attr_value);
3659     ELSIF p_attr_id = OE_Header_Util.G_end_customer THEN
3660           x_header_rec.end_customer_id := TO_NUMBER(p_attr_value);
3661     --kmuruges end
3662     ELSIF p_attr_id = OE_Header_Util.G_BOOKED THEN
3663         x_header_rec.booked_flag := p_attr_value;
3664     ELSIF p_attr_id = OE_Header_Util.G_BOOKED_DATE THEN
3665         x_header_rec.booked_date := p_attr_value;
3666     ELSIF p_attr_id = OE_Header_Util.G_CANCELLED THEN
3667         x_header_rec.cancelled_flag := p_attr_value;
3668     ELSIF p_attr_id = OE_Header_Util.G_CONVERSION_RATE THEN
3669         x_header_rec.conversion_rate := TO_NUMBER(p_attr_value);
3670     ELSIF p_attr_id = OE_Header_Util.G_CONVERSION_RATE_DATE THEN
3671         --x_header_rec.conversion_rate_date := TO_DATE(p_attr_value,l_date_format_mask);
3672 	x_header_rec.conversion_rate_date := fnd_date.string_to_date(p_attr_value,l_date_format_mask); --bug5402396
3673     ELSIF p_attr_id = OE_Header_Util.G_CONVERSION_TYPE THEN
3674         x_header_rec.conversion_type_code := p_attr_value;
3675     ELSIF p_attr_id = OE_Header_Util.G_CUSTOMER_PREFERENCE_SET THEN
3676         x_header_rec.CUSTOMER_PREFERENCE_SET_CODE := p_attr_value;
3677     ELSIF p_attr_id = OE_Header_Util.G_CUST_PO_NUMBER THEN
3678         x_header_rec.cust_po_number := p_attr_value;
3679     ELSIF p_attr_id = OE_Header_Util.G_DEFAULT_FULFILLMENT_SET THEN
3680         x_header_rec.DEFAULT_FULFILLMENT_SET := p_attr_value;
3681     ELSIF p_attr_id = OE_Header_Util.G_DELIVER_TO_CONTACT THEN
3682         x_header_rec.deliver_to_contact_id := TO_NUMBER(p_attr_value);
3683     ELSIF p_attr_id = OE_Header_Util.G_DELIVER_TO_ORG THEN
3684         x_header_rec.deliver_to_org_id := TO_NUMBER(p_attr_value);
3685     ELSIF p_attr_id = OE_Header_Util.G_DEMAND_CLASS THEN
3686         x_header_rec.demand_class_code := p_attr_value;
3687     ELSIF p_attr_id = OE_Header_Util.G_EXPIRATION_DATE THEN
3688         --x_header_rec.expiration_date := TO_DATE(p_attr_value, l_date_format_mask);
3689 	x_header_rec.expiration_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
3690     ELSIF p_attr_id = OE_Header_Util.G_EARLIEST_SCHEDULE_LIMIT THEN
3691         x_header_rec.earliest_schedule_limit := TO_NUMBER(p_attr_value);
3692     ELSIF p_attr_id = OE_Header_Util.G_FOB_POINT THEN
3693         x_header_rec.fob_point_code := p_attr_value;
3694     ELSIF p_attr_id = OE_Header_Util.G_FREIGHT_CARRIER THEN
3695         x_header_rec.freight_carrier_code := p_attr_value;
3696     ELSIF p_attr_id = OE_Header_Util.G_FREIGHT_TERMS THEN
3697         x_header_rec.freight_terms_code := p_attr_value;
3698     ELSIF p_attr_id = OE_Header_Util.G_FULFILLMENT_SET_NAME THEN
3699         x_header_rec.FULFILLMENT_SET_NAME := p_attr_value;
3700     ELSIF p_attr_id = OE_Header_Util.G_HEADER THEN
3701         x_header_rec.header_id := TO_NUMBER(p_attr_value);
3702     ELSIF p_attr_id = OE_Header_Util.G_INVOICE_TO_CONTACT THEN
3703         x_header_rec.invoice_to_contact_id := TO_NUMBER(p_attr_value);
3704     ELSIF p_attr_id = OE_Header_Util.G_INVOICE_TO_ORG THEN
3705         x_header_rec.invoice_to_org_id := TO_NUMBER(p_attr_value);
3706     ELSIF p_attr_id = OE_Header_Util.G_INVOICING_RULE THEN
3707         x_header_rec.invoicing_rule_id := TO_NUMBER(p_attr_value);
3708     ELSIF p_attr_id = OE_Header_Util.G_LATEST_SCHEDULE_LIMIT THEN
3709         x_header_rec.latest_schedule_limit := TO_NUMBER(p_attr_value);
3710     ELSIF p_attr_id = OE_Header_Util.G_LINE_SET_NAME THEN
3711         x_header_rec.LINE_SET_NAME := p_attr_value;
3712     ELSIF p_attr_id = OE_Header_Util.G_OPEN THEN
3713         x_header_rec.open_flag := p_attr_value;
3714     ELSIF p_attr_id = OE_Header_Util.G_ORDERED_DATE THEN
3715        -- x_header_rec.ordered_date := TO_DATE(p_attr_value, l_date_format_mask);
3716         x_header_rec.ordered_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
3717     ELSIF p_attr_id = OE_Header_Util.G_ORDER_DATE_TYPE_CODE THEN
3718         x_header_rec.order_date_type_code := p_attr_value;
3719     ELSIF p_attr_id = OE_Header_Util.G_ORDER_NUMBER THEN
3720         x_header_rec.order_number := TO_NUMBER(p_attr_value);
3721     ELSIF p_attr_id = OE_Header_Util.G_ORDER_SOURCE THEN
3722         x_header_rec.order_source_id := TO_NUMBER(p_attr_value);
3723     ELSIF p_attr_id = OE_Header_Util.G_ORDER_TYPE THEN
3724         x_header_rec.order_type_id := TO_NUMBER(p_attr_value);
3725     ELSIF p_attr_id = OE_Header_Util.G_ORG THEN
3726         x_header_rec.org_id := TO_NUMBER(p_attr_value);
3727     ELSIF p_attr_id = OE_Header_Util.G_ORIG_SYS_DOCUMENT_REF THEN
3728         x_header_rec.orig_sys_document_ref := p_attr_value;
3729     ELSIF p_attr_id = OE_Header_Util.G_PARTIAL_SHIPMENTS_ALLOWED THEN
3730         x_header_rec.partial_shipments_allowed := p_attr_value;
3731     ELSIF p_attr_id = OE_Header_Util.G_PAYMENT_TERM THEN
3732         x_header_rec.payment_term_id := TO_NUMBER(p_attr_value);
3733     ELSIF p_attr_id = OE_Header_Util.G_PRICE_LIST THEN
3734         x_header_rec.price_list_id := TO_NUMBER(p_attr_value);
3735     ELSIF p_attr_id = OE_Header_Util.G_PRICING_DATE THEN
3736         --x_header_rec.pricing_date := TO_DATE(p_attr_value, l_date_format_mask);
3737 	x_header_rec.pricing_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
3738     ELSIF p_attr_id = OE_Header_Util.G_REQUEST_DATE THEN
3739         --x_header_rec.request_date := TO_DATE(p_attr_value, l_date_format_mask);
3740 	x_header_rec.request_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
3741     ELSIF p_attr_id = OE_Header_Util.G_SHIPMENT_PRIORITY THEN
3742         x_header_rec.shipment_priority_code := p_attr_value;
3743     ELSIF p_attr_id = OE_Header_Util.G_SHIPPING_METHOD THEN
3744         x_header_rec.shipping_method_code := p_attr_value;
3745     ELSIF p_attr_id = OE_Header_Util.G_SHIP_FROM_ORG THEN
3746         x_header_rec.ship_from_org_id := TO_NUMBER(p_attr_value);
3747     ELSIF p_attr_id = OE_Header_Util.G_SHIP_TOLERANCE_ABOVE THEN
3748         x_header_rec.ship_tolerance_above := TO_NUMBER(p_attr_value);
3749     ELSIF p_attr_id = OE_Header_Util.G_SHIP_TOLERANCE_BELOW THEN
3750         x_header_rec.ship_tolerance_below := TO_NUMBER(p_attr_value);
3751     ELSIF p_attr_id = OE_Header_Util.G_SHIP_TO_CONTACT THEN
3752         x_header_rec.ship_to_contact_id := TO_NUMBER(p_attr_value);
3753     ELSIF p_attr_id = OE_Header_Util.G_SHIP_TO_ORG THEN
3754         x_header_rec.ship_to_org_id := TO_NUMBER(p_attr_value);
3755     ELSIF p_attr_id = OE_Header_Util.G_SOLD_TO_CONTACT THEN
3756         x_header_rec.sold_to_contact_id := TO_NUMBER(p_attr_value);
3757     ELSIF p_attr_id = OE_Header_Util.G_SOLD_TO_ORG THEN
3758         x_header_rec.sold_to_org_id := TO_NUMBER(p_attr_value);
3759     ELSIF p_attr_id = OE_Header_Util.G_SOLD_TO_PHONE THEN
3760         x_header_rec.sold_to_phone_id := TO_NUMBER(p_attr_value);
3761     ELSIF p_attr_id = OE_Header_Util.G_SOURCE_DOCUMENT THEN
3762         x_header_rec.source_document_id := TO_NUMBER(p_attr_value);
3763     ELSIF p_attr_id = OE_Header_Util.G_SOURCE_DOCUMENT_TYPE THEN
3764         x_header_rec.source_document_type_id := TO_NUMBER(p_attr_value);
3765     ELSIF p_attr_id = OE_Header_Util.G_TAX_EXEMPT THEN
3766         x_header_rec.tax_exempt_flag := p_attr_value;
3767     ELSIF p_attr_id = OE_Header_Util.G_TAX_EXEMPT_NUMBER THEN
3768         x_header_rec.tax_exempt_number := p_attr_value;
3769     ELSIF p_attr_id = OE_Header_Util.G_TAX_EXEMPT_REASON THEN
3770         x_header_rec.tax_exempt_reason_code := p_attr_value;
3771     ELSIF p_attr_id = OE_Header_Util.G_TAX_POINT THEN
3772         x_header_rec.tax_point_code := p_attr_value;
3773     ELSIF p_attr_id = OE_Header_Util.G_TRANSACTIONAL_CURR THEN
3774         x_header_rec.transactional_curr_code := p_attr_value;
3775     ELSIF p_attr_id = OE_Header_Util.G_VERSION_NUMBER THEN
3776         x_header_rec.version_number := TO_NUMBER(p_attr_value);
3777     ELSIF p_attr_id =    OE_Header_Util.G_SALESREP THEN
3778         x_header_rec.salesrep_id := TO_NUMBER(p_attr_value);
3779     ELSIF p_attr_id =    OE_Header_Util.G_SALES_CHANNEL THEN
3780         x_header_rec.sales_channel_code := p_attr_value;
3781     ELSIF p_attr_id =    OE_Header_Util.G_RETURN_REASON THEN
3782         x_header_rec.return_reason_code := p_attr_value;
3783     ELSIF p_attr_id = OE_Header_Util.G_PAYMENT_TYPE THEN
3784         x_header_rec.payment_type_code := p_attr_value;
3785     ELSIF p_attr_id = OE_Header_Util.G_PAYMENT_AMOUNT THEN
3786         x_header_rec.payment_amount := TO_NUMBER(p_attr_value);
3787     ELSIF p_attr_id =    OE_Header_Util.G_CHECK_NUMBER THEN
3788         x_header_rec.check_number := p_attr_value;
3789     ELSIF p_attr_id = OE_Header_Util.G_CREDIT_CARD THEN
3790         x_header_rec.credit_card_code := p_attr_value;
3791     ELSIF p_attr_id =    OE_Header_Util.G_CREDIT_CARD_HOLDER_NAME THEN
3792         x_header_rec.credit_card_holder_name := p_attr_value;
3793     ELSIF p_attr_id =    OE_Header_Util.G_CREDIT_CARD_NUMBER THEN
3794         x_header_rec.credit_card_number := p_attr_value;
3795     ELSIF p_attr_id = Oe_header_util.G_INSTRUMENT_SECURITY THEN--R12 CC Encryption
3796 	  x_header_rec.instrument_security_code := p_attr_value;
3797     ELSIF p_attr_id = Oe_header_util.G_CC_INSTRUMENT THEN
3798 	  x_header_rec.CC_INSTRUMENT_ID := p_attr_value;
3799     ELSIF p_attr_id = Oe_header_util.G_CC_INSTRUMENT_ASSIGNMENT THEN
3800 	  x_header_rec.CC_INSTRUMENT_ASSIGNMENT_ID := p_attr_value; --R12 CC Encryption
3801     ELSIF p_attr_id =    OE_Header_Util.G_CREDIT_CARD_EXPIRATION_DATE THEN
3802         --x_header_rec.credit_card_expiration_date := TO_DATE(p_attr_value, l_date_format_mask);
3803 	x_header_rec.credit_card_expiration_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
3804     ELSIF p_attr_id =    OE_Header_Util.G_CREDIT_CARD_APPROVAL_DATE   THEN
3805        -- x_header_rec.credit_card_approval_date   := TO_DATE(p_attr_value, l_date_format_mask);
3806         x_header_rec.credit_card_approval_date   := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
3807     ELSIF p_attr_id =    OE_Header_Util.G_CREDIT_CARD_APPROVAL THEN
3808         x_header_rec.credit_card_approval_code := p_attr_value;
3809     ELSIF p_attr_id =    OE_Header_Util.G_FIRST_ACK THEN
3810         x_header_rec.first_ack_code := p_attr_value;
3811     ELSIF p_attr_id =    OE_Header_Util.G_FIRST_ACK_DATE THEN
3812        -- x_header_rec.first_ack_date := TO_DATE(p_attr_value, l_date_format_mask);
3813        x_header_rec.first_ack_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
3814     ELSIF p_attr_id =    OE_Header_Util.G_LAST_ACK THEN
3815         x_header_rec.last_ack_code := p_attr_value;
3816     ELSIF p_attr_id =    OE_Header_Util.G_SHIPPING_INSTRUCTIONS THEN
3817         x_header_rec.shipping_instructions := p_attr_value;
3818     ELSIF p_attr_id =    OE_Header_Util.G_PACKING_INSTRUCTIONS THEN
3819         x_header_rec.packing_instructions := p_attr_value;
3820     ELSIF p_attr_id =    OE_Header_Util.G_LAST_ACK_DATE THEN
3821        --x_header_rec.last_ack_date := TO_DATE(p_attr_value, l_date_format_mask);
3822        x_header_rec.last_ack_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask);--bug5402396
3823     ELSIF p_attr_id =    OE_Header_Util.G_ORDER_CATEGORY THEN
3824         x_header_rec.order_category_code := p_attr_value;
3825 
3826     ELSIF p_attr_id = OE_Header_Util.G_CONTRACT_TEMPLATE THEN
3827         x_header_rec.contract_template_id := TO_NUMBER(p_attr_value);
3828 
3829     ELSIF p_attr_id = OE_Header_Util.G_CONTRACT_SOURCE_DOC_TYPE THEN
3830         x_header_rec.contract_source_doc_type_code := p_attr_value;
3831 
3832     ELSIF p_attr_id = OE_Header_Util.G_CONTRACT_SOURCE_DOCUMENT THEN
3833         x_header_rec.contract_source_document_id := TO_NUMBER(p_attr_value);
3834 
3835     ELSIF p_attr_id = OE_Header_Util.G_SUPPLIER_SIGNATURE THEN
3836         x_header_rec.supplier_signature := p_attr_value;
3837     ELSIF p_attr_id = OE_Header_Util.G_CUSTOMER_SIGNATURE THEN
3838         x_header_rec.customer_signature := p_attr_value;
3839     ELSIF p_attr_id = OE_Header_Util.G_CUSTOMER_SIGNATURE_DATE THEN
3840        -- x_header_rec.customer_signature_date := TO_DATE(p_attr_value, l_date_format_mask);
3841         x_header_rec.customer_signature_date := fnd_date.string_to_date(p_attr_value, l_date_format_mask); --bug5402396
3842     ELSIF p_attr_id = OE_Header_Util.G_SUPPLIER_SIGNATURE_DATE THEN
3843       --  x_header_rec.supplier_signature_date := TO_DATE(p_attr_value, l_date_format_mask);
3844           x_header_rec.supplier_signature_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask);
3845 
3846     ELSIF p_attr_id = OE_Header_Util.G_ATTRIBUTE1
3847     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE10
3848     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE11
3849     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE12
3850     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE13
3851     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE14
3852     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE15
3853     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE16   --For bug 2184255
3854     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE17
3855     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE18
3856     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE19
3857     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE2
3858     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE20
3859     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE3
3860     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE4
3861     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE5
3862     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE6
3863     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE7
3864     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE8
3865     OR     p_attr_id = OE_Header_Util.G_ATTRIBUTE9
3866     OR     p_attr_id = OE_Header_Util.G_CONTEXT
3867     THEN
3868 
3869         x_header_rec.attribute1        := p_header_dff_rec.attribute1;
3870         x_header_rec.attribute10       := p_header_dff_rec.attribute10;
3871         x_header_rec.attribute11       := p_header_dff_rec.attribute11;
3872         x_header_rec.attribute12       := p_header_dff_rec.attribute12;
3873         x_header_rec.attribute13       := p_header_dff_rec.attribute13;
3874         x_header_rec.attribute14       := p_header_dff_rec.attribute14;
3875         x_header_rec.attribute15       := p_header_dff_rec.attribute15;
3876         x_header_rec.attribute16       := p_header_dff_rec.attribute16;   --For bug 2184255
3877         x_header_rec.attribute17       := p_header_dff_rec.attribute17;
3878         x_header_rec.attribute18       := p_header_dff_rec.attribute18;
3879         x_header_rec.attribute19       := p_header_dff_rec.attribute19;
3880         x_header_rec.attribute2        := p_header_dff_rec.attribute2;
3881         x_header_rec.attribute20       := p_header_dff_rec.attribute20;
3882         x_header_rec.attribute3        := p_header_dff_rec.attribute3;
3883         x_header_rec.attribute4        := p_header_dff_rec.attribute4;
3884         x_header_rec.attribute5        := p_header_dff_rec.attribute5;
3885         x_header_rec.attribute6        := p_header_dff_rec.attribute6;
3886         x_header_rec.attribute7        := p_header_dff_rec.attribute7;
3887         x_header_rec.attribute8        := p_header_dff_rec.attribute8;
3888         x_header_rec.attribute9        := p_header_dff_rec.attribute9;
3889         x_header_rec.context           := p_header_dff_rec.context;
3890 
3891 --        null; -- Kris get desc flec working
3892 
3893     ELSIF p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE1
3894     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE10
3895     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE11
3896     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE12
3897     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE13
3898     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE14
3899     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE15
3900     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE16
3901     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE17
3902     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE18
3903     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE19
3904     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE2
3905     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE20
3906     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE3
3907     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE4
3908     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE5
3909     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE6
3910     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE7
3911     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE8
3912     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE9
3913     OR     p_attr_id = OE_Header_Util.G_GLOBAL_ATTRIBUTE_CATEGORY
3914     THEN
3915 
3916         x_header_rec.global_attribute1 := p_header_dff_rec.global_attribute1;
3917         x_header_rec.global_attribute10 := p_header_dff_rec.global_attribute10;
3918         x_header_rec.global_attribute11 := p_header_dff_rec.global_attribute11;
3919         x_header_rec.global_attribute12 := p_header_dff_rec.global_attribute12;
3920         x_header_rec.global_attribute13 := p_header_dff_rec.global_attribute13;
3921         x_header_rec.global_attribute14 := p_header_dff_rec.global_attribute14;
3922         x_header_rec.global_attribute15 := p_header_dff_rec.global_attribute15;
3923         x_header_rec.global_attribute16 := p_header_dff_rec.global_attribute16;
3924         x_header_rec.global_attribute17 := p_header_dff_rec.global_attribute17;
3925         x_header_rec.global_attribute18 := p_header_dff_rec.global_attribute18;
3926         x_header_rec.global_attribute19 := p_header_dff_rec.global_attribute19;
3927         x_header_rec.global_attribute2 :=  p_header_dff_rec.global_attribute2;
3928         x_header_rec.global_attribute20 := p_header_dff_rec.global_attribute20;
3929         x_header_rec.global_attribute3 := p_header_dff_rec.global_attribute3;
3930         x_header_rec.global_attribute4 := p_header_dff_rec.global_attribute4;
3931         x_header_rec.global_attribute5 := p_header_dff_rec.global_attribute5;
3932         x_header_rec.global_attribute6 := p_header_dff_rec.global_attribute6;
3933         x_header_rec.global_attribute7 := p_header_dff_rec.global_attribute7;
3934         x_header_rec.global_attribute8 := p_header_dff_rec.global_attribute8;
3935         x_header_rec.global_attribute9 := p_header_dff_rec.global_attribute9;
3936         x_header_rec.global_attribute_category := p_header_dff_rec.global_attribute_category;
3937 
3938         null;  --Kris
3939     ELSIF  p_attr_id = OE_Header_Util.G_TP_CONTEXT
3940     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE1
3941     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE2
3942     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE3
3943     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE4
3944     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE5
3945     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE6
3946     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE7
3947     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE8
3948     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE9
3949     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE10
3950     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE11
3951     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE12
3952     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE13
3953     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE14
3954     OR     p_attr_id = OE_Header_Util.G_TP_ATTRIBUTE15
3955     THEN
3956 
3957         x_header_rec.tp_attribute1        := p_header_dff_rec.tp_attribute1;
3958         x_header_rec.tp_attribute10       := p_header_dff_rec.tp_attribute10;
3959         x_header_rec.tp_attribute11       := p_header_dff_rec.tp_attribute11;
3960         x_header_rec.tp_attribute12       := p_header_dff_rec.tp_attribute12;
3961         x_header_rec.tp_attribute13       := p_header_dff_rec.tp_attribute13;
3962         x_header_rec.tp_attribute14       := p_header_dff_rec.tp_attribute14;
3963         x_header_rec.tp_attribute15       := p_header_dff_rec.tp_attribute15;
3964         x_header_rec.tp_attribute2        := p_header_dff_rec.tp_attribute2;
3965         x_header_rec.tp_attribute3        := p_header_dff_rec.tp_attribute3;
3966         x_header_rec.tp_attribute4        := p_header_dff_rec.tp_attribute4;
3967         x_header_rec.tp_attribute5        := p_header_dff_rec.tp_attribute5;
3968         x_header_rec.tp_attribute6        := p_header_dff_rec.tp_attribute6;
3969         x_header_rec.tp_attribute7        := p_header_dff_rec.tp_attribute7;
3970         x_header_rec.tp_attribute8        := p_header_dff_rec.tp_attribute8;
3971         x_header_rec.tp_attribute9        := p_header_dff_rec.tp_attribute9;
3972         x_header_rec.tp_context           := p_header_dff_rec.tp_context;
3973     ELSE
3974 
3975         --  Unexpected error, unrecognized attribute
3976 
3977         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3978         THEN
3979             OE_MSG_PUB.Add_Exc_Msg
3980             (   G_PKG_NAME
3981             ,   'Change_Attribute'
3982             ,   'Unrecognized attribute'
3983             );
3984         END IF;
3985 
3986         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3987 
3988     END IF;
3989 EXCEPTION
3990     WHEN OTHERS THEN
3991         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
3992         THEN
3993             oe_msg_pub.Add_Exc_Msg
3994             (   G_PKG_NAME
3995             ,   'Copy_Attribute_To_Rec'
3996             );
3997         END IF;
3998         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3999 END Copy_Attribute_To_Rec;
4000 
4001  PROCEDURE Validate_Phone_Number(
4002                              p_area_code IN VARCHAR2 default Null,
4003                              p_phone_number     IN VARCHAR2 default null,
4004                              p_country_code     IN VARCHAR2 default null,
4005                              x_valid OUT NOCOPY /* file.sql.39 change */ BOOLEAN,
4006                              x_area_codes OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
4007                              x_phone_number_format OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
4008                              x_phone_number_length OUT NOCOPY /* file.sql.39 change */ VARCHAR2
4009                              )
4010  IS
4011  l_customer_id             Number;
4012  l_user_id                 Number;
4013  l_dummy                   varchar2(1);
4014  l_territory_code          Varchar2(80);
4015  l_phone_format_style   Varchar2(30);
4016  l_phone_country_code   Varchar2(30);
4017  l_area_code_size       number;
4018  l_msg_name Varchar2(500);
4019  l_count number:=0;
4020  l_total_count number:=0;
4021  CURSOR c_formats( l_territory_code VARCHAR2) IS
4022       select phone_format_style,area_code_size
4023       from hz_phone_formats
4024       where territory_code=l_territory_code;
4025  l_ph_style_match Boolean;
4026  l_phone_length number;
4027  l_temp_phone_format Varchar2(500);
4028  l_start Number;
4029  l_bug_count Number;
4030  l_user_territory_code Varchar2(2);
4031  l_sql_stmt    VARCHAR2(2000);
4032  l_area_code_length Number;
4033  l_filtered_phone_number Varchar2(300);
4034  l_phone_format Varchar2(300);
4035  l_AR_Sys_Param_Rec    AR_SYSTEM_PARAMETERS_ALL%ROWTYPE;
4036 
4037  BEGIN
4038   oe_debug_pub.add('Entering OE_OE_FORM_HEADER.Validate_Phone_Number', 1);
4039   IF OE_OE_FORM_HEADER.G_HZ_H_Installed IS NULL THEN
4040     SELECT COUNT(bug_id)
4041     INTO   l_bug_count
4042     FROM ad_bugs where bug_number IN ('2116159','2239222','2488745');
4043     IF l_bug_count>0 THEN
4044       OE_OE_FORM_HEADER.G_HZ_H_Installed:='Y';
4045     ELSE
4046       OE_OE_FORM_HEADER.G_HZ_H_Installed:='N';
4047     END IF;
4048   END IF;
4049   oe_debug_pub.add('Entering OE_OE_FORM_HEADER.Validate_Phone_Number-HZ Minipack'||OE_OE_FORM_HEADER.G_HZ_H_Installed, 1);
4050 
4051   IF OE_OE_FORM_HEADER.G_HZ_H_Installed='N' THEN
4052     x_valid:=TRUE;
4053   ELSE
4054   IF p_country_code IS NULL THEN
4055   BEGIN
4056    l_user_id :=   fnd_profile.value('USER_ID');
4057    select customer_id into l_customer_id
4058    from fnd_user
4059    where user_id = l_user_id;
4060 
4061     --check if the record is present in hz_parties
4062     select 1 into l_dummy
4063     from hz_parties
4064     where party_id = l_customer_id;
4065 
4066 
4067       ---Get user preferences
4068 
4069       l_user_territory_code:=
4070       hz_preference_pub.value_varchar2(
4071       l_customer_id,'TCA Phone','USER_TERRITORY_CODE');
4072 
4073   EXCEPTION
4074   WHEN NO_DATA_FOUND THEN
4075    NULL;
4076   WHEN OTHERS THEN
4077    NULL;
4078   END;
4079 
4080   IF l_user_territory_code IS NULL THEN
4081      IF oe_code_control.code_release_level < '110510' THEN
4082         select default_country into l_user_territory_code
4083         from ar_system_parameters;
4084      ELSE
4085         l_AR_Sys_Param_Rec := OE_Sys_Parameters_Pvt.Get_AR_Sys_Params;
4086         l_user_territory_code:= l_AR_Sys_Param_Rec.default_country;
4087      END IF;
4088 
4089   END IF;
4090  ELSE
4091    l_user_territory_code:=p_country_code;
4092  END IF;
4093   oe_debug_pub.add('Entering OE_OE_FORM_HEADER.Validate_Phone_Number-User Territory'||
4094    l_user_territory_code, 1);
4095 
4096 
4097 
4098   IF l_user_territory_code IS NOT NULL THEN
4099     IF p_area_code IS NOT NULL THEN
4100       select Count(territory_code)
4101       into l_count
4102       from hz_phone_formats
4103       where territory_code=l_user_territory_code
4104       and area_code_size=length(p_area_code);
4105 
4106       IF l_count=0 THEN
4107        select Count(territory_code)
4108        into l_count
4109        from hz_phone_formats
4110        where territory_code=l_user_territory_code
4111        and area_code_size=0;
4112 
4113        select Count(territory_code)
4114        into l_total_count
4115        from hz_phone_formats
4116        where territory_code=l_user_territory_code;
4117         oe_debug_pub.add('Entering Validate_Phone_Number-1x'||l_total_count,1);
4118 
4119        IF l_count=0 AND l_total_count=0 THEN
4120         l_sql_stmt := 'SELECT Count(territory_code)'||
4121                       ' FROM hz_phone_country_codes'||
4122                       ' where territory_code=:1 and'||
4123                       ' NVL(area_code_length,length(:2))=length(:3)';
4124          EXECUTE IMMEDIATE l_sql_stmt INTO l_count
4125          USING l_user_territory_code,p_area_code,p_area_code;
4126          Null;
4127          IF l_count=0  THEN
4128            x_valid:=FALSE;
4129          ELSE
4130            x_valid:=TRUE;
4131          END IF;
4132         oe_debug_pub.add('Entering Validate_Phone_Number-2x'||l_count,1);
4133        ELSIF l_count=0 AND l_total_count<>0 THEN
4134         x_valid:=FALSE;
4135        ELSE
4136         x_valid:=TRUE;
4137        END IF;
4138       ELSE
4139        x_valid:=TRUE;
4140       END IF;
4141 
4142       IF NOT x_valid THEN
4143        FOR C1 IN c_formats(l_user_territory_code)
4144        LOOP
4145         IF x_area_codes IS NULL THEN
4146           x_area_codes:=c1.area_code_size;
4147         ELSIF x_area_codes IS NOT NULL THEN
4148           x_area_codes:=x_area_codes||', '||c1.area_code_size;
4149         END IF;
4150        END LOOP;
4151 
4152        IF x_area_codes IS NULL THEN
4153         l_sql_stmt:='SELECT area_code_length'||
4154                   ' FROM hz_phone_country_codes'||
4155                   ' WHERE territory_code=:l_territory_code';
4156         EXECUTE IMMEDIATE l_sql_stmt INTO l_phone_country_code
4157         USING l_user_territory_code;
4158         x_area_codes:=l_phone_country_code;
4159 
4160         IF l_phone_country_code IS NULL THEN
4161           x_valid:=True;
4162         END IF;
4163 
4164        END IF;
4165       END IF;
4166     END IF;
4167 
4168    IF p_phone_number IS NOT NULL THEN
4169      FOR C1 IN c_formats(l_user_territory_code)
4170      LOOP
4171       IF LENGTH(filter_phone_number(p_phone_number=>c1.phone_format_style,
4172                                     p_isformat=>1))-
4173          NVL(c1.area_code_size,0)=
4174          LENGTH(filter_phone_number(p_phone_number=>p_phone_number)) THEN
4175        l_ph_style_match:=TRUE;
4176       ELSE
4177        l_ph_style_match:=FALSE;
4178       END IF;
4179       NULL;
4180      END LOOP;
4181 
4182      IF l_ph_style_match THEN
4183        x_valid:=TRUE;
4184      ELSIF NOT l_ph_style_match THEN
4185        x_valid:=FALSE;
4186      ELSE
4187        x_valid:=FALSE;
4188      BEGIN
4189         l_sql_stmt:='SELECT phone_length-NVL(AREA_CODE_LENGTH,0)'||
4190                     ' FROM hz_phone_country_codes'||
4191                     ' where territory_code=:l_user_territory_code';
4192         EXECUTE IMMEDIATE l_sql_stmt INTO l_phone_length
4193         USING l_user_territory_code;
4194       IF NVL(l_phone_length,LENGTH(p_phone_number))=LENGTH(p_phone_number) THEN
4195         x_valid:=TRUE;
4196       END IF;
4197      EXCEPTION
4198      WHEN NO_DATA_FOUND THEN
4199         x_valid:=TRUE;
4200      WHEN OTHERS THEN
4201       NULL;
4202      END;
4203      END IF;
4204 
4205      IF NOT x_valid THEN
4206        FOR C1 IN c_formats(l_user_territory_code)
4207        LOOP
4208         l_temp_phone_format:=Null;
4209         l_start:=0;
4210         IF x_phone_number_format IS NULL  THEN
4211          IF c1.area_code_size<>0 THEN
4212           l_temp_phone_format:=SUBSTR(c1.phone_format_style,(c1.area_code_size+1));
4213           l_start:=INSTR(l_temp_phone_format,'9');
4214           IF l_start>0 THEN
4215             l_temp_phone_format:=SUBSTR(l_temp_phone_format,l_start);
4216           END IF;
4217          ELSIF c1.area_code_size=0 THEN
4218           l_temp_phone_format:=SUBSTR(c1.phone_format_style,1);
4219          END IF;
4220           x_phone_number_format:=l_temp_phone_format;
4221         ELSIF x_phone_number_format IS NOT NULL THEN
4222          IF c1.area_code_size<>0 THEN
4223           l_temp_phone_format:=SUBSTR(c1.phone_format_style,(c1.area_code_size+1));
4224           l_start:=INSTR(l_temp_phone_format,'9');
4225           IF l_start>0 THEN
4226             l_temp_phone_format:=SUBSTR(l_temp_phone_format,l_start);
4227           END IF;
4228          ELSIF c1.area_code_size=0 THEN
4229           l_temp_phone_format:=SUBSTR(c1.phone_format_style,1);
4230          END IF;
4231           x_phone_number_format:=x_phone_number_format||', '||l_temp_phone_format;
4232         END IF;
4233        END LOOP;
4234        IF x_phone_number_format IS NULL THEN
4235         l_sql_stmt:='SELECT phone_length - NVL(area_code_length,0)'||
4236                   ' FROM hz_phone_country_codes'||
4237                   ' WHERE territory_code=:l_territory_code';
4238         EXECUTE IMMEDIATE l_sql_stmt INTO l_phone_country_code
4239         USING l_user_territory_code;
4240         x_phone_number_length:=l_phone_country_code;
4241 
4242          IF l_phone_country_code IS NULL OR l_phone_country_code<=0 THEN
4243           x_valid:=true;
4244         END IF;
4245        END IF;
4246      END IF;
4247    END IF;
4248  END IF;
4249  Null;
4250  END IF;
4251  EXCEPTION
4252   WHEN NO_DATA_FOUND THEN
4253    NULL;
4254   WHEN OTHERS THEN
4255    NULL;
4256 
4257  END Validate_Phone_Number;
4258 
4259  FUNCTION Filter_Phone_Number (
4260     p_phone_number                IN     VARCHAR2,
4261     p_isformat                    IN     NUMBER := 0
4262   ) RETURN VARCHAR2 IS
4263 
4264     l_filtered_number             VARCHAR2(100);
4265 
4266   BEGIN
4267 
4268     IF p_isformat = 0 THEN
4269       l_filtered_number := TRANSLATE (
4270       p_phone_number,
4271     '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz()- .+''~`\/@#$%^&*_,|}{[]?<>=";:',
4272         '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz');
4273     ELSE
4274       l_filtered_number := TRANSLATE (
4275         p_phone_number,
4276     '9012345678ABCDEFGHIJKLMNOPQRSTUVWXYZ()- .+''~`\/@#$%^&*_,|}{[]?<>=";:',
4277         '9');
4278     END IF;
4279 
4280     RETURN l_filtered_number;
4281 
4282   END Filter_Phone_Number;
4283 
4284 
4285 
4286 PROCEDURE Check_Sec_Header_Attr
4287  (x_return_status         IN OUT NOCOPY varchar2,
4288   p_header_id             IN OUT NOCOPY NUMBER,
4289   p_operation             IN OUT NOCOPY VARCHAR2,
4290   p_column_name           IN VARCHAR2 DEFAULT NULL,
4291   x_msg_count             IN OUT NOCOPY NUMBER,
4292   x_msg_data              IN OUT NOCOPY VARCHAR2,
4293   x_constrained           IN OUT NOCOPY BOOLEAN)
4294 
4295 IS
4296   l_header_rec           OE_ORDER_PUB.Header_rec_type;
4297   l_operation                    VARCHAR2(30);
4298   l_result	    		NUMBER;
4299   l_rowtype_rec					OE_AK_ORDER_HEADERS_V%ROWTYPE;
4300   l_action			NUMBER;
4301   l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4302  BEGIN
4303 
4304    IF l_debug_level  > 0 THEN
4305     oe_debug_pub.add(  'ENTER OE_OE_FORM_HEADER.Check_Sec_Header_Attr' , 1 ) ;
4306    END IF;
4307 
4308    IF p_column_name IS NOT NULL THEN
4309 	-- Initializing return status to SUCCESS
4310      x_return_status := FND_API.G_RET_STS_SUCCESS;
4311 
4312      IF p_header_id IS NOT NULL THEN
4313         OE_Header_Util.Query_Row
4314         (   p_header_id                   => p_header_id,
4315             x_header_rec                  =>l_header_rec
4316             );
4317      END IF;
4318 
4319      l_header_rec.operation :=p_operation;
4320 
4321      OE_HEADER_UTIL.API_Rec_To_Rowtype_Rec(l_header_rec,l_rowtype_rec);
4322 
4323      -- Initialize security global record
4324      OE_Header_SECURITY.g_record := l_rowtype_rec;
4325 
4326      IF l_header_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
4327        l_operation := OE_PC_GLOBALS.CREATE_OP;
4328      ELSIF l_header_rec.operation = OE_GLOBALS.G_OPR_UPDATE then
4329        l_operation := OE_PC_GLOBALS.UPDATE_OP;
4330      END IF;
4331 
4332      l_result := OE_Header_Security.Is_OP_Constrained
4333                                      (p_operation => l_operation
4334                                      ,p_column_name => p_column_name
4335                                      ,p_record => l_rowtype_rec
4336                                      ,x_on_operation_action => l_action
4337                                      );
4338      if l_result = OE_PC_GLOBALS.YES then
4339        x_constrained:=True;
4340        x_return_status := FND_API.G_RET_STS_ERROR;
4341      elsif l_result=OE_PC_GLOBALS.NO THEN
4342        x_constrained:=False;
4343      end if;
4344 
4345    END IF; -- if column name is not null
4346 
4347    EXCEPTION
4348      WHEN FND_API.G_EXC_ERROR THEN
4349         x_constrained := TRUE;
4350         x_return_status := FND_API.G_RET_STS_ERROR;
4351      WHEN OTHERS THEN
4352      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4353 
4354    oe_msg_pub.count_and_get
4355       (   p_count     => x_msg_count
4356        ,  p_data      => x_msg_data);
4357 
4358    IF l_debug_level  > 0 THEN
4359     oe_debug_pub.add(  'EXIT OE_OE_FORM_HEADER.Check_Sec_Header_Attr' , 1 ) ;
4360    END IF;
4361 
4362 END Check_Sec_Header_Attr;
4363 
4364 --ABH
4365 ----------------------------------------------------------
4366      FUNCTION Get_Opr_Update
4367 ----------------------------------------------------------
4368      RETURN varchar2
4369      IS
4370      BEGIN
4371          RETURN OE_GLOBALS.G_OPR_UPDATE;
4372      END;
4373 --ABH
4374 
4375 -- Start Of Enhanced Cascading
4376 
4377 --  Procedure  : Read_Cascadable_Fields
4378 
4379 --  Parameters : One out NOCOPY parameter is of type OE_OE_FORM_HEADER.Cascade_record
4380 
4381 --  Purpose    : This procedure will be called from Change_Attribute procedure
4382 --               in OEXOEHDR.pld. A new OM look up OM:Header To Line Cascade
4383 --               Attributes( with lookup_type=OM_HEADER_TO_LINE_CASCADE ) is
4384 --               added. This holds the list of attributes that can trigger
4385 --               cascading. User can use this look up to disable or enable
4386 --               cascading for any specific attribute.
4387 
4388 --               Read_Cascadable_Fields queries the enabled_flag from oe_lookups--               for each such attributes and store them in a record. Fields of --               this record will be used to determine whether cascading is
4389 --               enabled or not for that specific attribute.One field in this
4390 --               record is p_cached which determine whether the record is set
4391 --               or not. So p_cached is used to make sure Read_Cascadable_Fields--               is called only once in a session.
4392 
4393   PROCEDURE Read_Cascadable_Fields
4394    (
4395      x_cascade_record   OUT NOCOPY OE_OE_FORM_HEADER.cascade_record
4396    )
4397 
4398    IS
4399 
4400     l_lookup_type    Varchar2(40):='OM_HEADER_TO_LINE_CASCADE';
4401     l_lookup_code    Varchar2(40);
4402     l_enabled_flag   Varchar2(1);
4403     p_cascade_record   OE_OE_FORM_HEADER.Cascade_record;
4404 
4405     Cursor C_LOOKUP (p_lookup_code1 Varchar2, p_lookup_type1 Varchar2) IS
4406    Select enabled_flag from oe_lookups where lookup_type=p_lookup_type1 and lookup_code=p_lookup_code1;
4407 
4408 
4409     BEGIN
4410 
4411       OE_DEBUG_PUB.ADD('Entering OE_OE_FORM_HEADER.Read_Cascadable_Fields',1);
4412        l_lookup_code :='ACCOUNTING_RULE';
4413         open C_LOOKUP(l_lookup_code,l_lookup_type);
4414 	fetch C_LOOKUP into l_enabled_flag;
4415 	close C_LOOKUP;
4416 
4417 
4418        p_cascade_record.p_accounting_rule:=l_enabled_flag;
4419 
4420        l_lookup_code :='AGREEMENT';
4421 
4422         open C_LOOKUP(l_lookup_code,l_lookup_type);
4423 	fetch C_LOOKUP into l_enabled_flag;
4424 	close C_LOOKUP;
4425 
4426        p_cascade_record.p_agreement:=l_enabled_flag;
4427 
4428        l_lookup_code :='CUSTOMER_PO';
4429 	open C_LOOKUP(l_lookup_code,l_lookup_type);
4430 	fetch C_LOOKUP into l_enabled_flag;
4431 	close C_LOOKUP;
4432 
4433 
4434        p_cascade_record.p_customer_po:=l_enabled_flag;
4435 
4436        l_lookup_code :='BLANKET_NUMBER';
4437 
4438         open C_LOOKUP(l_lookup_code,l_lookup_type);
4439 	fetch C_LOOKUP into l_enabled_flag;
4440 	close C_LOOKUP;
4441 
4442        p_cascade_record.p_blanket_number:=l_enabled_flag;
4443 
4444        l_lookup_code :='DELIVER_TO_CONTACT';
4445         open C_LOOKUP(l_lookup_code,l_lookup_type);
4446 	fetch C_LOOKUP into l_enabled_flag;
4447 	close C_LOOKUP;
4448        p_cascade_record.p_deliver_to_contact:=l_enabled_flag;
4449 
4450        l_lookup_code :='DELIVER_TO';
4451 
4452         open C_LOOKUP(l_lookup_code,l_lookup_type);
4453 	fetch C_LOOKUP into l_enabled_flag;
4454 	close C_LOOKUP;
4455 
4456        p_cascade_record.p_deliver_to:=l_enabled_flag;
4457 
4458        l_lookup_code :='DEMAND_CLASS';
4459 
4460         open C_LOOKUP(l_lookup_code,l_lookup_type);
4461 	fetch C_LOOKUP into l_enabled_flag;
4462 	close C_LOOKUP;
4463        p_cascade_record.p_demand_class:=l_enabled_flag;
4464 
4465        l_lookup_code :='FOB_POINT';
4466 
4467         open C_LOOKUP(l_lookup_code,l_lookup_type);
4468 	fetch C_LOOKUP into l_enabled_flag;
4469 	close C_LOOKUP;
4470        p_cascade_record.p_fob_point:=l_enabled_flag;
4471 
4472        l_lookup_code :='FREIGHT_TERMS';
4473 
4474         open C_LOOKUP(l_lookup_code,l_lookup_type);
4475 	fetch C_LOOKUP into l_enabled_flag;
4476 	close C_LOOKUP;
4477 
4478        p_cascade_record.p_freight_terms:=l_enabled_flag;
4479 
4480        l_lookup_code :='BILL_TO_CONTACT';
4481 
4482         open C_LOOKUP(l_lookup_code,l_lookup_type);
4483 	fetch C_LOOKUP into l_enabled_flag;
4484 	close C_LOOKUP;
4485        p_cascade_record.p_bill_to_contact:=l_enabled_flag;
4486 
4487        l_lookup_code :='BILL_TO';
4488 
4489         open C_LOOKUP(l_lookup_code,l_lookup_type);
4490 	fetch C_LOOKUP into l_enabled_flag;
4491 	close C_LOOKUP;
4492 
4493        p_cascade_record.p_bill_to:=l_enabled_flag;
4494 
4495        l_lookup_code :='INVOICING_RULE';
4496 
4497         open C_LOOKUP(l_lookup_code,l_lookup_type);
4498 	fetch C_LOOKUP into l_enabled_flag;
4499 	close C_LOOKUP;
4500 
4501        p_cascade_record.p_invoicing_rule:=l_enabled_flag;
4502 
4503        l_lookup_code :='ORDER_FIRMED_DATE';
4504 
4505         open C_LOOKUP(l_lookup_code,l_lookup_type);
4506 	fetch C_LOOKUP into l_enabled_flag;
4507 	close C_LOOKUP;
4508        p_cascade_record.p_order_firmed_date:=l_enabled_flag;
4509 
4510        l_lookup_code :='PAYMENT_TERM';
4511 
4512         open C_LOOKUP(l_lookup_code,l_lookup_type);
4513 	fetch C_LOOKUP into l_enabled_flag;
4514 	close C_LOOKUP;
4515 
4516        p_cascade_record.p_payment_term:=l_enabled_flag;
4517 
4518        l_lookup_code :='PRICE_LIST';
4519         open C_LOOKUP(l_lookup_code,l_lookup_type);
4520 	fetch C_LOOKUP into l_enabled_flag;
4521 	close C_LOOKUP;
4522 
4523        p_cascade_record.p_price_list:=l_enabled_flag;
4524 
4525 
4526        l_lookup_code :='REQUEST_DATE';
4527 
4528         open C_LOOKUP(l_lookup_code,l_lookup_type);
4529 	fetch C_LOOKUP into l_enabled_flag;
4530 	close C_LOOKUP;
4531 
4532        p_cascade_record.p_request_date:=l_enabled_flag;
4533 
4534        l_lookup_code :='RETURN_REASON';
4535 
4536         open C_LOOKUP(l_lookup_code,l_lookup_type);
4537 	fetch C_LOOKUP into l_enabled_flag;
4538 	close C_LOOKUP;
4539 
4540        p_cascade_record.p_return_reason:=l_enabled_flag;
4541 
4542        l_lookup_code :='SALESPERSON';
4543 
4544         open C_LOOKUP(l_lookup_code,l_lookup_type);
4545 	fetch C_LOOKUP into l_enabled_flag;
4546 	close C_LOOKUP;
4547        p_cascade_record.p_salesperson:=l_enabled_flag;
4548 
4549        l_lookup_code :='SHIPMENT_PRIORITY';
4550 
4551 
4552         open C_LOOKUP(l_lookup_code,l_lookup_type);
4553 	fetch C_LOOKUP into l_enabled_flag;
4554 	close C_LOOKUP;
4555 
4556        p_cascade_record.p_shipment_priority:=l_enabled_flag;
4557 
4558        l_lookup_code :='SHIPPING_METHOD';
4559 
4560         open C_LOOKUP(l_lookup_code,l_lookup_type);
4561 	fetch C_LOOKUP into l_enabled_flag;
4562 	close C_LOOKUP;
4563 
4564        p_cascade_record.p_shipping_method:=l_enabled_flag;
4565 
4566        l_lookup_code :='WAREHOUSE';
4567 
4568          open C_LOOKUP(l_lookup_code,l_lookup_type);
4569 	fetch C_LOOKUP into l_enabled_flag;
4570 	close C_LOOKUP;
4571 
4572        p_cascade_record.p_warehouse:=l_enabled_flag;
4573 
4574        l_lookup_code :='SHIP_TO_CONTACT';
4575 
4576         open C_LOOKUP(l_lookup_code,l_lookup_type);
4577 	fetch C_LOOKUP into l_enabled_flag;
4578 	close C_LOOKUP;
4579        p_cascade_record.p_ship_to_contact:=l_enabled_flag;
4580 
4581        l_lookup_code :='SHIP_TO';
4582 
4583         open C_LOOKUP(l_lookup_code,l_lookup_type);
4584 	fetch C_LOOKUP into l_enabled_flag;
4585 	close C_LOOKUP;
4586 
4587        p_cascade_record.p_ship_to:=l_enabled_flag;
4588 
4589        l_lookup_code :='CUSTOMER';
4590         open C_LOOKUP(l_lookup_code,l_lookup_type);
4591 	fetch C_LOOKUP into l_enabled_flag;
4592 	close C_LOOKUP;
4593 
4594        p_cascade_record.p_customer:=l_enabled_flag;
4595 
4596        l_lookup_code :='TAX_EXEMPT';
4597         open C_LOOKUP(l_lookup_code,l_lookup_type);
4598 	fetch C_LOOKUP into l_enabled_flag;
4599 	close C_LOOKUP;
4600 
4601        p_cascade_record.p_tax_exempt:=l_enabled_flag;
4602 
4603        x_cascade_record:=p_cascade_record; -- Set the record
4604 
4605        x_cascade_record.p_cached:='Y'; -- Caching is done for this session
4606 
4607        OE_DEBUG_PUB.ADD('Exiting OE_OE_FORM_HEADER.Read_Cascadable_Fields',1);
4608 
4609    EXCEPTION
4610 
4611        WHEN  NO_DATA_FOUND THEN
4612           x_cascade_record.p_cached:='N';
4613        WHEN  OTHERS  THEN
4614           x_cascade_record.p_cached:='N';
4615 
4616 END Read_Cascadable_Fields;
4617 
4618 --End Of Enhanced Cascading
4619 
4620 END Oe_Oe_Form_Header;