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